public class org.hibernate.hql.internal.ast.exec.BasicExecutor implements org.hibernate.hql.internal.ast.exec.StatementExecutor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.hql.internal.ast.exec.BasicExecutor
  super_class: java.lang.Object
{
  private final org.hibernate.engine.spi.SessionFactoryImplementor factory;
    descriptor: Lorg/hibernate/engine/spi/SessionFactoryImplementor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.persister.entity.Queryable persister;
    descriptor: Lorg/hibernate/persister/entity/Queryable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String sql;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List parameterSpecifications;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.hibernate.hql.internal.ast.HqlSqlWalker, org.hibernate.persister.entity.Queryable);
    descriptor: (Lorg/hibernate/hql/internal/ast/HqlSqlWalker;Lorg/hibernate/persister/entity/Queryable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.hibernate.hql.internal.ast.exec.BasicExecutor this
        start local 1 // org.hibernate.hql.internal.ast.HqlSqlWalker walker
        start local 2 // org.hibernate.persister.entity.Queryable persister
         0: .line 58
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 59
            aload 0 /* this */
            aload 1 /* walker */
            invokevirtual org.hibernate.hql.internal.ast.HqlSqlWalker.getSessionFactoryHelper:()Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            putfield org.hibernate.hql.internal.ast.exec.BasicExecutor.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         2: .line 60
            aload 0 /* this */
            aload 2 /* persister */
            putfield org.hibernate.hql.internal.ast.exec.BasicExecutor.persister:Lorg/hibernate/persister/entity/Queryable;
         3: .line 62
            new org.hibernate.hql.internal.ast.SqlGenerator
            dup
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.exec.BasicExecutor.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokespecial org.hibernate.hql.internal.ast.SqlGenerator.<init>:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
            astore 3 /* gen */
        start local 3 // org.hibernate.hql.internal.ast.SqlGenerator gen
         4: .line 63
            aload 3 /* gen */
            aload 1 /* walker */
            invokevirtual org.hibernate.hql.internal.ast.HqlSqlWalker.getAST:()Lantlr/collections/AST;
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.statement:(Lantlr/collections/AST;)V
         5: .line 64
            aload 0 /* this */
            aload 3 /* gen */
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.getSQL:()Ljava/lang/String;
            putfield org.hibernate.hql.internal.ast.exec.BasicExecutor.sql:Ljava/lang/String;
         6: .line 65
            aload 3 /* gen */
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.getParseErrorHandler:()Lorg/hibernate/hql/internal/ast/ParseErrorHandler;
            invokeinterface org.hibernate.hql.internal.ast.ParseErrorHandler.throwQueryException:()V
         7: .line 66
            aload 0 /* this */
            aload 3 /* gen */
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.getCollectedParameters:()Ljava/util/List;
            putfield org.hibernate.hql.internal.ast.exec.BasicExecutor.parameterSpecifications:Ljava/util/List;
        end local 3 // org.hibernate.hql.internal.ast.SqlGenerator gen
         8: .line 67
            goto 11
         9: .line 68
      StackMap locals: org.hibernate.hql.internal.ast.exec.BasicExecutor org.hibernate.hql.internal.ast.HqlSqlWalker org.hibernate.persister.entity.Queryable
      StackMap stack: antlr.RecognitionException
            astore 3 /* e */
        start local 3 // antlr.RecognitionException e
        10: .line 69
            aload 3 /* e */
            invokestatic org.hibernate.hql.internal.ast.QuerySyntaxException.convert:(Lantlr/RecognitionException;)Lorg/hibernate/hql/internal/ast/QuerySyntaxException;
            athrow
        end local 3 // antlr.RecognitionException e
        11: .line 71
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.hibernate.persister.entity.Queryable persister
        end local 1 // org.hibernate.hql.internal.ast.HqlSqlWalker walker
        end local 0 // org.hibernate.hql.internal.ast.exec.BasicExecutor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lorg/hibernate/hql/internal/ast/exec/BasicExecutor;
            0   12     1     walker  Lorg/hibernate/hql/internal/ast/HqlSqlWalker;
            0   12     2  persister  Lorg/hibernate/persister/entity/Queryable;
            4    8     3        gen  Lorg/hibernate/hql/internal/ast/SqlGenerator;
           10   11     3          e  Lantlr/RecognitionException;
      Exception table:
        from    to  target  type
           3     8       9  Class antlr.RecognitionException
    MethodParameters:
           Name  Flags
      walker     
      persister  

  public java.lang.String[] getSqlStatements();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.exec.BasicExecutor this
         0: .line 74
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.exec.BasicExecutor.sql:Ljava/lang/String;
            aastore
            areturn
        end local 0 // org.hibernate.hql.internal.ast.exec.BasicExecutor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/exec/BasicExecutor;

  public int execute(org.hibernate.engine.spi.QueryParameters, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SessionImplementor;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.hibernate.hql.internal.ast.exec.BasicExecutor this
        start local 1 // org.hibernate.engine.spi.QueryParameters parameters
        start local 2 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 78
            aload 0 /* this */
            aload 1 /* parameters */
            aload 2 /* session */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.exec.BasicExecutor.sql:Ljava/lang/String;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.exec.BasicExecutor.parameterSpecifications:Ljava/util/List;
            invokevirtual org.hibernate.hql.internal.ast.exec.BasicExecutor.doExecute:(Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/lang/String;Ljava/util/List;)I
            ireturn
        end local 2 // org.hibernate.engine.spi.SessionImplementor session
        end local 1 // org.hibernate.engine.spi.QueryParameters parameters
        end local 0 // org.hibernate.hql.internal.ast.exec.BasicExecutor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/hibernate/hql/internal/ast/exec/BasicExecutor;
            0    1     1  parameters  Lorg/hibernate/engine/spi/QueryParameters;
            0    1     2     session  Lorg/hibernate/engine/spi/SessionImplementor;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      parameters  
      session     

  protected int doExecute(org.hibernate.engine.spi.QueryParameters, org.hibernate.engine.spi.SessionImplementor, java.lang.String, java.util.List);
    descriptor: (Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/lang/String;Ljava/util/List;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=13, args_size=5
        start local 0 // org.hibernate.hql.internal.ast.exec.BasicExecutor this
        start local 1 // org.hibernate.engine.spi.QueryParameters parameters
        start local 2 // org.hibernate.engine.spi.SessionImplementor session
        start local 3 // java.lang.String sql
        start local 4 // java.util.List parameterSpecifications
         0: .line 83
            new org.hibernate.action.internal.BulkOperationCleanupAction
            dup
            aload 2 /* session */
            iconst_1
            anewarray org.hibernate.persister.entity.Queryable
            dup
            iconst_0
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.exec.BasicExecutor.persister:Lorg/hibernate/persister/entity/Queryable;
            aastore
            invokespecial org.hibernate.action.internal.BulkOperationCleanupAction.<init>:(Lorg/hibernate/engine/spi/SessionImplementor;[Lorg/hibernate/persister/entity/Queryable;)V
            astore 5 /* action */
        start local 5 // org.hibernate.action.internal.BulkOperationCleanupAction action
         1: .line 84
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.isEventSource:()Z
            ifeq 4
         2: .line 85
            aload 2 /* session */
            checkcast org.hibernate.event.spi.EventSource
            invokeinterface org.hibernate.event.spi.EventSource.getActionQueue:()Lorg/hibernate/engine/spi/ActionQueue;
            aload 5 /* action */
            invokevirtual org.hibernate.engine.spi.ActionQueue.addAction:(Lorg/hibernate/action/internal/BulkOperationCleanupAction;)V
         3: .line 86
            goto 5
         4: .line 88
      StackMap locals: org.hibernate.action.internal.BulkOperationCleanupAction
      StackMap stack:
            aload 5 /* action */
            invokevirtual org.hibernate.action.internal.BulkOperationCleanupAction.getAfterTransactionCompletionProcess:()Lorg/hibernate/action/spi/AfterTransactionCompletionProcess;
            iconst_1
            aload 2 /* session */
            invokeinterface org.hibernate.action.spi.AfterTransactionCompletionProcess.doAfterTransactionCompletion:(ZLorg/hibernate/engine/spi/SessionImplementor;)V
         5: .line 91
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6 /* st */
        start local 6 // java.sql.PreparedStatement st
         6: .line 92
            aload 1 /* parameters */
            invokevirtual org.hibernate.engine.spi.QueryParameters.getRowSelection:()Lorg/hibernate/engine/spi/RowSelection;
            astore 7 /* selection */
        start local 7 // org.hibernate.engine.spi.RowSelection selection
         7: .line 96
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
            aload 3 /* sql */
            iconst_0
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
            astore 6 /* st */
         8: .line 97
            aload 4 /* parameterSpecifications */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8 /* paramSpecItr */
        start local 8 // java.util.Iterator paramSpecItr
         9: .line 98
            iconst_1
            istore 9 /* pos */
        start local 9 // int pos
        10: .line 99
            goto 13
        11: .line 100
      StackMap locals: org.hibernate.hql.internal.ast.exec.BasicExecutor org.hibernate.engine.spi.QueryParameters org.hibernate.engine.spi.SessionImplementor java.lang.String java.util.List org.hibernate.action.internal.BulkOperationCleanupAction java.sql.PreparedStatement org.hibernate.engine.spi.RowSelection java.util.Iterator int
      StackMap stack:
            aload 8 /* paramSpecItr */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.param.ParameterSpecification
            astore 10 /* paramSpec */
        start local 10 // org.hibernate.param.ParameterSpecification paramSpec
        12: .line 101
            iload 9 /* pos */
            aload 10 /* paramSpec */
            aload 6 /* st */
            aload 1 /* parameters */
            aload 2 /* session */
            iload 9 /* pos */
            invokeinterface org.hibernate.param.ParameterSpecification.bind:(Ljava/sql/PreparedStatement;Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SessionImplementor;I)I
            iadd
            istore 9 /* pos */
        end local 10 // org.hibernate.param.ParameterSpecification paramSpec
        13: .line 99
      StackMap locals:
      StackMap stack:
            aload 8 /* paramSpecItr */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        14: .line 103
            aload 7 /* selection */
            ifnull 17
        15: .line 104
            aload 7 /* selection */
            invokevirtual org.hibernate.engine.spi.RowSelection.getTimeout:()Ljava/lang/Integer;
            ifnull 17
        16: .line 105
            aload 6 /* st */
            aload 7 /* selection */
            invokevirtual org.hibernate.engine.spi.RowSelection.getTimeout:()Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            invokeinterface java.sql.PreparedStatement.setQueryTimeout:(I)V
        17: .line 109
      StackMap locals:
      StackMap stack:
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResultSetReturn:()Lorg/hibernate/engine/jdbc/spi/ResultSetReturn;
            aload 6 /* st */
            invokeinterface org.hibernate.engine.jdbc.spi.ResultSetReturn.executeUpdate:(Ljava/sql/PreparedStatement;)I
            istore 12
        18: .line 112
            aload 6 /* st */
            ifnull 20
        19: .line 113
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            aload 6 /* st */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        20: .line 109
      StackMap locals: org.hibernate.hql.internal.ast.exec.BasicExecutor org.hibernate.engine.spi.QueryParameters org.hibernate.engine.spi.SessionImplementor java.lang.String java.util.List org.hibernate.action.internal.BulkOperationCleanupAction java.sql.PreparedStatement org.hibernate.engine.spi.RowSelection java.util.Iterator int top top int
      StackMap stack:
            iload 12
            ireturn
        end local 9 // int pos
        end local 8 // java.util.Iterator paramSpecItr
        21: .line 111
      StackMap locals: org.hibernate.hql.internal.ast.exec.BasicExecutor org.hibernate.engine.spi.QueryParameters org.hibernate.engine.spi.SessionImplementor java.lang.String java.util.List org.hibernate.action.internal.BulkOperationCleanupAction java.sql.PreparedStatement org.hibernate.engine.spi.RowSelection
      StackMap stack: java.lang.Throwable
            astore 11
        22: .line 112
            aload 6 /* st */
            ifnull 24
        23: .line 113
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            aload 6 /* st */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        24: .line 115
      StackMap locals: org.hibernate.hql.internal.ast.exec.BasicExecutor org.hibernate.engine.spi.QueryParameters org.hibernate.engine.spi.SessionImplementor java.lang.String java.util.List org.hibernate.action.internal.BulkOperationCleanupAction java.sql.PreparedStatement org.hibernate.engine.spi.RowSelection top top top java.lang.Throwable
      StackMap stack:
            aload 11
            athrow
        25: .line 117
      StackMap locals: org.hibernate.hql.internal.ast.exec.BasicExecutor org.hibernate.engine.spi.QueryParameters org.hibernate.engine.spi.SessionImplementor java.lang.String java.util.List org.hibernate.action.internal.BulkOperationCleanupAction java.sql.PreparedStatement org.hibernate.engine.spi.RowSelection
      StackMap stack: java.sql.SQLException
            astore 8 /* sqle */
        start local 8 // java.sql.SQLException sqle
        26: .line 118
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.exec.BasicExecutor.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSQLExceptionHelper:()Lorg/hibernate/engine/jdbc/spi/SqlExceptionHelper;
            aload 8 /* sqle */
            ldc "could not execute update query"
            aload 3 /* sql */
            invokevirtual org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert:(Ljava/sql/SQLException;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/JDBCException;
            athrow
        end local 8 // java.sql.SQLException sqle
        end local 7 // org.hibernate.engine.spi.RowSelection selection
        end local 6 // java.sql.PreparedStatement st
        end local 5 // org.hibernate.action.internal.BulkOperationCleanupAction action
        end local 4 // java.util.List parameterSpecifications
        end local 3 // java.lang.String sql
        end local 2 // org.hibernate.engine.spi.SessionImplementor session
        end local 1 // org.hibernate.engine.spi.QueryParameters parameters
        end local 0 // org.hibernate.hql.internal.ast.exec.BasicExecutor this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   27     0                     this  Lorg/hibernate/hql/internal/ast/exec/BasicExecutor;
            0   27     1               parameters  Lorg/hibernate/engine/spi/QueryParameters;
            0   27     2                  session  Lorg/hibernate/engine/spi/SessionImplementor;
            0   27     3                      sql  Ljava/lang/String;
            0   27     4  parameterSpecifications  Ljava/util/List;
            1   27     5                   action  Lorg/hibernate/action/internal/BulkOperationCleanupAction;
            6   27     6                       st  Ljava/sql/PreparedStatement;
            7   27     7                selection  Lorg/hibernate/engine/spi/RowSelection;
            9   21     8             paramSpecItr  Ljava/util/Iterator;
           10   21     9                      pos  I
           12   13    10                paramSpec  Lorg/hibernate/param/ParameterSpecification;
           26   27     8                     sqle  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           7    18      21  any
           7    20      25  Class java.sql.SQLException
          21    25      25  Class java.sql.SQLException
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                         Name  Flags
      parameters               
      session                  
      sql                      
      parameterSpecifications  
}
SourceFile: "BasicExecutor.java"