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.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 38
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 39
            aload 0 /* this */
            aload 2 /* persister */
            putfield org.hibernate.hql.internal.ast.exec.BasicExecutor.persister:Lorg/hibernate/persister/entity/Queryable;
         2: .line 41
            new org.hibernate.hql.internal.ast.SqlGenerator
            dup
            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;
            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
         3: .line 42
            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
         4: .line 43
            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;
         5: .line 44
            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
         6: .line 45
            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
         7: .line 46
            goto 10
         8: .line 47
      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
         9: .line 48
            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
        10: .line 50
      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   11     0       this  Lorg/hibernate/hql/internal/ast/exec/BasicExecutor;
            0   11     1     walker  Lorg/hibernate/hql/internal/ast/HqlSqlWalker;
            0   11     2  persister  Lorg/hibernate/persister/entity/Queryable;
            3    7     3        gen  Lorg/hibernate/hql/internal/ast/SqlGenerator;
            9   10     3          e  Lantlr/RecognitionException;
      Exception table:
        from    to  target  type
           2     7       8  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 54
            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.SharedSessionContractImplementor);
    descriptor: (Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, 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.SharedSessionContractImplementor session
         0: .line 59
            aload 0 /* this */
         1: .line 60
            aload 1 /* parameters */
         2: .line 61
            aload 2 /* session */
         3: .line 62
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcServices:()Lorg/hibernate/engine/jdbc/spi/JdbcServices;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcServices.getDialect:()Lorg/hibernate/dialect/Dialect;
         4: .line 64
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.exec.BasicExecutor.sql:Ljava/lang/String;
         5: .line 65
            aload 1 /* parameters */
         6: .line 66
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isCommentsEnabled:()Z
         7: .line 63
            invokevirtual org.hibernate.dialect.Dialect.addSqlHintOrComment:(Ljava/lang/String;Lorg/hibernate/engine/spi/QueryParameters;Z)Ljava/lang/String;
         8: .line 68
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.exec.BasicExecutor.parameterSpecifications:Ljava/util/List;
         9: .line 59
            invokevirtual org.hibernate.hql.internal.ast.exec.BasicExecutor.doExecute:(Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/String;Ljava/util/List;)I
            ireturn
        end local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor 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   10     0        this  Lorg/hibernate/hql/internal/ast/exec/BasicExecutor;
            0   10     1  parameters  Lorg/hibernate/engine/spi/QueryParameters;
            0   10     2     session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      parameters  
      session     

  protected int doExecute(org.hibernate.engine.spi.QueryParameters, org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.String, java.util.List);
    descriptor: (Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;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.SharedSessionContractImplementor session
        start local 3 // java.lang.String sql
        start local 4 // java.util.List parameterSpecifications
         0: .line 74
            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/SharedSessionContractImplementor;[Lorg/hibernate/persister/entity/Queryable;)V
            astore 5 /* action */
        start local 5 // org.hibernate.action.internal.BulkOperationCleanupAction action
         1: .line 75
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.isEventSource:()Z
            ifeq 4
         2: .line 76
            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 77
            goto 5
         4: .line 79
      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/SharedSessionContractImplementor;)V
         5: .line 82
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6 /* st */
        start local 6 // java.sql.PreparedStatement st
         6: .line 83
            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 87
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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 88
            aload 4 /* parameterSpecifications */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8 /* paramSpecItr */
        start local 8 // java.util.Iterator paramSpecItr
         9: .line 89
            iconst_1
            istore 9 /* pos */
        start local 9 // int pos
        10: .line 90
            goto 13
        11: .line 91
      StackMap locals: org.hibernate.hql.internal.ast.exec.BasicExecutor org.hibernate.engine.spi.QueryParameters org.hibernate.engine.spi.SharedSessionContractImplementor 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 92
            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/SharedSessionContractImplementor;I)I
            iadd
            istore 9 /* pos */
        end local 10 // org.hibernate.param.ParameterSpecification paramSpec
        13: .line 90
      StackMap locals:
      StackMap stack:
            aload 8 /* paramSpecItr */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        14: .line 94
            aload 7 /* selection */
            ifnull 17
        15: .line 95
            aload 7 /* selection */
            invokevirtual org.hibernate.engine.spi.RowSelection.getTimeout:()Ljava/lang/Integer;
            ifnull 17
        16: .line 96
            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 100
      StackMap locals:
      StackMap stack:
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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 103
            aload 6 /* st */
            ifnull 21
        19: .line 104
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 6 /* st */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        20: .line 105
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        21: .line 100
      StackMap locals: org.hibernate.hql.internal.ast.exec.BasicExecutor org.hibernate.engine.spi.QueryParameters org.hibernate.engine.spi.SharedSessionContractImplementor 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
        22: .line 102
      StackMap locals: org.hibernate.hql.internal.ast.exec.BasicExecutor org.hibernate.engine.spi.QueryParameters org.hibernate.engine.spi.SharedSessionContractImplementor 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
        23: .line 103
            aload 6 /* st */
            ifnull 26
        24: .line 104
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 6 /* st */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        25: .line 105
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        26: .line 107
      StackMap locals: org.hibernate.hql.internal.ast.exec.BasicExecutor org.hibernate.engine.spi.QueryParameters org.hibernate.engine.spi.SharedSessionContractImplementor 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
        27: .line 109
      StackMap locals: org.hibernate.hql.internal.ast.exec.BasicExecutor org.hibernate.engine.spi.QueryParameters org.hibernate.engine.spi.SharedSessionContractImplementor 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
        28: .line 110
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcServices:()Lorg/hibernate/engine/jdbc/spi/JdbcServices;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcServices.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.SharedSessionContractImplementor 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   29     0                     this  Lorg/hibernate/hql/internal/ast/exec/BasicExecutor;
            0   29     1               parameters  Lorg/hibernate/engine/spi/QueryParameters;
            0   29     2                  session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            0   29     3                      sql  Ljava/lang/String;
            0   29     4  parameterSpecifications  Ljava/util/List;
            1   29     5                   action  Lorg/hibernate/action/internal/BulkOperationCleanupAction;
            6   29     6                       st  Ljava/sql/PreparedStatement;
            7   29     7                selection  Lorg/hibernate/engine/spi/RowSelection;
            9   22     8             paramSpecItr  Ljava/util/Iterator;
           10   22     9                      pos  I
           12   13    10                paramSpec  Lorg/hibernate/param/ParameterSpecification;
           28   29     8                     sqle  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           7    18      22  any
           7    21      27  Class java.sql.SQLException
          22    27      27  Class java.sql.SQLException
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                         Name  Flags
      parameters               
      session                  
      sql                      
      parameterSpecifications  
}
SourceFile: "BasicExecutor.java"