public class io.ebeaninternal.server.query.QueryPlanLoggerExplain extends io.ebeaninternal.server.query.QueryPlanLogger
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.ebeaninternal.server.query.QueryPlanLoggerExplain
super_class: io.ebeaninternal.server.query.QueryPlanLogger
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // io.ebeaninternal.server.query.QueryPlanLoggerExplain this
0: .line 15
aload 0 /* this */
invokespecial io.ebeaninternal.server.query.QueryPlanLogger.<init>:()V
return
end local 0 // io.ebeaninternal.server.query.QueryPlanLoggerExplain this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/ebeaninternal/server/query/QueryPlanLoggerExplain;
public io.ebeaninternal.api.SpiDbQueryPlan collectPlan(java.sql.Connection, io.ebeaninternal.api.SpiQueryPlan, io.ebeaninternal.server.type.bindcapture.BindCapture);
descriptor: (Ljava/sql/Connection;Lio/ebeaninternal/api/SpiQueryPlan;Lio/ebeaninternal/server/type/bindcapture/BindCapture;)Lio/ebeaninternal/api/SpiDbQueryPlan;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=10, args_size=4
start local 0 // io.ebeaninternal.server.query.QueryPlanLoggerExplain this
start local 1 // java.sql.Connection conn
start local 2 // io.ebeaninternal.api.SpiQueryPlan plan
start local 3 // io.ebeaninternal.server.type.bindcapture.BindCapture bind
0: .line 19
aconst_null
astore 4
aconst_null
astore 5
1: aload 1 /* conn */
new java.lang.StringBuilder
dup
ldc "EXPLAIN "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2 /* plan */
invokeinterface io.ebeaninternal.api.SpiQueryPlan.getSql:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface java.sql.Connection.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
astore 6 /* explainStmt */
start local 6 // java.sql.PreparedStatement explainStmt
2: .line 20
aload 3 /* bind */
aload 6 /* explainStmt */
aload 1 /* conn */
invokevirtual io.ebeaninternal.server.type.bindcapture.BindCapture.prepare:(Ljava/sql/PreparedStatement;Ljava/sql/Connection;)V
3: .line 21
aconst_null
astore 7
aconst_null
astore 8
4: aload 6 /* explainStmt */
invokeinterface java.sql.PreparedStatement.executeQuery:()Ljava/sql/ResultSet;
astore 9 /* rset */
start local 9 // java.sql.ResultSet rset
5: .line 22
aload 0 /* this */
aload 2 /* plan */
aload 3 /* bind */
aload 9 /* rset */
invokevirtual io.ebeaninternal.server.query.QueryPlanLoggerExplain.readQueryPlan:(Lio/ebeaninternal/api/SpiQueryPlan;Lio/ebeaninternal/server/type/bindcapture/BindCapture;Ljava/sql/ResultSet;)Lio/ebeaninternal/api/SpiDbQueryPlan;
6: .line 23
aload 9 /* rset */
ifnull 7
aload 9 /* rset */
invokeinterface java.sql.ResultSet.close:()V
7: .line 24
StackMap locals: io.ebeaninternal.server.query.QueryPlanLoggerExplain java.sql.Connection io.ebeaninternal.api.SpiQueryPlan io.ebeaninternal.server.type.bindcapture.BindCapture java.lang.Throwable java.lang.Throwable java.sql.PreparedStatement java.lang.Throwable java.lang.Throwable java.sql.ResultSet
StackMap stack: io.ebeaninternal.api.SpiDbQueryPlan
aload 6 /* explainStmt */
ifnull 8
aload 6 /* explainStmt */
invokeinterface java.sql.PreparedStatement.close:()V
8: .line 22
StackMap locals:
StackMap stack: io.ebeaninternal.api.SpiDbQueryPlan
areturn
StackMap locals:
StackMap stack: java.lang.Throwable
9: astore 7
10: .line 23
aload 9 /* rset */
ifnull 11
aload 9 /* rset */
invokeinterface java.sql.ResultSet.close:()V
end local 9 // java.sql.ResultSet rset
StackMap locals:
StackMap stack:
11: aload 7
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 8
aload 7
ifnonnull 13
aload 8
astore 7
goto 14
StackMap locals:
StackMap stack:
13: aload 7
aload 8
if_acmpeq 14
aload 7
aload 8
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
14: aload 7
athrow
StackMap locals: io.ebeaninternal.server.query.QueryPlanLoggerExplain java.sql.Connection io.ebeaninternal.api.SpiQueryPlan io.ebeaninternal.server.type.bindcapture.BindCapture java.lang.Throwable java.lang.Throwable java.sql.PreparedStatement
StackMap stack: java.lang.Throwable
15: astore 4
16: .line 24
aload 6 /* explainStmt */
ifnull 17
aload 6 /* explainStmt */
invokeinterface java.sql.PreparedStatement.close:()V
end local 6 // java.sql.PreparedStatement explainStmt
StackMap locals:
StackMap stack:
17: aload 4
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
18: astore 5
aload 4
ifnonnull 19
aload 5
astore 4
goto 20
StackMap locals:
StackMap stack:
19: aload 4
aload 5
if_acmpeq 20
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
20: aload 4
athrow
StackMap locals: io.ebeaninternal.server.query.QueryPlanLoggerExplain java.sql.Connection io.ebeaninternal.api.SpiQueryPlan io.ebeaninternal.server.type.bindcapture.BindCapture
StackMap stack: java.sql.SQLException
21: astore 4 /* e */
start local 4 // java.sql.SQLException e
22: .line 25
getstatic io.ebeaninternal.server.query.QueryPlanLoggerExplain.queryPlanLog:Lorg/slf4j/Logger;
ldc "Could not log query plan"
aload 4 /* e */
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
23: .line 26
aconst_null
areturn
end local 4 // java.sql.SQLException e
end local 3 // io.ebeaninternal.server.type.bindcapture.BindCapture bind
end local 2 // io.ebeaninternal.api.SpiQueryPlan plan
end local 1 // java.sql.Connection conn
end local 0 // io.ebeaninternal.server.query.QueryPlanLoggerExplain this
LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lio/ebeaninternal/server/query/QueryPlanLoggerExplain;
0 24 1 conn Ljava/sql/Connection;
0 24 2 plan Lio/ebeaninternal/api/SpiQueryPlan;
0 24 3 bind Lio/ebeaninternal/server/type/bindcapture/BindCapture;
2 17 6 explainStmt Ljava/sql/PreparedStatement;
5 11 9 rset Ljava/sql/ResultSet;
22 24 4 e Ljava/sql/SQLException;
Exception table:
from to target type
5 6 9 any
4 7 12 any
9 12 12 any
2 7 15 any
9 15 15 any
1 8 18 any
9 18 18 any
0 8 21 Class java.sql.SQLException
9 21 21 Class java.sql.SQLException
MethodParameters:
Name Flags
conn
plan
bind
}
SourceFile: "QueryPlanLoggerExplain.java"