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

  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.QueryPlanLoggerOracle 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
            aconst_null
            astore 7
            aconst_null
            astore 8
         3: aload 1 /* conn */
            new java.lang.StringBuilder
            dup
            ldc "EXPLAIN PLAN FOR "
            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 9 /* explainStmt */
        start local 9 // java.sql.PreparedStatement explainStmt
         4: .line 25
            aload 3 /* bind */
            aload 9 /* explainStmt */
            aload 1 /* conn */
            invokevirtual io.ebeaninternal.server.type.bindcapture.BindCapture.prepare:(Ljava/sql/PreparedStatement;Ljava/sql/Connection;)V
         5: .line 26
            aload 9 /* explainStmt */
            invokeinterface java.sql.PreparedStatement.execute:()Z
            pop
         6: .line 27
            aload 9 /* explainStmt */
            ifnull 12
            aload 9 /* explainStmt */
            invokeinterface java.sql.PreparedStatement.close:()V
            goto 12
      StackMap locals: io.ebeaninternal.server.query.QueryPlanLoggerOracle 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
         7: astore 7
            aload 9 /* explainStmt */
            ifnull 8
            aload 9 /* explainStmt */
            invokeinterface java.sql.PreparedStatement.close:()V
        end local 9 // java.sql.PreparedStatement explainStmt
      StackMap locals:
      StackMap stack:
         8: aload 7
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 8
            aload 7
            ifnonnull 10
            aload 8
            astore 7
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 7
            aload 8
            if_acmpeq 11
            aload 7
            aload 8
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        11: aload 7
            athrow
        12: .line 28
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7
            aconst_null
            astore 8
        13: aload 6 /* stmt */
            ldc "select plan_table_output from table(dbms_xplan.display())"
            invokeinterface java.sql.Statement.executeQuery:(Ljava/lang/String;)Ljava/sql/ResultSet;
            astore 9 /* rset */
        start local 9 // java.sql.ResultSet rset
        14: .line 29
            aload 0 /* this */
            aload 2 /* plan */
            aload 3 /* bind */
            aload 9 /* rset */
            invokevirtual io.ebeaninternal.server.query.QueryPlanLoggerOracle.readQueryPlan:(Lio/ebeaninternal/api/SpiQueryPlan;Lio/ebeaninternal/server/type/bindcapture/BindCapture;Ljava/sql/ResultSet;)Lio/ebeaninternal/api/SpiDbQueryPlan;
        15: .line 30
            aload 9 /* rset */
            ifnull 16
            aload 9 /* rset */
            invokeinterface java.sql.ResultSet.close:()V
        16: .line 31
      StackMap locals: io.ebeaninternal.server.query.QueryPlanLoggerOracle 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.ResultSet
      StackMap stack: io.ebeaninternal.api.SpiDbQueryPlan
            aload 6 /* stmt */
            ifnull 17
            aload 6 /* stmt */
            invokeinterface java.sql.Statement.close:()V
        17: .line 29
      StackMap locals:
      StackMap stack: io.ebeaninternal.api.SpiDbQueryPlan
            areturn
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: astore 7
        19: .line 30
            aload 9 /* rset */
            ifnull 20
            aload 9 /* rset */
            invokeinterface java.sql.ResultSet.close:()V
        end local 9 // java.sql.ResultSet rset
      StackMap locals:
      StackMap stack:
        20: aload 7
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        21: astore 8
            aload 7
            ifnonnull 22
            aload 8
            astore 7
            goto 23
      StackMap locals:
      StackMap stack:
        22: aload 7
            aload 8
            if_acmpeq 23
            aload 7
            aload 8
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        23: aload 7
            athrow
      StackMap locals: io.ebeaninternal.server.query.QueryPlanLoggerOracle 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
        24: astore 4
        25: .line 31
            aload 6 /* stmt */
            ifnull 26
            aload 6 /* stmt */
            invokeinterface java.sql.Statement.close:()V
        end local 6 // java.sql.Statement stmt
      StackMap locals:
      StackMap stack:
        26: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        27: astore 5
            aload 4
            ifnonnull 28
            aload 5
            astore 4
            goto 29
      StackMap locals:
      StackMap stack:
        28: aload 4
            aload 5
            if_acmpeq 29
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        29: aload 4
            athrow
      StackMap locals: io.ebeaninternal.server.query.QueryPlanLoggerOracle java.sql.Connection io.ebeaninternal.api.SpiQueryPlan io.ebeaninternal.server.type.bindcapture.BindCapture
      StackMap stack: java.sql.SQLException
        30: astore 4 /* e */
        start local 4 // java.sql.SQLException e
        31: .line 32
            getstatic io.ebeaninternal.server.query.QueryPlanLoggerOracle.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
        32: .line 33
            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.QueryPlanLoggerOracle this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   33     0         this  Lio/ebeaninternal/server/query/QueryPlanLoggerOracle;
            0   33     1         conn  Ljava/sql/Connection;
            0   33     2         plan  Lio/ebeaninternal/api/SpiQueryPlan;
            0   33     3         bind  Lio/ebeaninternal/server/type/bindcapture/BindCapture;
            2   26     6         stmt  Ljava/sql/Statement;
            4    8     9  explainStmt  Ljava/sql/PreparedStatement;
           14   20     9         rset  Ljava/sql/ResultSet;
           31   33     4            e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           4     6       7  any
           3     9       9  any
          14    15      18  any
          13    16      21  any
          18    21      21  any
           2    16      24  any
          18    24      24  any
           1    17      27  any
          18    27      27  any
           0    17      30  Class java.sql.SQLException
          18    30      30  Class java.sql.SQLException
    MethodParameters:
      Name  Flags
      conn  
      plan  
      bind  
}
SourceFile: "QueryPlanLoggerOracle.java"