From fca8fbb5ad1e7d582ee505c2ea8c3bb4ef050309 Mon Sep 17 00:00:00 2001 From: wenyh1 <2365151147@qq.com> Date: Fri, 13 Jan 2023 14:11:27 +0800 Subject: [PATCH] [inner-2083] fix SqlDumpLog's npe --- .../dble/log/sqldump/SqlDumpLogHelper.java | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/actiontech/dble/log/sqldump/SqlDumpLogHelper.java b/src/main/java/com/actiontech/dble/log/sqldump/SqlDumpLogHelper.java index e286120fd..e12d0cdda 100644 --- a/src/main/java/com/actiontech/dble/log/sqldump/SqlDumpLogHelper.java +++ b/src/main/java/com/actiontech/dble/log/sqldump/SqlDumpLogHelper.java @@ -115,6 +115,9 @@ public final class SqlDumpLogHelper { public static void info(String sql, byte[] originPacket, RWSplitService rwSplitService, MySQLResponseService responseService, long affectRows) { try { + if (SqlDumpLog.getInstance().getEnableSqlDumpLog() != 1) + return; + String[] arr = packageLog(originPacket, sql, rwSplitService); if (arr == null) return; @@ -167,17 +170,22 @@ public final class SqlDumpLogHelper { } private static String[] packageLog(byte[] data, String sql, RWSplitService rwSplitService) { - if (data.length < 5) return null; - switch (data[4]) { - case MySQLPacket.COM_QUERY: - return packageLog(sql); - case MySQLPacket.COM_STMT_EXECUTE: - long statementId = ByteUtil.readUB4(data, 5); - PreparedStatementHolder holder = rwSplitService.getPrepareStatement(statementId); - return packageLog(holder.getPrepareSql()); - default: - return null; + if (data != null) { + if (data.length < 5) return null; + switch (data[4]) { + case MySQLPacket.COM_QUERY: + return packageLog(sql); + case MySQLPacket.COM_STMT_EXECUTE: + long statementId = ByteUtil.readUB4(data, 5); + PreparedStatementHolder holder = rwSplitService.getPrepareStatement(statementId); + return packageLog(holder.getPrepareSql()); + default: + return null; + } + } else if (sql != null) { + return packageLog(sql); } + return null; } private static String[] packageLog(String originSql) {