public class io.ebeaninternal.server.query.QueryPlanLoggerSqlServer 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.QueryPlanLoggerSqlServer
  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.QueryPlanLoggerSqlServer this
         0: .line 19
            aload 0 /* this */
            invokespecial io.ebeaninternal.server.query.QueryPlanLogger.<init>:()V
            return
        end local 0 // io.ebeaninternal.server.query.QueryPlanLoggerSqlServer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/query/QueryPlanLoggerSqlServer;

  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=16, args_size=4
        start local 0 // io.ebeaninternal.server.query.QueryPlanLoggerSqlServer 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 23
            aconst_null
            astore 4
            aconst_null
            astore 5
         1: aload 1 /* conn */
            invokeinterface java.sql.Connection.createStatement:()Ljava/sql/Statement;
            astore 6 /* stmt */
        start local 6 // java.sql.Statement stmt
         2: .line 24
            aload 6 /* stmt */
            ldc "set statistics xml on"
            invokeinterface java.sql.Statement.execute:(Ljava/lang/String;)Z
            pop
         3: .line 25
            aload 6 /* stmt */
            ldc "begin transaction"
            invokeinterface java.sql.Statement.execute:(Ljava/lang/String;)Z
            pop
         4: .line 26
            aconst_null
            astore 7
            aconst_null
            astore 8
         5: aload 1 /* conn */
            aload 2 /* plan */
            invokeinterface io.ebeaninternal.api.SpiQueryPlan.getSql:()Ljava/lang/String;
            invokeinterface java.sql.Connection.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
            astore 9 /* explainStmt */
        start local 9 // java.sql.PreparedStatement explainStmt
         6: .line 27
            aload 3 /* bind */
            aload 9 /* explainStmt */
            aload 1 /* conn */
            invokevirtual io.ebeaninternal.server.type.bindcapture.BindCapture.prepare:(Ljava/sql/PreparedStatement;Ljava/sql/Connection;)V
         7: .line 29
            aconst_null
            astore 10
            aconst_null
            astore 11
         8: aload 9 /* explainStmt */
            invokeinterface java.sql.PreparedStatement.executeQuery:()Ljava/sql/ResultSet;
            astore 12 /* rset */
        start local 12 // java.sql.ResultSet rset
         9: .line 31
            aload 12 /* rset */
            ifnull 15
            aload 12 /* rset */
            invokeinterface java.sql.ResultSet.close:()V
            goto 15
      StackMap locals: io.ebeaninternal.server.query.QueryPlanLoggerSqlServer java.sql.Connection io.ebeaninternal.api.SpiQueryPlan io.ebeaninternal.server.type.bindcapture.BindCapture java.lang.Throwable java.lang.Throwable java.sql.Statement java.lang.Throwable java.lang.Throwable java.sql.PreparedStatement java.lang.Throwable java.lang.Throwable java.sql.ResultSet
      StackMap stack: java.lang.Throwable
        10: astore 10
            aload 12 /* rset */
            ifnull 11
            aload 12 /* rset */
            invokeinterface java.sql.ResultSet.close:()V
        end local 12 // java.sql.ResultSet rset
      StackMap locals:
      StackMap stack:
        11: aload 10
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 11
            aload 10
            ifnonnull 13
            aload 11
            astore 10
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 10
            aload 11
            if_acmpeq 14
            aload 10
            aload 11
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        14: aload 10
            athrow
        15: .line 32
      StackMap locals:
      StackMap stack:
            aload 6 /* stmt */
            ldc "rollback transaction"
            invokeinterface java.sql.Statement.execute:(Ljava/lang/String;)Z
            pop
        16: .line 33
            aconst_null
            astore 10 /* xml */
        start local 10 // java.lang.String xml
        17: .line 34
            aload 9 /* explainStmt */
            invokeinterface java.sql.PreparedStatement.getMoreResults:()Z
            ifeq 28
        18: .line 35
            aconst_null
            astore 11
            aconst_null
            astore 12
        19: aload 9 /* explainStmt */
            invokeinterface java.sql.PreparedStatement.getResultSet:()Ljava/sql/ResultSet;
            astore 13 /* rset */
        start local 13 // java.sql.ResultSet rset
        20: .line 36
            aload 13 /* rset */
            invokeinterface java.sql.ResultSet.next:()Z
            ifeq 22
        21: .line 37
            aload 13 /* rset */
            iconst_1
            invokeinterface java.sql.ResultSet.getString:(I)Ljava/lang/String;
            astore 10 /* xml */
        22: .line 39
      StackMap locals: io.ebeaninternal.server.query.QueryPlanLoggerSqlServer java.sql.Connection io.ebeaninternal.api.SpiQueryPlan io.ebeaninternal.server.type.bindcapture.BindCapture java.lang.Throwable java.lang.Throwable java.sql.Statement java.lang.Throwable java.lang.Throwable java.sql.PreparedStatement java.lang.String java.lang.Throwable java.lang.Throwable java.sql.ResultSet
      StackMap stack:
            aload 13 /* rset */
            ifnull 28
            aload 13 /* rset */
            invokeinterface java.sql.ResultSet.close:()V
            goto 28
      StackMap locals:
      StackMap stack: java.lang.Throwable
        23: astore 11
            aload 13 /* rset */
            ifnull 24
            aload 13 /* rset */
            invokeinterface java.sql.ResultSet.close:()V
        end local 13 // java.sql.ResultSet rset
      StackMap locals:
      StackMap stack:
        24: aload 11
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        25: astore 12
            aload 11
            ifnonnull 26
            aload 12
            astore 11
            goto 27
      StackMap locals:
      StackMap stack:
        26: aload 11
            aload 12
            if_acmpeq 27
            aload 11
            aload 12
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        27: aload 11
            athrow
        28: .line 41
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* plan */
            aload 3 /* bind */
            invokevirtual io.ebeaninternal.server.type.bindcapture.BindCapture.toString:()Ljava/lang/String;
            aload 10 /* xml */
            invokevirtual io.ebeaninternal.server.query.QueryPlanLoggerSqlServer.createPlan:(Lio/ebeaninternal/api/SpiQueryPlan;Ljava/lang/String;Ljava/lang/String;)Lio/ebeaninternal/api/SpiDbQueryPlan;
            astore 15
        29: .line 43
            aload 9 /* explainStmt */
            ifnull 30
            aload 9 /* explainStmt */
            invokeinterface java.sql.PreparedStatement.close:()V
        30: .line 47
      StackMap locals: io.ebeaninternal.server.query.QueryPlanLoggerSqlServer java.sql.Connection io.ebeaninternal.api.SpiQueryPlan io.ebeaninternal.server.type.bindcapture.BindCapture java.lang.Throwable java.lang.Throwable java.sql.Statement java.lang.Throwable java.lang.Throwable java.sql.PreparedStatement java.lang.String top top top top io.ebeaninternal.api.SpiDbQueryPlan
      StackMap stack:
            aload 6 /* stmt */
            ldc "set statistics xml off"
            invokeinterface java.sql.Statement.execute:(Ljava/lang/String;)Z
            pop
        31: .line 49
            aload 6 /* stmt */
            ifnull 32
            aload 6 /* stmt */
            invokeinterface java.sql.Statement.close:()V
        32: .line 41
      StackMap locals:
      StackMap stack:
            aload 15
            areturn
        end local 10 // java.lang.String xml
      StackMap locals: io.ebeaninternal.server.query.QueryPlanLoggerSqlServer java.sql.Connection io.ebeaninternal.api.SpiQueryPlan io.ebeaninternal.server.type.bindcapture.BindCapture java.lang.Throwable java.lang.Throwable java.sql.Statement java.lang.Throwable java.lang.Throwable java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
        33: astore 7
        34: .line 43
            aload 9 /* explainStmt */
            ifnull 35
            aload 9 /* explainStmt */
            invokeinterface java.sql.PreparedStatement.close:()V
        end local 9 // java.sql.PreparedStatement explainStmt
      StackMap locals:
      StackMap stack:
        35: aload 7
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        36: astore 8
            aload 7
            ifnonnull 37
            aload 8
            astore 7
            goto 38
      StackMap locals:
      StackMap stack:
        37: aload 7
            aload 8
            if_acmpeq 38
            aload 7
            aload 8
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        38: aload 7
            athrow
      StackMap locals: io.ebeaninternal.server.query.QueryPlanLoggerSqlServer java.sql.Connection io.ebeaninternal.api.SpiQueryPlan io.ebeaninternal.server.type.bindcapture.BindCapture java.lang.Throwable java.lang.Throwable java.sql.Statement
      StackMap stack: java.sql.SQLException
        39: astore 7 /* e */
        start local 7 // java.sql.SQLException e
        40: .line 44
            getstatic io.ebeaninternal.server.query.QueryPlanLoggerSqlServer.queryPlanLog:Lorg/slf4j/Logger;
            ldc "Could not log query plan"
            aload 7 /* e */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
        41: .line 47
            aload 6 /* stmt */
            ldc "set statistics xml off"
            invokeinterface java.sql.Statement.execute:(Ljava/lang/String;)Z
            pop
        42: .line 49
            aload 6 /* stmt */
            ifnull 43
            aload 6 /* stmt */
            invokeinterface java.sql.Statement.close:()V
        43: .line 45
      StackMap locals: java.sql.SQLException
      StackMap stack:
            aconst_null
            areturn
        end local 7 // java.sql.SQLException e
        44: .line 46
      StackMap locals: io.ebeaninternal.server.query.QueryPlanLoggerSqlServer java.sql.Connection io.ebeaninternal.api.SpiQueryPlan io.ebeaninternal.server.type.bindcapture.BindCapture java.lang.Throwable java.lang.Throwable java.sql.Statement
      StackMap stack: java.lang.Throwable
            astore 14
        45: .line 47
            aload 6 /* stmt */
            ldc "set statistics xml off"
            invokeinterface java.sql.Statement.execute:(Ljava/lang/String;)Z
            pop
        46: .line 48
            aload 14
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        47: astore 4
        48: .line 49
            aload 6 /* stmt */
            ifnull 49
            aload 6 /* stmt */
            invokeinterface java.sql.Statement.close:()V
        end local 6 // java.sql.Statement stmt
      StackMap locals:
      StackMap stack:
        49: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        50: astore 5
            aload 4
            ifnonnull 51
            aload 5
            astore 4
            goto 52
      StackMap locals:
      StackMap stack:
        51: aload 4
            aload 5
            if_acmpeq 52
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        52: aload 4
            athrow
      StackMap locals: io.ebeaninternal.server.query.QueryPlanLoggerSqlServer java.sql.Connection io.ebeaninternal.api.SpiQueryPlan io.ebeaninternal.server.type.bindcapture.BindCapture
      StackMap stack: java.sql.SQLException
        53: astore 4 /* e */
        start local 4 // java.sql.SQLException e
        54: .line 50
            getstatic io.ebeaninternal.server.query.QueryPlanLoggerSqlServer.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
        55: .line 51
            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.QueryPlanLoggerSqlServer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   56     0         this  Lio/ebeaninternal/server/query/QueryPlanLoggerSqlServer;
            0   56     1         conn  Ljava/sql/Connection;
            0   56     2         plan  Lio/ebeaninternal/api/SpiQueryPlan;
            0   56     3         bind  Lio/ebeaninternal/server/type/bindcapture/BindCapture;
            2   49     6         stmt  Ljava/sql/Statement;
            6   35     9  explainStmt  Ljava/sql/PreparedStatement;
            9   11    12         rset  Ljava/sql/ResultSet;
           17   33    10          xml  Ljava/lang/String;
           20   24    13         rset  Ljava/sql/ResultSet;
           40   44     7            e  Ljava/sql/SQLException;
           54   56     4            e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           8    12      12  any
          20    22      23  any
          19    25      25  any
           6    29      33  any
           5    30      36  any
          33    36      36  any
           4    30      39  Class java.sql.SQLException
          33    39      39  Class java.sql.SQLException
           4    30      44  any
          33    41      44  any
           2    31      47  any
          33    42      47  any
          44    47      47  any
           1    32      50  any
          33    43      50  any
          44    50      50  any
           0    32      53  Class java.sql.SQLException
          33    43      53  Class java.sql.SQLException
          44    53      53  Class java.sql.SQLException
    MethodParameters:
      Name  Flags
      conn  
      plan  
      bind  
}
SourceFile: "QueryPlanLoggerSqlServer.java"