diff --git a/jOOQ-console/src/main/java/org/jooq/debug/DebugListener.java b/jOOQ-console/src/main/java/org/jooq/debug/DebugListener.java index cbd4a68840..a65d8a2c6a 100644 --- a/jOOQ-console/src/main/java/org/jooq/debug/DebugListener.java +++ b/jOOQ-console/src/main/java/org/jooq/debug/DebugListener.java @@ -128,17 +128,14 @@ public class DebugListener extends DefaultExecuteListener { ResultSet resultSet = ctx.resultSet(); String[] sql = ctx.batchSQL(); SqlQueryType sqlQueryType = SqlQueryType.detectType(sql[0]); + String parameterDescription = null; if(sql.length == 1) { PreparedStatement statement = ctx.statement(); if(statement instanceof UsageTrackingPreparedStatement) { - String parameterDescription = ((UsageTrackingPreparedStatement) statement).getParameterDescription(); - if(parameterDescription != null) { - // Make a copy to not change internal structure. - sql = new String[] {sql[0] + " -> " + parameterDescription}; - } + parameterDescription = ((UsageTrackingPreparedStatement) statement).getParameterDescription(); } } - DebuggerData sqlQueryDebuggerData = new DebuggerData(sqlQueryType, sql, startPreparationTime == 0? null: aggregatedPreparationDuration, startBindTime == 0? null: endBindTime - startBindTime, endExecutionTime - startExecutionTime); + DebuggerData sqlQueryDebuggerData = new DebuggerData(sqlQueryType, sql, parameterDescription, startPreparationTime == 0? null: aggregatedPreparationDuration, startBindTime == 0? null: endBindTime - startBindTime, endExecutionTime - startExecutionTime); for(Debugger listener: sqlQueryDebuggerList) { listener.debugQueries(sqlQueryDebuggerData); } diff --git a/jOOQ-console/src/main/java/org/jooq/debug/DebuggerData.java b/jOOQ-console/src/main/java/org/jooq/debug/DebuggerData.java index db0e6b69f5..82351505d0 100644 --- a/jOOQ-console/src/main/java/org/jooq/debug/DebuggerData.java +++ b/jOOQ-console/src/main/java/org/jooq/debug/DebuggerData.java @@ -49,6 +49,7 @@ public class DebuggerData implements Serializable { private int id; private SqlQueryType queryType; private String[] queries; + private String parameterDescription; private Long preparationDuration; private Long bindingDuration; private long executionDuration; @@ -56,7 +57,7 @@ public class DebuggerData implements Serializable { private long threadID; private StackTraceElement[] callerStackTraceElements; - public DebuggerData(SqlQueryType queryType, String[] queries, Long preparationDuration, Long bindingDuration, long executionDuration) { + public DebuggerData(SqlQueryType queryType, String[] queries, String parameterDescription, Long preparationDuration, Long bindingDuration, long executionDuration) { this.id = nextID++; Thread currentThread = Thread.currentThread(); this.threadName = currentThread.getName(); @@ -64,6 +65,7 @@ public class DebuggerData implements Serializable { this.callerStackTraceElements = new Exception().getStackTrace(); this.queryType = queryType; this.queries = queries; + this.parameterDescription = parameterDescription; this.preparationDuration = preparationDuration; this.bindingDuration = bindingDuration; this.executionDuration = executionDuration; @@ -93,6 +95,13 @@ public class DebuggerData implements Serializable { return queries; } + /** + * @return non null if queries consist of a single prepared statement with parameters. + */ + public String getParameterDescription() { + return parameterDescription; + } + public Long getPreparedStatementPreparationDuration() { return preparationDuration; } diff --git a/jOOQ-console/src/main/java/org/jooq/debug/console/LoggerPane.java b/jOOQ-console/src/main/java/org/jooq/debug/console/LoggerPane.java index 0baa820013..63150ed42f 100644 --- a/jOOQ-console/src/main/java/org/jooq/debug/console/LoggerPane.java +++ b/jOOQ-console/src/main/java/org/jooq/debug/console/LoggerPane.java @@ -759,7 +759,12 @@ public class LoggerPane extends JPanel { return sqlQueryDebuggerData.getQueryType(); } public String[] getQueries() { - return sqlQueryDebuggerData.getQueries(); + String parameterDescription = sqlQueryDebuggerData.getParameterDescription(); + String[] queries = sqlQueryDebuggerData.getQueries(); + if(parameterDescription != null) { + return new String[] {queries[0] + " -> " + parameterDescription}; + } + return queries; } public Throwable getThrowable() { return throwable;