public final class org.hibernate.internal.SessionImpl extends org.hibernate.internal.AbstractSessionImpl implements org.hibernate.event.spi.EventSource, org.hibernate.engine.spi.SessionImplementor, org.hibernate.jpa.spi.HibernateEntityManagerImplementor
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.hibernate.internal.SessionImpl
  super_class: org.hibernate.internal.AbstractSessionImpl
{
  private static final org.hibernate.internal.EntityManagerMessageLogger log;
    descriptor: Lorg/hibernate/internal/EntityManagerMessageLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final boolean TRACE_ENABLED;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String[] ENTITY_MANAGER_SPECIFIC_PROPERTIES;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private transient org.hibernate.engine.spi.SessionOwner sessionOwner;
    descriptor: Lorg/hibernate/engine/spi/SessionOwner;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private java.util.Map<java.lang.String, java.lang.Object> properties;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;

  private transient org.hibernate.engine.spi.ActionQueue actionQueue;
    descriptor: Lorg/hibernate/engine/spi/ActionQueue;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient org.hibernate.engine.internal.StatefulPersistenceContext persistenceContext;
    descriptor: Lorg/hibernate/engine/internal/StatefulPersistenceContext;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient org.hibernate.engine.spi.LoadQueryInfluencers loadQueryInfluencers;
    descriptor: Lorg/hibernate/engine/spi/LoadQueryInfluencers;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private org.hibernate.LockOptions lockOptions;
    descriptor: Lorg/hibernate/LockOptions;
    flags: (0x0002) ACC_PRIVATE

  private boolean autoClear;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean autoClose;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean queryParametersValidationEnabled;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private transient int dontFlushFromFind;
    descriptor: I
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient boolean disallowOutOfTransactionUpdateOperations;
    descriptor: Z
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient org.hibernate.resource.transaction.backend.jta.internal.synchronization.ExceptionMapper exceptionMapper;
    descriptor: Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/ExceptionMapper;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient org.hibernate.resource.transaction.backend.jta.internal.synchronization.ManagedFlushChecker managedFlushChecker;
    descriptor: Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/ManagedFlushChecker;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient org.hibernate.resource.transaction.backend.jta.internal.synchronization.AfterCompletionAction afterCompletionAction;
    descriptor: Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/AfterCompletionAction;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient org.hibernate.event.spi.LoadEvent loadEvent;
    descriptor: Lorg/hibernate/event/spi/LoadEvent;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient boolean discardOnClose;
    descriptor: Z
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient org.hibernate.engine.transaction.spi.TransactionObserver transactionObserver;
    descriptor: Lorg/hibernate/engine/transaction/spi/TransactionObserver;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient org.hibernate.internal.SessionImpl$LobHelperImpl lobHelper;
    descriptor: Lorg/hibernate/internal/SessionImpl$LobHelperImpl;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private static final org.hibernate.resource.transaction.backend.jta.internal.synchronization.AfterCompletionAction STANDARD_AFTER_COMPLETION_ACTION;
    descriptor: Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/AfterCompletionAction;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.hibernate.internal.SessionImpl$ManagedFlushCheckerStandardImpl STANDARD_MANAGED_FLUSH_CHECKER;
    descriptor: Lorg/hibernate/internal/SessionImpl$ManagedFlushCheckerStandardImpl;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private org.hibernate.query.criteria.internal.compile.CriteriaCompiler criteriaCompiler;
    descriptor: Lorg/hibernate/query/criteria/internal/compile/CriteriaCompiler;
    flags: (0x0002) ACC_PRIVATE

  private static volatile int[] $SWITCH_TABLE$org$hibernate$query$ImmutableEntityUpdateQueryHandlingMode;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 210
            ldc Lorg/hibernate/internal/SessionImpl;
            invokestatic org.hibernate.internal.HEMLogging.messageLogger:(Ljava/lang/Class;)Lorg/hibernate/internal/EntityManagerMessageLogger;
            putstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
         1: .line 211
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.isTraceEnabled:()Z
            putstatic org.hibernate.internal.SessionImpl.TRACE_ENABLED:Z
         2: .line 214
            bipush 6
            anewarray java.lang.String
            dup
            iconst_0
         3: .line 215
            ldc "javax.persistence.lock.scope"
            aastore
            dup
            iconst_1
         4: .line 216
            ldc "javax.persistence.lock.timeout"
            aastore
            dup
            iconst_2
         5: .line 217
            ldc "org.hibernate.flushMode"
            aastore
            dup
            iconst_3
         6: .line 218
            ldc "javax.persistence.cache.retrieveMode"
            aastore
            dup
            iconst_4
         7: .line 219
            ldc "javax.persistence.cache.storeMode"
            aastore
            dup
            iconst_5
         8: .line 220
            ldc "javax.persistence.query.timeout"
            aastore
         9: .line 214
            putstatic org.hibernate.internal.SessionImpl.ENTITY_MANAGER_SPECIFIC_PROPERTIES:[Ljava/lang/String;
        10: .line 3300
            invokedynamic doAction()Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/AfterCompletionAction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.altMetafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (ZLorg/hibernate/engine/spi/SessionImplementor;)V
                  org/hibernate/internal/SessionImpl.lambda$0(ZLorg/hibernate/engine/spi/SessionImplementor;)V (6)
                  (ZLorg/hibernate/engine/spi/SessionImplementor;)V
                  1
            putstatic org.hibernate.internal.SessionImpl.STANDARD_AFTER_COMPLETION_ACTION:Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/AfterCompletionAction;
        11: .line 3315
            new org.hibernate.internal.SessionImpl$1
            dup
            invokespecial org.hibernate.internal.SessionImpl$1.<init>:()V
            putstatic org.hibernate.internal.SessionImpl.STANDARD_MANAGED_FLUSH_CHECKER:Lorg/hibernate/internal/SessionImpl$ManagedFlushCheckerStandardImpl;
        12: .line 3316
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.hibernate.internal.SessionFactoryImpl, org.hibernate.internal.SessionCreationOptions);
    descriptor: (Lorg/hibernate/internal/SessionFactoryImpl;Lorg/hibernate/internal/SessionCreationOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.internal.SessionFactoryImpl factory
        start local 2 // org.hibernate.internal.SessionCreationOptions options
         0: .line 254
            aload 0 /* this */
            aload 1 /* factory */
            aload 2 /* options */
            invokespecial org.hibernate.internal.AbstractSessionImpl.<init>:(Lorg/hibernate/internal/SessionFactoryImpl;Lorg/hibernate/internal/SessionCreationOptions;)V
         1: .line 225
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.hibernate.internal.SessionImpl.properties:Ljava/util/Map;
         2: .line 233
            aload 0 /* this */
            new org.hibernate.LockOptions
            dup
            invokespecial org.hibernate.LockOptions.<init>:()V
            putfield org.hibernate.internal.SessionImpl.lockOptions:Lorg/hibernate/LockOptions;
         3: .line 256
            aload 0 /* this */
            new org.hibernate.engine.spi.ActionQueue
            dup
            aload 0 /* this */
            invokespecial org.hibernate.engine.spi.ActionQueue.<init>:(Lorg/hibernate/engine/spi/SessionImplementor;)V
            putfield org.hibernate.internal.SessionImpl.actionQueue:Lorg/hibernate/engine/spi/ActionQueue;
         4: .line 257
            aload 0 /* this */
            new org.hibernate.engine.internal.StatefulPersistenceContext
            dup
            aload 0 /* this */
            invokespecial org.hibernate.engine.internal.StatefulPersistenceContext.<init>:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
            putfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
         5: .line 259
            aload 0 /* this */
            aload 2 /* options */
            invokeinterface org.hibernate.internal.SessionCreationOptions.getSessionOwner:()Lorg/hibernate/engine/spi/SessionOwner;
            putfield org.hibernate.internal.SessionImpl.sessionOwner:Lorg/hibernate/engine/spi/SessionOwner;
         6: .line 260
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.sessionOwner:Lorg/hibernate/engine/spi/SessionOwner;
            invokevirtual org.hibernate.internal.SessionImpl.initializeFromSessionOwner:(Lorg/hibernate/engine/spi/SessionOwner;)V
         7: .line 262
            aload 0 /* this */
            aload 2 /* options */
            invokeinterface org.hibernate.internal.SessionCreationOptions.shouldAutoClear:()Z
            putfield org.hibernate.internal.SessionImpl.autoClear:Z
         8: .line 263
            aload 0 /* this */
            aload 2 /* options */
            invokeinterface org.hibernate.internal.SessionCreationOptions.shouldAutoClose:()Z
            putfield org.hibernate.internal.SessionImpl.autoClose:Z
         9: .line 264
            aload 0 /* this */
            aload 2 /* options */
            invokeinterface org.hibernate.internal.SessionCreationOptions.isQueryParametersValidationEnabled:()Z
            putfield org.hibernate.internal.SessionImpl.queryParametersValidationEnabled:Z
        10: .line 265
            aload 0 /* this */
            aload 1 /* factory */
            invokevirtual org.hibernate.internal.SessionFactoryImpl.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isAllowOutOfTransactionUpdateOperations:()Z
            ifeq 11
            iconst_0
            goto 12
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.internal.SessionFactoryImpl org.hibernate.internal.SessionCreationOptions
      StackMap stack: org.hibernate.internal.SessionImpl
        11: iconst_1
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.internal.SessionFactoryImpl org.hibernate.internal.SessionCreationOptions
      StackMap stack: org.hibernate.internal.SessionImpl int
        12: putfield org.hibernate.internal.SessionImpl.disallowOutOfTransactionUpdateOperations:Z
        13: .line 266
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isReleaseResourcesOnCloseEnabled:()Z
            putfield org.hibernate.internal.SessionImpl.discardOnClose:Z
        14: .line 268
            aload 2 /* options */
            instanceof org.hibernate.internal.SharedSessionCreationOptions
            ifeq 18
            aload 2 /* options */
            checkcast org.hibernate.internal.SharedSessionCreationOptions
            invokeinterface org.hibernate.internal.SharedSessionCreationOptions.isTransactionCoordinatorShared:()Z
            ifeq 18
        15: .line 269
            aload 2 /* options */
            checkcast org.hibernate.internal.SharedSessionCreationOptions
            astore 3 /* sharedOptions */
        start local 3 // org.hibernate.internal.SharedSessionCreationOptions sharedOptions
        16: .line 270
            aload 3 /* sharedOptions */
            invokeinterface org.hibernate.internal.SharedSessionCreationOptions.getTransactionCompletionProcesses:()Lorg/hibernate/engine/spi/ActionQueue$TransactionCompletionProcesses;
            ifnull 18
        17: .line 271
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.actionQueue:Lorg/hibernate/engine/spi/ActionQueue;
            aload 3 /* sharedOptions */
            invokeinterface org.hibernate.internal.SharedSessionCreationOptions.getTransactionCompletionProcesses:()Lorg/hibernate/engine/spi/ActionQueue$TransactionCompletionProcesses;
            iconst_1
            invokevirtual org.hibernate.engine.spi.ActionQueue.setTransactionCompletionProcesses:(Lorg/hibernate/engine/spi/ActionQueue$TransactionCompletionProcesses;Z)V
        end local 3 // org.hibernate.internal.SharedSessionCreationOptions sharedOptions
        18: .line 275
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new org.hibernate.engine.spi.LoadQueryInfluencers
            dup
            aload 1 /* factory */
            invokespecial org.hibernate.engine.spi.LoadQueryInfluencers.<init>:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
            putfield org.hibernate.internal.SessionImpl.loadQueryInfluencers:Lorg/hibernate/engine/spi/LoadQueryInfluencers;
        19: .line 277
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatistics:()Lorg/hibernate/stat/spi/StatisticsImplementor;
            invokeinterface org.hibernate.stat.spi.StatisticsImplementor.isStatisticsEnabled:()Z
            ifeq 21
        20: .line 278
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatistics:()Lorg/hibernate/stat/spi/StatisticsImplementor;
            invokeinterface org.hibernate.stat.spi.StatisticsImplementor.openSession:()V
        21: .line 282
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getTransactionCoordinator:()Lorg/hibernate/resource/transaction/spi/TransactionCoordinator;
            invokeinterface org.hibernate.resource.transaction.spi.TransactionCoordinator.pulse:()V
        22: .line 284
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.setDefaultProperties:()V
        23: .line 285
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.applyProperties:()V
        24: .line 287
            getstatic org.hibernate.internal.SessionImpl.TRACE_ENABLED:Z
            ifeq 26
        25: .line 288
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            ldc "Opened Session [%s] at timestamp: %s"
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getSessionIdentifier:()Ljava/util/UUID;
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getTimestamp:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.tracef:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        26: .line 290
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.hibernate.internal.SessionCreationOptions options
        end local 1 // org.hibernate.internal.SessionFactoryImpl factory
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   27     0           this  Lorg/hibernate/internal/SessionImpl;
            0   27     1        factory  Lorg/hibernate/internal/SessionFactoryImpl;
            0   27     2        options  Lorg/hibernate/internal/SessionCreationOptions;
           16   18     3  sharedOptions  Lorg/hibernate/internal/SharedSessionCreationOptions;
    MethodParameters:
         Name  Flags
      factory  
      options  

  private void setDefaultProperties();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 293
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.properties:Ljava/util/Map;
            ldc "org.hibernate.flushMode"
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getHibernateFlushMode:()Lorg/hibernate/FlushMode;
            invokevirtual org.hibernate.FlushMode.name:()Ljava/lang/String;
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 294
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.properties:Ljava/util/Map;
            ldc "javax.persistence.lock.scope"
            getstatic javax.persistence.PessimisticLockScope.EXTENDED:Ljavax/persistence/PessimisticLockScope;
            invokevirtual javax.persistence.PessimisticLockScope.name:()Ljava/lang/String;
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 295
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.properties:Ljava/util/Map;
            ldc "javax.persistence.lock.timeout"
            iconst_m1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 296
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.properties:Ljava/util/Map;
            ldc "javax.persistence.cache.retrieveMode"
            getstatic org.hibernate.jpa.internal.util.CacheModeHelper.DEFAULT_RETRIEVE_MODE:Ljavax/persistence/CacheRetrieveMode;
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 297
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.properties:Ljava/util/Map;
            ldc "javax.persistence.cache.storeMode"
            getstatic org.hibernate.jpa.internal.util.CacheModeHelper.DEFAULT_STORE_MODE:Ljavax/persistence/CacheStoreMode;
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 298
            return
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/hibernate/internal/SessionImpl;

  private void applyProperties();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 302
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.applyEntityManagerSpecificProperties:()V
         1: .line 303
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.properties:Ljava/util/Map;
            ldc "org.hibernate.flushMode"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            getstatic org.hibernate.FlushMode.AUTO:Lorg/hibernate/FlushMode;
            invokestatic org.hibernate.jpa.internal.util.ConfigurationHelper.getFlushMode:(Ljava/lang/Object;Lorg/hibernate/FlushMode;)Lorg/hibernate/FlushMode;
            invokevirtual org.hibernate.internal.SessionImpl.setHibernateFlushMode:(Lorg/hibernate/FlushMode;)V
         2: .line 304
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.properties:Ljava/util/Map;
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.lockOptions:Lorg/hibernate/LockOptions;
            invokevirtual org.hibernate.internal.SessionImpl.setLockOptions:(Ljava/util/Map;Lorg/hibernate/LockOptions;)V
         3: .line 305
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getSession:()Lorg/hibernate/engine/spi/SessionImplementor;
         4: .line 307
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.currentCacheStoreMode:()Ljavax/persistence/CacheStoreMode;
         5: .line 308
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.currentCacheRetrieveMode:()Ljavax/persistence/CacheRetrieveMode;
         6: .line 306
            invokestatic org.hibernate.jpa.internal.util.CacheModeHelper.interpretCacheMode:(Ljavax/persistence/CacheStoreMode;Ljavax/persistence/CacheRetrieveMode;)Lorg/hibernate/CacheMode;
         7: .line 305
            invokeinterface org.hibernate.engine.spi.SessionImplementor.setCacheMode:(Lorg/hibernate/CacheMode;)V
         8: .line 311
            return
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/hibernate/internal/SessionImpl;

  private void applyEntityManagerSpecificProperties();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 314
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getProperties:()Ljava/util/Map;
            astore 1 /* properties */
        start local 1 // java.util.Map properties
         1: .line 315
            getstatic org.hibernate.internal.SessionImpl.ENTITY_MANAGER_SPECIFIC_PROPERTIES:[Ljava/lang/String;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 6
      StackMap locals: org.hibernate.internal.SessionImpl java.util.Map top int int java.lang.String[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* key */
        start local 2 // java.lang.String key
         3: .line 316
            aload 1 /* properties */
            aload 2 /* key */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 317
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.properties:Ljava/util/Map;
            aload 2 /* key */
            aload 1 /* properties */
            aload 2 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 2 // java.lang.String key
         5: .line 315
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 2
         7: .line 320
            return
        end local 1 // java.util.Map properties
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lorg/hibernate/internal/SessionImpl;
            1    8     1  properties  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            3    5     2         key  Ljava/lang/String;

  protected void applyQuerySettingsAndHints(org.hibernate.query.Query);
    descriptor: (Lorg/hibernate/query/Query;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.query.Query query
         0: .line 323
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.lockOptions:Lorg/hibernate/LockOptions;
            invokevirtual org.hibernate.LockOptions.getLockMode:()Lorg/hibernate/LockMode;
            getstatic org.hibernate.LockMode.NONE:Lorg/hibernate/LockMode;
            if_acmpeq 2
         1: .line 324
            aload 1 /* query */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.lockOptions:Lorg/hibernate/LockOptions;
            invokevirtual org.hibernate.LockOptions.getLockMode:()Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.internal.SessionImpl.getLockMode:(Ljava/lang/Object;)Ljavax/persistence/LockModeType;
            invokeinterface org.hibernate.query.Query.setLockMode:(Ljavax/persistence/LockModeType;)Lorg/hibernate/query/Query;
            pop
         2: .line 327
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getProperties:()Ljava/util/Map;
            ldc "javax.persistence.query.timeout"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            dup
            astore 2 /* queryTimeout */
        start local 2 // java.lang.Object queryTimeout
         3: ifnull 5
         4: .line 328
            aload 1 /* query */
            ldc "javax.persistence.query.timeout"
            aload 2 /* queryTimeout */
            invokeinterface org.hibernate.query.Query.setHint:(Ljava/lang/String;Ljava/lang/Object;)Lorg/hibernate/query/Query;
            pop
         5: .line 331
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getProperties:()Ljava/util/Map;
            ldc "javax.persistence.lock.timeout"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            dup
            astore 3 /* lockTimeout */
        start local 3 // java.lang.Object lockTimeout
         6: ifnull 8
         7: .line 332
            aload 1 /* query */
            ldc "javax.persistence.lock.timeout"
            aload 3 /* lockTimeout */
            invokeinterface org.hibernate.query.Query.setHint:(Ljava/lang/String;Ljava/lang/Object;)Lorg/hibernate/query/Query;
            pop
         8: .line 334
      StackMap locals: java.lang.Object
      StackMap stack:
            return
        end local 3 // java.lang.Object lockTimeout
        end local 2 // java.lang.Object queryTimeout
        end local 1 // org.hibernate.query.Query query
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Lorg/hibernate/internal/SessionImpl;
            0    9     1         query  Lorg/hibernate/query/Query;
            3    9     2  queryTimeout  Ljava/lang/Object;
            6    9     3   lockTimeout  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      query  

  private javax.persistence.CacheRetrieveMode currentCacheRetrieveMode();
    descriptor: ()Ljavax/persistence/CacheRetrieveMode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 337
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.properties:Ljava/util/Map;
            invokevirtual org.hibernate.internal.SessionImpl.determineCacheRetrieveMode:(Ljava/util/Map;)Ljavax/persistence/CacheRetrieveMode;
            areturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/SessionImpl;

  private javax.persistence.CacheStoreMode currentCacheStoreMode();
    descriptor: ()Ljavax/persistence/CacheStoreMode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 341
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.properties:Ljava/util/Map;
            invokevirtual org.hibernate.internal.SessionImpl.determineCacheStoreMode:(Ljava/util/Map;)Ljavax/persistence/CacheStoreMode;
            areturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/SessionImpl;

  private void initializeFromSessionOwner(org.hibernate.engine.spi.SessionOwner);
    descriptor: (Lorg/hibernate/engine/spi/SessionOwner;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.engine.spi.SessionOwner sessionOwner
         0: .line 346
            aload 1 /* sessionOwner */
            ifnull 14
         1: .line 347
            aload 1 /* sessionOwner */
            invokeinterface org.hibernate.engine.spi.SessionOwner.getExceptionMapper:()Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/ExceptionMapper;
            ifnull 4
         2: .line 348
            aload 0 /* this */
            aload 1 /* sessionOwner */
            invokeinterface org.hibernate.engine.spi.SessionOwner.getExceptionMapper:()Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/ExceptionMapper;
            putfield org.hibernate.internal.SessionImpl.exceptionMapper:Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/ExceptionMapper;
         3: .line 349
            goto 5
         4: .line 351
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.hibernate.internal.ExceptionMapperStandardImpl.INSTANCE:Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/ExceptionMapper;
            putfield org.hibernate.internal.SessionImpl.exceptionMapper:Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/ExceptionMapper;
         5: .line 353
      StackMap locals:
      StackMap stack:
            aload 1 /* sessionOwner */
            invokeinterface org.hibernate.engine.spi.SessionOwner.getAfterCompletionAction:()Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/AfterCompletionAction;
            ifnull 8
         6: .line 354
            aload 0 /* this */
            aload 1 /* sessionOwner */
            invokeinterface org.hibernate.engine.spi.SessionOwner.getAfterCompletionAction:()Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/AfterCompletionAction;
            putfield org.hibernate.internal.SessionImpl.afterCompletionAction:Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/AfterCompletionAction;
         7: .line 355
            goto 9
         8: .line 357
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.hibernate.internal.SessionImpl.STANDARD_AFTER_COMPLETION_ACTION:Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/AfterCompletionAction;
            putfield org.hibernate.internal.SessionImpl.afterCompletionAction:Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/AfterCompletionAction;
         9: .line 359
      StackMap locals:
      StackMap stack:
            aload 1 /* sessionOwner */
            invokeinterface org.hibernate.engine.spi.SessionOwner.getManagedFlushChecker:()Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/ManagedFlushChecker;
            ifnull 12
        10: .line 360
            aload 0 /* this */
            aload 1 /* sessionOwner */
            invokeinterface org.hibernate.engine.spi.SessionOwner.getManagedFlushChecker:()Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/ManagedFlushChecker;
            putfield org.hibernate.internal.SessionImpl.managedFlushChecker:Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/ManagedFlushChecker;
        11: .line 361
            goto 17
        12: .line 363
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.hibernate.internal.SessionImpl.STANDARD_MANAGED_FLUSH_CHECKER:Lorg/hibernate/internal/SessionImpl$ManagedFlushCheckerStandardImpl;
            putfield org.hibernate.internal.SessionImpl.managedFlushChecker:Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/ManagedFlushChecker;
        13: .line 365
            goto 17
        14: .line 367
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.hibernate.internal.ExceptionMapperStandardImpl.INSTANCE:Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/ExceptionMapper;
            putfield org.hibernate.internal.SessionImpl.exceptionMapper:Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/ExceptionMapper;
        15: .line 368
            aload 0 /* this */
            getstatic org.hibernate.internal.SessionImpl.STANDARD_AFTER_COMPLETION_ACTION:Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/AfterCompletionAction;
            putfield org.hibernate.internal.SessionImpl.afterCompletionAction:Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/AfterCompletionAction;
        16: .line 369
            aload 0 /* this */
            getstatic org.hibernate.internal.SessionImpl.STANDARD_MANAGED_FLUSH_CHECKER:Lorg/hibernate/internal/SessionImpl$ManagedFlushCheckerStandardImpl;
            putfield org.hibernate.internal.SessionImpl.managedFlushChecker:Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/ManagedFlushChecker;
        17: .line 371
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.hibernate.engine.spi.SessionOwner sessionOwner
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   18     0          this  Lorg/hibernate/internal/SessionImpl;
            0   18     1  sessionOwner  Lorg/hibernate/engine/spi/SessionOwner;
    MethodParameters:
              Name  Flags
      sessionOwner  

  public org.hibernate.SharedSessionBuilder sessionWithOptions();
    descriptor: ()Lorg/hibernate/SharedSessionBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 375
            new org.hibernate.internal.SessionImpl$SharedSessionBuilderImpl
            dup
            aload 0 /* this */
            invokespecial org.hibernate.internal.SessionImpl$SharedSessionBuilderImpl.<init>:(Lorg/hibernate/internal/SessionImpl;)V
            areturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/SessionImpl;

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 380
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 384
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.pulseTransactionCoordinator:()V
         2: .line 387
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.internalClear:()V
         3: .line 388
            goto 6
         4: .line 389
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 1 /* e */
        start local 1 // java.lang.RuntimeException e
         5: .line 390
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 1 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.RuntimeException e
         6: .line 392
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/hibernate/internal/SessionImpl;
            5    6     1     e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.RuntimeException

  private void internalClear();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 395
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.clear:()V
         1: .line 396
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.actionQueue:Lorg/hibernate/engine/spi/ActionQueue;
            invokevirtual org.hibernate.engine.spi.ActionQueue.clear:()V
         2: .line 398
            new org.hibernate.event.spi.ClearEvent
            dup
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.ClearEvent.<init>:(Lorg/hibernate/event/spi/EventSource;)V
            astore 1 /* event */
        start local 1 // org.hibernate.event.spi.ClearEvent event
         3: .line 399
            aload 0 /* this */
            getstatic org.hibernate.event.spi.EventType.CLEAR:Lorg/hibernate/event/spi/EventType;
            invokevirtual org.hibernate.internal.SessionImpl.listeners:(Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.ClearEvent top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.event.spi.ClearEventListener
            astore 2 /* listener */
        start local 2 // org.hibernate.event.spi.ClearEventListener listener
         5: .line 400
            aload 2 /* listener */
            aload 1 /* event */
            invokeinterface org.hibernate.event.spi.ClearEventListener.onClear:(Lorg/hibernate/event/spi/ClearEvent;)V
        end local 2 // org.hibernate.event.spi.ClearEventListener listener
         6: .line 399
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 402
            return
        end local 1 // org.hibernate.event.spi.ClearEvent event
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/hibernate/internal/SessionImpl;
            3    8     1     event  Lorg/hibernate/event/spi/ClearEvent;
            5    6     2  listener  Lorg/hibernate/event/spi/ClearEventListener;

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 409
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.isClosed:()Z
            ifeq 5
         1: .line 410
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.getJpaCompliance:()Lorg/hibernate/jpa/spi/JpaCompliance;
            invokeinterface org.hibernate.jpa.spi.JpaCompliance.isJpaClosedComplianceEnabled:()Z
            ifeq 3
         2: .line 411
            new java.lang.IllegalStateException
            dup
            ldc "Illegal call to #close() on already closed Session/EntityManager"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 414
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            ldc "Already closed"
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.trace:(Ljava/lang/Object;)V
         4: .line 415
            return
         5: .line 418
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.closeWithoutOpenChecks:()V
         6: .line 419
            return
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/hibernate/internal/SessionImpl;
    Exceptions:
      throws org.hibernate.HibernateException

  public void closeWithoutOpenChecks();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 422
            getstatic org.hibernate.internal.SessionImpl.TRACE_ENABLED:Z
            ifeq 2
         1: .line 423
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            ldc "Closing session [%s]"
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getSessionIdentifier:()Ljava/util/UUID;
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.tracef:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 427
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getSessionFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isJpaBootstrap:()Z
            ifeq 11
         3: .line 429
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkSessionFactoryOpen:()V
         4: .line 430
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         5: .line 431
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.discardOnClose:Z
            ifne 6
            aload 0 /* this */
            iconst_0
            invokevirtual org.hibernate.internal.SessionImpl.isTransactionInProgress:(Z)Z
            ifne 8
         6: .line 432
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial org.hibernate.internal.AbstractSessionImpl.close:()V
         7: .line 433
            goto 12
         8: .line 436
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.hibernate.internal.SessionImpl.waitingForAutoClose:Z
         9: .line 437
            aload 0 /* this */
            iconst_1
            putfield org.hibernate.internal.SessionImpl.closed:Z
        10: .line 439
            goto 12
        11: .line 441
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial org.hibernate.internal.AbstractSessionImpl.close:()V
        12: .line 444
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatistics:()Lorg/hibernate/stat/spi/StatisticsImplementor;
            invokeinterface org.hibernate.stat.spi.StatisticsImplementor.isStatisticsEnabled:()Z
            ifeq 14
        13: .line 445
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatistics:()Lorg/hibernate/stat/spi/StatisticsImplementor;
            invokeinterface org.hibernate.stat.spi.StatisticsImplementor.closeSession:()V
        14: .line 447
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lorg/hibernate/internal/SessionImpl;
    Exceptions:
      throws org.hibernate.HibernateException

  private boolean isTransactionInProgress(boolean);
    descriptor: (Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // boolean isMarkedRollbackConsideredActive
         0: .line 450
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.waitingForAutoClose:Z
            ifeq 5
         1: .line 451
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getSessionFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.isOpen:()Z
            ifeq 4
         2: .line 452
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getTransactionCoordinator:()Lorg/hibernate/resource/transaction/spi/TransactionCoordinator;
            iload 1 /* isMarkedRollbackConsideredActive */
            invokeinterface org.hibernate.resource.transaction.spi.TransactionCoordinator.isTransactionActive:(Z)Z
            ifeq 4
         3: .line 451
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
         5: .line 454
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.isClosed:()Z
            ifne 8
         6: .line 455
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getTransactionCoordinator:()Lorg/hibernate/resource/transaction/spi/TransactionCoordinator;
            iload 1 /* isMarkedRollbackConsideredActive */
            invokeinterface org.hibernate.resource.transaction.spi.TransactionCoordinator.isTransactionActive:(Z)Z
            ifeq 8
         7: .line 454
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         8: iconst_0
            ireturn
        end local 1 // boolean isMarkedRollbackConsideredActive
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot                              Name  Signature
            0    9     0                              this  Lorg/hibernate/internal/SessionImpl;
            0    9     1  isMarkedRollbackConsideredActive  Z
    MethodParameters:
                                  Name  Flags
      isMarkedRollbackConsideredActive  

  protected boolean shouldCloseJdbcCoordinatorOnClose(boolean);
    descriptor: (Z)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // boolean isTransactionCoordinatorShared
         0: .line 460
            iload 1 /* isTransactionCoordinatorShared */
            ifne 2
         1: .line 461
            aload 0 /* this */
            iload 1 /* isTransactionCoordinatorShared */
            invokespecial org.hibernate.internal.AbstractSessionImpl.shouldCloseJdbcCoordinatorOnClose:(Z)Z
            ireturn
         2: .line 464
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getActionQueue:()Lorg/hibernate/engine/spi/ActionQueue;
            invokevirtual org.hibernate.engine.spi.ActionQueue.hasBeforeTransactionActions:()Z
            ifne 3
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getActionQueue:()Lorg/hibernate/engine/spi/ActionQueue;
            invokevirtual org.hibernate.engine.spi.ActionQueue.hasAfterTransactionActions:()Z
            ifeq 6
         3: .line 465
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
         4: .line 466
            ldc "On close, shared Session had before/after transaction actions that have not yet been processed"
         5: .line 465
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.warn:(Ljava/lang/Object;)V
         6: .line 469
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // boolean isTransactionCoordinatorShared
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot                            Name  Signature
            0    7     0                            this  Lorg/hibernate/internal/SessionImpl;
            0    7     1  isTransactionCoordinatorShared  Z
    MethodParameters:
                                Name  Flags
      isTransactionCoordinatorShared  

  public boolean isAutoCloseSessionEnabled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 474
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.autoClose:Z
            ireturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/SessionImpl;

  public boolean isQueryParametersValidationEnabled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 479
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.queryParametersValidationEnabled:Z
            ireturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/SessionImpl;

  public boolean isOpen();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 484
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkSessionFactoryOpen:()V
         1: .line 485
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 487
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.isClosed:()Z
            ifeq 3
            iconst_0
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: ireturn
         5: .line 489
      StackMap locals:
      StackMap stack: org.hibernate.HibernateException
            astore 1 /* he */
        start local 1 // org.hibernate.HibernateException he
         6: .line 490
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 1 /* he */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Lorg/hibernate/HibernateException;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // org.hibernate.HibernateException he
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/hibernate/internal/SessionImpl;
            6    7     1    he  Lorg/hibernate/HibernateException;
      Exception table:
        from    to  target  type
           2     4       5  Class org.hibernate.HibernateException

  protected void checkSessionFactoryOpen();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 495
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.isOpen:()Z
            ifne 3
         1: .line 496
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            ldc "Forcing Session/EntityManager closed as SessionFactory/EntityManagerFactory has been closed"
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.debug:(Ljava/lang/Object;)V
         2: .line 497
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.setClosed:()V
         3: .line 499
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/hibernate/internal/SessionImpl;

  private boolean isFlushModeNever();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 502
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getHibernateFlushMode:()Lorg/hibernate/FlushMode;
            invokestatic org.hibernate.FlushMode.isManualFlushMode:(Lorg/hibernate/FlushMode;)Z
            ireturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/SessionImpl;

  private void managedFlush();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 506
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.isClosed:()Z
            ifeq 3
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.waitingForAutoClose:Z
            ifne 3
         1: .line 507
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            ldc "Skipping auto-flush due to session closed"
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.trace:(Ljava/lang/Object;)V
         2: .line 508
            return
         3: .line 510
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            ldc "Automatically flushing session"
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.trace:(Ljava/lang/Object;)V
         4: .line 511
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.doFlush:()V
         5: .line 512
            return
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/hibernate/internal/SessionImpl;

  public boolean shouldAutoClose();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 516
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.waitingForAutoClose:Z
            ifeq 2
         1: .line 517
            iconst_1
            ireturn
         2: .line 519
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.isClosed:()Z
            ifeq 4
         3: .line 520
            iconst_0
            ireturn
         4: .line 522
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.sessionOwner:Lorg/hibernate/engine/spi/SessionOwner;
            ifnull 6
         5: .line 523
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.sessionOwner:Lorg/hibernate/engine/spi/SessionOwner;
            invokeinterface org.hibernate.engine.spi.SessionOwner.shouldAutoCloseSession:()Z
            ireturn
         6: .line 529
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.isAutoCloseSessionEnabled:()Z
            ireturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/hibernate/internal/SessionImpl;

  private void managedClose();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 534
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            ldc "Automatically closing session"
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.trace:(Ljava/lang/Object;)V
         1: .line 535
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.closeWithoutOpenChecks:()V
         2: .line 536
            return
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/internal/SessionImpl;

  public java.sql.Connection connection();
    descriptor: ()Ljava/sql/Connection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 540
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 541
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.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.getPhysicalConnection:()Ljava/sql/Connection;
            areturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/internal/SessionImpl;
    Exceptions:
      throws org.hibernate.HibernateException

  public java.sql.Connection disconnect();
    descriptor: ()Ljava/sql/Connection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 546
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 547
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            ldc "Disconnecting session"
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.debug:(Ljava/lang/Object;)V
         2: .line 548
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.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.manualDisconnect:()Ljava/sql/Connection;
            areturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/internal/SessionImpl;
    Exceptions:
      throws org.hibernate.HibernateException

  public void reconnect(java.sql.Connection);
    descriptor: (Ljava/sql/Connection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.sql.Connection conn
         0: .line 553
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 554
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            ldc "Reconnecting session"
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.debug:(Ljava/lang/Object;)V
         2: .line 555
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         3: .line 556
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            aload 1 /* conn */
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.manualReconnect:(Ljava/sql/Connection;)V
         4: .line 557
            return
        end local 1 // java.sql.Connection conn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/hibernate/internal/SessionImpl;
            0    5     1  conn  Ljava/sql/Connection;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
      Name  Flags
      conn  

  public void setAutoClear(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // boolean enabled
         0: .line 561
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 562
            aload 0 /* this */
            iload 1 /* enabled */
            putfield org.hibernate.internal.SessionImpl.autoClear:Z
         2: .line 563
            return
        end local 1 // boolean enabled
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/hibernate/internal/SessionImpl;
            0    3     1  enabled  Z
    MethodParameters:
         Name  Flags
      enabled  

  public void afterOperation(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // boolean success
         0: .line 574
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.isTransactionInProgress:()Z
            ifne 2
         1: .line 575
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterTransaction:()V
         2: .line 577
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean success
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/hibernate/internal/SessionImpl;
            0    3     1  success  Z
    MethodParameters:
         Name  Flags
      success  

  public void addEventListeners(org.hibernate.SessionEventListener[]);
    descriptor: ([Lorg/hibernate/SessionEventListener;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.SessionEventListener[] listeners
         0: .line 581
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getEventListenerManager:()Lorg/hibernate/engine/spi/SessionEventListenerManager;
            aload 1 /* listeners */
            invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.addListener:([Lorg/hibernate/SessionEventListener;)V
         1: .line 582
            return
        end local 1 // org.hibernate.SessionEventListener[] listeners
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/hibernate/internal/SessionImpl;
            0    2     1  listeners  [Lorg/hibernate/SessionEventListener;
    MethodParameters:
           Name  Flags
      listeners  

  protected void cleanupOnClose();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 592
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.clear:()V
         1: .line 593
            return
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/internal/SessionImpl;

  public org.hibernate.LockMode getCurrentLockMode(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/hibernate/LockMode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object object
         0: .line 597
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 598
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 599
            aload 1 /* object */
            ifnonnull 4
         3: .line 600
            new java.lang.NullPointerException
            dup
            ldc "null object passed to getCurrentLockMode()"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 602
      StackMap locals:
      StackMap stack:
            aload 1 /* object */
            instanceof org.hibernate.proxy.HibernateProxy
            ifeq 8
         5: .line 603
            aload 1 /* object */
            checkcast org.hibernate.proxy.HibernateProxy
            invokeinterface org.hibernate.proxy.HibernateProxy.getHibernateLazyInitializer:()Lorg/hibernate/proxy/LazyInitializer;
            aload 0 /* this */
            invokeinterface org.hibernate.proxy.LazyInitializer.getImplementation:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
            astore 1 /* object */
         6: .line 604
            aload 1 /* object */
            ifnonnull 8
         7: .line 605
            getstatic org.hibernate.LockMode.NONE:Lorg/hibernate/LockMode;
            areturn
         8: .line 608
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 1 /* object */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.getEntry:(Ljava/lang/Object;)Lorg/hibernate/engine/spi/EntityEntry;
            astore 2 /* e */
        start local 2 // org.hibernate.engine.spi.EntityEntry e
         9: .line 609
            aload 2 /* e */
            ifnonnull 11
        10: .line 610
            new org.hibernate.TransientObjectException
            dup
            ldc "Given object not associated with the session"
            invokespecial org.hibernate.TransientObjectException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 612
      StackMap locals: org.hibernate.engine.spi.EntityEntry
      StackMap stack:
            aload 2 /* e */
            invokeinterface org.hibernate.engine.spi.EntityEntry.getStatus:()Lorg/hibernate/engine/spi/Status;
            getstatic org.hibernate.engine.spi.Status.MANAGED:Lorg/hibernate/engine/spi/Status;
            if_acmpeq 17
        12: .line 613
            new org.hibernate.ObjectDeletedException
            dup
        13: .line 614
            ldc "The given object was deleted"
        14: .line 615
            aload 2 /* e */
            invokeinterface org.hibernate.engine.spi.EntityEntry.getId:()Ljava/io/Serializable;
        15: .line 616
            aload 2 /* e */
            invokeinterface org.hibernate.engine.spi.EntityEntry.getPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            invokeinterface org.hibernate.persister.entity.EntityPersister.getEntityName:()Ljava/lang/String;
        16: .line 613
            invokespecial org.hibernate.ObjectDeletedException.<init>:(Ljava/lang/String;Ljava/io/Serializable;Ljava/lang/String;)V
            athrow
        17: .line 619
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            invokeinterface org.hibernate.engine.spi.EntityEntry.getLockMode:()Lorg/hibernate/LockMode;
            areturn
        end local 2 // org.hibernate.engine.spi.EntityEntry e
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0    this  Lorg/hibernate/internal/SessionImpl;
            0   18     1  object  Ljava/lang/Object;
            9   18     2       e  Lorg/hibernate/engine/spi/EntityEntry;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
        Name  Flags
      object  

  public java.lang.Object getEntityUsingInterceptor(org.hibernate.engine.spi.EntityKey);
    descriptor: (Lorg/hibernate/engine/spi/EntityKey;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.engine.spi.EntityKey key
         0: .line 624
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 627
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 1 /* key */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.getEntity:(Lorg/hibernate/engine/spi/EntityKey;)Ljava/lang/Object;
            astore 2 /* result */
        start local 2 // java.lang.Object result
         2: .line 628
            aload 2 /* result */
            ifnonnull 7
         3: .line 629
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getInterceptor:()Lorg/hibernate/Interceptor;
            aload 1 /* key */
            invokevirtual org.hibernate.engine.spi.EntityKey.getEntityName:()Ljava/lang/String;
            aload 1 /* key */
            invokevirtual org.hibernate.engine.spi.EntityKey.getIdentifier:()Ljava/io/Serializable;
            invokeinterface org.hibernate.Interceptor.getEntity:(Ljava/lang/String;Ljava/io/Serializable;)Ljava/lang/Object;
            astore 3 /* newObject */
        start local 3 // java.lang.Object newObject
         4: .line 630
            aload 3 /* newObject */
            ifnull 6
         5: .line 631
            aload 0 /* this */
            aload 3 /* newObject */
            getstatic org.hibernate.LockMode.NONE:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.internal.SessionImpl.lock:(Ljava/lang/Object;Lorg/hibernate/LockMode;)V
         6: .line 633
      StackMap locals: java.lang.Object java.lang.Object
      StackMap stack:
            aload 3 /* newObject */
            areturn
        end local 3 // java.lang.Object newObject
         7: .line 636
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 2 // java.lang.Object result
        end local 1 // org.hibernate.engine.spi.EntityKey key
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lorg/hibernate/internal/SessionImpl;
            0    8     1        key  Lorg/hibernate/engine/spi/EntityKey;
            2    8     2     result  Ljava/lang/Object;
            4    7     3  newObject  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
      Name  Flags
      key   

  private void checkNoUnresolvedActionsBeforeOperation();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 641
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.getCascadeLevel:()I
            ifne 2
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.actionQueue:Lorg/hibernate/engine/spi/ActionQueue;
            invokevirtual org.hibernate.engine.spi.ActionQueue.hasUnresolvedEntityInsertActions:()Z
            ifeq 2
         1: .line 642
            new java.lang.IllegalStateException
            dup
            ldc "There are delayed insert actions before operation as cascade level 0."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 644
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/internal/SessionImpl;

  private void checkNoUnresolvedActionsAfterOperation();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 647
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.getCascadeLevel:()I
            ifne 2
         1: .line 648
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.actionQueue:Lorg/hibernate/engine/spi/ActionQueue;
            invokevirtual org.hibernate.engine.spi.ActionQueue.checkNoUnresolvedActionsAfterOperation:()V
         2: .line 650
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
         3: .line 651
            return
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/hibernate/internal/SessionImpl;

  protected void delayedAfterCompletion();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 655
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getTransactionCoordinator:()Lorg/hibernate/resource/transaction/spi/TransactionCoordinator;
            instanceof org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorImpl
            ifeq 3
         1: .line 656
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getTransactionCoordinator:()Lorg/hibernate/resource/transaction/spi/TransactionCoordinator;
            checkcast org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorImpl
            invokevirtual org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorImpl.getSynchronizationCallbackCoordinator:()Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/SynchronizationCallbackCoordinator;
         2: .line 657
            invokeinterface org.hibernate.resource.transaction.backend.jta.internal.synchronization.SynchronizationCallbackCoordinator.processAnyDelayedAfterCompletion:()V
         3: .line 659
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/hibernate/internal/SessionImpl;

  public void saveOrUpdate(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object object
         0: .line 665
            aload 0 /* this */
            aconst_null
            aload 1 /* object */
            invokevirtual org.hibernate.internal.SessionImpl.saveOrUpdate:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 666
            return
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/hibernate/internal/SessionImpl;
            0    2     1  object  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
        Name  Flags
      object  

  public void saveOrUpdate(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.lang.Object obj
         0: .line 670
            aload 0 /* this */
            new org.hibernate.event.spi.SaveOrUpdateEvent
            dup
            aload 1 /* entityName */
            aload 2 /* obj */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.SaveOrUpdateEvent.<init>:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.fireSaveOrUpdate:(Lorg/hibernate/event/spi/SaveOrUpdateEvent;)V
         1: .line 671
            return
        end local 2 // java.lang.Object obj
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/hibernate/internal/SessionImpl;
            0    2     1  entityName  Ljava/lang/String;
            0    2     2         obj  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      entityName  
      obj         

  private void fireSaveOrUpdate(org.hibernate.event.spi.SaveOrUpdateEvent);
    descriptor: (Lorg/hibernate/event/spi/SaveOrUpdateEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.event.spi.SaveOrUpdateEvent event
         0: .line 674
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 675
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 676
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkNoUnresolvedActionsBeforeOperation:()V
         3: .line 677
            aload 0 /* this */
            getstatic org.hibernate.event.spi.EventType.SAVE_UPDATE:Lorg/hibernate/event/spi/EventType;
            invokevirtual org.hibernate.internal.SessionImpl.listeners:(Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.SaveOrUpdateEvent top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.event.spi.SaveOrUpdateEventListener
            astore 2 /* listener */
        start local 2 // org.hibernate.event.spi.SaveOrUpdateEventListener listener
         5: .line 678
            aload 2 /* listener */
            aload 1 /* event */
            invokeinterface org.hibernate.event.spi.SaveOrUpdateEventListener.onSaveOrUpdate:(Lorg/hibernate/event/spi/SaveOrUpdateEvent;)V
        end local 2 // org.hibernate.event.spi.SaveOrUpdateEventListener listener
         6: .line 677
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 680
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkNoUnresolvedActionsAfterOperation:()V
         8: .line 681
            return
        end local 1 // org.hibernate.event.spi.SaveOrUpdateEvent event
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lorg/hibernate/internal/SessionImpl;
            0    9     1     event  Lorg/hibernate/event/spi/SaveOrUpdateEvent;
            5    6     2  listener  Lorg/hibernate/event/spi/SaveOrUpdateEventListener;
    MethodParameters:
       Name  Flags
      event  

  private <T> java.lang.Iterable<T> listeners(org.hibernate.event.spi.EventType<T>);
    descriptor: (Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.event.spi.EventType type
         0: .line 684
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual org.hibernate.internal.SessionImpl.eventListenerGroup:(Lorg/hibernate/event/spi/EventType;)Lorg/hibernate/event/service/spi/EventListenerGroup;
            invokeinterface org.hibernate.event.service.spi.EventListenerGroup.listeners:()Ljava/lang/Iterable;
            areturn
        end local 1 // org.hibernate.event.spi.EventType type
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  type  Lorg/hibernate/event/spi/EventType<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lorg/hibernate/event/spi/EventType<TT;>;)Ljava/lang/Iterable<TT;>;
    MethodParameters:
      Name  Flags
      type  

  private <T> org.hibernate.event.service.spi.EventListenerGroup<T> eventListenerGroup(org.hibernate.event.spi.EventType<T>);
    descriptor: (Lorg/hibernate/event/spi/EventType;)Lorg/hibernate/event/service/spi/EventListenerGroup;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.event.spi.EventType type
         0: .line 688
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getServiceRegistry:()Lorg/hibernate/service/spi/ServiceRegistryImplementor;
            ldc Lorg/hibernate/event/service/spi/EventListenerRegistry;
            invokeinterface org.hibernate.service.spi.ServiceRegistryImplementor.getService:(Ljava/lang/Class;)Lorg/hibernate/service/Service;
            checkcast org.hibernate.event.service.spi.EventListenerRegistry
            aload 1 /* type */
            invokeinterface org.hibernate.event.service.spi.EventListenerRegistry.getEventListenerGroup:(Lorg/hibernate/event/spi/EventType;)Lorg/hibernate/event/service/spi/EventListenerGroup;
            areturn
        end local 1 // org.hibernate.event.spi.EventType type
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  type  Lorg/hibernate/event/spi/EventType<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lorg/hibernate/event/spi/EventType<TT;>;)Lorg/hibernate/event/service/spi/EventListenerGroup<TT;>;
    MethodParameters:
      Name  Flags
      type  

  public java.io.Serializable save(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/io/Serializable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object obj
         0: .line 696
            aload 0 /* this */
            aconst_null
            aload 1 /* obj */
            invokevirtual org.hibernate.internal.SessionImpl.save:(Ljava/lang/String;Ljava/lang/Object;)Ljava/io/Serializable;
            areturn
        end local 1 // java.lang.Object obj
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/SessionImpl;
            0    1     1   obj  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
      Name  Flags
      obj   

  public java.io.Serializable save(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)Ljava/io/Serializable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.lang.Object object
         0: .line 701
            aload 0 /* this */
            new org.hibernate.event.spi.SaveOrUpdateEvent
            dup
            aload 1 /* entityName */
            aload 2 /* object */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.SaveOrUpdateEvent.<init>:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.fireSave:(Lorg/hibernate/event/spi/SaveOrUpdateEvent;)Ljava/io/Serializable;
            areturn
        end local 2 // java.lang.Object object
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityName  Ljava/lang/String;
            0    1     2      object  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      entityName  
      object      

  private java.io.Serializable fireSave(org.hibernate.event.spi.SaveOrUpdateEvent);
    descriptor: (Lorg/hibernate/event/spi/SaveOrUpdateEvent;)Ljava/io/Serializable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.event.spi.SaveOrUpdateEvent event
         0: .line 705
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 706
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 707
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkNoUnresolvedActionsBeforeOperation:()V
         3: .line 708
            aload 0 /* this */
            getstatic org.hibernate.event.spi.EventType.SAVE:Lorg/hibernate/event/spi/EventType;
            invokevirtual org.hibernate.internal.SessionImpl.listeners:(Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.SaveOrUpdateEvent top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.event.spi.SaveOrUpdateEventListener
            astore 2 /* listener */
        start local 2 // org.hibernate.event.spi.SaveOrUpdateEventListener listener
         5: .line 709
            aload 2 /* listener */
            aload 1 /* event */
            invokeinterface org.hibernate.event.spi.SaveOrUpdateEventListener.onSaveOrUpdate:(Lorg/hibernate/event/spi/SaveOrUpdateEvent;)V
        end local 2 // org.hibernate.event.spi.SaveOrUpdateEventListener listener
         6: .line 708
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 711
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkNoUnresolvedActionsAfterOperation:()V
         8: .line 712
            aload 1 /* event */
            invokevirtual org.hibernate.event.spi.SaveOrUpdateEvent.getResultId:()Ljava/io/Serializable;
            areturn
        end local 1 // org.hibernate.event.spi.SaveOrUpdateEvent event
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lorg/hibernate/internal/SessionImpl;
            0    9     1     event  Lorg/hibernate/event/spi/SaveOrUpdateEvent;
            5    6     2  listener  Lorg/hibernate/event/spi/SaveOrUpdateEventListener;
    MethodParameters:
       Name  Flags
      event  

  public void update(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object obj
         0: .line 720
            aload 0 /* this */
            aconst_null
            aload 1 /* obj */
            invokevirtual org.hibernate.internal.SessionImpl.update:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 721
            return
        end local 1 // java.lang.Object obj
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/internal/SessionImpl;
            0    2     1   obj  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
      Name  Flags
      obj   

  public void update(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.lang.Object object
         0: .line 725
            aload 0 /* this */
            new org.hibernate.event.spi.SaveOrUpdateEvent
            dup
            aload 1 /* entityName */
            aload 2 /* object */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.SaveOrUpdateEvent.<init>:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.fireUpdate:(Lorg/hibernate/event/spi/SaveOrUpdateEvent;)V
         1: .line 726
            return
        end local 2 // java.lang.Object object
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/hibernate/internal/SessionImpl;
            0    2     1  entityName  Ljava/lang/String;
            0    2     2      object  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      entityName  
      object      

  private void fireUpdate(org.hibernate.event.spi.SaveOrUpdateEvent);
    descriptor: (Lorg/hibernate/event/spi/SaveOrUpdateEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.event.spi.SaveOrUpdateEvent event
         0: .line 729
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 730
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 731
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkNoUnresolvedActionsBeforeOperation:()V
         3: .line 732
            aload 0 /* this */
            getstatic org.hibernate.event.spi.EventType.UPDATE:Lorg/hibernate/event/spi/EventType;
            invokevirtual org.hibernate.internal.SessionImpl.listeners:(Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.SaveOrUpdateEvent top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.event.spi.SaveOrUpdateEventListener
            astore 2 /* listener */
        start local 2 // org.hibernate.event.spi.SaveOrUpdateEventListener listener
         5: .line 733
            aload 2 /* listener */
            aload 1 /* event */
            invokeinterface org.hibernate.event.spi.SaveOrUpdateEventListener.onSaveOrUpdate:(Lorg/hibernate/event/spi/SaveOrUpdateEvent;)V
        end local 2 // org.hibernate.event.spi.SaveOrUpdateEventListener listener
         6: .line 732
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 735
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkNoUnresolvedActionsAfterOperation:()V
         8: .line 736
            return
        end local 1 // org.hibernate.event.spi.SaveOrUpdateEvent event
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lorg/hibernate/internal/SessionImpl;
            0    9     1     event  Lorg/hibernate/event/spi/SaveOrUpdateEvent;
            5    6     2  listener  Lorg/hibernate/event/spi/SaveOrUpdateEventListener;
    MethodParameters:
       Name  Flags
      event  

  public void lock(java.lang.String, java.lang.Object, org.hibernate.LockMode);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/LockMode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.lang.Object object
        start local 3 // org.hibernate.LockMode lockMode
         0: .line 743
            aload 0 /* this */
            new org.hibernate.event.spi.LockEvent
            dup
            aload 1 /* entityName */
            aload 2 /* object */
            aload 3 /* lockMode */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.LockEvent.<init>:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/LockMode;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.fireLock:(Lorg/hibernate/event/spi/LockEvent;)V
         1: .line 744
            return
        end local 3 // org.hibernate.LockMode lockMode
        end local 2 // java.lang.Object object
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/hibernate/internal/SessionImpl;
            0    2     1  entityName  Ljava/lang/String;
            0    2     2      object  Ljava/lang/Object;
            0    2     3    lockMode  Lorg/hibernate/LockMode;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      entityName  
      object      
      lockMode    

  public org.hibernate.Session$LockRequest buildLockRequest(org.hibernate.LockOptions);
    descriptor: (Lorg/hibernate/LockOptions;)Lorg/hibernate/Session$LockRequest;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.LockOptions lockOptions
         0: .line 748
            new org.hibernate.internal.SessionImpl$LockRequestImpl
            dup
            aload 0 /* this */
            aload 1 /* lockOptions */
            invokespecial org.hibernate.internal.SessionImpl$LockRequestImpl.<init>:(Lorg/hibernate/internal/SessionImpl;Lorg/hibernate/LockOptions;)V
            areturn
        end local 1 // org.hibernate.LockOptions lockOptions
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  lockOptions  Lorg/hibernate/LockOptions;
    MethodParameters:
             Name  Flags
      lockOptions  

  public void lock(java.lang.Object, org.hibernate.LockMode);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/LockMode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object object
        start local 2 // org.hibernate.LockMode lockMode
         0: .line 753
            aload 0 /* this */
            new org.hibernate.event.spi.LockEvent
            dup
            aload 1 /* object */
            aload 2 /* lockMode */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.LockEvent.<init>:(Ljava/lang/Object;Lorg/hibernate/LockMode;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.fireLock:(Lorg/hibernate/event/spi/LockEvent;)V
         1: .line 754
            return
        end local 2 // org.hibernate.LockMode lockMode
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/hibernate/internal/SessionImpl;
            0    2     1    object  Ljava/lang/Object;
            0    2     2  lockMode  Lorg/hibernate/LockMode;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
          Name  Flags
      object    
      lockMode  

  private void fireLock(java.lang.String, java.lang.Object, org.hibernate.LockOptions);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/LockOptions;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.lang.Object object
        start local 3 // org.hibernate.LockOptions options
         0: .line 757
            aload 0 /* this */
            new org.hibernate.event.spi.LockEvent
            dup
            aload 1 /* entityName */
            aload 2 /* object */
            aload 3 /* options */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.LockEvent.<init>:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/LockOptions;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.fireLock:(Lorg/hibernate/event/spi/LockEvent;)V
         1: .line 758
            return
        end local 3 // org.hibernate.LockOptions options
        end local 2 // java.lang.Object object
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/hibernate/internal/SessionImpl;
            0    2     1  entityName  Ljava/lang/String;
            0    2     2      object  Ljava/lang/Object;
            0    2     3     options  Lorg/hibernate/LockOptions;
    MethodParameters:
            Name  Flags
      entityName  
      object      
      options     

  private void fireLock(java.lang.Object, org.hibernate.LockOptions);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/LockOptions;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object object
        start local 2 // org.hibernate.LockOptions options
         0: .line 761
            aload 0 /* this */
            new org.hibernate.event.spi.LockEvent
            dup
            aload 1 /* object */
            aload 2 /* options */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.LockEvent.<init>:(Ljava/lang/Object;Lorg/hibernate/LockOptions;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.fireLock:(Lorg/hibernate/event/spi/LockEvent;)V
         1: .line 762
            return
        end local 2 // org.hibernate.LockOptions options
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/hibernate/internal/SessionImpl;
            0    2     1   object  Ljava/lang/Object;
            0    2     2  options  Lorg/hibernate/LockOptions;
    MethodParameters:
         Name  Flags
      object   
      options  

  private void fireLock(org.hibernate.event.spi.LockEvent);
    descriptor: (Lorg/hibernate/event/spi/LockEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.event.spi.LockEvent event
         0: .line 765
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 766
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 767
            aload 0 /* this */
            getstatic org.hibernate.event.spi.EventType.LOCK:Lorg/hibernate/event/spi/EventType;
            invokevirtual org.hibernate.internal.SessionImpl.listeners:(Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.LockEvent top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.event.spi.LockEventListener
            astore 2 /* listener */
        start local 2 // org.hibernate.event.spi.LockEventListener listener
         4: .line 768
            aload 2 /* listener */
            aload 1 /* event */
            invokeinterface org.hibernate.event.spi.LockEventListener.onLock:(Lorg/hibernate/event/spi/LockEvent;)V
        end local 2 // org.hibernate.event.spi.LockEventListener listener
         5: .line 767
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 770
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
         7: .line 771
            return
        end local 1 // org.hibernate.event.spi.LockEvent event
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/hibernate/internal/SessionImpl;
            0    8     1     event  Lorg/hibernate/event/spi/LockEvent;
            4    5     2  listener  Lorg/hibernate/event/spi/LockEventListener;
    MethodParameters:
       Name  Flags
      event  

  public void persist(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.lang.Object object
         0: .line 778
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 779
            aload 0 /* this */
            new org.hibernate.event.spi.PersistEvent
            dup
            aload 1 /* entityName */
            aload 2 /* object */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.PersistEvent.<init>:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.firePersist:(Lorg/hibernate/event/spi/PersistEvent;)V
         2: .line 780
            return
        end local 2 // java.lang.Object object
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/hibernate/internal/SessionImpl;
            0    3     1  entityName  Ljava/lang/String;
            0    3     2      object  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      entityName  
      object      

  public void persist(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object object
         0: .line 784
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 785
            aload 0 /* this */
            new org.hibernate.event.spi.PersistEvent
            dup
            aconst_null
            aload 1 /* object */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.PersistEvent.<init>:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.firePersist:(Lorg/hibernate/event/spi/PersistEvent;)V
         2: .line 786
            return
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/hibernate/internal/SessionImpl;
            0    3     1  object  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
        Name  Flags
      object  

  public void persist(java.lang.String, java.lang.Object, java.util.Map);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.lang.Object object
        start local 3 // java.util.Map copiedAlready
         0: .line 790
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 791
            aload 0 /* this */
            aload 3 /* copiedAlready */
            new org.hibernate.event.spi.PersistEvent
            dup
            aload 1 /* entityName */
            aload 2 /* object */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.PersistEvent.<init>:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.firePersist:(Ljava/util/Map;Lorg/hibernate/event/spi/PersistEvent;)V
         2: .line 792
            return
        end local 3 // java.util.Map copiedAlready
        end local 2 // java.lang.Object object
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lorg/hibernate/internal/SessionImpl;
            0    3     1     entityName  Ljava/lang/String;
            0    3     2         object  Ljava/lang/Object;
            0    3     3  copiedAlready  Ljava/util/Map;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
               Name  Flags
      entityName     
      object         
      copiedAlready  

  private void firePersist(org.hibernate.event.spi.PersistEvent);
    descriptor: (Lorg/hibernate/event/spi/PersistEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.event.spi.PersistEvent event
         0: .line 796
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         1: .line 797
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkNoUnresolvedActionsBeforeOperation:()V
         2: .line 799
            aload 0 /* this */
            getstatic org.hibernate.event.spi.EventType.PERSIST:Lorg/hibernate/event/spi/EventType;
            invokevirtual org.hibernate.internal.SessionImpl.listeners:(Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.PersistEvent top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.event.spi.PersistEventListener
            astore 2 /* listener */
        start local 2 // org.hibernate.event.spi.PersistEventListener listener
         4: .line 800
            aload 2 /* listener */
            aload 1 /* event */
            invokeinterface org.hibernate.event.spi.PersistEventListener.onPersist:(Lorg/hibernate/event/spi/PersistEvent;)V
        end local 2 // org.hibernate.event.spi.PersistEventListener listener
         5: .line 799
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 802
            goto 17
         7: .line 803
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.PersistEvent
      StackMap stack: org.hibernate.MappingException
            astore 2 /* e */
        start local 2 // org.hibernate.MappingException e
         8: .line 804
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* e */
            invokevirtual org.hibernate.MappingException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // org.hibernate.MappingException e
         9: .line 806
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 2 /* e */
        start local 2 // java.lang.RuntimeException e
        10: .line 807
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 2 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.RuntimeException e
        11: .line 809
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        12: .line 811
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkNoUnresolvedActionsAfterOperation:()V
        13: .line 812
            goto 16
        14: .line 813
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.PersistEvent top top java.lang.Throwable
      StackMap stack: java.lang.RuntimeException
            astore 5 /* e */
        start local 5 // java.lang.RuntimeException e
        15: .line 814
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 5 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 5 // java.lang.RuntimeException e
        16: .line 816
      StackMap locals:
      StackMap stack:
            aload 4
            athrow
        17: .line 811
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.PersistEvent
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkNoUnresolvedActionsAfterOperation:()V
        18: .line 812
            goto 21
        19: .line 813
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 5 /* e */
        start local 5 // java.lang.RuntimeException e
        20: .line 814
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 5 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 5 // java.lang.RuntimeException e
        21: .line 817
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.hibernate.event.spi.PersistEvent event
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   22     0      this  Lorg/hibernate/internal/SessionImpl;
            0   22     1     event  Lorg/hibernate/event/spi/PersistEvent;
            4    5     2  listener  Lorg/hibernate/event/spi/PersistEventListener;
            8    9     2         e  Lorg/hibernate/MappingException;
           10   11     2         e  Ljava/lang/RuntimeException;
           15   16     5         e  Ljava/lang/RuntimeException;
           20   21     5         e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           0     6       7  Class org.hibernate.MappingException
           0     6       9  Class java.lang.RuntimeException
           0    11      11  any
          12    13      14  Class java.lang.RuntimeException
          17    18      19  Class java.lang.RuntimeException
    MethodParameters:
       Name  Flags
      event  

  private void firePersist(java.util.Map, org.hibernate.event.spi.PersistEvent);
    descriptor: (Ljava/util/Map;Lorg/hibernate/event/spi/PersistEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.util.Map copiedAlready
        start local 2 // org.hibernate.event.spi.PersistEvent event
         0: .line 820
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         1: .line 823
            aload 0 /* this */
            getstatic org.hibernate.event.spi.EventType.PERSIST:Lorg/hibernate/event/spi/EventType;
            invokevirtual org.hibernate.internal.SessionImpl.listeners:(Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: org.hibernate.internal.SessionImpl java.util.Map org.hibernate.event.spi.PersistEvent top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.event.spi.PersistEventListener
            astore 3 /* listener */
        start local 3 // org.hibernate.event.spi.PersistEventListener listener
         3: .line 824
            aload 3 /* listener */
            aload 2 /* event */
            aload 1 /* copiedAlready */
            invokeinterface org.hibernate.event.spi.PersistEventListener.onPersist:(Lorg/hibernate/event/spi/PersistEvent;Ljava/util/Map;)V
        end local 3 // org.hibernate.event.spi.PersistEventListener listener
         4: .line 823
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 826
            goto 13
         6: .line 827
      StackMap locals: org.hibernate.internal.SessionImpl java.util.Map org.hibernate.event.spi.PersistEvent
      StackMap stack: org.hibernate.MappingException
            astore 3 /* e */
        start local 3 // org.hibernate.MappingException e
         7: .line 828
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* e */
            invokevirtual org.hibernate.MappingException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // org.hibernate.MappingException e
         8: .line 830
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 3 /* e */
        start local 3 // java.lang.RuntimeException e
         9: .line 831
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 3 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.RuntimeException e
        10: .line 833
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        11: .line 834
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        12: .line 835
            aload 5
            athrow
        13: .line 834
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        14: .line 836
            return
        end local 2 // org.hibernate.event.spi.PersistEvent event
        end local 1 // java.util.Map copiedAlready
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   15     0           this  Lorg/hibernate/internal/SessionImpl;
            0   15     1  copiedAlready  Ljava/util/Map;
            0   15     2          event  Lorg/hibernate/event/spi/PersistEvent;
            3    4     3       listener  Lorg/hibernate/event/spi/PersistEventListener;
            7    8     3              e  Lorg/hibernate/MappingException;
            9   10     3              e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1     5       6  Class org.hibernate.MappingException
           1     5       8  Class java.lang.RuntimeException
           1    10      10  any
    MethodParameters:
               Name  Flags
      copiedAlready  
      event          

  public void persistOnFlush(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.lang.Object object
         0: .line 843
            aload 0 /* this */
            new org.hibernate.event.spi.PersistEvent
            dup
            aload 1 /* entityName */
            aload 2 /* object */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.PersistEvent.<init>:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.firePersistOnFlush:(Lorg/hibernate/event/spi/PersistEvent;)V
         1: .line 844
            return
        end local 2 // java.lang.Object object
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/hibernate/internal/SessionImpl;
            0    2     1  entityName  Ljava/lang/String;
            0    2     2      object  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      entityName  
      object      

  public void persistOnFlush(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object object
         0: .line 847
            aload 0 /* this */
            aconst_null
            aload 1 /* object */
            invokevirtual org.hibernate.internal.SessionImpl.persist:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 848
            return
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/hibernate/internal/SessionImpl;
            0    2     1  object  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
        Name  Flags
      object  

  public void persistOnFlush(java.lang.String, java.lang.Object, java.util.Map);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.lang.Object object
        start local 3 // java.util.Map copiedAlready
         0: .line 853
            aload 0 /* this */
            aload 3 /* copiedAlready */
            new org.hibernate.event.spi.PersistEvent
            dup
            aload 1 /* entityName */
            aload 2 /* object */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.PersistEvent.<init>:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.firePersistOnFlush:(Ljava/util/Map;Lorg/hibernate/event/spi/PersistEvent;)V
         1: .line 854
            return
        end local 3 // java.util.Map copiedAlready
        end local 2 // java.lang.Object object
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/hibernate/internal/SessionImpl;
            0    2     1     entityName  Ljava/lang/String;
            0    2     2         object  Ljava/lang/Object;
            0    2     3  copiedAlready  Ljava/util/Map;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
               Name  Flags
      entityName     
      object         
      copiedAlready  

  private void firePersistOnFlush(java.util.Map, org.hibernate.event.spi.PersistEvent);
    descriptor: (Ljava/util/Map;Lorg/hibernate/event/spi/PersistEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.util.Map copiedAlready
        start local 2 // org.hibernate.event.spi.PersistEvent event
         0: .line 857
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 858
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 859
            aload 0 /* this */
            getstatic org.hibernate.event.spi.EventType.PERSIST_ONFLUSH:Lorg/hibernate/event/spi/EventType;
            invokevirtual org.hibernate.internal.SessionImpl.listeners:(Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: org.hibernate.internal.SessionImpl java.util.Map org.hibernate.event.spi.PersistEvent top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.event.spi.PersistEventListener
            astore 3 /* listener */
        start local 3 // org.hibernate.event.spi.PersistEventListener listener
         4: .line 860
            aload 3 /* listener */
            aload 2 /* event */
            aload 1 /* copiedAlready */
            invokeinterface org.hibernate.event.spi.PersistEventListener.onPersist:(Lorg/hibernate/event/spi/PersistEvent;Ljava/util/Map;)V
        end local 3 // org.hibernate.event.spi.PersistEventListener listener
         5: .line 859
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 862
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
         7: .line 863
            return
        end local 2 // org.hibernate.event.spi.PersistEvent event
        end local 1 // java.util.Map copiedAlready
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lorg/hibernate/internal/SessionImpl;
            0    8     1  copiedAlready  Ljava/util/Map;
            0    8     2          event  Lorg/hibernate/event/spi/PersistEvent;
            4    5     3       listener  Lorg/hibernate/event/spi/PersistEventListener;
    MethodParameters:
               Name  Flags
      copiedAlready  
      event          

  private void firePersistOnFlush(org.hibernate.event.spi.PersistEvent);
    descriptor: (Lorg/hibernate/event/spi/PersistEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.event.spi.PersistEvent event
         0: .line 866
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 867
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 868
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkNoUnresolvedActionsBeforeOperation:()V
         3: .line 869
            aload 0 /* this */
            getstatic org.hibernate.event.spi.EventType.PERSIST_ONFLUSH:Lorg/hibernate/event/spi/EventType;
            invokevirtual org.hibernate.internal.SessionImpl.listeners:(Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.PersistEvent top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.event.spi.PersistEventListener
            astore 2 /* listener */
        start local 2 // org.hibernate.event.spi.PersistEventListener listener
         5: .line 870
            aload 2 /* listener */
            aload 1 /* event */
            invokeinterface org.hibernate.event.spi.PersistEventListener.onPersist:(Lorg/hibernate/event/spi/PersistEvent;)V
        end local 2 // org.hibernate.event.spi.PersistEventListener listener
         6: .line 869
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 872
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkNoUnresolvedActionsAfterOperation:()V
         8: .line 873
            return
        end local 1 // org.hibernate.event.spi.PersistEvent event
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lorg/hibernate/internal/SessionImpl;
            0    9     1     event  Lorg/hibernate/event/spi/PersistEvent;
            5    6     2  listener  Lorg/hibernate/event/spi/PersistEventListener;
    MethodParameters:
       Name  Flags
      event  

  public java.lang.Object merge(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.lang.Object object
         0: .line 880
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 881
            aload 0 /* this */
            new org.hibernate.event.spi.MergeEvent
            dup
            aload 1 /* entityName */
            aload 2 /* object */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.MergeEvent.<init>:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.fireMerge:(Lorg/hibernate/event/spi/MergeEvent;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object object
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/hibernate/internal/SessionImpl;
            0    2     1  entityName  Ljava/lang/String;
            0    2     2      object  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      entityName  
      object      

  public java.lang.Object merge(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object object
         0: .line 886
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 887
            aload 0 /* this */
            new org.hibernate.event.spi.MergeEvent
            dup
            aconst_null
            aload 1 /* object */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.MergeEvent.<init>:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.fireMerge:(Lorg/hibernate/event/spi/MergeEvent;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/hibernate/internal/SessionImpl;
            0    2     1  object  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
        Name  Flags
      object  

  public void merge(java.lang.String, java.lang.Object, java.util.Map);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.lang.Object object
        start local 3 // java.util.Map copiedAlready
         0: .line 892
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 893
            aload 0 /* this */
            aload 3 /* copiedAlready */
            new org.hibernate.event.spi.MergeEvent
            dup
            aload 1 /* entityName */
            aload 2 /* object */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.MergeEvent.<init>:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.fireMerge:(Ljava/util/Map;Lorg/hibernate/event/spi/MergeEvent;)V
         2: .line 894
            return
        end local 3 // java.util.Map copiedAlready
        end local 2 // java.lang.Object object
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lorg/hibernate/internal/SessionImpl;
            0    3     1     entityName  Ljava/lang/String;
            0    3     2         object  Ljava/lang/Object;
            0    3     3  copiedAlready  Ljava/util/Map;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
               Name  Flags
      entityName     
      object         
      copiedAlready  

  private java.lang.Object fireMerge(org.hibernate.event.spi.MergeEvent);
    descriptor: (Lorg/hibernate/event/spi/MergeEvent;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.event.spi.MergeEvent event
         0: .line 898
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         1: .line 899
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkNoUnresolvedActionsBeforeOperation:()V
         2: .line 900
            aload 0 /* this */
            getstatic org.hibernate.event.spi.EventType.MERGE:Lorg/hibernate/event/spi/EventType;
            invokevirtual org.hibernate.internal.SessionImpl.listeners:(Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.MergeEvent top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.event.spi.MergeEventListener
            astore 2 /* listener */
        start local 2 // org.hibernate.event.spi.MergeEventListener listener
         4: .line 901
            aload 2 /* listener */
            aload 1 /* event */
            invokeinterface org.hibernate.event.spi.MergeEventListener.onMerge:(Lorg/hibernate/event/spi/MergeEvent;)V
        end local 2 // org.hibernate.event.spi.MergeEventListener listener
         5: .line 900
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 903
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkNoUnresolvedActionsAfterOperation:()V
         7: .line 904
            goto 14
         8: .line 905
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.MergeEvent
      StackMap stack: org.hibernate.ObjectDeletedException
            astore 2 /* sse */
        start local 2 // org.hibernate.ObjectDeletedException sse
         9: .line 906
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* sse */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // org.hibernate.ObjectDeletedException sse
        10: .line 908
      StackMap locals:
      StackMap stack: org.hibernate.MappingException
            astore 2 /* e */
        start local 2 // org.hibernate.MappingException e
        11: .line 909
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* e */
            invokevirtual org.hibernate.MappingException.getMessage:()Ljava/lang/String;
            aload 2 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // org.hibernate.MappingException e
        12: .line 911
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 2 /* e */
        start local 2 // java.lang.RuntimeException e
        13: .line 913
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 2 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.RuntimeException e
        14: .line 916
      StackMap locals:
      StackMap stack:
            aload 1 /* event */
            invokevirtual org.hibernate.event.spi.MergeEvent.getResult:()Ljava/lang/Object;
            areturn
        end local 1 // org.hibernate.event.spi.MergeEvent event
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Lorg/hibernate/internal/SessionImpl;
            0   15     1     event  Lorg/hibernate/event/spi/MergeEvent;
            4    5     2  listener  Lorg/hibernate/event/spi/MergeEventListener;
            9   10     2       sse  Lorg/hibernate/ObjectDeletedException;
           11   12     2         e  Lorg/hibernate/MappingException;
           13   14     2         e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           0     7       8  Class org.hibernate.ObjectDeletedException
           0     7      10  Class org.hibernate.MappingException
           0     7      12  Class java.lang.RuntimeException
    MethodParameters:
       Name  Flags
      event  

  private void fireMerge(java.util.Map, org.hibernate.event.spi.MergeEvent);
    descriptor: (Ljava/util/Map;Lorg/hibernate/event/spi/MergeEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.util.Map copiedAlready
        start local 2 // org.hibernate.event.spi.MergeEvent event
         0: .line 921
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         1: .line 922
            aload 0 /* this */
            getstatic org.hibernate.event.spi.EventType.MERGE:Lorg/hibernate/event/spi/EventType;
            invokevirtual org.hibernate.internal.SessionImpl.listeners:(Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: org.hibernate.internal.SessionImpl java.util.Map org.hibernate.event.spi.MergeEvent top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.event.spi.MergeEventListener
            astore 3 /* listener */
        start local 3 // org.hibernate.event.spi.MergeEventListener listener
         3: .line 923
            aload 3 /* listener */
            aload 2 /* event */
            aload 1 /* copiedAlready */
            invokeinterface org.hibernate.event.spi.MergeEventListener.onMerge:(Lorg/hibernate/event/spi/MergeEvent;Ljava/util/Map;)V
        end local 3 // org.hibernate.event.spi.MergeEventListener listener
         4: .line 922
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 925
            goto 15
         6: .line 926
      StackMap locals: org.hibernate.internal.SessionImpl java.util.Map org.hibernate.event.spi.MergeEvent
      StackMap stack: org.hibernate.ObjectDeletedException
            astore 3 /* sse */
        start local 3 // org.hibernate.ObjectDeletedException sse
         7: .line 927
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* sse */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // org.hibernate.ObjectDeletedException sse
         8: .line 929
      StackMap locals:
      StackMap stack: org.hibernate.MappingException
            astore 3 /* e */
        start local 3 // org.hibernate.MappingException e
         9: .line 930
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* e */
            invokevirtual org.hibernate.MappingException.getMessage:()Ljava/lang/String;
            aload 3 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // org.hibernate.MappingException e
        10: .line 932
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 3 /* e */
        start local 3 // java.lang.RuntimeException e
        11: .line 934
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 3 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.RuntimeException e
        12: .line 936
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        13: .line 937
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        14: .line 938
            aload 5
            athrow
        15: .line 937
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        16: .line 939
            return
        end local 2 // org.hibernate.event.spi.MergeEvent event
        end local 1 // java.util.Map copiedAlready
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0           this  Lorg/hibernate/internal/SessionImpl;
            0   17     1  copiedAlready  Ljava/util/Map;
            0   17     2          event  Lorg/hibernate/event/spi/MergeEvent;
            3    4     3       listener  Lorg/hibernate/event/spi/MergeEventListener;
            7    8     3            sse  Lorg/hibernate/ObjectDeletedException;
            9   10     3              e  Lorg/hibernate/MappingException;
           11   12     3              e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           0     5       6  Class org.hibernate.ObjectDeletedException
           0     5       8  Class org.hibernate.MappingException
           0     5      10  Class java.lang.RuntimeException
           0    12      12  any
    MethodParameters:
               Name  Flags
      copiedAlready  
      event          

  public void delete(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object object
         0: .line 946
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 947
            aload 0 /* this */
            new org.hibernate.event.spi.DeleteEvent
            dup
            aload 1 /* object */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.DeleteEvent.<init>:(Ljava/lang/Object;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.fireDelete:(Lorg/hibernate/event/spi/DeleteEvent;)V
         2: .line 948
            return
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/hibernate/internal/SessionImpl;
            0    3     1  object  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
        Name  Flags
      object  

  public void delete(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.lang.Object object
         0: .line 952
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 953
            aload 0 /* this */
            new org.hibernate.event.spi.DeleteEvent
            dup
            aload 1 /* entityName */
            aload 2 /* object */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.DeleteEvent.<init>:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.fireDelete:(Lorg/hibernate/event/spi/DeleteEvent;)V
         2: .line 954
            return
        end local 2 // java.lang.Object object
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/hibernate/internal/SessionImpl;
            0    3     1  entityName  Ljava/lang/String;
            0    3     2      object  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      entityName  
      object      

  public void delete(java.lang.String, java.lang.Object, boolean, java.util.Set);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;ZLjava/util/Set;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.lang.Object object
        start local 3 // boolean isCascadeDeleteEnabled
        start local 4 // java.util.Set transientEntities
         0: .line 959
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 960
            getstatic org.hibernate.internal.SessionImpl.TRACE_ENABLED:Z
            ifeq 3
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.isRemovingOrphanBeforeUpates:()Z
            ifeq 3
         2: .line 961
            aload 0 /* this */
            ldc "before continuing"
            aload 1 /* entityName */
            aload 2 /* object */
            invokevirtual org.hibernate.internal.SessionImpl.logRemoveOrphanBeforeUpdates:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 963
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
         4: .line 964
            new org.hibernate.event.spi.DeleteEvent
            dup
         5: .line 965
            aload 1 /* entityName */
         6: .line 966
            aload 2 /* object */
         7: .line 967
            iload 3 /* isCascadeDeleteEnabled */
         8: .line 968
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.isRemovingOrphanBeforeUpates:()Z
         9: .line 969
            aload 0 /* this */
        10: .line 964
            invokespecial org.hibernate.event.spi.DeleteEvent.<init>:(Ljava/lang/String;Ljava/lang/Object;ZZLorg/hibernate/event/spi/EventSource;)V
        11: .line 971
            aload 4 /* transientEntities */
        12: .line 963
            invokevirtual org.hibernate.internal.SessionImpl.fireDelete:(Lorg/hibernate/event/spi/DeleteEvent;Ljava/util/Set;)V
        13: .line 973
            getstatic org.hibernate.internal.SessionImpl.TRACE_ENABLED:Z
            ifeq 15
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.isRemovingOrphanBeforeUpates:()Z
            ifeq 15
        14: .line 974
            aload 0 /* this */
            ldc "after continuing"
            aload 1 /* entityName */
            aload 2 /* object */
            invokevirtual org.hibernate.internal.SessionImpl.logRemoveOrphanBeforeUpdates:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
        15: .line 976
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.util.Set transientEntities
        end local 3 // boolean isCascadeDeleteEnabled
        end local 2 // java.lang.Object object
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   16     0                    this  Lorg/hibernate/internal/SessionImpl;
            0   16     1              entityName  Ljava/lang/String;
            0   16     2                  object  Ljava/lang/Object;
            0   16     3  isCascadeDeleteEnabled  Z
            0   16     4       transientEntities  Ljava/util/Set;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                        Name  Flags
      entityName              
      object                  
      isCascadeDeleteEnabled  
      transientEntities       

  public void removeOrphanBeforeUpdates(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=4, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.lang.Object child
         0: .line 982
            getstatic org.hibernate.internal.SessionImpl.TRACE_ENABLED:Z
            ifeq 2
         1: .line 983
            aload 0 /* this */
            ldc "begin"
            aload 1 /* entityName */
            aload 2 /* child */
            invokevirtual org.hibernate.internal.SessionImpl.logRemoveOrphanBeforeUpdates:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 985
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.beginRemoveOrphanBeforeUpdates:()V
         3: .line 987
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         4: .line 988
            aload 0 /* this */
            new org.hibernate.event.spi.DeleteEvent
            dup
            aload 1 /* entityName */
            aload 2 /* child */
            iconst_0
            iconst_1
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.DeleteEvent.<init>:(Ljava/lang/String;Ljava/lang/Object;ZZLorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.fireDelete:(Lorg/hibernate/event/spi/DeleteEvent;)V
         5: .line 989
            goto 11
         6: .line 990
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
         7: .line 991
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.endRemoveOrphanBeforeUpdates:()V
         8: .line 992
            getstatic org.hibernate.internal.SessionImpl.TRACE_ENABLED:Z
            ifeq 10
         9: .line 993
            aload 0 /* this */
            ldc "end"
            aload 1 /* entityName */
            aload 2 /* child */
            invokevirtual org.hibernate.internal.SessionImpl.logRemoveOrphanBeforeUpdates:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
        10: .line 995
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 3
            athrow
        11: .line 991
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.endRemoveOrphanBeforeUpdates:()V
        12: .line 992
            getstatic org.hibernate.internal.SessionImpl.TRACE_ENABLED:Z
            ifeq 14
        13: .line 993
            aload 0 /* this */
            ldc "end"
            aload 1 /* entityName */
            aload 2 /* child */
            invokevirtual org.hibernate.internal.SessionImpl.logRemoveOrphanBeforeUpdates:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
        14: .line 996
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object child
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Lorg/hibernate/internal/SessionImpl;
            0   15     1  entityName  Ljava/lang/String;
            0   15     2       child  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           3     6       6  any
    MethodParameters:
            Name  Flags
      entityName  
      child       

  private void logRemoveOrphanBeforeUpdates(java.lang.String, java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String timing
        start local 2 // java.lang.String entityName
        start local 3 // java.lang.Object entity
         0: .line 999
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 3 /* entity */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.getEntry:(Ljava/lang/Object;)Lorg/hibernate/engine/spi/EntityEntry;
            astore 4 /* entityEntry */
        start local 4 // org.hibernate.engine.spi.EntityEntry entityEntry
         1: .line 1000
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
         2: .line 1001
            ldc "%s remove orphan before updates: [%s]"
         3: .line 1002
            aload 1 /* timing */
         4: .line 1003
            aload 4 /* entityEntry */
            ifnonnull 5
            aload 2 /* entityName */
            goto 6
      StackMap locals: org.hibernate.internal.SessionImpl java.lang.String java.lang.String java.lang.Object org.hibernate.engine.spi.EntityEntry
      StackMap stack: org.hibernate.internal.EntityManagerMessageLogger java.lang.String java.lang.String
         5: aload 2 /* entityName */
            aload 4 /* entityEntry */
            invokeinterface org.hibernate.engine.spi.EntityEntry.getId:()Ljava/io/Serializable;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Ljava/lang/String;Ljava/io/Serializable;)Ljava/lang/String;
         6: .line 1000
      StackMap locals: org.hibernate.internal.SessionImpl java.lang.String java.lang.String java.lang.Object org.hibernate.engine.spi.EntityEntry
      StackMap stack: org.hibernate.internal.EntityManagerMessageLogger java.lang.String java.lang.String java.lang.String
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.tracef:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 1005
            return
        end local 4 // org.hibernate.engine.spi.EntityEntry entityEntry
        end local 3 // java.lang.Object entity
        end local 2 // java.lang.String entityName
        end local 1 // java.lang.String timing
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lorg/hibernate/internal/SessionImpl;
            0    8     1       timing  Ljava/lang/String;
            0    8     2   entityName  Ljava/lang/String;
            0    8     3       entity  Ljava/lang/Object;
            1    8     4  entityEntry  Lorg/hibernate/engine/spi/EntityEntry;
    MethodParameters:
            Name  Flags
      timing      
      entityName  
      entity      

  private void fireDelete(org.hibernate.event.spi.DeleteEvent);
    descriptor: (Lorg/hibernate/event/spi/DeleteEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.event.spi.DeleteEvent event
         0: .line 1009
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         1: .line 1010
            aload 0 /* this */
            getstatic org.hibernate.event.spi.EventType.DELETE:Lorg/hibernate/event/spi/EventType;
            invokevirtual org.hibernate.internal.SessionImpl.listeners:(Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.DeleteEvent top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.event.spi.DeleteEventListener
            astore 2 /* listener */
        start local 2 // org.hibernate.event.spi.DeleteEventListener listener
         3: .line 1011
            aload 2 /* listener */
            aload 1 /* event */
            invokeinterface org.hibernate.event.spi.DeleteEventListener.onDelete:(Lorg/hibernate/event/spi/DeleteEvent;)V
        end local 2 // org.hibernate.event.spi.DeleteEventListener listener
         4: .line 1010
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 1013
            goto 15
         6: .line 1014
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.DeleteEvent
      StackMap stack: org.hibernate.ObjectDeletedException
            astore 2 /* sse */
        start local 2 // org.hibernate.ObjectDeletedException sse
         7: .line 1015
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* sse */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // org.hibernate.ObjectDeletedException sse
         8: .line 1017
      StackMap locals:
      StackMap stack: org.hibernate.MappingException
            astore 2 /* e */
        start local 2 // org.hibernate.MappingException e
         9: .line 1018
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* e */
            invokevirtual org.hibernate.MappingException.getMessage:()Ljava/lang/String;
            aload 2 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // org.hibernate.MappingException e
        10: .line 1020
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 2 /* e */
        start local 2 // java.lang.RuntimeException e
        11: .line 1022
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 2 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.RuntimeException e
        12: .line 1024
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        13: .line 1025
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        14: .line 1026
            aload 4
            athrow
        15: .line 1025
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        16: .line 1027
            return
        end local 1 // org.hibernate.event.spi.DeleteEvent event
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0      this  Lorg/hibernate/internal/SessionImpl;
            0   17     1     event  Lorg/hibernate/event/spi/DeleteEvent;
            3    4     2  listener  Lorg/hibernate/event/spi/DeleteEventListener;
            7    8     2       sse  Lorg/hibernate/ObjectDeletedException;
            9   10     2         e  Lorg/hibernate/MappingException;
           11   12     2         e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           0     5       6  Class org.hibernate.ObjectDeletedException
           0     5       8  Class org.hibernate.MappingException
           0     5      10  Class java.lang.RuntimeException
           0    12      12  any
    MethodParameters:
       Name  Flags
      event  

  private void fireDelete(org.hibernate.event.spi.DeleteEvent, java.util.Set);
    descriptor: (Lorg/hibernate/event/spi/DeleteEvent;Ljava/util/Set;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.event.spi.DeleteEvent event
        start local 2 // java.util.Set transientEntities
         0: .line 1031
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         1: .line 1032
            aload 0 /* this */
            getstatic org.hibernate.event.spi.EventType.DELETE:Lorg/hibernate/event/spi/EventType;
            invokevirtual org.hibernate.internal.SessionImpl.listeners:(Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.DeleteEvent java.util.Set top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.event.spi.DeleteEventListener
            astore 3 /* listener */
        start local 3 // org.hibernate.event.spi.DeleteEventListener listener
         3: .line 1033
            aload 3 /* listener */
            aload 1 /* event */
            aload 2 /* transientEntities */
            invokeinterface org.hibernate.event.spi.DeleteEventListener.onDelete:(Lorg/hibernate/event/spi/DeleteEvent;Ljava/util/Set;)V
        end local 3 // org.hibernate.event.spi.DeleteEventListener listener
         4: .line 1032
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 1035
            goto 15
         6: .line 1036
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.DeleteEvent java.util.Set
      StackMap stack: org.hibernate.ObjectDeletedException
            astore 3 /* sse */
        start local 3 // org.hibernate.ObjectDeletedException sse
         7: .line 1037
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* sse */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // org.hibernate.ObjectDeletedException sse
         8: .line 1039
      StackMap locals:
      StackMap stack: org.hibernate.MappingException
            astore 3 /* e */
        start local 3 // org.hibernate.MappingException e
         9: .line 1040
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* e */
            invokevirtual org.hibernate.MappingException.getMessage:()Ljava/lang/String;
            aload 3 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // org.hibernate.MappingException e
        10: .line 1042
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 3 /* e */
        start local 3 // java.lang.RuntimeException e
        11: .line 1044
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 3 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.RuntimeException e
        12: .line 1046
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        13: .line 1047
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        14: .line 1048
            aload 5
            athrow
        15: .line 1047
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        16: .line 1049
            return
        end local 2 // java.util.Set transientEntities
        end local 1 // org.hibernate.event.spi.DeleteEvent event
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   17     0               this  Lorg/hibernate/internal/SessionImpl;
            0   17     1              event  Lorg/hibernate/event/spi/DeleteEvent;
            0   17     2  transientEntities  Ljava/util/Set;
            3    4     3           listener  Lorg/hibernate/event/spi/DeleteEventListener;
            7    8     3                sse  Lorg/hibernate/ObjectDeletedException;
            9   10     3                  e  Lorg/hibernate/MappingException;
           11   12     3                  e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           0     5       6  Class org.hibernate.ObjectDeletedException
           0     5       8  Class org.hibernate.MappingException
           0     5      10  Class java.lang.RuntimeException
           0    12      12  any
    MethodParameters:
                   Name  Flags
      event              
      transientEntities  

  public void load(java.lang.Object, java.io.Serializable);
    descriptor: (Ljava/lang/Object;Ljava/io/Serializable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object object
        start local 2 // java.io.Serializable id
         0: .line 1056
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.loadEvent:Lorg/hibernate/event/spi/LoadEvent;
            astore 3 /* event */
        start local 3 // org.hibernate.event.spi.LoadEvent event
         1: .line 1057
            aload 0 /* this */
            aconst_null
            putfield org.hibernate.internal.SessionImpl.loadEvent:Lorg/hibernate/event/spi/LoadEvent;
         2: .line 1058
            aload 3 /* event */
            ifnonnull 5
         3: .line 1059
            new org.hibernate.event.spi.LoadEvent
            dup
            aload 2 /* id */
            aload 1 /* object */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.LoadEvent.<init>:(Ljava/io/Serializable;Ljava/lang/Object;Lorg/hibernate/event/spi/EventSource;)V
            astore 3 /* event */
         4: .line 1060
            goto 11
         5: .line 1062
      StackMap locals: org.hibernate.event.spi.LoadEvent
      StackMap stack:
            aload 3 /* event */
            aconst_null
            invokevirtual org.hibernate.event.spi.LoadEvent.setEntityClassName:(Ljava/lang/String;)V
         6: .line 1063
            aload 3 /* event */
            aload 2 /* id */
            invokevirtual org.hibernate.event.spi.LoadEvent.setEntityId:(Ljava/io/Serializable;)V
         7: .line 1064
            aload 3 /* event */
            aload 1 /* object */
            invokevirtual org.hibernate.event.spi.LoadEvent.setInstanceToLoad:(Ljava/lang/Object;)V
         8: .line 1065
            aload 3 /* event */
            getstatic org.hibernate.event.spi.LoadEvent.DEFAULT_LOCK_MODE:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.event.spi.LoadEvent.setLockMode:(Lorg/hibernate/LockMode;)V
         9: .line 1066
            aload 3 /* event */
            getstatic org.hibernate.event.spi.LoadEvent.DEFAULT_LOCK_OPTIONS:Lorg/hibernate/LockOptions;
            invokevirtual org.hibernate.LockOptions.getScope:()Z
            invokevirtual org.hibernate.event.spi.LoadEvent.setLockScope:(Z)V
        10: .line 1067
            aload 3 /* event */
            getstatic org.hibernate.event.spi.LoadEvent.DEFAULT_LOCK_OPTIONS:Lorg/hibernate/LockOptions;
            invokevirtual org.hibernate.LockOptions.getTimeOut:()I
            invokevirtual org.hibernate.event.spi.LoadEvent.setLockTimeout:(I)V
        11: .line 1070
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* event */
            getstatic org.hibernate.event.spi.LoadEventListener.RELOAD:Lorg/hibernate/event/spi/LoadEventListener$LoadType;
            invokevirtual org.hibernate.internal.SessionImpl.fireLoad:(Lorg/hibernate/event/spi/LoadEvent;Lorg/hibernate/event/spi/LoadEventListener$LoadType;)V
        12: .line 1072
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.loadEvent:Lorg/hibernate/event/spi/LoadEvent;
            ifnonnull 18
        13: .line 1073
            aload 3 /* event */
            aconst_null
            invokevirtual org.hibernate.event.spi.LoadEvent.setEntityClassName:(Ljava/lang/String;)V
        14: .line 1074
            aload 3 /* event */
            aconst_null
            invokevirtual org.hibernate.event.spi.LoadEvent.setEntityId:(Ljava/io/Serializable;)V
        15: .line 1075
            aload 3 /* event */
            aconst_null
            invokevirtual org.hibernate.event.spi.LoadEvent.setInstanceToLoad:(Ljava/lang/Object;)V
        16: .line 1076
            aload 3 /* event */
            aconst_null
            invokevirtual org.hibernate.event.spi.LoadEvent.setResult:(Ljava/lang/Object;)V
        17: .line 1077
            aload 0 /* this */
            aload 3 /* event */
            putfield org.hibernate.internal.SessionImpl.loadEvent:Lorg/hibernate/event/spi/LoadEvent;
        18: .line 1079
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.hibernate.event.spi.LoadEvent event
        end local 2 // java.io.Serializable id
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   19     0    this  Lorg/hibernate/internal/SessionImpl;
            0   19     1  object  Ljava/lang/Object;
            0   19     2      id  Ljava/io/Serializable;
            1   19     3   event  Lorg/hibernate/event/spi/LoadEvent;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
        Name  Flags
      object  
      id      

  public <T> T load(java.lang.Class<T>, java.io.Serializable);
    descriptor: (Ljava/lang/Class;Ljava/io/Serializable;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Class entityClass
        start local 2 // java.io.Serializable id
         0: .line 1083
            aload 0 /* this */
            aload 1 /* entityClass */
            invokevirtual org.hibernate.internal.SessionImpl.byId:(Ljava/lang/Class;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            aload 2 /* id */
            invokevirtual org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.getReference:(Ljava/io/Serializable;)Ljava/lang/Object;
            areturn
        end local 2 // java.io.Serializable id
        end local 1 // java.lang.Class entityClass
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityClass  Ljava/lang/Class<TT;>;
            0    1     2           id  Ljava/io/Serializable;
    Exceptions:
      throws org.hibernate.HibernateException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Ljava/io/Serializable;)TT;
    MethodParameters:
             Name  Flags
      entityClass  
      id           

  public java.lang.Object load(java.lang.String, java.io.Serializable);
    descriptor: (Ljava/lang/String;Ljava/io/Serializable;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.io.Serializable id
         0: .line 1088
            aload 0 /* this */
            aload 1 /* entityName */
            invokevirtual org.hibernate.internal.SessionImpl.byId:(Ljava/lang/String;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            aload 2 /* id */
            invokevirtual org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.getReference:(Ljava/io/Serializable;)Ljava/lang/Object;
            areturn
        end local 2 // java.io.Serializable id
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityName  Ljava/lang/String;
            0    1     2          id  Ljava/io/Serializable;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      entityName  
      id          

  public <T> T get(java.lang.Class<T>, java.io.Serializable);
    descriptor: (Ljava/lang/Class;Ljava/io/Serializable;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Class entityClass
        start local 2 // java.io.Serializable id
         0: .line 1093
            aload 0 /* this */
            aload 1 /* entityClass */
            invokevirtual org.hibernate.internal.SessionImpl.byId:(Ljava/lang/Class;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            aload 2 /* id */
            invokevirtual org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.load:(Ljava/io/Serializable;)Ljava/lang/Object;
            areturn
        end local 2 // java.io.Serializable id
        end local 1 // java.lang.Class entityClass
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityClass  Ljava/lang/Class<TT;>;
            0    1     2           id  Ljava/io/Serializable;
    Exceptions:
      throws org.hibernate.HibernateException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Ljava/io/Serializable;)TT;
    MethodParameters:
             Name  Flags
      entityClass  
      id           

  public java.lang.Object get(java.lang.String, java.io.Serializable);
    descriptor: (Ljava/lang/String;Ljava/io/Serializable;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.io.Serializable id
         0: .line 1098
            aload 0 /* this */
            aload 1 /* entityName */
            invokevirtual org.hibernate.internal.SessionImpl.byId:(Ljava/lang/String;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            aload 2 /* id */
            invokevirtual org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.load:(Ljava/io/Serializable;)Ljava/lang/Object;
            areturn
        end local 2 // java.io.Serializable id
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityName  Ljava/lang/String;
            0    1     2          id  Ljava/io/Serializable;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      entityName  
      id          

  public java.lang.Object immediateLoad(java.lang.String, java.io.Serializable);
    descriptor: (Ljava/lang/String;Ljava/io/Serializable;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.io.Serializable id
         0: .line 1108
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.isDebugEnabled:()Z
            ifeq 3
         1: .line 1109
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 1 /* entityName */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.entityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            astore 3 /* persister */
        start local 3 // org.hibernate.persister.entity.EntityPersister persister
         2: .line 1110
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            ldc "Initializing proxy: %s"
            aload 3 /* persister */
            aload 2 /* id */
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 3 // org.hibernate.persister.entity.EntityPersister persister
         3: .line 1112
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.loadEvent:Lorg/hibernate/event/spi/LoadEvent;
            astore 3 /* event */
        start local 3 // org.hibernate.event.spi.LoadEvent event
         4: .line 1113
            aload 0 /* this */
            aconst_null
            putfield org.hibernate.internal.SessionImpl.loadEvent:Lorg/hibernate/event/spi/LoadEvent;
         5: .line 1114
            aload 0 /* this */
            aload 3 /* event */
            aload 2 /* id */
            aload 1 /* entityName */
            invokevirtual org.hibernate.internal.SessionImpl.recycleEventInstance:(Lorg/hibernate/event/spi/LoadEvent;Ljava/io/Serializable;Ljava/lang/String;)Lorg/hibernate/event/spi/LoadEvent;
            astore 3 /* event */
         6: .line 1115
            aload 0 /* this */
            aload 3 /* event */
            getstatic org.hibernate.event.spi.LoadEventListener.IMMEDIATE_LOAD:Lorg/hibernate/event/spi/LoadEventListener$LoadType;
            invokevirtual org.hibernate.internal.SessionImpl.fireLoad:(Lorg/hibernate/event/spi/LoadEvent;Lorg/hibernate/event/spi/LoadEventListener$LoadType;)V
         7: .line 1116
            aload 3 /* event */
            invokevirtual org.hibernate.event.spi.LoadEvent.getResult:()Ljava/lang/Object;
            astore 4 /* result */
        start local 4 // java.lang.Object result
         8: .line 1117
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.loadEvent:Lorg/hibernate/event/spi/LoadEvent;
            ifnonnull 14
         9: .line 1118
            aload 3 /* event */
            aconst_null
            invokevirtual org.hibernate.event.spi.LoadEvent.setEntityClassName:(Ljava/lang/String;)V
        10: .line 1119
            aload 3 /* event */
            aconst_null
            invokevirtual org.hibernate.event.spi.LoadEvent.setEntityId:(Ljava/io/Serializable;)V
        11: .line 1120
            aload 3 /* event */
            aconst_null
            invokevirtual org.hibernate.event.spi.LoadEvent.setInstanceToLoad:(Ljava/lang/Object;)V
        12: .line 1121
            aload 3 /* event */
            aconst_null
            invokevirtual org.hibernate.event.spi.LoadEvent.setResult:(Ljava/lang/Object;)V
        13: .line 1122
            aload 0 /* this */
            aload 3 /* event */
            putfield org.hibernate.internal.SessionImpl.loadEvent:Lorg/hibernate/event/spi/LoadEvent;
        14: .line 1124
      StackMap locals: org.hibernate.event.spi.LoadEvent java.lang.Object
      StackMap stack:
            aload 4 /* result */
            areturn
        end local 4 // java.lang.Object result
        end local 3 // org.hibernate.event.spi.LoadEvent event
        end local 2 // java.io.Serializable id
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Lorg/hibernate/internal/SessionImpl;
            0   15     1  entityName  Ljava/lang/String;
            0   15     2          id  Ljava/io/Serializable;
            2    3     3   persister  Lorg/hibernate/persister/entity/EntityPersister;
            4   15     3       event  Lorg/hibernate/event/spi/LoadEvent;
            8   15     4      result  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      entityName  
      id          

  public final java.lang.Object internalLoad(java.lang.String, java.io.Serializable, boolean, boolean);
    descriptor: (Ljava/lang/String;Ljava/io/Serializable;ZZ)Ljava/lang/Object;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=8, args_size=5
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.io.Serializable id
        start local 3 // boolean eager
        start local 4 // boolean nullable
         0: .line 1131
            iload 4 /* nullable */
            ifeq 2
         1: .line 1132
            getstatic org.hibernate.event.spi.LoadEventListener.INTERNAL_LOAD_NULLABLE:Lorg/hibernate/event/spi/LoadEventListener$LoadType;
            goto 5
         2: .line 1133
      StackMap locals:
      StackMap stack:
            iload 3 /* eager */
            ifeq 4
         3: .line 1134
            getstatic org.hibernate.event.spi.LoadEventListener.INTERNAL_LOAD_EAGER:Lorg/hibernate/event/spi/LoadEventListener$LoadType;
            goto 5
         4: .line 1135
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.event.spi.LoadEventListener.INTERNAL_LOAD_LAZY:Lorg/hibernate/event/spi/LoadEventListener$LoadType;
         5: .line 1131
      StackMap locals:
      StackMap stack: org.hibernate.event.spi.LoadEventListener$LoadType
            astore 5 /* type */
        start local 5 // org.hibernate.event.spi.LoadEventListener$LoadType type
         6: .line 1137
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.loadEvent:Lorg/hibernate/event/spi/LoadEvent;
            astore 6 /* event */
        start local 6 // org.hibernate.event.spi.LoadEvent event
         7: .line 1138
            aload 0 /* this */
            aconst_null
            putfield org.hibernate.internal.SessionImpl.loadEvent:Lorg/hibernate/event/spi/LoadEvent;
         8: .line 1139
            aload 0 /* this */
            aload 6 /* event */
            aload 2 /* id */
            aload 1 /* entityName */
            invokevirtual org.hibernate.internal.SessionImpl.recycleEventInstance:(Lorg/hibernate/event/spi/LoadEvent;Ljava/io/Serializable;Ljava/lang/String;)Lorg/hibernate/event/spi/LoadEvent;
            astore 6 /* event */
         9: .line 1140
            aload 0 /* this */
            aload 6 /* event */
            aload 5 /* type */
            invokevirtual org.hibernate.internal.SessionImpl.fireLoad:(Lorg/hibernate/event/spi/LoadEvent;Lorg/hibernate/event/spi/LoadEventListener$LoadType;)V
        10: .line 1141
            aload 6 /* event */
            invokevirtual org.hibernate.event.spi.LoadEvent.getResult:()Ljava/lang/Object;
            astore 7 /* result */
        start local 7 // java.lang.Object result
        11: .line 1142
            iload 4 /* nullable */
            ifne 13
        12: .line 1143
            aload 7 /* result */
            aload 2 /* id */
            aload 1 /* entityName */
            invokestatic org.hibernate.UnresolvableObjectException.throwIfNull:(Ljava/lang/Object;Ljava/io/Serializable;Ljava/lang/String;)V
        13: .line 1145
      StackMap locals: org.hibernate.event.spi.LoadEventListener$LoadType org.hibernate.event.spi.LoadEvent java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.loadEvent:Lorg/hibernate/event/spi/LoadEvent;
            ifnonnull 19
        14: .line 1146
            aload 6 /* event */
            aconst_null
            invokevirtual org.hibernate.event.spi.LoadEvent.setEntityClassName:(Ljava/lang/String;)V
        15: .line 1147
            aload 6 /* event */
            aconst_null
            invokevirtual org.hibernate.event.spi.LoadEvent.setEntityId:(Ljava/io/Serializable;)V
        16: .line 1148
            aload 6 /* event */
            aconst_null
            invokevirtual org.hibernate.event.spi.LoadEvent.setInstanceToLoad:(Ljava/lang/Object;)V
        17: .line 1149
            aload 6 /* event */
            aconst_null
            invokevirtual org.hibernate.event.spi.LoadEvent.setResult:(Ljava/lang/Object;)V
        18: .line 1150
            aload 0 /* this */
            aload 6 /* event */
            putfield org.hibernate.internal.SessionImpl.loadEvent:Lorg/hibernate/event/spi/LoadEvent;
        19: .line 1152
      StackMap locals:
      StackMap stack:
            aload 7 /* result */
            areturn
        end local 7 // java.lang.Object result
        end local 6 // org.hibernate.event.spi.LoadEvent event
        end local 5 // org.hibernate.event.spi.LoadEventListener$LoadType type
        end local 4 // boolean nullable
        end local 3 // boolean eager
        end local 2 // java.io.Serializable id
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Lorg/hibernate/internal/SessionImpl;
            0   20     1  entityName  Ljava/lang/String;
            0   20     2          id  Ljava/io/Serializable;
            0   20     3       eager  Z
            0   20     4    nullable  Z
            6   20     5        type  Lorg/hibernate/event/spi/LoadEventListener$LoadType;
            7   20     6       event  Lorg/hibernate/event/spi/LoadEvent;
           11   20     7      result  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      entityName  
      id          
      eager       
      nullable    

  private org.hibernate.event.spi.LoadEvent recycleEventInstance(org.hibernate.event.spi.LoadEvent, java.io.Serializable, java.lang.String);
    descriptor: (Lorg/hibernate/event/spi/LoadEvent;Ljava/io/Serializable;Ljava/lang/String;)Lorg/hibernate/event/spi/LoadEvent;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.event.spi.LoadEvent event
        start local 2 // java.io.Serializable id
        start local 3 // java.lang.String entityName
         0: .line 1159
            aload 1 /* event */
            ifnonnull 2
         1: .line 1160
            new org.hibernate.event.spi.LoadEvent
            dup
            aload 2 /* id */
            aload 3 /* entityName */
            iconst_1
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.LoadEvent.<init>:(Ljava/io/Serializable;Ljava/lang/String;ZLorg/hibernate/event/spi/EventSource;)V
            areturn
         2: .line 1163
      StackMap locals:
      StackMap stack:
            aload 1 /* event */
            aload 3 /* entityName */
            invokevirtual org.hibernate.event.spi.LoadEvent.setEntityClassName:(Ljava/lang/String;)V
         3: .line 1164
            aload 1 /* event */
            aload 2 /* id */
            invokevirtual org.hibernate.event.spi.LoadEvent.setEntityId:(Ljava/io/Serializable;)V
         4: .line 1165
            aload 1 /* event */
            aconst_null
            invokevirtual org.hibernate.event.spi.LoadEvent.setInstanceToLoad:(Ljava/lang/Object;)V
         5: .line 1166
            aload 1 /* event */
            getstatic org.hibernate.event.spi.LoadEvent.DEFAULT_LOCK_MODE:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.event.spi.LoadEvent.setLockMode:(Lorg/hibernate/LockMode;)V
         6: .line 1167
            aload 1 /* event */
            getstatic org.hibernate.event.spi.LoadEvent.DEFAULT_LOCK_OPTIONS:Lorg/hibernate/LockOptions;
            invokevirtual org.hibernate.LockOptions.getScope:()Z
            invokevirtual org.hibernate.event.spi.LoadEvent.setLockScope:(Z)V
         7: .line 1168
            aload 1 /* event */
            getstatic org.hibernate.event.spi.LoadEvent.DEFAULT_LOCK_OPTIONS:Lorg/hibernate/LockOptions;
            invokevirtual org.hibernate.LockOptions.getTimeOut:()I
            invokevirtual org.hibernate.event.spi.LoadEvent.setLockTimeout:(I)V
         8: .line 1169
            aload 1 /* event */
            areturn
        end local 3 // java.lang.String entityName
        end local 2 // java.io.Serializable id
        end local 1 // org.hibernate.event.spi.LoadEvent event
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lorg/hibernate/internal/SessionImpl;
            0    9     1       event  Lorg/hibernate/event/spi/LoadEvent;
            0    9     2          id  Ljava/io/Serializable;
            0    9     3  entityName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      event       final
      id          final
      entityName  final

  public <T> T load(java.lang.Class<T>, java.io.Serializable, org.hibernate.LockMode);
    descriptor: (Ljava/lang/Class;Ljava/io/Serializable;Lorg/hibernate/LockMode;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Class entityClass
        start local 2 // java.io.Serializable id
        start local 3 // org.hibernate.LockMode lockMode
         0: .line 1175
            aload 0 /* this */
            aload 1 /* entityClass */
            invokevirtual org.hibernate.internal.SessionImpl.byId:(Ljava/lang/Class;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            new org.hibernate.LockOptions
            dup
            aload 3 /* lockMode */
            invokespecial org.hibernate.LockOptions.<init>:(Lorg/hibernate/LockMode;)V
            invokevirtual org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.with:(Lorg/hibernate/LockOptions;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            aload 2 /* id */
            invokevirtual org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.getReference:(Ljava/io/Serializable;)Ljava/lang/Object;
            areturn
        end local 3 // org.hibernate.LockMode lockMode
        end local 2 // java.io.Serializable id
        end local 1 // java.lang.Class entityClass
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityClass  Ljava/lang/Class<TT;>;
            0    1     2           id  Ljava/io/Serializable;
            0    1     3     lockMode  Lorg/hibernate/LockMode;
    Exceptions:
      throws org.hibernate.HibernateException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Ljava/io/Serializable;Lorg/hibernate/LockMode;)TT;
    MethodParameters:
             Name  Flags
      entityClass  
      id           
      lockMode     

  public <T> T load(java.lang.Class<T>, java.io.Serializable, org.hibernate.LockOptions);
    descriptor: (Ljava/lang/Class;Ljava/io/Serializable;Lorg/hibernate/LockOptions;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Class entityClass
        start local 2 // java.io.Serializable id
        start local 3 // org.hibernate.LockOptions lockOptions
         0: .line 1180
            aload 0 /* this */
            aload 1 /* entityClass */
            invokevirtual org.hibernate.internal.SessionImpl.byId:(Ljava/lang/Class;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            aload 3 /* lockOptions */
            invokevirtual org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.with:(Lorg/hibernate/LockOptions;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            aload 2 /* id */
            invokevirtual org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.getReference:(Ljava/io/Serializable;)Ljava/lang/Object;
            areturn
        end local 3 // org.hibernate.LockOptions lockOptions
        end local 2 // java.io.Serializable id
        end local 1 // java.lang.Class entityClass
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityClass  Ljava/lang/Class<TT;>;
            0    1     2           id  Ljava/io/Serializable;
            0    1     3  lockOptions  Lorg/hibernate/LockOptions;
    Exceptions:
      throws org.hibernate.HibernateException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Ljava/io/Serializable;Lorg/hibernate/LockOptions;)TT;
    MethodParameters:
             Name  Flags
      entityClass  
      id           
      lockOptions  

  public java.lang.Object load(java.lang.String, java.io.Serializable, org.hibernate.LockMode);
    descriptor: (Ljava/lang/String;Ljava/io/Serializable;Lorg/hibernate/LockMode;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.io.Serializable id
        start local 3 // org.hibernate.LockMode lockMode
         0: .line 1185
            aload 0 /* this */
            aload 1 /* entityName */
            invokevirtual org.hibernate.internal.SessionImpl.byId:(Ljava/lang/String;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            new org.hibernate.LockOptions
            dup
            aload 3 /* lockMode */
            invokespecial org.hibernate.LockOptions.<init>:(Lorg/hibernate/LockMode;)V
            invokevirtual org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.with:(Lorg/hibernate/LockOptions;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            aload 2 /* id */
            invokevirtual org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.getReference:(Ljava/io/Serializable;)Ljava/lang/Object;
            areturn
        end local 3 // org.hibernate.LockMode lockMode
        end local 2 // java.io.Serializable id
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityName  Ljava/lang/String;
            0    1     2          id  Ljava/io/Serializable;
            0    1     3    lockMode  Lorg/hibernate/LockMode;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      entityName  
      id          
      lockMode    

  public java.lang.Object load(java.lang.String, java.io.Serializable, org.hibernate.LockOptions);
    descriptor: (Ljava/lang/String;Ljava/io/Serializable;Lorg/hibernate/LockOptions;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.io.Serializable id
        start local 3 // org.hibernate.LockOptions lockOptions
         0: .line 1190
            aload 0 /* this */
            aload 1 /* entityName */
            invokevirtual org.hibernate.internal.SessionImpl.byId:(Ljava/lang/String;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            aload 3 /* lockOptions */
            invokevirtual org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.with:(Lorg/hibernate/LockOptions;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            aload 2 /* id */
            invokevirtual org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.getReference:(Ljava/io/Serializable;)Ljava/lang/Object;
            areturn
        end local 3 // org.hibernate.LockOptions lockOptions
        end local 2 // java.io.Serializable id
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/hibernate/internal/SessionImpl;
            0    1     1   entityName  Ljava/lang/String;
            0    1     2           id  Ljava/io/Serializable;
            0    1     3  lockOptions  Lorg/hibernate/LockOptions;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
             Name  Flags
      entityName   
      id           
      lockOptions  

  public <T> T get(java.lang.Class<T>, java.io.Serializable, org.hibernate.LockMode);
    descriptor: (Ljava/lang/Class;Ljava/io/Serializable;Lorg/hibernate/LockMode;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Class entityClass
        start local 2 // java.io.Serializable id
        start local 3 // org.hibernate.LockMode lockMode
         0: .line 1195
            aload 0 /* this */
            aload 1 /* entityClass */
            invokevirtual org.hibernate.internal.SessionImpl.byId:(Ljava/lang/Class;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            new org.hibernate.LockOptions
            dup
            aload 3 /* lockMode */
            invokespecial org.hibernate.LockOptions.<init>:(Lorg/hibernate/LockMode;)V
            invokevirtual org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.with:(Lorg/hibernate/LockOptions;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            aload 2 /* id */
            invokevirtual org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.load:(Ljava/io/Serializable;)Ljava/lang/Object;
            areturn
        end local 3 // org.hibernate.LockMode lockMode
        end local 2 // java.io.Serializable id
        end local 1 // java.lang.Class entityClass
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityClass  Ljava/lang/Class<TT;>;
            0    1     2           id  Ljava/io/Serializable;
            0    1     3     lockMode  Lorg/hibernate/LockMode;
    Exceptions:
      throws org.hibernate.HibernateException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Ljava/io/Serializable;Lorg/hibernate/LockMode;)TT;
    MethodParameters:
             Name  Flags
      entityClass  
      id           
      lockMode     

  public <T> T get(java.lang.Class<T>, java.io.Serializable, org.hibernate.LockOptions);
    descriptor: (Ljava/lang/Class;Ljava/io/Serializable;Lorg/hibernate/LockOptions;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Class entityClass
        start local 2 // java.io.Serializable id
        start local 3 // org.hibernate.LockOptions lockOptions
         0: .line 1200
            aload 0 /* this */
            aload 1 /* entityClass */
            invokevirtual org.hibernate.internal.SessionImpl.byId:(Ljava/lang/Class;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            aload 3 /* lockOptions */
            invokevirtual org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.with:(Lorg/hibernate/LockOptions;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            aload 2 /* id */
            invokevirtual org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.load:(Ljava/io/Serializable;)Ljava/lang/Object;
            areturn
        end local 3 // org.hibernate.LockOptions lockOptions
        end local 2 // java.io.Serializable id
        end local 1 // java.lang.Class entityClass
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityClass  Ljava/lang/Class<TT;>;
            0    1     2           id  Ljava/io/Serializable;
            0    1     3  lockOptions  Lorg/hibernate/LockOptions;
    Exceptions:
      throws org.hibernate.HibernateException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Ljava/io/Serializable;Lorg/hibernate/LockOptions;)TT;
    MethodParameters:
             Name  Flags
      entityClass  
      id           
      lockOptions  

  public java.lang.Object get(java.lang.String, java.io.Serializable, org.hibernate.LockMode);
    descriptor: (Ljava/lang/String;Ljava/io/Serializable;Lorg/hibernate/LockMode;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.io.Serializable id
        start local 3 // org.hibernate.LockMode lockMode
         0: .line 1205
            aload 0 /* this */
            aload 1 /* entityName */
            invokevirtual org.hibernate.internal.SessionImpl.byId:(Ljava/lang/String;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            new org.hibernate.LockOptions
            dup
            aload 3 /* lockMode */
            invokespecial org.hibernate.LockOptions.<init>:(Lorg/hibernate/LockMode;)V
            invokevirtual org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.with:(Lorg/hibernate/LockOptions;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            aload 2 /* id */
            invokevirtual org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.load:(Ljava/io/Serializable;)Ljava/lang/Object;
            areturn
        end local 3 // org.hibernate.LockMode lockMode
        end local 2 // java.io.Serializable id
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityName  Ljava/lang/String;
            0    1     2          id  Ljava/io/Serializable;
            0    1     3    lockMode  Lorg/hibernate/LockMode;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      entityName  
      id          
      lockMode    

  public java.lang.Object get(java.lang.String, java.io.Serializable, org.hibernate.LockOptions);
    descriptor: (Ljava/lang/String;Ljava/io/Serializable;Lorg/hibernate/LockOptions;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.io.Serializable id
        start local 3 // org.hibernate.LockOptions lockOptions
         0: .line 1210
            aload 0 /* this */
            aload 1 /* entityName */
            invokevirtual org.hibernate.internal.SessionImpl.byId:(Ljava/lang/String;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            aload 3 /* lockOptions */
            invokevirtual org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.with:(Lorg/hibernate/LockOptions;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            aload 2 /* id */
            invokevirtual org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.load:(Ljava/io/Serializable;)Ljava/lang/Object;
            areturn
        end local 3 // org.hibernate.LockOptions lockOptions
        end local 2 // java.io.Serializable id
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/hibernate/internal/SessionImpl;
            0    1     1   entityName  Ljava/lang/String;
            0    1     2           id  Ljava/io/Serializable;
            0    1     3  lockOptions  Lorg/hibernate/LockOptions;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
             Name  Flags
      entityName   
      id           
      lockOptions  

  public org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl byId(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
         0: .line 1215
            new org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl
            dup
            aload 0 /* this */
            aload 1 /* entityName */
            invokespecial org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.<init>:(Lorg/hibernate/internal/SessionImpl;Ljava/lang/String;)V
            areturn
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      entityName  

  public <T> org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl<T> byId(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Class entityClass
         0: .line 1220
            new org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl
            dup
            aload 0 /* this */
            aload 1 /* entityClass */
            invokespecial org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.<init>:(Lorg/hibernate/internal/SessionImpl;Ljava/lang/Class;)V
            areturn
        end local 1 // java.lang.Class entityClass
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityClass  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl<TT;>;
    MethodParameters:
             Name  Flags
      entityClass  

  public <T> org.hibernate.MultiIdentifierLoadAccess<T> byMultipleIds(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lorg/hibernate/MultiIdentifierLoadAccess;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Class entityClass
         0: .line 1225
            new org.hibernate.internal.SessionImpl$MultiIdentifierLoadAccessImpl
            dup
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* entityClass */
            invokevirtual org.hibernate.internal.SessionImpl.locateEntityPersister:(Ljava/lang/Class;)Lorg/hibernate/persister/entity/EntityPersister;
            invokespecial org.hibernate.internal.SessionImpl$MultiIdentifierLoadAccessImpl.<init>:(Lorg/hibernate/internal/SessionImpl;Lorg/hibernate/persister/entity/EntityPersister;)V
            areturn
        end local 1 // java.lang.Class entityClass
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityClass  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Lorg/hibernate/MultiIdentifierLoadAccess<TT;>;
    MethodParameters:
             Name  Flags
      entityClass  

  public org.hibernate.MultiIdentifierLoadAccess byMultipleIds(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/MultiIdentifierLoadAccess;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
         0: .line 1230
            new org.hibernate.internal.SessionImpl$MultiIdentifierLoadAccessImpl
            dup
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* entityName */
            invokevirtual org.hibernate.internal.SessionImpl.locateEntityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            invokespecial org.hibernate.internal.SessionImpl$MultiIdentifierLoadAccessImpl.<init>:(Lorg/hibernate/internal/SessionImpl;Lorg/hibernate/persister/entity/EntityPersister;)V
            areturn
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      entityName  

  public org.hibernate.NaturalIdLoadAccess byNaturalId(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/NaturalIdLoadAccess;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
         0: .line 1235
            new org.hibernate.internal.SessionImpl$NaturalIdLoadAccessImpl
            dup
            aload 0 /* this */
            aload 1 /* entityName */
            invokespecial org.hibernate.internal.SessionImpl$NaturalIdLoadAccessImpl.<init>:(Lorg/hibernate/internal/SessionImpl;Ljava/lang/String;)V
            areturn
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      entityName  

  public <T> org.hibernate.NaturalIdLoadAccess<T> byNaturalId(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lorg/hibernate/NaturalIdLoadAccess;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Class entityClass
         0: .line 1240
            new org.hibernate.internal.SessionImpl$NaturalIdLoadAccessImpl
            dup
            aload 0 /* this */
            aload 1 /* entityClass */
            invokespecial org.hibernate.internal.SessionImpl$NaturalIdLoadAccessImpl.<init>:(Lorg/hibernate/internal/SessionImpl;Ljava/lang/Class;)V
            areturn
        end local 1 // java.lang.Class entityClass
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityClass  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Lorg/hibernate/NaturalIdLoadAccess<TT;>;
    MethodParameters:
             Name  Flags
      entityClass  

  public org.hibernate.SimpleNaturalIdLoadAccess bySimpleNaturalId(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/SimpleNaturalIdLoadAccess;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
         0: .line 1245
            new org.hibernate.internal.SessionImpl$SimpleNaturalIdLoadAccessImpl
            dup
            aload 0 /* this */
            aload 1 /* entityName */
            invokespecial org.hibernate.internal.SessionImpl$SimpleNaturalIdLoadAccessImpl.<init>:(Lorg/hibernate/internal/SessionImpl;Ljava/lang/String;)V
            areturn
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      entityName  

  public <T> org.hibernate.SimpleNaturalIdLoadAccess<T> bySimpleNaturalId(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lorg/hibernate/SimpleNaturalIdLoadAccess;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Class entityClass
         0: .line 1250
            new org.hibernate.internal.SessionImpl$SimpleNaturalIdLoadAccessImpl
            dup
            aload 0 /* this */
            aload 1 /* entityClass */
            invokespecial org.hibernate.internal.SessionImpl$SimpleNaturalIdLoadAccessImpl.<init>:(Lorg/hibernate/internal/SessionImpl;Ljava/lang/Class;)V
            areturn
        end local 1 // java.lang.Class entityClass
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityClass  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Lorg/hibernate/SimpleNaturalIdLoadAccess<TT;>;
    MethodParameters:
             Name  Flags
      entityClass  

  private void fireLoad(org.hibernate.event.spi.LoadEvent, org.hibernate.event.spi.LoadEventListener$LoadType);
    descriptor: (Lorg/hibernate/event/spi/LoadEvent;Lorg/hibernate/event/spi/LoadEventListener$LoadType;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.event.spi.LoadEvent event
        start local 2 // org.hibernate.event.spi.LoadEventListener$LoadType loadType
         0: .line 1254
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 1255
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 1256
            aload 0 /* this */
            getstatic org.hibernate.event.spi.EventType.LOAD:Lorg/hibernate/event/spi/EventType;
            invokevirtual org.hibernate.internal.SessionImpl.listeners:(Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.LoadEvent org.hibernate.event.spi.LoadEventListener$LoadType top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.event.spi.LoadEventListener
            astore 3 /* listener */
        start local 3 // org.hibernate.event.spi.LoadEventListener listener
         4: .line 1257
            aload 3 /* listener */
            aload 1 /* event */
            aload 2 /* loadType */
            invokeinterface org.hibernate.event.spi.LoadEventListener.onLoad:(Lorg/hibernate/event/spi/LoadEvent;Lorg/hibernate/event/spi/LoadEventListener$LoadType;)V
        end local 3 // org.hibernate.event.spi.LoadEventListener listener
         5: .line 1256
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 1259
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
         7: .line 1260
            return
        end local 2 // org.hibernate.event.spi.LoadEventListener$LoadType loadType
        end local 1 // org.hibernate.event.spi.LoadEvent event
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/hibernate/internal/SessionImpl;
            0    8     1     event  Lorg/hibernate/event/spi/LoadEvent;
            0    8     2  loadType  Lorg/hibernate/event/spi/LoadEventListener$LoadType;
            4    5     3  listener  Lorg/hibernate/event/spi/LoadEventListener;
    MethodParameters:
          Name  Flags
      event     
      loadType  

  private void fireResolveNaturalId(org.hibernate.event.spi.ResolveNaturalIdEvent);
    descriptor: (Lorg/hibernate/event/spi/ResolveNaturalIdEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.event.spi.ResolveNaturalIdEvent event
         0: .line 1263
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 1264
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 1265
            aload 0 /* this */
            getstatic org.hibernate.event.spi.EventType.RESOLVE_NATURAL_ID:Lorg/hibernate/event/spi/EventType;
            invokevirtual org.hibernate.internal.SessionImpl.listeners:(Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.ResolveNaturalIdEvent top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.event.spi.ResolveNaturalIdEventListener
            astore 2 /* listener */
        start local 2 // org.hibernate.event.spi.ResolveNaturalIdEventListener listener
         4: .line 1266
            aload 2 /* listener */
            aload 1 /* event */
            invokeinterface org.hibernate.event.spi.ResolveNaturalIdEventListener.onResolveNaturalId:(Lorg/hibernate/event/spi/ResolveNaturalIdEvent;)V
        end local 2 // org.hibernate.event.spi.ResolveNaturalIdEventListener listener
         5: .line 1265
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 1268
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
         7: .line 1269
            return
        end local 1 // org.hibernate.event.spi.ResolveNaturalIdEvent event
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/hibernate/internal/SessionImpl;
            0    8     1     event  Lorg/hibernate/event/spi/ResolveNaturalIdEvent;
            4    5     2  listener  Lorg/hibernate/event/spi/ResolveNaturalIdEventListener;
    MethodParameters:
       Name  Flags
      event  

  public void refresh(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object object
         0: .line 1276
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 1277
            aload 0 /* this */
            new org.hibernate.event.spi.RefreshEvent
            dup
            aconst_null
            aload 1 /* object */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.RefreshEvent.<init>:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.fireRefresh:(Lorg/hibernate/event/spi/RefreshEvent;)V
         2: .line 1278
            return
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/hibernate/internal/SessionImpl;
            0    3     1  object  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
        Name  Flags
      object  

  public void refresh(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.lang.Object object
         0: .line 1282
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 1283
            aload 0 /* this */
            new org.hibernate.event.spi.RefreshEvent
            dup
            aload 1 /* entityName */
            aload 2 /* object */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.RefreshEvent.<init>:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.fireRefresh:(Lorg/hibernate/event/spi/RefreshEvent;)V
         2: .line 1284
            return
        end local 2 // java.lang.Object object
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/hibernate/internal/SessionImpl;
            0    3     1  entityName  Ljava/lang/String;
            0    3     2      object  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      entityName  
      object      

  public void refresh(java.lang.Object, org.hibernate.LockMode);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/LockMode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object object
        start local 2 // org.hibernate.LockMode lockMode
         0: .line 1288
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 1289
            aload 0 /* this */
            new org.hibernate.event.spi.RefreshEvent
            dup
            aload 1 /* object */
            aload 2 /* lockMode */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.RefreshEvent.<init>:(Ljava/lang/Object;Lorg/hibernate/LockMode;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.fireRefresh:(Lorg/hibernate/event/spi/RefreshEvent;)V
         2: .line 1290
            return
        end local 2 // org.hibernate.LockMode lockMode
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/hibernate/internal/SessionImpl;
            0    3     1    object  Ljava/lang/Object;
            0    3     2  lockMode  Lorg/hibernate/LockMode;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
          Name  Flags
      object    
      lockMode  

  public void refresh(java.lang.Object, org.hibernate.LockOptions);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/LockOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object object
        start local 2 // org.hibernate.LockOptions lockOptions
         0: .line 1294
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 1295
            aload 0 /* this */
            aconst_null
            aload 1 /* object */
            aload 2 /* lockOptions */
            invokevirtual org.hibernate.internal.SessionImpl.refresh:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/LockOptions;)V
         2: .line 1296
            return
        end local 2 // org.hibernate.LockOptions lockOptions
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lorg/hibernate/internal/SessionImpl;
            0    3     1       object  Ljava/lang/Object;
            0    3     2  lockOptions  Lorg/hibernate/LockOptions;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
             Name  Flags
      object       
      lockOptions  

  public void refresh(java.lang.String, java.lang.Object, org.hibernate.LockOptions);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/LockOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.lang.Object object
        start local 3 // org.hibernate.LockOptions lockOptions
         0: .line 1300
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 1301
            aload 0 /* this */
            new org.hibernate.event.spi.RefreshEvent
            dup
            aload 1 /* entityName */
            aload 2 /* object */
            aload 3 /* lockOptions */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.RefreshEvent.<init>:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/LockOptions;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.fireRefresh:(Lorg/hibernate/event/spi/RefreshEvent;)V
         2: .line 1302
            return
        end local 3 // org.hibernate.LockOptions lockOptions
        end local 2 // java.lang.Object object
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lorg/hibernate/internal/SessionImpl;
            0    3     1   entityName  Ljava/lang/String;
            0    3     2       object  Ljava/lang/Object;
            0    3     3  lockOptions  Lorg/hibernate/LockOptions;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
             Name  Flags
      entityName   
      object       
      lockOptions  

  public void refresh(java.lang.String, java.lang.Object, java.util.Map);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.lang.Object object
        start local 3 // java.util.Map refreshedAlready
         0: .line 1306
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 1307
            aload 0 /* this */
            aload 3 /* refreshedAlready */
            new org.hibernate.event.spi.RefreshEvent
            dup
            aload 1 /* entityName */
            aload 2 /* object */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.RefreshEvent.<init>:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.fireRefresh:(Ljava/util/Map;Lorg/hibernate/event/spi/RefreshEvent;)V
         2: .line 1308
            return
        end local 3 // java.util.Map refreshedAlready
        end local 2 // java.lang.Object object
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lorg/hibernate/internal/SessionImpl;
            0    3     1        entityName  Ljava/lang/String;
            0    3     2            object  Ljava/lang/Object;
            0    3     3  refreshedAlready  Ljava/util/Map;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                  Name  Flags
      entityName        
      object            
      refreshedAlready  

  private void fireRefresh(org.hibernate.event.spi.RefreshEvent);
    descriptor: (Lorg/hibernate/event/spi/RefreshEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.event.spi.RefreshEvent event
         0: .line 1312
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getSessionFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isAllowRefreshDetachedEntity:()Z
            ifne 6
         1: .line 1313
            aload 1 /* event */
            invokevirtual org.hibernate.event.spi.RefreshEvent.getEntityName:()Ljava/lang/String;
            ifnull 4
         2: .line 1314
            aload 0 /* this */
            aload 1 /* event */
            invokevirtual org.hibernate.event.spi.RefreshEvent.getEntityName:()Ljava/lang/String;
            aload 1 /* event */
            invokevirtual org.hibernate.event.spi.RefreshEvent.getObject:()Ljava/lang/Object;
            invokevirtual org.hibernate.internal.SessionImpl.contains:(Ljava/lang/String;Ljava/lang/Object;)Z
            ifne 6
         3: .line 1315
            new java.lang.IllegalArgumentException
            dup
            ldc "Entity not managed"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1319
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* event */
            invokevirtual org.hibernate.event.spi.RefreshEvent.getObject:()Ljava/lang/Object;
            invokevirtual org.hibernate.internal.SessionImpl.contains:(Ljava/lang/Object;)Z
            ifne 6
         5: .line 1320
            new java.lang.IllegalArgumentException
            dup
            ldc "Entity not managed"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1324
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         7: .line 1325
            aload 0 /* this */
            getstatic org.hibernate.event.spi.EventType.REFRESH:Lorg/hibernate/event/spi/EventType;
            invokevirtual org.hibernate.internal.SessionImpl.listeners:(Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 10
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.RefreshEvent top java.util.Iterator
      StackMap stack:
         8: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.event.spi.RefreshEventListener
            astore 2 /* listener */
        start local 2 // org.hibernate.event.spi.RefreshEventListener listener
         9: .line 1326
            aload 2 /* listener */
            aload 1 /* event */
            invokeinterface org.hibernate.event.spi.RefreshEventListener.onRefresh:(Lorg/hibernate/event/spi/RefreshEvent;)V
        end local 2 // org.hibernate.event.spi.RefreshEventListener listener
        10: .line 1325
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        11: .line 1328
            goto 20
        12: .line 1329
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.RefreshEvent
      StackMap stack: java.lang.RuntimeException
            astore 2 /* e */
        start local 2 // java.lang.RuntimeException e
        13: .line 1330
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getSessionFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isJpaBootstrap:()Z
            ifne 16
        14: .line 1331
            aload 2 /* e */
            instanceof org.hibernate.HibernateException
            ifeq 16
        15: .line 1332
            aload 2 /* e */
            athrow
        16: .line 1336
      StackMap locals: java.lang.RuntimeException
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 2 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.RuntimeException e
        17: .line 1338
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.RefreshEvent
      StackMap stack: java.lang.Throwable
            astore 4
        18: .line 1339
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        19: .line 1340
            aload 4
            athrow
        20: .line 1339
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        21: .line 1341
            return
        end local 1 // org.hibernate.event.spi.RefreshEvent event
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   22     0      this  Lorg/hibernate/internal/SessionImpl;
            0   22     1     event  Lorg/hibernate/event/spi/RefreshEvent;
            9   10     2  listener  Lorg/hibernate/event/spi/RefreshEventListener;
           13   17     2         e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           0    11      12  Class java.lang.RuntimeException
           0    17      17  any
    MethodParameters:
       Name  Flags
      event  

  private void fireRefresh(java.util.Map, org.hibernate.event.spi.RefreshEvent);
    descriptor: (Ljava/util/Map;Lorg/hibernate/event/spi/RefreshEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.util.Map refreshedAlready
        start local 2 // org.hibernate.event.spi.RefreshEvent event
         0: .line 1345
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         1: .line 1346
            aload 0 /* this */
            getstatic org.hibernate.event.spi.EventType.REFRESH:Lorg/hibernate/event/spi/EventType;
            invokevirtual org.hibernate.internal.SessionImpl.listeners:(Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: org.hibernate.internal.SessionImpl java.util.Map org.hibernate.event.spi.RefreshEvent top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.event.spi.RefreshEventListener
            astore 3 /* listener */
        start local 3 // org.hibernate.event.spi.RefreshEventListener listener
         3: .line 1347
            aload 3 /* listener */
            aload 2 /* event */
            aload 1 /* refreshedAlready */
            invokeinterface org.hibernate.event.spi.RefreshEventListener.onRefresh:(Lorg/hibernate/event/spi/RefreshEvent;Ljava/util/Map;)V
        end local 3 // org.hibernate.event.spi.RefreshEventListener listener
         4: .line 1346
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 1349
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
         6: .line 1350
            goto 12
         7: .line 1351
      StackMap locals: org.hibernate.internal.SessionImpl java.util.Map org.hibernate.event.spi.RefreshEvent
      StackMap stack: java.lang.RuntimeException
            astore 3 /* e */
        start local 3 // java.lang.RuntimeException e
         8: .line 1352
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 3 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.RuntimeException e
         9: .line 1354
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        10: .line 1355
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        11: .line 1356
            aload 5
            athrow
        12: .line 1355
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        13: .line 1357
            return
        end local 2 // org.hibernate.event.spi.RefreshEvent event
        end local 1 // java.util.Map refreshedAlready
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   14     0              this  Lorg/hibernate/internal/SessionImpl;
            0   14     1  refreshedAlready  Ljava/util/Map;
            0   14     2             event  Lorg/hibernate/event/spi/RefreshEvent;
            3    4     3          listener  Lorg/hibernate/event/spi/RefreshEventListener;
            8    9     3                 e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           0     6       7  Class java.lang.RuntimeException
           0     9       9  any
    MethodParameters:
                  Name  Flags
      refreshedAlready  
      event             

  public void replicate(java.lang.Object, org.hibernate.ReplicationMode);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/ReplicationMode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object obj
        start local 2 // org.hibernate.ReplicationMode replicationMode
         0: .line 1364
            aload 0 /* this */
            new org.hibernate.event.spi.ReplicateEvent
            dup
            aload 1 /* obj */
            aload 2 /* replicationMode */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.ReplicateEvent.<init>:(Ljava/lang/Object;Lorg/hibernate/ReplicationMode;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.fireReplicate:(Lorg/hibernate/event/spi/ReplicateEvent;)V
         1: .line 1365
            return
        end local 2 // org.hibernate.ReplicationMode replicationMode
        end local 1 // java.lang.Object obj
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/hibernate/internal/SessionImpl;
            0    2     1              obj  Ljava/lang/Object;
            0    2     2  replicationMode  Lorg/hibernate/ReplicationMode;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                 Name  Flags
      obj              
      replicationMode  

  public void replicate(java.lang.String, java.lang.Object, org.hibernate.ReplicationMode);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/ReplicationMode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.lang.Object obj
        start local 3 // org.hibernate.ReplicationMode replicationMode
         0: .line 1370
            aload 0 /* this */
            new org.hibernate.event.spi.ReplicateEvent
            dup
            aload 1 /* entityName */
            aload 2 /* obj */
            aload 3 /* replicationMode */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.ReplicateEvent.<init>:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/ReplicationMode;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.fireReplicate:(Lorg/hibernate/event/spi/ReplicateEvent;)V
         1: .line 1371
            return
        end local 3 // org.hibernate.ReplicationMode replicationMode
        end local 2 // java.lang.Object obj
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/hibernate/internal/SessionImpl;
            0    2     1       entityName  Ljava/lang/String;
            0    2     2              obj  Ljava/lang/Object;
            0    2     3  replicationMode  Lorg/hibernate/ReplicationMode;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                 Name  Flags
      entityName       
      obj              
      replicationMode  

  private void fireReplicate(org.hibernate.event.spi.ReplicateEvent);
    descriptor: (Lorg/hibernate/event/spi/ReplicateEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.event.spi.ReplicateEvent event
         0: .line 1374
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 1375
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 1376
            aload 0 /* this */
            getstatic org.hibernate.event.spi.EventType.REPLICATE:Lorg/hibernate/event/spi/EventType;
            invokevirtual org.hibernate.internal.SessionImpl.listeners:(Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.ReplicateEvent top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.event.spi.ReplicateEventListener
            astore 2 /* listener */
        start local 2 // org.hibernate.event.spi.ReplicateEventListener listener
         4: .line 1377
            aload 2 /* listener */
            aload 1 /* event */
            invokeinterface org.hibernate.event.spi.ReplicateEventListener.onReplicate:(Lorg/hibernate/event/spi/ReplicateEvent;)V
        end local 2 // org.hibernate.event.spi.ReplicateEventListener listener
         5: .line 1376
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 1379
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
         7: .line 1380
            return
        end local 1 // org.hibernate.event.spi.ReplicateEvent event
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/hibernate/internal/SessionImpl;
            0    8     1     event  Lorg/hibernate/event/spi/ReplicateEvent;
            4    5     2  listener  Lorg/hibernate/event/spi/ReplicateEventListener;
    MethodParameters:
       Name  Flags
      event  

  public void evict(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object object
         0: .line 1391
            aload 0 /* this */
            new org.hibernate.event.spi.EvictEvent
            dup
            aload 1 /* object */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.EvictEvent.<init>:(Ljava/lang/Object;Lorg/hibernate/event/spi/EventSource;)V
            invokevirtual org.hibernate.internal.SessionImpl.fireEvict:(Lorg/hibernate/event/spi/EvictEvent;)V
         1: .line 1392
            return
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/hibernate/internal/SessionImpl;
            0    2     1  object  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
        Name  Flags
      object  

  private void fireEvict(org.hibernate.event.spi.EvictEvent);
    descriptor: (Lorg/hibernate/event/spi/EvictEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.event.spi.EvictEvent event
         0: .line 1395
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 1396
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 1397
            aload 0 /* this */
            getstatic org.hibernate.event.spi.EventType.EVICT:Lorg/hibernate/event/spi/EventType;
            invokevirtual org.hibernate.internal.SessionImpl.listeners:(Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.EvictEvent top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.event.spi.EvictEventListener
            astore 2 /* listener */
        start local 2 // org.hibernate.event.spi.EvictEventListener listener
         4: .line 1398
            aload 2 /* listener */
            aload 1 /* event */
            invokeinterface org.hibernate.event.spi.EvictEventListener.onEvict:(Lorg/hibernate/event/spi/EvictEvent;)V
        end local 2 // org.hibernate.event.spi.EvictEventListener listener
         5: .line 1397
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 1400
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
         7: .line 1401
            return
        end local 1 // org.hibernate.event.spi.EvictEvent event
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/hibernate/internal/SessionImpl;
            0    8     1     event  Lorg/hibernate/event/spi/EvictEvent;
            4    5     2  listener  Lorg/hibernate/event/spi/EvictEventListener;
    MethodParameters:
       Name  Flags
      event  

  protected boolean autoFlushIfRequired(java.util.Set);
    descriptor: (Ljava/util/Set;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.util.Set querySpaces
         0: .line 1408
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 1409
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.isTransactionInProgress:()Z
            ifne 3
         2: .line 1411
            iconst_0
            ireturn
         3: .line 1413
      StackMap locals:
      StackMap stack:
            new org.hibernate.event.spi.AutoFlushEvent
            dup
            aload 1 /* querySpaces */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.AutoFlushEvent.<init>:(Ljava/util/Set;Lorg/hibernate/event/spi/EventSource;)V
            astore 2 /* event */
        start local 2 // org.hibernate.event.spi.AutoFlushEvent event
         4: .line 1414
            aload 0 /* this */
            getstatic org.hibernate.event.spi.EventType.AUTO_FLUSH:Lorg/hibernate/event/spi/EventType;
            invokevirtual org.hibernate.internal.SessionImpl.listeners:(Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: org.hibernate.internal.SessionImpl java.util.Set org.hibernate.event.spi.AutoFlushEvent top java.util.Iterator
      StackMap stack:
         5: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.event.spi.AutoFlushEventListener
            astore 3 /* listener */
        start local 3 // org.hibernate.event.spi.AutoFlushEventListener listener
         6: .line 1415
            aload 3 /* listener */
            aload 2 /* event */
            invokeinterface org.hibernate.event.spi.AutoFlushEventListener.onAutoFlush:(Lorg/hibernate/event/spi/AutoFlushEvent;)V
        end local 3 // org.hibernate.event.spi.AutoFlushEventListener listener
         7: .line 1414
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 1417
            aload 2 /* event */
            invokevirtual org.hibernate.event.spi.AutoFlushEvent.isFlushRequired:()Z
            ireturn
        end local 2 // org.hibernate.event.spi.AutoFlushEvent event
        end local 1 // java.util.Set querySpaces
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lorg/hibernate/internal/SessionImpl;
            0    9     1  querySpaces  Ljava/util/Set;
            4    9     2        event  Lorg/hibernate/event/spi/AutoFlushEvent;
            6    7     3     listener  Lorg/hibernate/event/spi/AutoFlushEventListener;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
             Name  Flags
      querySpaces  

  public boolean isDirty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 1422
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 1423
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 1424
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            ldc "Checking session dirtiness"
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.debug:(Ljava/lang/Object;)V
         3: .line 1425
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.actionQueue:Lorg/hibernate/engine/spi/ActionQueue;
            invokevirtual org.hibernate.engine.spi.ActionQueue.areInsertionsOrDeletionsQueued:()Z
            ifeq 6
         4: .line 1426
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            ldc "Session dirty (scheduled updates and insertions)"
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.debug:(Ljava/lang/Object;)V
         5: .line 1427
            iconst_1
            ireturn
         6: .line 1429
      StackMap locals:
      StackMap stack:
            new org.hibernate.event.spi.DirtyCheckEvent
            dup
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.DirtyCheckEvent.<init>:(Lorg/hibernate/event/spi/EventSource;)V
            astore 1 /* event */
        start local 1 // org.hibernate.event.spi.DirtyCheckEvent event
         7: .line 1430
            aload 0 /* this */
            getstatic org.hibernate.event.spi.EventType.DIRTY_CHECK:Lorg/hibernate/event/spi/EventType;
            invokevirtual org.hibernate.internal.SessionImpl.listeners:(Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 10
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.DirtyCheckEvent top java.util.Iterator
      StackMap stack:
         8: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.event.spi.DirtyCheckEventListener
            astore 2 /* listener */
        start local 2 // org.hibernate.event.spi.DirtyCheckEventListener listener
         9: .line 1431
            aload 2 /* listener */
            aload 1 /* event */
            invokeinterface org.hibernate.event.spi.DirtyCheckEventListener.onDirtyCheck:(Lorg/hibernate/event/spi/DirtyCheckEvent;)V
        end local 2 // org.hibernate.event.spi.DirtyCheckEventListener listener
        10: .line 1430
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        11: .line 1433
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        12: .line 1434
            aload 1 /* event */
            invokevirtual org.hibernate.event.spi.DirtyCheckEvent.isDirty:()Z
            ireturn
        end local 1 // org.hibernate.event.spi.DirtyCheckEvent event
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lorg/hibernate/internal/SessionImpl;
            7   13     1     event  Lorg/hibernate/event/spi/DirtyCheckEvent;
            9   10     2  listener  Lorg/hibernate/event/spi/DirtyCheckEventListener;
    Exceptions:
      throws org.hibernate.HibernateException

  public void flush();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 1439
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 1440
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.doFlush:()V
         2: .line 1441
            return
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/internal/SessionImpl;
    Exceptions:
      throws org.hibernate.HibernateException

  private void doFlush();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 1444
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionNeeded:()V
         1: .line 1445
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 1448
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.getCascadeLevel:()I
            ifle 4
         3: .line 1449
            new org.hibernate.HibernateException
            dup
            ldc "Flush during cascade is dangerous"
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1452
      StackMap locals:
      StackMap stack:
            new org.hibernate.event.spi.FlushEvent
            dup
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.FlushEvent.<init>:(Lorg/hibernate/event/spi/EventSource;)V
            astore 1 /* flushEvent */
        start local 1 // org.hibernate.event.spi.FlushEvent flushEvent
         5: .line 1453
            aload 0 /* this */
            getstatic org.hibernate.event.spi.EventType.FLUSH:Lorg/hibernate/event/spi/EventType;
            invokevirtual org.hibernate.internal.SessionImpl.listeners:(Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 8
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.event.spi.FlushEvent top java.util.Iterator
      StackMap stack:
         6: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.event.spi.FlushEventListener
            astore 2 /* listener */
        start local 2 // org.hibernate.event.spi.FlushEventListener listener
         7: .line 1454
            aload 2 /* listener */
            aload 1 /* flushEvent */
            invokeinterface org.hibernate.event.spi.FlushEventListener.onFlush:(Lorg/hibernate/event/spi/FlushEvent;)V
        end local 2 // org.hibernate.event.spi.FlushEventListener listener
         8: .line 1453
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 1457
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        end local 1 // org.hibernate.event.spi.FlushEvent flushEvent
        10: .line 1458
            goto 13
        11: .line 1459
      StackMap locals: org.hibernate.internal.SessionImpl
      StackMap stack: java.lang.RuntimeException
            astore 1 /* e */
        start local 1 // java.lang.RuntimeException e
        12: .line 1460
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 1 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.RuntimeException e
        13: .line 1462
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Lorg/hibernate/internal/SessionImpl;
            5   10     1  flushEvent  Lorg/hibernate/event/spi/FlushEvent;
            7    8     2    listener  Lorg/hibernate/event/spi/FlushEventListener;
           12   13     1           e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           2    10      11  Class java.lang.RuntimeException

  public void setFlushMode(javax.persistence.FlushModeType);
    descriptor: (Ljavax/persistence/FlushModeType;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // javax.persistence.FlushModeType flushModeType
         0: .line 1466
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 1467
            aload 0 /* this */
            aload 1 /* flushModeType */
            invokestatic org.hibernate.jpa.internal.util.FlushModeTypeHelper.getFlushMode:(Ljavax/persistence/FlushModeType;)Lorg/hibernate/FlushMode;
            invokevirtual org.hibernate.internal.SessionImpl.setHibernateFlushMode:(Lorg/hibernate/FlushMode;)V
         2: .line 1468
            return
        end local 1 // javax.persistence.FlushModeType flushModeType
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lorg/hibernate/internal/SessionImpl;
            0    3     1  flushModeType  Ljavax/persistence/FlushModeType;
    MethodParameters:
               Name  Flags
      flushModeType  

  public void forceFlush(org.hibernate.engine.spi.EntityEntry);
    descriptor: (Lorg/hibernate/engine/spi/EntityEntry;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.engine.spi.EntityEntry entityEntry
         0: .line 1472
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.isDebugEnabled:()Z
            ifeq 5
         1: .line 1473
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
         2: .line 1474
            ldc "Flushing to force deletion of re-saved object: %s"
         3: .line 1475
            aload 1 /* entityEntry */
            invokeinterface org.hibernate.engine.spi.EntityEntry.getPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            aload 1 /* entityEntry */
            invokeinterface org.hibernate.engine.spi.EntityEntry.getId:()Ljava/io/Serializable;
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
         4: .line 1473
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
         5: .line 1479
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.getCascadeLevel:()I
            ifle 11
         6: .line 1480
            new org.hibernate.ObjectDeletedException
            dup
         7: .line 1481
            ldc "deleted object would be re-saved by cascade (remove deleted object from associations)"
         8: .line 1482
            aload 1 /* entityEntry */
            invokeinterface org.hibernate.engine.spi.EntityEntry.getId:()Ljava/io/Serializable;
         9: .line 1483
            aload 1 /* entityEntry */
            invokeinterface org.hibernate.engine.spi.EntityEntry.getPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            invokeinterface org.hibernate.persister.entity.EntityPersister.getEntityName:()Ljava/lang/String;
        10: .line 1480
            invokespecial org.hibernate.ObjectDeletedException.<init>:(Ljava/lang/String;Ljava/io/Serializable;Ljava/lang/String;)V
            athrow
        11: .line 1486
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
        12: .line 1487
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.doFlush:()V
        13: .line 1488
            return
        end local 1 // org.hibernate.engine.spi.EntityEntry entityEntry
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Lorg/hibernate/internal/SessionImpl;
            0   14     1  entityEntry  Lorg/hibernate/engine/spi/EntityEntry;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
             Name  Flags
      entityEntry  

  public java.util.List list(java.lang.String, org.hibernate.engine.spi.QueryParameters);
    descriptor: (Ljava/lang/String;Lorg/hibernate/engine/spi/QueryParameters;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String query
        start local 2 // org.hibernate.engine.spi.QueryParameters queryParameters
         0: .line 1492
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 1493
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 1494
            aload 2 /* queryParameters */
            invokevirtual org.hibernate.engine.spi.QueryParameters.validateParameters:()V
         3: .line 1496
            aload 2 /* queryParameters */
            invokevirtual org.hibernate.engine.spi.QueryParameters.getQueryPlan:()Lorg/hibernate/engine/query/spi/HQLQueryPlan;
            astore 3 /* plan */
        start local 3 // org.hibernate.engine.query.spi.HQLQueryPlan plan
         4: .line 1497
            aload 3 /* plan */
            ifnonnull 6
         5: .line 1498
            aload 0 /* this */
            aload 1 /* query */
            iconst_0
            invokevirtual org.hibernate.internal.SessionImpl.getQueryPlan:(Ljava/lang/String;Z)Lorg/hibernate/engine/query/spi/HQLQueryPlan;
            astore 3 /* plan */
         6: .line 1501
      StackMap locals: org.hibernate.engine.query.spi.HQLQueryPlan
      StackMap stack:
            aload 0 /* this */
            aload 3 /* plan */
            invokevirtual org.hibernate.engine.query.spi.HQLQueryPlan.getQuerySpaces:()Ljava/util/Set;
            invokevirtual org.hibernate.internal.SessionImpl.autoFlushIfRequired:(Ljava/util/Set;)Z
            pop
         7: .line 1503
            getstatic java.util.Collections.EMPTY_LIST:Ljava/util/List;
            astore 4 /* results */
        start local 4 // java.util.List results
         8: .line 1504
            iconst_0
            istore 5 /* success */
        start local 5 // boolean success
         9: .line 1506
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            iadd
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
        10: .line 1508
            aload 3 /* plan */
            aload 2 /* queryParameters */
            aload 0 /* this */
            invokevirtual org.hibernate.engine.query.spi.HQLQueryPlan.performList:(Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/util/List;
            astore 4 /* results */
        11: .line 1509
            iconst_1
            istore 5 /* success */
        12: .line 1510
            goto 18
        13: .line 1511
      StackMap locals: org.hibernate.internal.SessionImpl java.lang.String org.hibernate.engine.spi.QueryParameters org.hibernate.engine.query.spi.HQLQueryPlan java.util.List int
      StackMap stack: java.lang.Throwable
            astore 6
        14: .line 1512
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            isub
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
        15: .line 1513
            aload 0 /* this */
            iload 5 /* success */
            invokevirtual org.hibernate.internal.SessionImpl.afterOperation:(Z)V
        16: .line 1514
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        17: .line 1515
            aload 6
            athrow
        18: .line 1512
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            isub
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
        19: .line 1513
            aload 0 /* this */
            iload 5 /* success */
            invokevirtual org.hibernate.internal.SessionImpl.afterOperation:(Z)V
        20: .line 1514
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        21: .line 1516
            aload 4 /* results */
            areturn
        end local 5 // boolean success
        end local 4 // java.util.List results
        end local 3 // org.hibernate.engine.query.spi.HQLQueryPlan plan
        end local 2 // org.hibernate.engine.spi.QueryParameters queryParameters
        end local 1 // java.lang.String query
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   22     0             this  Lorg/hibernate/internal/SessionImpl;
            0   22     1            query  Ljava/lang/String;
            0   22     2  queryParameters  Lorg/hibernate/engine/spi/QueryParameters;
            4   22     3             plan  Lorg/hibernate/engine/query/spi/HQLQueryPlan;
            8   22     4          results  Ljava/util/List;
            9   22     5          success  Z
      Exception table:
        from    to  target  type
          10    13      13  any
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                 Name  Flags
      query            
      queryParameters  

  public int executeUpdate(java.lang.String, org.hibernate.engine.spi.QueryParameters);
    descriptor: (Ljava/lang/String;Lorg/hibernate/engine/spi/QueryParameters;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String query
        start local 2 // org.hibernate.engine.spi.QueryParameters queryParameters
         0: .line 1521
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 1522
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 1523
            aload 2 /* queryParameters */
            invokevirtual org.hibernate.engine.spi.QueryParameters.validateParameters:()V
         3: .line 1524
            aload 0 /* this */
            aload 1 /* query */
            iconst_0
            invokevirtual org.hibernate.internal.SessionImpl.getQueryPlan:(Ljava/lang/String;Z)Lorg/hibernate/engine/query/spi/HQLQueryPlan;
            astore 3 /* plan */
        start local 3 // org.hibernate.engine.query.spi.HQLQueryPlan plan
         4: .line 1525
            aload 0 /* this */
            aload 3 /* plan */
            invokevirtual org.hibernate.engine.query.spi.HQLQueryPlan.getQuerySpaces:()Ljava/util/Set;
            invokevirtual org.hibernate.internal.SessionImpl.autoFlushIfRequired:(Ljava/util/Set;)Z
            pop
         5: .line 1527
            aload 0 /* this */
            aload 3 /* plan */
            invokevirtual org.hibernate.internal.SessionImpl.verifyImmutableEntityUpdate:(Lorg/hibernate/engine/query/spi/HQLQueryPlan;)V
         6: .line 1529
            iconst_0
            istore 4 /* success */
        start local 4 // boolean success
         7: .line 1530
            iconst_0
            istore 5 /* result */
        start local 5 // int result
         8: .line 1532
            aload 3 /* plan */
            aload 2 /* queryParameters */
            aload 0 /* this */
            invokevirtual org.hibernate.engine.query.spi.HQLQueryPlan.performExecuteUpdate:(Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)I
            istore 5 /* result */
         9: .line 1533
            iconst_1
            istore 4 /* success */
        10: .line 1534
            goto 15
        11: .line 1535
      StackMap locals: org.hibernate.internal.SessionImpl java.lang.String org.hibernate.engine.spi.QueryParameters org.hibernate.engine.query.spi.HQLQueryPlan int int
      StackMap stack: java.lang.Throwable
            astore 6
        12: .line 1536
            aload 0 /* this */
            iload 4 /* success */
            invokevirtual org.hibernate.internal.SessionImpl.afterOperation:(Z)V
        13: .line 1537
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        14: .line 1538
            aload 6
            athrow
        15: .line 1536
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* success */
            invokevirtual org.hibernate.internal.SessionImpl.afterOperation:(Z)V
        16: .line 1537
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        17: .line 1539
            iload 5 /* result */
            ireturn
        end local 5 // int result
        end local 4 // boolean success
        end local 3 // org.hibernate.engine.query.spi.HQLQueryPlan plan
        end local 2 // org.hibernate.engine.spi.QueryParameters queryParameters
        end local 1 // java.lang.String query
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   18     0             this  Lorg/hibernate/internal/SessionImpl;
            0   18     1            query  Ljava/lang/String;
            0   18     2  queryParameters  Lorg/hibernate/engine/spi/QueryParameters;
            4   18     3             plan  Lorg/hibernate/engine/query/spi/HQLQueryPlan;
            7   18     4          success  Z
            8   18     5           result  I
      Exception table:
        from    to  target  type
           8    11      11  any
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                 Name  Flags
      query            
      queryParameters  

  private void verifyImmutableEntityUpdate(org.hibernate.engine.query.spi.HQLQueryPlan);
    descriptor: (Lorg/hibernate/engine/query/spi/HQLQueryPlan;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.engine.query.spi.HQLQueryPlan plan
         0: .line 1543
            aload 1 /* plan */
            invokevirtual org.hibernate.engine.query.spi.HQLQueryPlan.isUpdate:()Z
            ifeq 24
         1: .line 1544
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getSessionFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.entityPersisters:()Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 23
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.engine.query.spi.HQLQueryPlan top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.persister.entity.EntityPersister
            astore 2 /* entityPersister */
        start local 2 // org.hibernate.persister.entity.EntityPersister entityPersister
         3: .line 1545
            aload 2 /* entityPersister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.isMutable:()Z
            ifne 23
         4: .line 1546
            new java.util.ArrayList
            dup
         5: .line 1547
            aload 2 /* entityPersister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getQuerySpaces:()[Ljava/io/Serializable;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
         6: .line 1546
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 4 /* entityQuerySpaces */
        start local 4 // java.util.List entityQuerySpaces
         7: .line 1549
            aload 4 /* entityQuerySpaces */
            aload 1 /* plan */
            invokevirtual org.hibernate.engine.query.spi.HQLQueryPlan.getQuerySpaces:()Ljava/util/Set;
            invokeinterface java.util.List.retainAll:(Ljava/util/Collection;)Z
            pop
         8: .line 1551
            aload 4 /* entityQuerySpaces */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 23
         9: .line 1552
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getSessionFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
        10: .line 1553
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
        11: .line 1554
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.getImmutableEntityUpdateQueryHandlingMode:()Lorg/hibernate/query/ImmutableEntityUpdateQueryHandlingMode;
        12: .line 1552
            astore 5 /* immutableEntityUpdateQueryHandlingMode */
        start local 5 // org.hibernate.query.ImmutableEntityUpdateQueryHandlingMode immutableEntityUpdateQueryHandlingMode
        13: .line 1556
            aload 4 /* entityQuerySpaces */
            invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
            invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
            astore 6 /* querySpaces */
        start local 6 // java.lang.String querySpaces
        14: .line 1558
            invokestatic org.hibernate.internal.SessionImpl.$SWITCH_TABLE$org$hibernate$query$ImmutableEntityUpdateQueryHandlingMode:()[I
            aload 5 /* immutableEntityUpdateQueryHandlingMode */
            invokevirtual org.hibernate.query.ImmutableEntityUpdateQueryHandlingMode.ordinal:()I
            iaload
            tableswitch { // 1 - 2
                    1: 15
                    2: 17
              default: 20
          }
        15: .line 1560
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.engine.query.spi.HQLQueryPlan org.hibernate.persister.entity.EntityPersister java.util.Iterator java.util.List org.hibernate.query.ImmutableEntityUpdateQueryHandlingMode java.lang.String
      StackMap stack:
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            aload 1 /* plan */
            invokevirtual org.hibernate.engine.query.spi.HQLQueryPlan.getSourceQuery:()Ljava/lang/String;
            aload 6 /* querySpaces */
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.immutableEntityUpdateQuery:(Ljava/lang/String;Ljava/lang/String;)V
        16: .line 1561
            goto 23
        17: .line 1563
      StackMap locals:
      StackMap stack:
            new org.hibernate.HibernateException
            dup
        18: .line 1564
            new java.lang.StringBuilder
            dup
            ldc "The query: ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* plan */
            invokevirtual org.hibernate.engine.query.spi.HQLQueryPlan.getSourceQuery:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "] attempts to update an immutable entity: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* querySpaces */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 1563
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 1567
      StackMap locals:
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
        21: .line 1568
            new java.lang.StringBuilder
            dup
            ldc "The "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* immutableEntityUpdateQueryHandlingMode */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is not supported!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        22: .line 1567
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.String querySpaces
        end local 5 // org.hibernate.query.ImmutableEntityUpdateQueryHandlingMode immutableEntityUpdateQueryHandlingMode
        end local 4 // java.util.List entityQuerySpaces
        end local 2 // org.hibernate.persister.entity.EntityPersister entityPersister
        23: .line 1544
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.engine.query.spi.HQLQueryPlan top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        24: .line 1576
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.engine.query.spi.HQLQueryPlan
      StackMap stack:
            return
        end local 1 // org.hibernate.engine.query.spi.HQLQueryPlan plan
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot                                    Name  Signature
            0   25     0                                    this  Lorg/hibernate/internal/SessionImpl;
            0   25     1                                    plan  Lorg/hibernate/engine/query/spi/HQLQueryPlan;
            3   23     2                         entityPersister  Lorg/hibernate/persister/entity/EntityPersister;
            7   23     4                       entityQuerySpaces  Ljava/util/List<Ljava/io/Serializable;>;
           13   23     5  immutableEntityUpdateQueryHandlingMode  Lorg/hibernate/query/ImmutableEntityUpdateQueryHandlingMode;
           14   23     6                             querySpaces  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      plan  

  public int executeNativeUpdate(org.hibernate.engine.query.spi.sql.NativeSQLQuerySpecification, org.hibernate.engine.spi.QueryParameters);
    descriptor: (Lorg/hibernate/engine/query/spi/sql/NativeSQLQuerySpecification;Lorg/hibernate/engine/spi/QueryParameters;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.engine.query.spi.sql.NativeSQLQuerySpecification nativeQuerySpecification
        start local 2 // org.hibernate.engine.spi.QueryParameters queryParameters
         0: .line 1582
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 1583
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 1584
            aload 2 /* queryParameters */
            invokevirtual org.hibernate.engine.spi.QueryParameters.validateParameters:()V
         3: .line 1585
            aload 0 /* this */
            aload 1 /* nativeQuerySpecification */
            invokevirtual org.hibernate.internal.SessionImpl.getNativeQueryPlan:(Lorg/hibernate/engine/query/spi/sql/NativeSQLQuerySpecification;)Lorg/hibernate/engine/query/spi/NativeSQLQueryPlan;
            astore 3 /* plan */
        start local 3 // org.hibernate.engine.query.spi.NativeSQLQueryPlan plan
         4: .line 1588
            aload 0 /* this */
            aload 3 /* plan */
            invokevirtual org.hibernate.engine.query.spi.NativeSQLQueryPlan.getCustomQuery:()Lorg/hibernate/loader/custom/CustomQuery;
            invokeinterface org.hibernate.loader.custom.CustomQuery.getQuerySpaces:()Ljava/util/Set;
            invokevirtual org.hibernate.internal.SessionImpl.autoFlushIfRequired:(Ljava/util/Set;)Z
            pop
         5: .line 1590
            iconst_0
            istore 4 /* success */
        start local 4 // boolean success
         6: .line 1591
            iconst_0
            istore 5 /* result */
        start local 5 // int result
         7: .line 1593
            aload 3 /* plan */
            aload 2 /* queryParameters */
            aload 0 /* this */
            invokevirtual org.hibernate.engine.query.spi.NativeSQLQueryPlan.performExecuteUpdate:(Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)I
            istore 5 /* result */
         8: .line 1594
            iconst_1
            istore 4 /* success */
         9: .line 1595
            goto 14
        10: .line 1596
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.engine.query.spi.sql.NativeSQLQuerySpecification org.hibernate.engine.spi.QueryParameters org.hibernate.engine.query.spi.NativeSQLQueryPlan int int
      StackMap stack: java.lang.Throwable
            astore 6
        11: .line 1597
            aload 0 /* this */
            iload 4 /* success */
            invokevirtual org.hibernate.internal.SessionImpl.afterOperation:(Z)V
        12: .line 1598
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        13: .line 1599
            aload 6
            athrow
        14: .line 1597
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* success */
            invokevirtual org.hibernate.internal.SessionImpl.afterOperation:(Z)V
        15: .line 1598
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        16: .line 1600
            iload 5 /* result */
            ireturn
        end local 5 // int result
        end local 4 // boolean success
        end local 3 // org.hibernate.engine.query.spi.NativeSQLQueryPlan plan
        end local 2 // org.hibernate.engine.spi.QueryParameters queryParameters
        end local 1 // org.hibernate.engine.query.spi.sql.NativeSQLQuerySpecification nativeQuerySpecification
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   17     0                      this  Lorg/hibernate/internal/SessionImpl;
            0   17     1  nativeQuerySpecification  Lorg/hibernate/engine/query/spi/sql/NativeSQLQuerySpecification;
            0   17     2           queryParameters  Lorg/hibernate/engine/spi/QueryParameters;
            4   17     3                      plan  Lorg/hibernate/engine/query/spi/NativeSQLQueryPlan;
            6   17     4                   success  Z
            7   17     5                    result  I
      Exception table:
        from    to  target  type
           7    10      10  any
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                          Name  Flags
      nativeQuerySpecification  
      queryParameters           

  public java.util.Iterator iterate(java.lang.String, org.hibernate.engine.spi.QueryParameters);
    descriptor: (Ljava/lang/String;Lorg/hibernate/engine/spi/QueryParameters;)Ljava/util/Iterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String query
        start local 2 // org.hibernate.engine.spi.QueryParameters queryParameters
         0: .line 1605
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 1606
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 1607
            aload 2 /* queryParameters */
            invokevirtual org.hibernate.engine.spi.QueryParameters.validateParameters:()V
         3: .line 1609
            aload 2 /* queryParameters */
            invokevirtual org.hibernate.engine.spi.QueryParameters.getQueryPlan:()Lorg/hibernate/engine/query/spi/HQLQueryPlan;
            astore 3 /* plan */
        start local 3 // org.hibernate.engine.query.spi.HQLQueryPlan plan
         4: .line 1610
            aload 3 /* plan */
            ifnonnull 6
         5: .line 1611
            aload 0 /* this */
            aload 1 /* query */
            iconst_1
            invokevirtual org.hibernate.internal.SessionImpl.getQueryPlan:(Ljava/lang/String;Z)Lorg/hibernate/engine/query/spi/HQLQueryPlan;
            astore 3 /* plan */
         6: .line 1614
      StackMap locals: org.hibernate.engine.query.spi.HQLQueryPlan
      StackMap stack:
            aload 0 /* this */
            aload 3 /* plan */
            invokevirtual org.hibernate.engine.query.spi.HQLQueryPlan.getQuerySpaces:()Ljava/util/Set;
            invokevirtual org.hibernate.internal.SessionImpl.autoFlushIfRequired:(Ljava/util/Set;)Z
            pop
         7: .line 1616
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            iadd
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
         8: .line 1618
            aload 3 /* plan */
            aload 2 /* queryParameters */
            aload 0 /* this */
            invokevirtual org.hibernate.engine.query.spi.HQLQueryPlan.performIterate:(Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/event/spi/EventSource;)Ljava/util/Iterator;
            astore 5
         9: .line 1621
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        10: .line 1622
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            isub
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
        11: .line 1618
            aload 5
            areturn
        12: .line 1620
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        13: .line 1621
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        14: .line 1622
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            isub
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
        15: .line 1623
            aload 4
            athrow
        end local 3 // org.hibernate.engine.query.spi.HQLQueryPlan plan
        end local 2 // org.hibernate.engine.spi.QueryParameters queryParameters
        end local 1 // java.lang.String query
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   16     0             this  Lorg/hibernate/internal/SessionImpl;
            0   16     1            query  Ljava/lang/String;
            0   16     2  queryParameters  Lorg/hibernate/engine/spi/QueryParameters;
            4   16     3             plan  Lorg/hibernate/engine/query/spi/HQLQueryPlan;
      Exception table:
        from    to  target  type
           8     9      12  any
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                 Name  Flags
      query            
      queryParameters  

  public org.hibernate.query.spi.ScrollableResultsImplementor scroll(java.lang.String, org.hibernate.engine.spi.QueryParameters);
    descriptor: (Ljava/lang/String;Lorg/hibernate/engine/spi/QueryParameters;)Lorg/hibernate/query/spi/ScrollableResultsImplementor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String query
        start local 2 // org.hibernate.engine.spi.QueryParameters queryParameters
         0: .line 1628
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 1629
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 1631
            aload 2 /* queryParameters */
            invokevirtual org.hibernate.engine.spi.QueryParameters.getQueryPlan:()Lorg/hibernate/engine/query/spi/HQLQueryPlan;
            astore 3 /* plan */
        start local 3 // org.hibernate.engine.query.spi.HQLQueryPlan plan
         3: .line 1632
            aload 3 /* plan */
            ifnonnull 5
         4: .line 1633
            aload 0 /* this */
            aload 1 /* query */
            iconst_0
            invokevirtual org.hibernate.internal.SessionImpl.getQueryPlan:(Ljava/lang/String;Z)Lorg/hibernate/engine/query/spi/HQLQueryPlan;
            astore 3 /* plan */
         5: .line 1636
      StackMap locals: org.hibernate.engine.query.spi.HQLQueryPlan
      StackMap stack:
            aload 0 /* this */
            aload 3 /* plan */
            invokevirtual org.hibernate.engine.query.spi.HQLQueryPlan.getQuerySpaces:()Ljava/util/Set;
            invokevirtual org.hibernate.internal.SessionImpl.autoFlushIfRequired:(Ljava/util/Set;)Z
            pop
         6: .line 1638
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            iadd
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
         7: .line 1640
            aload 3 /* plan */
            aload 2 /* queryParameters */
            aload 0 /* this */
            invokevirtual org.hibernate.engine.query.spi.HQLQueryPlan.performScroll:(Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Lorg/hibernate/query/spi/ScrollableResultsImplementor;
            astore 5
         8: .line 1643
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
         9: .line 1644
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            isub
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
        10: .line 1640
            aload 5
            areturn
        11: .line 1642
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        12: .line 1643
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        13: .line 1644
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            isub
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
        14: .line 1645
            aload 4
            athrow
        end local 3 // org.hibernate.engine.query.spi.HQLQueryPlan plan
        end local 2 // org.hibernate.engine.spi.QueryParameters queryParameters
        end local 1 // java.lang.String query
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   15     0             this  Lorg/hibernate/internal/SessionImpl;
            0   15     1            query  Ljava/lang/String;
            0   15     2  queryParameters  Lorg/hibernate/engine/spi/QueryParameters;
            3   15     3             plan  Lorg/hibernate/engine/query/spi/HQLQueryPlan;
      Exception table:
        from    to  target  type
           7     8      11  any
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                 Name  Flags
      query            
      queryParameters  

  public org.hibernate.query.Query createFilter(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)Lorg/hibernate/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=4, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object collection
        start local 2 // java.lang.String queryString
         0: .line 1650
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 1651
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 1652
            new org.hibernate.query.internal.CollectionFilterImpl
            dup
         3: .line 1653
            aload 2 /* queryString */
         4: .line 1654
            aload 1 /* collection */
         5: .line 1655
            aload 0 /* this */
         6: .line 1656
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* queryString */
            aconst_null
            iconst_0
            invokevirtual org.hibernate.internal.SessionImpl.getFilterQueryPlan:(Ljava/lang/Object;Ljava/lang/String;Lorg/hibernate/engine/spi/QueryParameters;Z)Lorg/hibernate/engine/query/spi/FilterQueryPlan;
            invokevirtual org.hibernate.engine.query.spi.FilterQueryPlan.getParameterMetadata:()Lorg/hibernate/query/internal/ParameterMetadataImpl;
         7: .line 1652
            invokespecial org.hibernate.query.internal.CollectionFilterImpl.<init>:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/query/internal/ParameterMetadataImpl;)V
            astore 3 /* filter */
        start local 3 // org.hibernate.query.internal.CollectionFilterImpl filter
         8: .line 1658
            aload 3 /* filter */
            aload 2 /* queryString */
            invokevirtual org.hibernate.query.internal.CollectionFilterImpl.setComment:(Ljava/lang/String;)Lorg/hibernate/query/spi/QueryImplementor;
            pop
         9: .line 1659
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        10: .line 1660
            aload 3 /* filter */
            areturn
        end local 3 // org.hibernate.query.internal.CollectionFilterImpl filter
        end local 2 // java.lang.String queryString
        end local 1 // java.lang.Object collection
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Lorg/hibernate/internal/SessionImpl;
            0   11     1   collection  Ljava/lang/Object;
            0   11     2  queryString  Ljava/lang/String;
            8   11     3       filter  Lorg/hibernate/query/internal/CollectionFilterImpl;
    MethodParameters:
             Name  Flags
      collection   
      queryString  

  public java.lang.Object instantiate(java.lang.String, java.io.Serializable);
    descriptor: (Ljava/lang/String;Ljava/io/Serializable;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.io.Serializable id
         0: .line 1666
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 1 /* entityName */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.entityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            aload 2 /* id */
            invokevirtual org.hibernate.internal.SessionImpl.instantiate:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;)Ljava/lang/Object;
            areturn
        end local 2 // java.io.Serializable id
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityName  Ljava/lang/String;
            0    1     2          id  Ljava/io/Serializable;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      entityName  
      id          

  public java.lang.Object instantiate(org.hibernate.persister.entity.EntityPersister, java.io.Serializable);
    descriptor: (Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.persister.entity.EntityPersister persister
        start local 2 // java.io.Serializable id
         0: .line 1674
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 1675
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 1676
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getInterceptor:()Lorg/hibernate/Interceptor;
         3: .line 1677
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getEntityName:()Ljava/lang/String;
         4: .line 1678
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getEntityMetamodel:()Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getEntityMode:()Lorg/hibernate/EntityMode;
         5: .line 1679
            aload 2 /* id */
         6: .line 1676
            invokeinterface org.hibernate.Interceptor.instantiate:(Ljava/lang/String;Lorg/hibernate/EntityMode;Ljava/io/Serializable;)Ljava/lang/Object;
            astore 3 /* result */
        start local 3 // java.lang.Object result
         7: .line 1681
            aload 3 /* result */
            ifnonnull 9
         8: .line 1682
            aload 1 /* persister */
            aload 2 /* id */
            aload 0 /* this */
            invokeinterface org.hibernate.persister.entity.EntityPersister.instantiate:(Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
            astore 3 /* result */
         9: .line 1684
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        10: .line 1685
            aload 3 /* result */
            areturn
        end local 3 // java.lang.Object result
        end local 2 // java.io.Serializable id
        end local 1 // org.hibernate.persister.entity.EntityPersister persister
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lorg/hibernate/internal/SessionImpl;
            0   11     1  persister  Lorg/hibernate/persister/entity/EntityPersister;
            0   11     2         id  Ljava/io/Serializable;
            7   11     3     result  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
           Name  Flags
      persister  
      id         

  public org.hibernate.persister.entity.EntityPersister getEntityPersister(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)Lorg/hibernate/persister/entity/EntityPersister;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.lang.Object object
         0: .line 1690
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 1691
            aload 1 /* entityName */
            ifnonnull 3
         2: .line 1692
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 0 /* this */
            aload 2 /* object */
            invokevirtual org.hibernate.internal.SessionImpl.guessEntityName:(Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.entityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            areturn
         3: .line 1701
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 1 /* entityName */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.entityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            aload 2 /* object */
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.persister.entity.EntityPersister.getSubclassEntityPersister:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Lorg/hibernate/persister/entity/EntityPersister;
         4: areturn
         5: .line 1703
      StackMap locals:
      StackMap stack: org.hibernate.HibernateException
            astore 3 /* e */
        start local 3 // org.hibernate.HibernateException e
         6: .line 1705
            aload 0 /* this */
            aconst_null
            aload 2 /* object */
            invokevirtual org.hibernate.internal.SessionImpl.getEntityPersister:(Ljava/lang/String;Ljava/lang/Object;)Lorg/hibernate/persister/entity/EntityPersister;
         7: areturn
         8: .line 1707
      StackMap locals: org.hibernate.internal.SessionImpl java.lang.String java.lang.Object org.hibernate.HibernateException
      StackMap stack: org.hibernate.HibernateException
            pop
         9: .line 1708
            aload 3 /* e */
            athrow
        end local 3 // org.hibernate.HibernateException e
        end local 2 // java.lang.Object object
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lorg/hibernate/internal/SessionImpl;
            0   10     1  entityName  Ljava/lang/String;
            0   10     2      object  Ljava/lang/Object;
            6   10     3           e  Lorg/hibernate/HibernateException;
      Exception table:
        from    to  target  type
           3     4       5  Class org.hibernate.HibernateException
           6     7       8  Class org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      entityName  final
      object      final

  public java.io.Serializable getIdentifier(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/io/Serializable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object object
         0: .line 1717
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 1718
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 1719
            aload 1 /* object */
            instanceof org.hibernate.proxy.HibernateProxy
            ifeq 7
         3: .line 1720
            aload 1 /* object */
            checkcast org.hibernate.proxy.HibernateProxy
            invokeinterface org.hibernate.proxy.HibernateProxy.getHibernateLazyInitializer:()Lorg/hibernate/proxy/LazyInitializer;
            astore 2 /* li */
        start local 2 // org.hibernate.proxy.LazyInitializer li
         4: .line 1721
            aload 2 /* li */
            invokeinterface org.hibernate.proxy.LazyInitializer.getSession:()Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            aload 0 /* this */
            if_acmpeq 6
         5: .line 1722
            new org.hibernate.TransientObjectException
            dup
            ldc "The proxy was not associated with this session"
            invokespecial org.hibernate.TransientObjectException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1724
      StackMap locals: org.hibernate.proxy.LazyInitializer
      StackMap stack:
            aload 2 /* li */
            invokeinterface org.hibernate.proxy.LazyInitializer.getIdentifier:()Ljava/io/Serializable;
            areturn
        end local 2 // org.hibernate.proxy.LazyInitializer li
         7: .line 1727
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 1 /* object */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.getEntry:(Ljava/lang/Object;)Lorg/hibernate/engine/spi/EntityEntry;
            astore 2 /* entry */
        start local 2 // org.hibernate.engine.spi.EntityEntry entry
         8: .line 1728
            aload 2 /* entry */
            ifnonnull 10
         9: .line 1729
            new org.hibernate.TransientObjectException
            dup
            ldc "The instance was not associated with this session"
            invokespecial org.hibernate.TransientObjectException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 1731
      StackMap locals: org.hibernate.engine.spi.EntityEntry
      StackMap stack:
            aload 2 /* entry */
            invokeinterface org.hibernate.engine.spi.EntityEntry.getId:()Ljava/io/Serializable;
            areturn
        end local 2 // org.hibernate.engine.spi.EntityEntry entry
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lorg/hibernate/internal/SessionImpl;
            0   11     1  object  Ljava/lang/Object;
            4    7     2      li  Lorg/hibernate/proxy/LazyInitializer;
            8   11     2   entry  Lorg/hibernate/engine/spi/EntityEntry;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
        Name  Flags
      object  

  public java.io.Serializable getContextEntityIdentifier(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/io/Serializable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object object
         0: .line 1741
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 1742
            aload 1 /* object */
            instanceof org.hibernate.proxy.HibernateProxy
            ifeq 3
         2: .line 1743
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual org.hibernate.internal.SessionImpl.getProxyIdentifier:(Ljava/lang/Object;)Ljava/io/Serializable;
            areturn
         3: .line 1746
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 1 /* object */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.getEntry:(Ljava/lang/Object;)Lorg/hibernate/engine/spi/EntityEntry;
            astore 2 /* entry */
        start local 2 // org.hibernate.engine.spi.EntityEntry entry
         4: .line 1747
            aload 2 /* entry */
            ifnull 5
            aload 2 /* entry */
            invokeinterface org.hibernate.engine.spi.EntityEntry.getId:()Ljava/io/Serializable;
            goto 6
      StackMap locals: org.hibernate.engine.spi.EntityEntry
      StackMap stack:
         5: aconst_null
      StackMap locals:
      StackMap stack: java.io.Serializable
         6: areturn
        end local 2 // org.hibernate.engine.spi.EntityEntry entry
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/hibernate/internal/SessionImpl;
            0    7     1  object  Ljava/lang/Object;
            4    7     2   entry  Lorg/hibernate/engine/spi/EntityEntry;
    MethodParameters:
        Name  Flags
      object  

  private java.io.Serializable getProxyIdentifier(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/io/Serializable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object proxy
         0: .line 1752
            aload 1 /* proxy */
            checkcast org.hibernate.proxy.HibernateProxy
            invokeinterface org.hibernate.proxy.HibernateProxy.getHibernateLazyInitializer:()Lorg/hibernate/proxy/LazyInitializer;
            invokeinterface org.hibernate.proxy.LazyInitializer.getIdentifier:()Ljava/io/Serializable;
            areturn
        end local 1 // java.lang.Object proxy
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  proxy  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      proxy  

  private org.hibernate.engine.query.spi.FilterQueryPlan getFilterQueryPlan(java.lang.Object, java.lang.String, org.hibernate.engine.spi.QueryParameters, boolean);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Lorg/hibernate/engine/spi/QueryParameters;Z)Lorg/hibernate/engine/query/spi/FilterQueryPlan;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=5
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object collection
        start local 2 // java.lang.String filter
        start local 3 // org.hibernate.engine.spi.QueryParameters parameters
        start local 4 // boolean shallow
         0: .line 1760
            aload 1 /* collection */
            ifnonnull 2
         1: .line 1761
            new java.lang.NullPointerException
            dup
            ldc "null collection passed to filter"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1764
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 1 /* collection */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.getCollectionEntryOrNull:(Ljava/lang/Object;)Lorg/hibernate/engine/spi/CollectionEntry;
            astore 5 /* entry */
        start local 5 // org.hibernate.engine.spi.CollectionEntry entry
         3: .line 1765
            aload 5 /* entry */
            ifnonnull 4
            aconst_null
            goto 5
      StackMap locals: org.hibernate.engine.spi.CollectionEntry
      StackMap stack:
         4: aload 5 /* entry */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.getLoadedPersister:()Lorg/hibernate/persister/collection/CollectionPersister;
      StackMap locals:
      StackMap stack: org.hibernate.persister.collection.CollectionPersister
         5: astore 6 /* roleBeforeFlush */
        start local 6 // org.hibernate.persister.collection.CollectionPersister roleBeforeFlush
         6: .line 1767
            aconst_null
            astore 7 /* plan */
        start local 7 // org.hibernate.engine.query.spi.FilterQueryPlan plan
         7: .line 1768
            aload 6 /* roleBeforeFlush */
            ifnonnull 22
         8: .line 1771
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.flush:()V
         9: .line 1772
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 1 /* collection */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.getCollectionEntryOrNull:(Ljava/lang/Object;)Lorg/hibernate/engine/spi/CollectionEntry;
            astore 5 /* entry */
        10: .line 1773
            aload 5 /* entry */
            ifnonnull 11
            aconst_null
            goto 12
      StackMap locals: org.hibernate.persister.collection.CollectionPersister org.hibernate.engine.query.spi.FilterQueryPlan
      StackMap stack:
        11: aload 5 /* entry */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.getLoadedPersister:()Lorg/hibernate/persister/collection/CollectionPersister;
      StackMap locals:
      StackMap stack: org.hibernate.persister.collection.CollectionPersister
        12: astore 8 /* roleAfterFlush */
        start local 8 // org.hibernate.persister.collection.CollectionPersister roleAfterFlush
        13: .line 1774
            aload 8 /* roleAfterFlush */
            ifnonnull 15
        14: .line 1775
            new org.hibernate.QueryException
            dup
            ldc "The collection was unreferenced"
            invokespecial org.hibernate.QueryException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 1777
      StackMap locals: org.hibernate.persister.collection.CollectionPersister
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getQueryPlanCache:()Lorg/hibernate/engine/query/spi/QueryPlanCache;
        16: .line 1778
            aload 2 /* filter */
        17: .line 1779
            aload 8 /* roleAfterFlush */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.getRole:()Ljava/lang/String;
        18: .line 1780
            iload 4 /* shallow */
        19: .line 1781
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.getEnabledFilters:()Ljava/util/Map;
        20: .line 1777
            invokevirtual org.hibernate.engine.query.spi.QueryPlanCache.getFilterQueryPlan:(Ljava/lang/String;Ljava/lang/String;ZLjava/util/Map;)Lorg/hibernate/engine/query/spi/FilterQueryPlan;
            astore 7 /* plan */
        end local 8 // org.hibernate.persister.collection.CollectionPersister roleAfterFlush
        21: .line 1783
            goto 42
        22: .line 1787
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getQueryPlanCache:()Lorg/hibernate/engine/query/spi/QueryPlanCache;
        23: .line 1788
            aload 2 /* filter */
        24: .line 1789
            aload 6 /* roleBeforeFlush */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.getRole:()Ljava/lang/String;
        25: .line 1790
            iload 4 /* shallow */
        26: .line 1791
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.getEnabledFilters:()Ljava/util/Map;
        27: .line 1787
            invokevirtual org.hibernate.engine.query.spi.QueryPlanCache.getFilterQueryPlan:(Ljava/lang/String;Ljava/lang/String;ZLjava/util/Map;)Lorg/hibernate/engine/query/spi/FilterQueryPlan;
            astore 7 /* plan */
        28: .line 1793
            aload 0 /* this */
            aload 7 /* plan */
            invokevirtual org.hibernate.engine.query.spi.FilterQueryPlan.getQuerySpaces:()Ljava/util/Set;
            invokevirtual org.hibernate.internal.SessionImpl.autoFlushIfRequired:(Ljava/util/Set;)Z
            ifeq 42
        29: .line 1796
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 1 /* collection */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.getCollectionEntryOrNull:(Ljava/lang/Object;)Lorg/hibernate/engine/spi/CollectionEntry;
            astore 5 /* entry */
        30: .line 1797
            aload 5 /* entry */
            ifnonnull 31
            aconst_null
            goto 32
      StackMap locals:
      StackMap stack:
        31: aload 5 /* entry */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.getLoadedPersister:()Lorg/hibernate/persister/collection/CollectionPersister;
      StackMap locals:
      StackMap stack: org.hibernate.persister.collection.CollectionPersister
        32: astore 8 /* roleAfterFlush */
        start local 8 // org.hibernate.persister.collection.CollectionPersister roleAfterFlush
        33: .line 1798
            aload 6 /* roleBeforeFlush */
            aload 8 /* roleAfterFlush */
            if_acmpeq 42
        34: .line 1799
            aload 8 /* roleAfterFlush */
            ifnonnull 36
        35: .line 1800
            new org.hibernate.QueryException
            dup
            ldc "The collection was dereferenced"
            invokespecial org.hibernate.QueryException.<init>:(Ljava/lang/String;)V
            athrow
        36: .line 1802
      StackMap locals: org.hibernate.persister.collection.CollectionPersister
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getQueryPlanCache:()Lorg/hibernate/engine/query/spi/QueryPlanCache;
        37: .line 1803
            aload 2 /* filter */
        38: .line 1804
            aload 8 /* roleAfterFlush */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.getRole:()Ljava/lang/String;
        39: .line 1805
            iload 4 /* shallow */
        40: .line 1806
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.getEnabledFilters:()Ljava/util/Map;
        41: .line 1802
            invokevirtual org.hibernate.engine.query.spi.QueryPlanCache.getFilterQueryPlan:(Ljava/lang/String;Ljava/lang/String;ZLjava/util/Map;)Lorg/hibernate/engine/query/spi/FilterQueryPlan;
            astore 7 /* plan */
        end local 8 // org.hibernate.persister.collection.CollectionPersister roleAfterFlush
        42: .line 1812
      StackMap locals:
      StackMap stack:
            aload 3 /* parameters */
            ifnull 50
        43: .line 1813
            aload 3 /* parameters */
            invokevirtual org.hibernate.engine.spi.QueryParameters.getNamedParameters:()Ljava/util/Map;
        44: .line 1814
            ldc "{collection_key}"
        45: .line 1815
            new org.hibernate.engine.spi.TypedValue
            dup
        46: .line 1816
            aload 5 /* entry */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.getLoadedPersister:()Lorg/hibernate/persister/collection/CollectionPersister;
            invokeinterface org.hibernate.persister.collection.CollectionPersister.getKeyType:()Lorg/hibernate/type/Type;
        47: .line 1817
            aload 5 /* entry */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.getLoadedKey:()Ljava/io/Serializable;
        48: .line 1815
            invokespecial org.hibernate.engine.spi.TypedValue.<init>:(Lorg/hibernate/type/Type;Ljava/lang/Object;)V
        49: .line 1813
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        50: .line 1822
      StackMap locals:
      StackMap stack:
            aload 7 /* plan */
            areturn
        end local 7 // org.hibernate.engine.query.spi.FilterQueryPlan plan
        end local 6 // org.hibernate.persister.collection.CollectionPersister roleBeforeFlush
        end local 5 // org.hibernate.engine.spi.CollectionEntry entry
        end local 4 // boolean shallow
        end local 3 // org.hibernate.engine.spi.QueryParameters parameters
        end local 2 // java.lang.String filter
        end local 1 // java.lang.Object collection
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   51     0             this  Lorg/hibernate/internal/SessionImpl;
            0   51     1       collection  Ljava/lang/Object;
            0   51     2           filter  Ljava/lang/String;
            0   51     3       parameters  Lorg/hibernate/engine/spi/QueryParameters;
            0   51     4          shallow  Z
            3   51     5            entry  Lorg/hibernate/engine/spi/CollectionEntry;
            6   51     6  roleBeforeFlush  Lorg/hibernate/persister/collection/CollectionPersister;
            7   51     7             plan  Lorg/hibernate/engine/query/spi/FilterQueryPlan;
           13   21     8   roleAfterFlush  Lorg/hibernate/persister/collection/CollectionPersister;
           33   42     8   roleAfterFlush  Lorg/hibernate/persister/collection/CollectionPersister;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      collection  
      filter      
      parameters  
      shallow     

  public java.util.List listFilter(java.lang.Object, java.lang.String, org.hibernate.engine.spi.QueryParameters);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Lorg/hibernate/engine/spi/QueryParameters;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object collection
        start local 2 // java.lang.String filter
        start local 3 // org.hibernate.engine.spi.QueryParameters queryParameters
         0: .line 1827
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 1828
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 1829
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* filter */
            aload 3 /* queryParameters */
            iconst_0
            invokevirtual org.hibernate.internal.SessionImpl.getFilterQueryPlan:(Ljava/lang/Object;Ljava/lang/String;Lorg/hibernate/engine/spi/QueryParameters;Z)Lorg/hibernate/engine/query/spi/FilterQueryPlan;
            astore 4 /* plan */
        start local 4 // org.hibernate.engine.query.spi.FilterQueryPlan plan
         3: .line 1830
            getstatic java.util.Collections.EMPTY_LIST:Ljava/util/List;
            astore 5 /* results */
        start local 5 // java.util.List results
         4: .line 1832
            iconst_0
            istore 6 /* success */
        start local 6 // boolean success
         5: .line 1833
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            iadd
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
         6: .line 1835
            aload 4 /* plan */
            aload 3 /* queryParameters */
            aload 0 /* this */
            invokevirtual org.hibernate.engine.query.spi.FilterQueryPlan.performList:(Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/util/List;
            astore 5 /* results */
         7: .line 1836
            iconst_1
            istore 6 /* success */
         8: .line 1837
            goto 14
         9: .line 1838
      StackMap locals: org.hibernate.internal.SessionImpl java.lang.Object java.lang.String org.hibernate.engine.spi.QueryParameters org.hibernate.engine.query.spi.FilterQueryPlan java.util.List int
      StackMap stack: java.lang.Throwable
            astore 7
        10: .line 1839
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            isub
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
        11: .line 1840
            aload 0 /* this */
            iload 6 /* success */
            invokevirtual org.hibernate.internal.SessionImpl.afterOperation:(Z)V
        12: .line 1841
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        13: .line 1842
            aload 7
            athrow
        14: .line 1839
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            isub
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
        15: .line 1840
            aload 0 /* this */
            iload 6 /* success */
            invokevirtual org.hibernate.internal.SessionImpl.afterOperation:(Z)V
        16: .line 1841
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        17: .line 1843
            aload 5 /* results */
            areturn
        end local 6 // boolean success
        end local 5 // java.util.List results
        end local 4 // org.hibernate.engine.query.spi.FilterQueryPlan plan
        end local 3 // org.hibernate.engine.spi.QueryParameters queryParameters
        end local 2 // java.lang.String filter
        end local 1 // java.lang.Object collection
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   18     0             this  Lorg/hibernate/internal/SessionImpl;
            0   18     1       collection  Ljava/lang/Object;
            0   18     2           filter  Ljava/lang/String;
            0   18     3  queryParameters  Lorg/hibernate/engine/spi/QueryParameters;
            3   18     4             plan  Lorg/hibernate/engine/query/spi/FilterQueryPlan;
            4   18     5          results  Ljava/util/List;
            5   18     6          success  Z
      Exception table:
        from    to  target  type
           6     9       9  any
    MethodParameters:
                 Name  Flags
      collection       
      filter           
      queryParameters  

  public java.util.Iterator iterateFilter(java.lang.Object, java.lang.String, org.hibernate.engine.spi.QueryParameters);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Lorg/hibernate/engine/spi/QueryParameters;)Ljava/util/Iterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object collection
        start local 2 // java.lang.String filter
        start local 3 // org.hibernate.engine.spi.QueryParameters queryParameters
         0: .line 1848
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 1849
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 1850
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* filter */
            aload 3 /* queryParameters */
            iconst_1
            invokevirtual org.hibernate.internal.SessionImpl.getFilterQueryPlan:(Ljava/lang/Object;Ljava/lang/String;Lorg/hibernate/engine/spi/QueryParameters;Z)Lorg/hibernate/engine/query/spi/FilterQueryPlan;
            astore 4 /* plan */
        start local 4 // org.hibernate.engine.query.spi.FilterQueryPlan plan
         3: .line 1851
            aload 4 /* plan */
            aload 3 /* queryParameters */
            aload 0 /* this */
            invokevirtual org.hibernate.engine.query.spi.FilterQueryPlan.performIterate:(Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/event/spi/EventSource;)Ljava/util/Iterator;
            astore 5 /* itr */
        start local 5 // java.util.Iterator itr
         4: .line 1852
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
         5: .line 1853
            aload 5 /* itr */
            areturn
        end local 5 // java.util.Iterator itr
        end local 4 // org.hibernate.engine.query.spi.FilterQueryPlan plan
        end local 3 // org.hibernate.engine.spi.QueryParameters queryParameters
        end local 2 // java.lang.String filter
        end local 1 // java.lang.Object collection
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lorg/hibernate/internal/SessionImpl;
            0    6     1       collection  Ljava/lang/Object;
            0    6     2           filter  Ljava/lang/String;
            0    6     3  queryParameters  Lorg/hibernate/engine/spi/QueryParameters;
            3    6     4             plan  Lorg/hibernate/engine/query/spi/FilterQueryPlan;
            4    6     5              itr  Ljava/util/Iterator;
    MethodParameters:
                 Name  Flags
      collection       
      filter           
      queryParameters  

  public org.hibernate.Criteria createCriteria(java.lang.Class, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;)Lorg/hibernate/Criteria;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Class persistentClass
        start local 2 // java.lang.String alias
         0: .line 1858
            getstatic org.hibernate.internal.log.DeprecationLogger.DEPRECATION_LOGGER:Lorg/hibernate/internal/log/DeprecationLogger;
            invokeinterface org.hibernate.internal.log.DeprecationLogger.deprecatedLegacyCriteria:()V
         1: .line 1859
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         2: .line 1860
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         3: .line 1861
            new org.hibernate.internal.CriteriaImpl
            dup
            aload 1 /* persistentClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 2 /* alias */
            aload 0 /* this */
            invokespecial org.hibernate.internal.CriteriaImpl.<init>:(Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
            areturn
        end local 2 // java.lang.String alias
        end local 1 // java.lang.Class persistentClass
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lorg/hibernate/internal/SessionImpl;
            0    4     1  persistentClass  Ljava/lang/Class;
            0    4     2            alias  Ljava/lang/String;
    MethodParameters:
                 Name  Flags
      persistentClass  
      alias            

  public org.hibernate.Criteria createCriteria(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/Criteria;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.lang.String alias
         0: .line 1866
            getstatic org.hibernate.internal.log.DeprecationLogger.DEPRECATION_LOGGER:Lorg/hibernate/internal/log/DeprecationLogger;
            invokeinterface org.hibernate.internal.log.DeprecationLogger.deprecatedLegacyCriteria:()V
         1: .line 1867
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         2: .line 1868
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         3: .line 1869
            new org.hibernate.internal.CriteriaImpl
            dup
            aload 1 /* entityName */
            aload 2 /* alias */
            aload 0 /* this */
            invokespecial org.hibernate.internal.CriteriaImpl.<init>:(Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
            areturn
        end local 2 // java.lang.String alias
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/hibernate/internal/SessionImpl;
            0    4     1  entityName  Ljava/lang/String;
            0    4     2       alias  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      entityName  
      alias       

  public org.hibernate.Criteria createCriteria(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Lorg/hibernate/Criteria;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Class persistentClass
         0: .line 1874
            getstatic org.hibernate.internal.log.DeprecationLogger.DEPRECATION_LOGGER:Lorg/hibernate/internal/log/DeprecationLogger;
            invokeinterface org.hibernate.internal.log.DeprecationLogger.deprecatedLegacyCriteria:()V
         1: .line 1875
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         2: .line 1876
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         3: .line 1877
            new org.hibernate.internal.CriteriaImpl
            dup
            aload 1 /* persistentClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 0 /* this */
            invokespecial org.hibernate.internal.CriteriaImpl.<init>:(Ljava/lang/String;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
            areturn
        end local 1 // java.lang.Class persistentClass
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lorg/hibernate/internal/SessionImpl;
            0    4     1  persistentClass  Ljava/lang/Class;
    MethodParameters:
                 Name  Flags
      persistentClass  

  public org.hibernate.Criteria createCriteria(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/Criteria;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
         0: .line 1882
            getstatic org.hibernate.internal.log.DeprecationLogger.DEPRECATION_LOGGER:Lorg/hibernate/internal/log/DeprecationLogger;
            invokeinterface org.hibernate.internal.log.DeprecationLogger.deprecatedLegacyCriteria:()V
         1: .line 1883
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         2: .line 1884
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         3: .line 1885
            new org.hibernate.internal.CriteriaImpl
            dup
            aload 1 /* entityName */
            aload 0 /* this */
            invokespecial org.hibernate.internal.CriteriaImpl.<init>:(Ljava/lang/String;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
            areturn
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/hibernate/internal/SessionImpl;
            0    4     1  entityName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      entityName  

  public org.hibernate.query.spi.ScrollableResultsImplementor scroll(org.hibernate.Criteria, org.hibernate.ScrollMode);
    descriptor: (Lorg/hibernate/Criteria;Lorg/hibernate/ScrollMode;)Lorg/hibernate/query/spi/ScrollableResultsImplementor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.Criteria criteria
        start local 2 // org.hibernate.ScrollMode scrollMode
         0: .line 1891
            aload 1 /* criteria */
            checkcast org.hibernate.internal.CriteriaImpl
            astore 3 /* criteriaImpl */
        start local 3 // org.hibernate.internal.CriteriaImpl criteriaImpl
         1: .line 1893
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         2: .line 1894
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         3: .line 1896
            aload 3 /* criteriaImpl */
            invokevirtual org.hibernate.internal.CriteriaImpl.getEntityOrClassName:()Ljava/lang/String;
            astore 4 /* entityName */
        start local 4 // java.lang.String entityName
         4: .line 1897
            new org.hibernate.loader.criteria.CriteriaLoader
            dup
         5: .line 1898
            aload 0 /* this */
            aload 4 /* entityName */
            invokevirtual org.hibernate.internal.SessionImpl.getOuterJoinLoadable:(Ljava/lang/String;)Lorg/hibernate/persister/entity/OuterJoinLoadable;
         6: .line 1899
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         7: .line 1900
            aload 3 /* criteriaImpl */
         8: .line 1901
            aload 4 /* entityName */
         9: .line 1902
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
        10: .line 1897
            invokespecial org.hibernate.loader.criteria.CriteriaLoader.<init>:(Lorg/hibernate/persister/entity/OuterJoinLoadable;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/internal/CriteriaImpl;Ljava/lang/String;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)V
            astore 5 /* loader */
        start local 5 // org.hibernate.loader.criteria.CriteriaLoader loader
        11: .line 1904
            aload 0 /* this */
            aload 5 /* loader */
            invokevirtual org.hibernate.loader.criteria.CriteriaLoader.getQuerySpaces:()Ljava/util/Set;
            invokevirtual org.hibernate.internal.SessionImpl.autoFlushIfRequired:(Ljava/util/Set;)Z
            pop
        12: .line 1905
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            iadd
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
        13: .line 1907
            aload 5 /* loader */
            aload 0 /* this */
            aload 2 /* scrollMode */
            invokevirtual org.hibernate.loader.criteria.CriteriaLoader.scroll:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/ScrollMode;)Lorg/hibernate/query/spi/ScrollableResultsImplementor;
            astore 7
        14: .line 1910
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        15: .line 1911
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            isub
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
        16: .line 1907
            aload 7
            areturn
        17: .line 1909
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.Criteria org.hibernate.ScrollMode org.hibernate.internal.CriteriaImpl java.lang.String org.hibernate.loader.criteria.CriteriaLoader
      StackMap stack: java.lang.Throwable
            astore 6
        18: .line 1910
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        19: .line 1911
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            isub
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
        20: .line 1912
            aload 6
            athrow
        end local 5 // org.hibernate.loader.criteria.CriteriaLoader loader
        end local 4 // java.lang.String entityName
        end local 3 // org.hibernate.internal.CriteriaImpl criteriaImpl
        end local 2 // org.hibernate.ScrollMode scrollMode
        end local 1 // org.hibernate.Criteria criteria
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   21     0          this  Lorg/hibernate/internal/SessionImpl;
            0   21     1      criteria  Lorg/hibernate/Criteria;
            0   21     2    scrollMode  Lorg/hibernate/ScrollMode;
            1   21     3  criteriaImpl  Lorg/hibernate/internal/CriteriaImpl;
            4   21     4    entityName  Ljava/lang/String;
           11   21     5        loader  Lorg/hibernate/loader/criteria/CriteriaLoader;
      Exception table:
        from    to  target  type
          13    14      17  any
    MethodParameters:
            Name  Flags
      criteria    
      scrollMode  

  public java.util.List list(org.hibernate.Criteria);
    descriptor: (Lorg/hibernate/Criteria;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=13, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.Criteria criteria
         0: .line 1918
            aload 1 /* criteria */
            checkcast org.hibernate.internal.CriteriaImpl
            astore 2 /* criteriaImpl */
        start local 2 // org.hibernate.internal.CriteriaImpl criteriaImpl
         1: .line 1919
            aload 2 /* criteriaImpl */
            invokevirtual org.hibernate.internal.CriteriaImpl.getMaxResults:()Ljava/lang/Integer;
            ifnull 3
            aload 2 /* criteriaImpl */
            invokevirtual org.hibernate.internal.CriteriaImpl.getMaxResults:()Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            ifne 3
         2: .line 1920
            getstatic java.util.Collections.EMPTY_LIST:Ljava/util/List;
            areturn
         3: .line 1923
      StackMap locals: org.hibernate.internal.CriteriaImpl
      StackMap stack:
            aload 0 /* this */
            aload 2 /* criteriaImpl */
            invokevirtual org.hibernate.internal.SessionImpl.tryNaturalIdLoadAccess:(Lorg/hibernate/internal/CriteriaImpl;)Lorg/hibernate/NaturalIdLoadAccess;
            astore 3 /* naturalIdLoadAccess */
        start local 3 // org.hibernate.NaturalIdLoadAccess naturalIdLoadAccess
         4: .line 1924
            aload 3 /* naturalIdLoadAccess */
            ifnull 6
         5: .line 1926
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* naturalIdLoadAccess */
            invokeinterface org.hibernate.NaturalIdLoadAccess.load:()Ljava/lang/Object;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            areturn
         6: .line 1930
      StackMap locals: org.hibernate.NaturalIdLoadAccess
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         7: .line 1933
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 2 /* criteriaImpl */
            invokevirtual org.hibernate.internal.CriteriaImpl.getEntityOrClassName:()Ljava/lang/String;
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.getImplementors:(Ljava/lang/String;)[Ljava/lang/String;
            astore 4 /* implementors */
        start local 4 // java.lang.String[] implementors
         8: .line 1934
            aload 4 /* implementors */
            arraylength
            istore 5 /* size */
        start local 5 // int size
         9: .line 1936
            iload 5 /* size */
            anewarray org.hibernate.loader.criteria.CriteriaLoader
            astore 6 /* loaders */
        start local 6 // org.hibernate.loader.criteria.CriteriaLoader[] loaders
        10: .line 1937
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 7 /* spaces */
        start local 7 // java.util.Set spaces
        11: .line 1938
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        12: goto 22
        13: .line 1940
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.Criteria org.hibernate.internal.CriteriaImpl org.hibernate.NaturalIdLoadAccess java.lang.String[] int org.hibernate.loader.criteria.CriteriaLoader[] java.util.Set int
      StackMap stack:
            aload 6 /* loaders */
            iload 8 /* i */
            new org.hibernate.loader.criteria.CriteriaLoader
            dup
        14: .line 1941
            aload 0 /* this */
            aload 4 /* implementors */
            iload 8 /* i */
            aaload
            invokevirtual org.hibernate.internal.SessionImpl.getOuterJoinLoadable:(Ljava/lang/String;)Lorg/hibernate/persister/entity/OuterJoinLoadable;
        15: .line 1942
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
        16: .line 1943
            aload 2 /* criteriaImpl */
        17: .line 1944
            aload 4 /* implementors */
            iload 8 /* i */
            aaload
        18: .line 1945
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokespecial org.hibernate.loader.criteria.CriteriaLoader.<init>:(Lorg/hibernate/persister/entity/OuterJoinLoadable;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/internal/CriteriaImpl;Ljava/lang/String;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)V
        19: .line 1940
            aastore
        20: .line 1948
            aload 7 /* spaces */
            aload 6 /* loaders */
            iload 8 /* i */
            aaload
            invokevirtual org.hibernate.loader.criteria.CriteriaLoader.getQuerySpaces:()Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        21: .line 1938
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 8 /* i */
            iload 5 /* size */
            if_icmplt 13
        end local 8 // int i
        23: .line 1952
            aload 0 /* this */
            aload 7 /* spaces */
            invokevirtual org.hibernate.internal.SessionImpl.autoFlushIfRequired:(Ljava/util/Set;)Z
            pop
        24: .line 1954
            getstatic java.util.Collections.EMPTY_LIST:Ljava/util/List;
            astore 8 /* results */
        start local 8 // java.util.List results
        25: .line 1955
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            iadd
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
        26: .line 1956
            iconst_0
            istore 9 /* success */
        start local 9 // boolean success
        27: .line 1958
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        28: goto 33
        29: .line 1959
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.Criteria org.hibernate.internal.CriteriaImpl org.hibernate.NaturalIdLoadAccess java.lang.String[] int org.hibernate.loader.criteria.CriteriaLoader[] java.util.Set java.util.List int int
      StackMap stack:
            aload 6 /* loaders */
            iload 10 /* i */
            aaload
            aload 0 /* this */
            invokevirtual org.hibernate.loader.criteria.CriteriaLoader.list:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/util/List;
            astore 11 /* currentResults */
        start local 11 // java.util.List currentResults
        30: .line 1960
            aload 11 /* currentResults */
            aload 8 /* results */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        31: .line 1961
            aload 11 /* currentResults */
            astore 8 /* results */
        end local 11 // java.util.List currentResults
        32: .line 1958
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        33: iload 10 /* i */
            iload 5 /* size */
            if_icmplt 29
        end local 10 // int i
        34: .line 1963
            iconst_1
            istore 9 /* success */
        35: .line 1964
            goto 41
        36: .line 1965
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.Criteria org.hibernate.internal.CriteriaImpl org.hibernate.NaturalIdLoadAccess java.lang.String[] int org.hibernate.loader.criteria.CriteriaLoader[] java.util.Set java.util.List int
      StackMap stack: java.lang.Throwable
            astore 12
        37: .line 1966
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            isub
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
        38: .line 1967
            aload 0 /* this */
            iload 9 /* success */
            invokevirtual org.hibernate.internal.SessionImpl.afterOperation:(Z)V
        39: .line 1968
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        40: .line 1969
            aload 12
            athrow
        41: .line 1966
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            isub
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
        42: .line 1967
            aload 0 /* this */
            iload 9 /* success */
            invokevirtual org.hibernate.internal.SessionImpl.afterOperation:(Z)V
        43: .line 1968
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        44: .line 1971
            aload 8 /* results */
            areturn
        end local 9 // boolean success
        end local 8 // java.util.List results
        end local 7 // java.util.Set spaces
        end local 6 // org.hibernate.loader.criteria.CriteriaLoader[] loaders
        end local 5 // int size
        end local 4 // java.lang.String[] implementors
        end local 3 // org.hibernate.NaturalIdLoadAccess naturalIdLoadAccess
        end local 2 // org.hibernate.internal.CriteriaImpl criteriaImpl
        end local 1 // org.hibernate.Criteria criteria
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   45     0                 this  Lorg/hibernate/internal/SessionImpl;
            0   45     1             criteria  Lorg/hibernate/Criteria;
            1   45     2         criteriaImpl  Lorg/hibernate/internal/CriteriaImpl;
            4   45     3  naturalIdLoadAccess  Lorg/hibernate/NaturalIdLoadAccess;
            8   45     4         implementors  [Ljava/lang/String;
            9   45     5                 size  I
           10   45     6              loaders  [Lorg/hibernate/loader/criteria/CriteriaLoader;
           11   45     7               spaces  Ljava/util/Set;
           12   23     8                    i  I
           25   45     8              results  Ljava/util/List;
           27   45     9              success  Z
           28   34    10                    i  I
           30   32    11       currentResults  Ljava/util/List;
      Exception table:
        from    to  target  type
          27    36      36  any
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
          Name  Flags
      criteria  

  private org.hibernate.NaturalIdLoadAccess tryNaturalIdLoadAccess(org.hibernate.internal.CriteriaImpl);
    descriptor: (Lorg/hibernate/internal/CriteriaImpl;)Lorg/hibernate/NaturalIdLoadAccess;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=16, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.internal.CriteriaImpl criteria
         0: .line 1985
            aload 1 /* criteria */
            invokevirtual org.hibernate.internal.CriteriaImpl.isLookupByNaturalKey:()Z
            ifne 2
         1: .line 1986
            aconst_null
            areturn
         2: .line 1989
      StackMap locals:
      StackMap stack:
            aload 1 /* criteria */
            invokevirtual org.hibernate.internal.CriteriaImpl.getEntityOrClassName:()Ljava/lang/String;
            astore 2 /* entityName */
        start local 2 // java.lang.String entityName
         3: .line 1990
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 2 /* entityName */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.entityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            astore 3 /* entityPersister */
        start local 3 // org.hibernate.persister.entity.EntityPersister entityPersister
         4: .line 1994
            aload 3 /* entityPersister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdentifier:()Z
            ifne 6
         5: .line 1995
            aconst_null
            areturn
         6: .line 2000
      StackMap locals: java.lang.String org.hibernate.persister.entity.EntityPersister
      StackMap stack:
            aload 1 /* criteria */
            invokevirtual org.hibernate.internal.CriteriaImpl.iterateExpressionEntries:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.internal.CriteriaImpl$CriterionEntry
            astore 4 /* criterionEntry */
        start local 4 // org.hibernate.internal.CriteriaImpl$CriterionEntry criterionEntry
         7: .line 2001
            aload 4 /* criterionEntry */
            invokevirtual org.hibernate.internal.CriteriaImpl$CriterionEntry.getCriterion:()Lorg/hibernate/criterion/Criterion;
            checkcast org.hibernate.criterion.NaturalIdentifier
            astore 5 /* naturalIdentifier */
        start local 5 // org.hibernate.criterion.NaturalIdentifier naturalIdentifier
         8: .line 2003
            aload 5 /* naturalIdentifier */
            invokevirtual org.hibernate.criterion.NaturalIdentifier.getNaturalIdValues:()Ljava/util/Map;
            astore 6 /* naturalIdValues */
        start local 6 // java.util.Map naturalIdValues
         9: .line 2004
            aload 3 /* entityPersister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getNaturalIdentifierProperties:()[I
            astore 7 /* naturalIdentifierProperties */
        start local 7 // int[] naturalIdentifierProperties
        10: .line 2007
            aload 7 /* naturalIdentifierProperties */
            arraylength
            aload 6 /* naturalIdValues */
            invokeinterface java.util.Map.size:()I
            if_icmpeq 12
        11: .line 2008
            aconst_null
            areturn
        12: .line 2011
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.internal.CriteriaImpl java.lang.String org.hibernate.persister.entity.EntityPersister org.hibernate.internal.CriteriaImpl$CriterionEntry org.hibernate.criterion.NaturalIdentifier java.util.Map int[]
      StackMap stack:
            aload 3 /* entityPersister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getPropertyNames:()[Ljava/lang/String;
            astore 8 /* propertyNames */
        start local 8 // java.lang.String[] propertyNames
        13: .line 2012
            aload 0 /* this */
            aload 2 /* entityName */
            invokevirtual org.hibernate.internal.SessionImpl.byNaturalId:(Ljava/lang/String;)Lorg/hibernate/NaturalIdLoadAccess;
            astore 9 /* naturalIdLoader */
        start local 9 // org.hibernate.NaturalIdLoadAccess naturalIdLoader
        14: .line 2015
            aload 7 /* naturalIdentifierProperties */
            dup
            astore 13
            arraylength
            istore 12
            iconst_0
            istore 11
            goto 22
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.internal.CriteriaImpl java.lang.String org.hibernate.persister.entity.EntityPersister org.hibernate.internal.CriteriaImpl$CriterionEntry org.hibernate.criterion.NaturalIdentifier java.util.Map int[] java.lang.String[] org.hibernate.NaturalIdLoadAccess top int int int[]
      StackMap stack:
        15: aload 13
            iload 11
            iaload
            istore 10 /* naturalIdentifierProperty */
        start local 10 // int naturalIdentifierProperty
        16: .line 2016
            aload 8 /* propertyNames */
            iload 10 /* naturalIdentifierProperty */
            aaload
            astore 14 /* naturalIdProperty */
        start local 14 // java.lang.String naturalIdProperty
        17: .line 2017
            aload 6 /* naturalIdValues */
            aload 14 /* naturalIdProperty */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 15 /* naturalIdValue */
        start local 15 // java.lang.Object naturalIdValue
        18: .line 2019
            aload 15 /* naturalIdValue */
            ifnonnull 20
        19: .line 2021
            aconst_null
            areturn
        20: .line 2024
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.internal.CriteriaImpl java.lang.String org.hibernate.persister.entity.EntityPersister org.hibernate.internal.CriteriaImpl$CriterionEntry org.hibernate.criterion.NaturalIdentifier java.util.Map int[] java.lang.String[] org.hibernate.NaturalIdLoadAccess int int int int[] java.lang.String java.lang.Object
      StackMap stack:
            aload 9 /* naturalIdLoader */
            aload 14 /* naturalIdProperty */
            aload 15 /* naturalIdValue */
            invokeinterface org.hibernate.NaturalIdLoadAccess.using:(Ljava/lang/String;Ljava/lang/Object;)Lorg/hibernate/NaturalIdLoadAccess;
            pop
        end local 15 // java.lang.Object naturalIdValue
        end local 14 // java.lang.String naturalIdProperty
        end local 10 // int naturalIdentifierProperty
        21: .line 2015
            iinc 11 1
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.internal.CriteriaImpl java.lang.String org.hibernate.persister.entity.EntityPersister org.hibernate.internal.CriteriaImpl$CriterionEntry org.hibernate.criterion.NaturalIdentifier java.util.Map int[] java.lang.String[] org.hibernate.NaturalIdLoadAccess top int int int[]
      StackMap stack:
        22: iload 11
            iload 12
            if_icmplt 15
        23: .line 2028
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
        24: .line 2029
            new java.lang.StringBuilder
            dup
            ldc "Session.byNaturalId("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* entityName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        25: .line 2030
            ldc ") should be used for naturalId queries instead of Restrictions.naturalId() from a Criteria"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        26: .line 2029
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        27: .line 2028
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.warn:(Ljava/lang/Object;)V
        28: .line 2033
            aload 9 /* naturalIdLoader */
            areturn
        end local 9 // org.hibernate.NaturalIdLoadAccess naturalIdLoader
        end local 8 // java.lang.String[] propertyNames
        end local 7 // int[] naturalIdentifierProperties
        end local 6 // java.util.Map naturalIdValues
        end local 5 // org.hibernate.criterion.NaturalIdentifier naturalIdentifier
        end local 4 // org.hibernate.internal.CriteriaImpl$CriterionEntry criterionEntry
        end local 3 // org.hibernate.persister.entity.EntityPersister entityPersister
        end local 2 // java.lang.String entityName
        end local 1 // org.hibernate.internal.CriteriaImpl criteria
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   29     0                         this  Lorg/hibernate/internal/SessionImpl;
            0   29     1                     criteria  Lorg/hibernate/internal/CriteriaImpl;
            3   29     2                   entityName  Ljava/lang/String;
            4   29     3              entityPersister  Lorg/hibernate/persister/entity/EntityPersister;
            7   29     4               criterionEntry  Lorg/hibernate/internal/CriteriaImpl$CriterionEntry;
            8   29     5            naturalIdentifier  Lorg/hibernate/criterion/NaturalIdentifier;
            9   29     6              naturalIdValues  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
           10   29     7  naturalIdentifierProperties  [I
           13   29     8                propertyNames  [Ljava/lang/String;
           14   29     9              naturalIdLoader  Lorg/hibernate/NaturalIdLoadAccess;
           16   21    10    naturalIdentifierProperty  I
           17   21    14            naturalIdProperty  Ljava/lang/String;
           18   21    15               naturalIdValue  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      criteria  

  private org.hibernate.persister.entity.OuterJoinLoadable getOuterJoinLoadable(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/persister/entity/OuterJoinLoadable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
         0: .line 2037
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 1 /* entityName */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.entityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            astore 2 /* persister */
        start local 2 // org.hibernate.persister.entity.EntityPersister persister
         1: .line 2038
            aload 2 /* persister */
            instanceof org.hibernate.persister.entity.OuterJoinLoadable
            ifne 3
         2: .line 2039
            new org.hibernate.MappingException
            dup
            new java.lang.StringBuilder
            dup
            ldc "class persister is not OuterJoinLoadable: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* entityName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 2041
      StackMap locals: org.hibernate.persister.entity.EntityPersister
      StackMap stack:
            aload 2 /* persister */
            checkcast org.hibernate.persister.entity.OuterJoinLoadable
            areturn
        end local 2 // org.hibernate.persister.entity.EntityPersister persister
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/hibernate/internal/SessionImpl;
            0    4     1  entityName  Ljava/lang/String;
            1    4     2   persister  Lorg/hibernate/persister/entity/EntityPersister;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
            Name  Flags
      entityName  

  public boolean contains(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object object
         0: .line 2046
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 2047
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 2049
            aload 1 /* object */
            ifnonnull 4
         3: .line 2050
            iconst_0
            ireturn
         4: .line 2054
      StackMap locals:
      StackMap stack:
            aload 1 /* object */
            instanceof org.hibernate.proxy.HibernateProxy
            ifeq 11
         5: .line 2058
            aload 1 /* object */
            checkcast org.hibernate.proxy.HibernateProxy
            invokeinterface org.hibernate.proxy.HibernateProxy.getHibernateLazyInitializer:()Lorg/hibernate/proxy/LazyInitializer;
            astore 2 /* li */
        start local 2 // org.hibernate.proxy.LazyInitializer li
         6: .line 2059
            aload 2 /* li */
            invokeinterface org.hibernate.proxy.LazyInitializer.isUninitialized:()Z
            ifeq 10
         7: .line 2063
            aload 2 /* li */
            invokeinterface org.hibernate.proxy.LazyInitializer.getSession:()Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            aload 0 /* this */
            if_acmpne 8
            iconst_1
            ireturn
      StackMap locals: org.hibernate.proxy.LazyInitializer
      StackMap stack:
         8: iconst_0
         9: ireturn
        10: .line 2070
      StackMap locals:
      StackMap stack:
            aload 2 /* li */
            invokeinterface org.hibernate.proxy.LazyInitializer.getImplementation:()Ljava/lang/Object;
            astore 1 /* object */
        end local 2 // org.hibernate.proxy.LazyInitializer li
        11: .line 2077
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 1 /* object */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.getEntry:(Ljava/lang/Object;)Lorg/hibernate/engine/spi/EntityEntry;
            astore 2 /* entry */
        start local 2 // org.hibernate.engine.spi.EntityEntry entry
        12: .line 2078
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        13: .line 2080
            aload 2 /* entry */
            ifnonnull 23
        14: .line 2081
            ldc Lorg/hibernate/proxy/HibernateProxy;
            aload 1 /* object */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifne 22
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 1 /* object */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.getEntry:(Ljava/lang/Object;)Lorg/hibernate/engine/spi/EntityEntry;
            ifnonnull 22
        15: .line 2084
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getEntityNameResolver:()Lorg/hibernate/EntityNameResolver;
            aload 1 /* object */
            invokeinterface org.hibernate.EntityNameResolver.resolveEntityName:(Ljava/lang/Object;)Ljava/lang/String;
            astore 3 /* entityName */
        start local 3 // java.lang.String entityName
        16: .line 2085
            aload 3 /* entityName */
            ifnonnull 18
        17: .line 2086
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not resolve entity-name ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* object */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 2088
      StackMap locals: org.hibernate.engine.spi.EntityEntry java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getSessionFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 3 /* entityName */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.entityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            pop
        end local 3 // java.lang.String entityName
        19: .line 2089
            goto 22
        20: .line 2090
      StackMap locals: org.hibernate.internal.SessionImpl java.lang.Object org.hibernate.engine.spi.EntityEntry
      StackMap stack: org.hibernate.HibernateException
            astore 3 /* e */
        start local 3 // org.hibernate.HibernateException e
        21: .line 2091
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not an entity ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* object */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // org.hibernate.HibernateException e
        22: .line 2094
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        23: .line 2097
      StackMap locals:
      StackMap stack:
            aload 2 /* entry */
            invokeinterface org.hibernate.engine.spi.EntityEntry.getStatus:()Lorg/hibernate/engine/spi/Status;
            getstatic org.hibernate.engine.spi.Status.DELETED:Lorg/hibernate/engine/spi/Status;
            if_acmpeq 24
            aload 2 /* entry */
            invokeinterface org.hibernate.engine.spi.EntityEntry.getStatus:()Lorg/hibernate/engine/spi/Status;
            getstatic org.hibernate.engine.spi.Status.GONE:Lorg/hibernate/engine/spi/Status;
            if_acmpeq 24
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        24: iconst_0
        25: ireturn
        end local 2 // org.hibernate.engine.spi.EntityEntry entry
        26: .line 2100
      StackMap locals: org.hibernate.internal.SessionImpl java.lang.Object
      StackMap stack: org.hibernate.MappingException
            astore 2 /* e */
        start local 2 // org.hibernate.MappingException e
        27: .line 2101
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* e */
            invokevirtual org.hibernate.MappingException.getMessage:()Ljava/lang/String;
            aload 2 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // org.hibernate.MappingException e
        28: .line 2103
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 2 /* e */
        start local 2 // java.lang.RuntimeException e
        29: .line 2104
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 2 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.RuntimeException e
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   30     0        this  Lorg/hibernate/internal/SessionImpl;
            0   30     1      object  Ljava/lang/Object;
            6   11     2          li  Lorg/hibernate/proxy/LazyInitializer;
           12   26     2       entry  Lorg/hibernate/engine/spi/EntityEntry;
           16   19     3  entityName  Ljava/lang/String;
           21   22     3           e  Lorg/hibernate/HibernateException;
           27   28     2           e  Lorg/hibernate/MappingException;
           29   30     2           e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
          15    19      20  Class org.hibernate.HibernateException
           4     9      26  Class org.hibernate.MappingException
          10    22      26  Class org.hibernate.MappingException
          23    25      26  Class org.hibernate.MappingException
           4     9      28  Class java.lang.RuntimeException
          10    22      28  Class java.lang.RuntimeException
          23    25      28  Class java.lang.RuntimeException
    MethodParameters:
        Name  Flags
      object  

  public boolean contains(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.lang.Object object
         0: .line 2110
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 2111
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 2113
            aload 2 /* object */
            ifnonnull 4
         3: .line 2114
            iconst_0
            ireturn
         4: .line 2118
      StackMap locals:
      StackMap stack:
            ldc Lorg/hibernate/proxy/HibernateProxy;
            aload 2 /* object */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifne 9
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 2 /* object */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.getEntry:(Ljava/lang/Object;)Lorg/hibernate/engine/spi/EntityEntry;
            ifnonnull 9
         5: .line 2121
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getSessionFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 1 /* entityName */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.entityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            pop
         6: .line 2122
            goto 9
         7: .line 2123
      StackMap locals:
      StackMap stack: org.hibernate.HibernateException
            pop
         8: .line 2124
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not an entity ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* entityName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "] : "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* object */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 2128
      StackMap locals:
      StackMap stack:
            aload 2 /* object */
            instanceof org.hibernate.proxy.HibernateProxy
            ifeq 16
        10: .line 2132
            aload 2 /* object */
            checkcast org.hibernate.proxy.HibernateProxy
            invokeinterface org.hibernate.proxy.HibernateProxy.getHibernateLazyInitializer:()Lorg/hibernate/proxy/LazyInitializer;
            astore 3 /* li */
        start local 3 // org.hibernate.proxy.LazyInitializer li
        11: .line 2133
            aload 3 /* li */
            invokeinterface org.hibernate.proxy.LazyInitializer.isUninitialized:()Z
            ifeq 15
        12: .line 2137
            aload 3 /* li */
            invokeinterface org.hibernate.proxy.LazyInitializer.getSession:()Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            aload 0 /* this */
            if_acmpne 13
            iconst_1
            ireturn
      StackMap locals: org.hibernate.proxy.LazyInitializer
      StackMap stack:
        13: iconst_0
        14: ireturn
        15: .line 2144
      StackMap locals:
      StackMap stack:
            aload 3 /* li */
            invokeinterface org.hibernate.proxy.LazyInitializer.getImplementation:()Ljava/lang/Object;
            astore 2 /* object */
        end local 3 // org.hibernate.proxy.LazyInitializer li
        16: .line 2150
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 2 /* object */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.getEntry:(Ljava/lang/Object;)Lorg/hibernate/engine/spi/EntityEntry;
            astore 3 /* entry */
        start local 3 // org.hibernate.engine.spi.EntityEntry entry
        17: .line 2151
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        18: .line 2152
            aload 3 /* entry */
            ifnull 19
            aload 3 /* entry */
            invokeinterface org.hibernate.engine.spi.EntityEntry.getStatus:()Lorg/hibernate/engine/spi/Status;
            getstatic org.hibernate.engine.spi.Status.DELETED:Lorg/hibernate/engine/spi/Status;
            if_acmpeq 19
            aload 3 /* entry */
            invokeinterface org.hibernate.engine.spi.EntityEntry.getStatus:()Lorg/hibernate/engine/spi/Status;
            getstatic org.hibernate.engine.spi.Status.GONE:Lorg/hibernate/engine/spi/Status;
            if_acmpeq 19
            iconst_1
            ireturn
      StackMap locals: org.hibernate.engine.spi.EntityEntry
      StackMap stack:
        19: iconst_0
        20: ireturn
        end local 3 // org.hibernate.engine.spi.EntityEntry entry
        21: .line 2154
      StackMap locals: org.hibernate.internal.SessionImpl java.lang.String java.lang.Object
      StackMap stack: org.hibernate.MappingException
            astore 3 /* e */
        start local 3 // org.hibernate.MappingException e
        22: .line 2155
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* e */
            invokevirtual org.hibernate.MappingException.getMessage:()Ljava/lang/String;
            aload 3 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // org.hibernate.MappingException e
        23: .line 2157
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 3 /* e */
        start local 3 // java.lang.RuntimeException e
        24: .line 2158
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 3 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.RuntimeException e
        end local 2 // java.lang.Object object
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   25     0        this  Lorg/hibernate/internal/SessionImpl;
            0   25     1  entityName  Ljava/lang/String;
            0   25     2      object  Ljava/lang/Object;
           11   16     3          li  Lorg/hibernate/proxy/LazyInitializer;
           17   21     3       entry  Lorg/hibernate/engine/spi/EntityEntry;
           22   23     3           e  Lorg/hibernate/MappingException;
           24   25     3           e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           5     6       7  Class org.hibernate.HibernateException
           4    14      21  Class org.hibernate.MappingException
          15    20      21  Class org.hibernate.MappingException
           4    14      23  Class java.lang.RuntimeException
          15    20      23  Class java.lang.RuntimeException
    MethodParameters:
            Name  Flags
      entityName  
      object      

  public org.hibernate.procedure.ProcedureCall createStoredProcedureCall(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/procedure/ProcedureCall;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String procedureName
         0: .line 2164
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 2166
            aload 0 /* this */
            aload 1 /* procedureName */
            invokespecial org.hibernate.internal.AbstractSessionImpl.createStoredProcedureCall:(Ljava/lang/String;)Lorg/hibernate/procedure/ProcedureCall;
            areturn
        end local 1 // java.lang.String procedureName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/hibernate/internal/SessionImpl;
            0    2     1  procedureName  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      procedureName  

  public org.hibernate.procedure.ProcedureCall createStoredProcedureCall(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)Lorg/hibernate/procedure/ProcedureCall;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String procedureName
        start local 2 // java.lang.String[] resultSetMappings
         0: .line 2171
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 2173
            aload 0 /* this */
            aload 1 /* procedureName */
            aload 2 /* resultSetMappings */
            invokespecial org.hibernate.internal.AbstractSessionImpl.createStoredProcedureCall:(Ljava/lang/String;[Ljava/lang/String;)Lorg/hibernate/procedure/ProcedureCall;
            areturn
        end local 2 // java.lang.String[] resultSetMappings
        end local 1 // java.lang.String procedureName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lorg/hibernate/internal/SessionImpl;
            0    2     1      procedureName  Ljava/lang/String;
            0    2     2  resultSetMappings  [Ljava/lang/String;
    MethodParameters:
                   Name  Flags
      procedureName      
      resultSetMappings  

  public org.hibernate.procedure.ProcedureCall createStoredProcedureCall(java.lang.String, java.lang.Class[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Class;)Lorg/hibernate/procedure/ProcedureCall;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String procedureName
        start local 2 // java.lang.Class[] resultClasses
         0: .line 2178
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 2180
            aload 0 /* this */
            aload 1 /* procedureName */
            aload 2 /* resultClasses */
            invokespecial org.hibernate.internal.AbstractSessionImpl.createStoredProcedureCall:(Ljava/lang/String;[Ljava/lang/Class;)Lorg/hibernate/procedure/ProcedureCall;
            areturn
        end local 2 // java.lang.Class[] resultClasses
        end local 1 // java.lang.String procedureName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/hibernate/internal/SessionImpl;
            0    2     1  procedureName  Ljava/lang/String;
            0    2     2  resultClasses  [Ljava/lang/Class;
    MethodParameters:
               Name  Flags
      procedureName  
      resultClasses  

  public org.hibernate.query.spi.ScrollableResultsImplementor scrollCustomQuery(org.hibernate.loader.custom.CustomQuery, org.hibernate.engine.spi.QueryParameters);
    descriptor: (Lorg/hibernate/loader/custom/CustomQuery;Lorg/hibernate/engine/spi/QueryParameters;)Lorg/hibernate/query/spi/ScrollableResultsImplementor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.loader.custom.CustomQuery customQuery
        start local 2 // org.hibernate.engine.spi.QueryParameters queryParameters
         0: .line 2185
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 2188
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.isTraceEnabled:()Z
            ifeq 3
         2: .line 2189
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            ldc "Scroll SQL query: {0}"
            aload 1 /* customQuery */
            invokeinterface org.hibernate.loader.custom.CustomQuery.getSQL:()Ljava/lang/String;
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.tracev:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 2192
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getQueryPlanCache:()Lorg/hibernate/engine/query/spi/QueryPlanCache;
            invokevirtual org.hibernate.engine.query.spi.QueryPlanCache.getNativeQueryInterpreter:()Lorg/hibernate/engine/query/spi/NativeQueryInterpreter;
            aload 1 /* customQuery */
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.query.spi.NativeQueryInterpreter.createCustomLoader:(Lorg/hibernate/loader/custom/CustomQuery;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Lorg/hibernate/loader/custom/CustomLoader;
            astore 3 /* loader */
        start local 3 // org.hibernate.loader.custom.CustomLoader loader
         4: .line 2194
            aload 0 /* this */
            aload 3 /* loader */
            invokevirtual org.hibernate.loader.custom.CustomLoader.getQuerySpaces:()Ljava/util/Set;
            invokevirtual org.hibernate.internal.SessionImpl.autoFlushIfRequired:(Ljava/util/Set;)Z
            pop
         5: .line 2196
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            iadd
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
         6: .line 2198
            aload 3 /* loader */
            aload 2 /* queryParameters */
            aload 0 /* this */
            invokevirtual org.hibernate.loader.custom.CustomLoader.scroll:(Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Lorg/hibernate/query/spi/ScrollableResultsImplementor;
            astore 5
         7: .line 2201
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
         8: .line 2202
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            isub
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
         9: .line 2198
            aload 5
            areturn
        10: .line 2200
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.loader.custom.CustomQuery org.hibernate.engine.spi.QueryParameters org.hibernate.loader.custom.CustomLoader
      StackMap stack: java.lang.Throwable
            astore 4
        11: .line 2201
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        12: .line 2202
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            isub
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
        13: .line 2203
            aload 4
            athrow
        end local 3 // org.hibernate.loader.custom.CustomLoader loader
        end local 2 // org.hibernate.engine.spi.QueryParameters queryParameters
        end local 1 // org.hibernate.loader.custom.CustomQuery customQuery
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   14     0             this  Lorg/hibernate/internal/SessionImpl;
            0   14     1      customQuery  Lorg/hibernate/loader/custom/CustomQuery;
            0   14     2  queryParameters  Lorg/hibernate/engine/spi/QueryParameters;
            4   14     3           loader  Lorg/hibernate/loader/custom/CustomLoader;
      Exception table:
        from    to  target  type
           6     7      10  any
    MethodParameters:
                 Name  Flags
      customQuery      
      queryParameters  

  public java.util.List listCustomQuery(org.hibernate.loader.custom.CustomQuery, org.hibernate.engine.spi.QueryParameters);
    descriptor: (Lorg/hibernate/loader/custom/CustomQuery;Lorg/hibernate/engine/spi/QueryParameters;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.loader.custom.CustomQuery customQuery
        start local 2 // org.hibernate.engine.spi.QueryParameters queryParameters
         0: .line 2209
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 2212
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.isTraceEnabled:()Z
            ifeq 3
         2: .line 2213
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            ldc "SQL query: {0}"
            aload 1 /* customQuery */
            invokeinterface org.hibernate.loader.custom.CustomQuery.getSQL:()Ljava/lang/String;
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.tracev:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 2216
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getQueryPlanCache:()Lorg/hibernate/engine/query/spi/QueryPlanCache;
            invokevirtual org.hibernate.engine.query.spi.QueryPlanCache.getNativeQueryInterpreter:()Lorg/hibernate/engine/query/spi/NativeQueryInterpreter;
            aload 1 /* customQuery */
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.query.spi.NativeQueryInterpreter.createCustomLoader:(Lorg/hibernate/loader/custom/CustomQuery;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Lorg/hibernate/loader/custom/CustomLoader;
            astore 3 /* loader */
        start local 3 // org.hibernate.loader.custom.CustomLoader loader
         4: .line 2218
            aload 0 /* this */
            aload 3 /* loader */
            invokevirtual org.hibernate.loader.custom.CustomLoader.getQuerySpaces:()Ljava/util/Set;
            invokevirtual org.hibernate.internal.SessionImpl.autoFlushIfRequired:(Ljava/util/Set;)Z
            pop
         5: .line 2220
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            iadd
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
         6: .line 2221
            iconst_0
            istore 4 /* success */
        start local 4 // boolean success
         7: .line 2223
            aload 3 /* loader */
            aload 0 /* this */
            aload 2 /* queryParameters */
            invokevirtual org.hibernate.loader.custom.CustomLoader.list:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/QueryParameters;)Ljava/util/List;
            astore 5 /* results */
        start local 5 // java.util.List results
         8: .line 2224
            iconst_1
            istore 4 /* success */
         9: .line 2225
            aload 5 /* results */
            astore 7
        10: .line 2228
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            isub
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
        11: .line 2229
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        12: .line 2230
            aload 0 /* this */
            iload 4 /* success */
            invokevirtual org.hibernate.internal.SessionImpl.afterOperation:(Z)V
        13: .line 2225
            aload 7
            areturn
        end local 5 // java.util.List results
        14: .line 2227
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.loader.custom.CustomQuery org.hibernate.engine.spi.QueryParameters org.hibernate.loader.custom.CustomLoader int
      StackMap stack: java.lang.Throwable
            astore 6
        15: .line 2228
            aload 0 /* this */
            dup
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            iconst_1
            isub
            putfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
        16: .line 2229
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
        17: .line 2230
            aload 0 /* this */
            iload 4 /* success */
            invokevirtual org.hibernate.internal.SessionImpl.afterOperation:(Z)V
        18: .line 2231
            aload 6
            athrow
        end local 4 // boolean success
        end local 3 // org.hibernate.loader.custom.CustomLoader loader
        end local 2 // org.hibernate.engine.spi.QueryParameters queryParameters
        end local 1 // org.hibernate.loader.custom.CustomQuery customQuery
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   19     0             this  Lorg/hibernate/internal/SessionImpl;
            0   19     1      customQuery  Lorg/hibernate/loader/custom/CustomQuery;
            0   19     2  queryParameters  Lorg/hibernate/engine/spi/QueryParameters;
            4   19     3           loader  Lorg/hibernate/loader/custom/CustomLoader;
            7   19     4          success  Z
            8   14     5          results  Ljava/util/List;
      Exception table:
        from    to  target  type
           7    10      14  any
    MethodParameters:
                 Name  Flags
      customQuery      
      queryParameters  

  public org.hibernate.engine.spi.SessionFactoryImplementor getSessionFactory();
    descriptor: ()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 2237
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            areturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/SessionImpl;

  public void initializeCollection(org.hibernate.collection.spi.PersistentCollection, boolean);
    descriptor: (Lorg/hibernate/collection/spi/PersistentCollection;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.collection.spi.PersistentCollection collection
        start local 2 // boolean writing
         0: .line 2242
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 2243
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 2244
            new org.hibernate.event.spi.InitializeCollectionEvent
            dup
            aload 1 /* collection */
            aload 0 /* this */
            invokespecial org.hibernate.event.spi.InitializeCollectionEvent.<init>:(Lorg/hibernate/collection/spi/PersistentCollection;Lorg/hibernate/event/spi/EventSource;)V
            astore 3 /* event */
        start local 3 // org.hibernate.event.spi.InitializeCollectionEvent event
         3: .line 2245
            aload 0 /* this */
            getstatic org.hibernate.event.spi.EventType.INIT_COLLECTION:Lorg/hibernate/event/spi/EventType;
            invokevirtual org.hibernate.internal.SessionImpl.listeners:(Lorg/hibernate/event/spi/EventType;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 5
            goto 6
      StackMap locals: org.hibernate.internal.SessionImpl org.hibernate.collection.spi.PersistentCollection int org.hibernate.event.spi.InitializeCollectionEvent top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.event.spi.InitializeCollectionEventListener
            astore 4 /* listener */
        start local 4 // org.hibernate.event.spi.InitializeCollectionEventListener listener
         5: .line 2246
            aload 4 /* listener */
            aload 3 /* event */
            invokeinterface org.hibernate.event.spi.InitializeCollectionEventListener.onInitializeCollection:(Lorg/hibernate/event/spi/InitializeCollectionEvent;)V
        end local 4 // org.hibernate.event.spi.InitializeCollectionEventListener listener
         6: .line 2245
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 2248
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.delayedAfterCompletion:()V
         8: .line 2249
            return
        end local 3 // org.hibernate.event.spi.InitializeCollectionEvent event
        end local 2 // boolean writing
        end local 1 // org.hibernate.collection.spi.PersistentCollection collection
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lorg/hibernate/internal/SessionImpl;
            0    9     1  collection  Lorg/hibernate/collection/spi/PersistentCollection;
            0    9     2     writing  Z
            3    9     3       event  Lorg/hibernate/event/spi/InitializeCollectionEvent;
            5    6     4    listener  Lorg/hibernate/event/spi/InitializeCollectionEventListener;
    MethodParameters:
            Name  Flags
      collection  
      writing     

  public java.lang.String bestGuessEntityName(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object object
         0: .line 2253
            aload 1 /* object */
            instanceof org.hibernate.proxy.HibernateProxy
            ifeq 5
         1: .line 2254
            aload 1 /* object */
            checkcast org.hibernate.proxy.HibernateProxy
            invokeinterface org.hibernate.proxy.HibernateProxy.getHibernateLazyInitializer:()Lorg/hibernate/proxy/LazyInitializer;
            astore 2 /* initializer */
        start local 2 // org.hibernate.proxy.LazyInitializer initializer
         2: .line 2257
            aload 2 /* initializer */
            invokeinterface org.hibernate.proxy.LazyInitializer.isUninitialized:()Z
            ifeq 4
         3: .line 2258
            aload 2 /* initializer */
            invokeinterface org.hibernate.proxy.LazyInitializer.getEntityName:()Ljava/lang/String;
            areturn
         4: .line 2260
      StackMap locals: org.hibernate.proxy.LazyInitializer
      StackMap stack:
            aload 2 /* initializer */
            invokeinterface org.hibernate.proxy.LazyInitializer.getImplementation:()Ljava/lang/Object;
            astore 1 /* object */
        end local 2 // org.hibernate.proxy.LazyInitializer initializer
         5: .line 2262
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 1 /* object */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.getEntry:(Ljava/lang/Object;)Lorg/hibernate/engine/spi/EntityEntry;
            astore 2 /* entry */
        start local 2 // org.hibernate.engine.spi.EntityEntry entry
         6: .line 2263
            aload 2 /* entry */
            ifnonnull 8
         7: .line 2264
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual org.hibernate.internal.SessionImpl.guessEntityName:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
         8: .line 2267
      StackMap locals: org.hibernate.engine.spi.EntityEntry
      StackMap stack:
            aload 2 /* entry */
            invokeinterface org.hibernate.engine.spi.EntityEntry.getPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            invokeinterface org.hibernate.persister.entity.EntityPersister.getEntityName:()Ljava/lang/String;
            areturn
        end local 2 // org.hibernate.engine.spi.EntityEntry entry
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lorg/hibernate/internal/SessionImpl;
            0    9     1       object  Ljava/lang/Object;
            2    5     2  initializer  Lorg/hibernate/proxy/LazyInitializer;
            6    9     2        entry  Lorg/hibernate/engine/spi/EntityEntry;
    MethodParameters:
        Name  Flags
      object  

  public java.lang.String getEntityName(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object object
         0: .line 2273
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 2275
            aload 1 /* object */
            instanceof org.hibernate.proxy.HibernateProxy
            ifeq 5
         2: .line 2276
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 1 /* object */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.containsProxy:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 2277
            new org.hibernate.TransientObjectException
            dup
            ldc "proxy was not associated with the session"
            invokespecial org.hibernate.TransientObjectException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 2279
      StackMap locals:
      StackMap stack:
            aload 1 /* object */
            checkcast org.hibernate.proxy.HibernateProxy
            invokeinterface org.hibernate.proxy.HibernateProxy.getHibernateLazyInitializer:()Lorg/hibernate/proxy/LazyInitializer;
            invokeinterface org.hibernate.proxy.LazyInitializer.getImplementation:()Ljava/lang/Object;
            astore 1 /* object */
         5: .line 2282
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 1 /* object */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.getEntry:(Ljava/lang/Object;)Lorg/hibernate/engine/spi/EntityEntry;
            astore 2 /* entry */
        start local 2 // org.hibernate.engine.spi.EntityEntry entry
         6: .line 2283
            aload 2 /* entry */
            ifnonnull 8
         7: .line 2284
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual org.hibernate.internal.SessionImpl.throwTransientObjectException:(Ljava/lang/Object;)V
         8: .line 2286
      StackMap locals: org.hibernate.engine.spi.EntityEntry
      StackMap stack:
            aload 2 /* entry */
            invokeinterface org.hibernate.engine.spi.EntityEntry.getPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            invokeinterface org.hibernate.persister.entity.EntityPersister.getEntityName:()Ljava/lang/String;
            areturn
        end local 2 // org.hibernate.engine.spi.EntityEntry entry
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lorg/hibernate/internal/SessionImpl;
            0    9     1  object  Ljava/lang/Object;
            6    9     2   entry  Lorg/hibernate/engine/spi/EntityEntry;
    MethodParameters:
        Name  Flags
      object  

  private void throwTransientObjectException(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object object
         0: .line 2290
            new org.hibernate.TransientObjectException
            dup
         1: .line 2291
            new java.lang.StringBuilder
            dup
            ldc "object references an unsaved transient instance - save the transient instance before flushing: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 2292
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual org.hibernate.internal.SessionImpl.guessEntityName:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 2291
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 2290
            invokespecial org.hibernate.TransientObjectException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/hibernate/internal/SessionImpl;
            0    5     1  object  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
        Name  Flags
      object  

  public java.lang.String guessEntityName(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object object
         0: .line 2298
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 2299
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getEntityNameResolver:()Lorg/hibernate/EntityNameResolver;
            aload 1 /* object */
            invokeinterface org.hibernate.EntityNameResolver.resolveEntityName:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/hibernate/internal/SessionImpl;
            0    2     1  object  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
        Name  Flags
      object  

  public void cancelQuery();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 2304
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 2305
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.cancelLastQuery:()V
         2: .line 2306
            return
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/internal/SessionImpl;
    Exceptions:
      throws org.hibernate.HibernateException

  public int getDontFlushFromFind();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 2311
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.dontFlushFromFind:I
            ireturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/SessionImpl;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 2316
            new java.lang.StringBuilder
            dup
            sipush 500
            invokespecial java.lang.StringBuilder.<init>:(I)V
         1: .line 2317
            ldc "SessionImpl("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 2316
            astore 1 /* buf */
        start local 1 // java.lang.StringBuilder buf
         3: .line 2318
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.isClosed:()Z
            ifne 8
         4: .line 2319
            aload 1 /* buf */
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         5: .line 2320
            ldc ";"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 2321
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.actionQueue:Lorg/hibernate/engine/spi/ActionQueue;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         7: .line 2322
            goto 9
         8: .line 2324
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 1 /* buf */
            ldc "<closed>"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 2326
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder buf
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/hibernate/internal/SessionImpl;
            3   10     1   buf  Ljava/lang/StringBuilder;

  public org.hibernate.engine.spi.ActionQueue getActionQueue();
    descriptor: ()Lorg/hibernate/engine/spi/ActionQueue;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 2331
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 2333
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.actionQueue:Lorg/hibernate/engine/spi/ActionQueue;
            areturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/internal/SessionImpl;

  public org.hibernate.engine.spi.PersistenceContext getPersistenceContext();
    descriptor: ()Lorg/hibernate/engine/spi/PersistenceContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 2338
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 2340
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            areturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/internal/SessionImpl;

  public org.hibernate.stat.SessionStatistics getStatistics();
    descriptor: ()Lorg/hibernate/stat/SessionStatistics;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 2345
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         1: .line 2346
            new org.hibernate.stat.internal.SessionStatisticsImpl
            dup
            aload 0 /* this */
            invokespecial org.hibernate.stat.internal.SessionStatisticsImpl.<init>:(Lorg/hibernate/engine/spi/SessionImplementor;)V
            areturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/internal/SessionImpl;

  public boolean isEventSource();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 2351
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         1: .line 2352
            iconst_1
            ireturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/internal/SessionImpl;

  public boolean isDefaultReadOnly();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 2357
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.isDefaultReadOnly:()Z
            ireturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/SessionImpl;

  public void setDefaultReadOnly(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // boolean defaultReadOnly
         0: .line 2362
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            iload 1 /* defaultReadOnly */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.setDefaultReadOnly:(Z)V
         1: .line 2363
            return
        end local 1 // boolean defaultReadOnly
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/hibernate/internal/SessionImpl;
            0    2     1  defaultReadOnly  Z
    MethodParameters:
                 Name  Flags
      defaultReadOnly  

  public boolean isReadOnly(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object entityOrProxy
         0: .line 2367
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 2369
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 1 /* entityOrProxy */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.isReadOnly:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object entityOrProxy
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/hibernate/internal/SessionImpl;
            0    2     1  entityOrProxy  Ljava/lang/Object;
    MethodParameters:
               Name  Flags
      entityOrProxy  

  public void setReadOnly(java.lang.Object, boolean);
    descriptor: (Ljava/lang/Object;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object entity
        start local 2 // boolean readOnly
         0: .line 2374
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 2376
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 1 /* entity */
            iload 2 /* readOnly */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.setReadOnly:(Ljava/lang/Object;Z)V
         2: .line 2377
            return
        end local 2 // boolean readOnly
        end local 1 // java.lang.Object entity
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/hibernate/internal/SessionImpl;
            0    3     1    entity  Ljava/lang/Object;
            0    3     2  readOnly  Z
    MethodParameters:
          Name  Flags
      entity    
      readOnly  

  public void doWork(org.hibernate.jdbc.Work);
    descriptor: (Lorg/hibernate/jdbc/Work;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.jdbc.Work work
         0: .line 2381
            new org.hibernate.internal.SessionImpl$2
            dup
            aload 0 /* this */
            aload 1 /* work */
            invokespecial org.hibernate.internal.SessionImpl$2.<init>:(Lorg/hibernate/internal/SessionImpl;Lorg/hibernate/jdbc/Work;)V
            astore 2 /* realWork */
        start local 2 // org.hibernate.jdbc.WorkExecutorVisitable realWork
         1: .line 2388
            aload 0 /* this */
            aload 2 /* realWork */
            invokevirtual org.hibernate.internal.SessionImpl.doWork:(Lorg/hibernate/jdbc/WorkExecutorVisitable;)Ljava/lang/Object;
            pop
         2: .line 2389
            return
        end local 2 // org.hibernate.jdbc.WorkExecutorVisitable realWork
        end local 1 // org.hibernate.jdbc.Work work
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/hibernate/internal/SessionImpl;
            0    3     1      work  Lorg/hibernate/jdbc/Work;
            1    3     2  realWork  Lorg/hibernate/jdbc/WorkExecutorVisitable<Ljava/lang/Void;>;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
      Name  Flags
      work  final

  public <T> T doReturningWork(org.hibernate.jdbc.ReturningWork<T>);
    descriptor: (Lorg/hibernate/jdbc/ReturningWork;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.jdbc.ReturningWork work
         0: .line 2393
            new org.hibernate.internal.SessionImpl$3
            dup
            aload 0 /* this */
            aload 1 /* work */
            invokespecial org.hibernate.internal.SessionImpl$3.<init>:(Lorg/hibernate/internal/SessionImpl;Lorg/hibernate/jdbc/ReturningWork;)V
            astore 2 /* realWork */
        start local 2 // org.hibernate.jdbc.WorkExecutorVisitable realWork
         1: .line 2399
            aload 0 /* this */
            aload 2 /* realWork */
            invokevirtual org.hibernate.internal.SessionImpl.doWork:(Lorg/hibernate/jdbc/WorkExecutorVisitable;)Ljava/lang/Object;
            areturn
        end local 2 // org.hibernate.jdbc.WorkExecutorVisitable realWork
        end local 1 // org.hibernate.jdbc.ReturningWork work
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/hibernate/internal/SessionImpl;
            0    2     1      work  Lorg/hibernate/jdbc/ReturningWork<TT;>;
            1    2     2  realWork  Lorg/hibernate/jdbc/WorkExecutorVisitable<TT;>;
    Exceptions:
      throws org.hibernate.HibernateException
    Signature: <T:Ljava/lang/Object;>(Lorg/hibernate/jdbc/ReturningWork<TT;>;)TT;
    MethodParameters:
      Name  Flags
      work  final

  private <T> T doWork(org.hibernate.jdbc.WorkExecutorVisitable<T>);
    descriptor: (Lorg/hibernate/jdbc/WorkExecutorVisitable;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.jdbc.WorkExecutorVisitable work
         0: .line 2403
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            aload 1 /* work */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.coordinateWork:(Lorg/hibernate/jdbc/WorkExecutorVisitable;)Ljava/lang/Object;
            areturn
        end local 1 // org.hibernate.jdbc.WorkExecutorVisitable work
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  work  Lorg/hibernate/jdbc/WorkExecutorVisitable<TT;>;
    Exceptions:
      throws org.hibernate.HibernateException
    Signature: <T:Ljava/lang/Object;>(Lorg/hibernate/jdbc/WorkExecutorVisitable<TT;>;)TT;
    MethodParameters:
      Name  Flags
      work  

  public void afterScrollOperation();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 2409
            return
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/SessionImpl;

  public org.hibernate.engine.spi.LoadQueryInfluencers getLoadQueryInfluencers();
    descriptor: ()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 2413
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.loadQueryInfluencers:Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            areturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/SessionImpl;

  public org.hibernate.Filter getEnabledFilter(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/Filter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String filterName
         0: .line 2420
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         1: .line 2421
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.loadQueryInfluencers:Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            aload 1 /* filterName */
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.getEnabledFilter:(Ljava/lang/String;)Lorg/hibernate/Filter;
            areturn
        end local 1 // java.lang.String filterName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/hibernate/internal/SessionImpl;
            0    2     1  filterName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      filterName  

  public org.hibernate.Filter enableFilter(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/Filter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String filterName
         0: .line 2426
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 2427
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 2428
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.loadQueryInfluencers:Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            aload 1 /* filterName */
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.enableFilter:(Ljava/lang/String;)Lorg/hibernate/Filter;
            areturn
        end local 1 // java.lang.String filterName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/hibernate/internal/SessionImpl;
            0    3     1  filterName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      filterName  

  public void disableFilter(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String filterName
         0: .line 2433
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 2434
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionSynchStatus:()V
         2: .line 2435
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.loadQueryInfluencers:Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            aload 1 /* filterName */
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.disableFilter:(Ljava/lang/String;)V
         3: .line 2436
            return
        end local 1 // java.lang.String filterName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/hibernate/internal/SessionImpl;
            0    4     1  filterName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      filterName  

  public boolean isFetchProfileEnabled(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String name
         0: .line 2443
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.loadQueryInfluencers:Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            aload 1 /* name */
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.isFetchProfileEnabled:(Ljava/lang/String;)Z
            ireturn
        end local 1 // java.lang.String name
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  name  Ljava/lang/String;
    Exceptions:
      throws org.hibernate.UnknownProfileException
    MethodParameters:
      Name  Flags
      name  

  public void enableFetchProfile(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String name
         0: .line 2448
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.loadQueryInfluencers:Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            aload 1 /* name */
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.enableFetchProfile:(Ljava/lang/String;)V
         1: .line 2449
            return
        end local 1 // java.lang.String name
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/internal/SessionImpl;
            0    2     1  name  Ljava/lang/String;
    Exceptions:
      throws org.hibernate.UnknownProfileException
    MethodParameters:
      Name  Flags
      name  

  public void disableFetchProfile(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String name
         0: .line 2453
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.loadQueryInfluencers:Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            aload 1 /* name */
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.disableFetchProfile:(Ljava/lang/String;)V
         1: .line 2454
            return
        end local 1 // java.lang.String name
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/internal/SessionImpl;
            0    2     1  name  Ljava/lang/String;
    Exceptions:
      throws org.hibernate.UnknownProfileException
    MethodParameters:
      Name  Flags
      name  

  public org.hibernate.TypeHelper getTypeHelper();
    descriptor: ()Lorg/hibernate/TypeHelper;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 2458
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getSessionFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getTypeHelper:()Lorg/hibernate/TypeHelper;
            areturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/SessionImpl;

  public org.hibernate.LobHelper getLobHelper();
    descriptor: ()Lorg/hibernate/LobHelper;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 2463
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.lobHelper:Lorg/hibernate/internal/SessionImpl$LobHelperImpl;
            ifnonnull 2
         1: .line 2464
            aload 0 /* this */
            new org.hibernate.internal.SessionImpl$LobHelperImpl
            dup
            aload 0 /* this */
            invokespecial org.hibernate.internal.SessionImpl$LobHelperImpl.<init>:(Lorg/hibernate/internal/SessionImpl;)V
            putfield org.hibernate.internal.SessionImpl.lobHelper:Lorg/hibernate/internal/SessionImpl$LobHelperImpl;
         2: .line 2466
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.lobHelper:Lorg/hibernate/internal/SessionImpl$LobHelperImpl;
            areturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/internal/SessionImpl;

  public void beforeTransactionCompletion();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 2473
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            ldc "SessionImpl#beforeTransactionCompletion()"
            iconst_0
            anewarray java.lang.Object
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.tracef:(Ljava/lang/String;[Ljava/lang/Object;)V
         1: .line 2474
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion:()V
         2: .line 2475
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.actionQueue:Lorg/hibernate/engine/spi/ActionQueue;
            invokevirtual org.hibernate.engine.spi.ActionQueue.beforeTransactionCompletion:()V
         3: .line 2477
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getInterceptor:()Lorg/hibernate/Interceptor;
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getCurrentTransaction:()Lorg/hibernate/engine/transaction/spi/TransactionImplementor;
            invokeinterface org.hibernate.Interceptor.beforeTransactionCompletion:(Lorg/hibernate/Transaction;)V
         4: .line 2478
            goto 7
         5: .line 2479
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         6: .line 2480
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            aload 1 /* t */
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.exceptionInBeforeTransactionCompletionInterceptor:(Ljava/lang/Throwable;)V
        end local 1 // java.lang.Throwable t
         7: .line 2482
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial org.hibernate.internal.AbstractSessionImpl.beforeTransactionCompletion:()V
         8: .line 2483
            return
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/hibernate/internal/SessionImpl;
            6    7     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.Throwable

  public void afterTransactionCompletion(boolean, boolean);
    descriptor: (ZZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // boolean successful
        start local 2 // boolean delayed
         0: .line 2487
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            ldc "SessionImpl#afterTransactionCompletion(successful=%s, delayed=%s)"
            iload 1 /* successful */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            iload 2 /* delayed */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.tracef:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 2489
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.isClosed:()Z
            ifeq 2
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.waitingForAutoClose:Z
            ifeq 4
         2: .line 2490
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.autoClear:Z
            ifne 3
            iload 1 /* successful */
            ifne 4
         3: .line 2491
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.internalClear:()V
         4: .line 2495
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.afterTransactionCompletion:()V
         5: .line 2496
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.actionQueue:Lorg/hibernate/engine/spi/ActionQueue;
            iload 1 /* successful */
            invokevirtual org.hibernate.engine.spi.ActionQueue.afterTransactionCompletion:(Z)V
         6: .line 2498
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getEventListenerManager:()Lorg/hibernate/engine/spi/SessionEventListenerManager;
            iload 1 /* successful */
            invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.transactionCompletion:(Z)V
         7: .line 2500
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatistics:()Lorg/hibernate/stat/spi/StatisticsImplementor;
            invokeinterface org.hibernate.stat.spi.StatisticsImplementor.isStatisticsEnabled:()Z
            ifeq 9
         8: .line 2501
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatistics:()Lorg/hibernate/stat/spi/StatisticsImplementor;
            iload 1 /* successful */
            invokeinterface org.hibernate.stat.spi.StatisticsImplementor.endTransaction:(Z)V
         9: .line 2505
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getInterceptor:()Lorg/hibernate/Interceptor;
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getCurrentTransaction:()Lorg/hibernate/engine/transaction/spi/TransactionImplementor;
            invokeinterface org.hibernate.Interceptor.afterTransactionCompletion:(Lorg/hibernate/Transaction;)V
        10: .line 2506
            goto 13
        11: .line 2507
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
        12: .line 2508
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            aload 3 /* t */
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.exceptionInAfterTransactionCompletionInterceptor:(Ljava/lang/Throwable;)V
        end local 3 // java.lang.Throwable t
        13: .line 2511
      StackMap locals:
      StackMap stack:
            iload 2 /* delayed */
            ifne 16
        14: .line 2512
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.shouldAutoClose:()Z
            ifeq 16
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.isClosed:()Z
            ifeq 15
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.waitingForAutoClose:Z
            ifeq 16
        15: .line 2513
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.managedClose:()V
        16: .line 2517
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* successful */
            iload 2 /* delayed */
            invokespecial org.hibernate.internal.AbstractSessionImpl.afterTransactionCompletion:(ZZ)V
        17: .line 2518
            return
        end local 2 // boolean delayed
        end local 1 // boolean successful
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Lorg/hibernate/internal/SessionImpl;
            0   18     1  successful  Z
            0   18     2     delayed  Z
           12   13     3           t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           9    10      11  Class java.lang.Throwable
    MethodParameters:
            Name  Flags
      successful  
      delayed     

  protected void addSharedSessionTransactionObserver(org.hibernate.resource.transaction.spi.TransactionCoordinator);
    descriptor: (Lorg/hibernate/resource/transaction/spi/TransactionCoordinator;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.resource.transaction.spi.TransactionCoordinator transactionCoordinator
         0: .line 2714
            aload 0 /* this */
            new org.hibernate.internal.SessionImpl$4
            dup
            aload 0 /* this */
            invokespecial org.hibernate.internal.SessionImpl$4.<init>:(Lorg/hibernate/internal/SessionImpl;)V
            putfield org.hibernate.internal.SessionImpl.transactionObserver:Lorg/hibernate/engine/transaction/spi/TransactionObserver;
         1: .line 2741
            aload 1 /* transactionCoordinator */
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.transactionObserver:Lorg/hibernate/engine/transaction/spi/TransactionObserver;
            invokeinterface org.hibernate.resource.transaction.spi.TransactionCoordinator.addObserver:(Lorg/hibernate/engine/transaction/spi/TransactionObserver;)V
         2: .line 2742
            return
        end local 1 // org.hibernate.resource.transaction.spi.TransactionCoordinator transactionCoordinator
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    3     0                    this  Lorg/hibernate/internal/SessionImpl;
            0    3     1  transactionCoordinator  Lorg/hibernate/resource/transaction/spi/TransactionCoordinator;
    MethodParameters:
                        Name  Flags
      transactionCoordinator  

  protected void removeSharedSessionTransactionObserver(org.hibernate.resource.transaction.spi.TransactionCoordinator);
    descriptor: (Lorg/hibernate/resource/transaction/spi/TransactionCoordinator;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.resource.transaction.spi.TransactionCoordinator transactionCoordinator
         0: .line 2746
            aload 0 /* this */
            aload 1 /* transactionCoordinator */
            invokespecial org.hibernate.internal.AbstractSessionImpl.removeSharedSessionTransactionObserver:(Lorg/hibernate/resource/transaction/spi/TransactionCoordinator;)V
         1: .line 2747
            aload 1 /* transactionCoordinator */
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.transactionObserver:Lorg/hibernate/engine/transaction/spi/TransactionObserver;
            invokeinterface org.hibernate.resource.transaction.spi.TransactionCoordinator.removeObserver:(Lorg/hibernate/engine/transaction/spi/TransactionObserver;)V
         2: .line 2748
            return
        end local 1 // org.hibernate.resource.transaction.spi.TransactionCoordinator transactionCoordinator
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    3     0                    this  Lorg/hibernate/internal/SessionImpl;
            0    3     1  transactionCoordinator  Lorg/hibernate/resource/transaction/spi/TransactionCoordinator;
    MethodParameters:
                        Name  Flags
      transactionCoordinator  

  private org.hibernate.persister.entity.EntityPersister locateEntityPersister(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Lorg/hibernate/persister/entity/EntityPersister;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Class entityClass
         0: .line 3013
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 1 /* entityClass */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.locateEntityPersister:(Ljava/lang/Class;)Lorg/hibernate/persister/entity/EntityPersister;
            areturn
        end local 1 // java.lang.Class entityClass
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityClass  Ljava/lang/Class;
    MethodParameters:
             Name  Flags
      entityClass  

  private org.hibernate.persister.entity.EntityPersister locateEntityPersister(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String entityName
         0: .line 3017
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 1 /* entityName */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.locateEntityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            areturn
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      entityName  

  public void startTransactionBoundary();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 3261
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 3262
            aload 0 /* this */
            invokespecial org.hibernate.internal.AbstractSessionImpl.startTransactionBoundary:()V
         2: .line 3263
            return
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/internal/SessionImpl;

  public void afterTransactionBegin();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 3267
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpenOrWaitingForAutoClose:()V
         1: .line 3268
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getInterceptor:()Lorg/hibernate/Interceptor;
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getCurrentTransaction:()Lorg/hibernate/engine/transaction/spi/TransactionImplementor;
            invokeinterface org.hibernate.Interceptor.afterTransactionBegin:(Lorg/hibernate/Transaction;)V
         2: .line 3269
            return
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/internal/SessionImpl;

  public void flushBeforeTransactionCompletion();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 3273
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.isTransactionFlushable:()Z
            ifeq 3
         1: .line 3274
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getHibernateFlushMode:()Lorg/hibernate/FlushMode;
            getstatic org.hibernate.FlushMode.MANUAL:Lorg/hibernate/FlushMode;
            if_acmpeq 3
         2: .line 3273
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 1 /* doFlush */
        start local 1 // boolean doFlush
         5: .line 3277
            iload 1 /* doFlush */
            ifeq 10
         6: .line 3278
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.managedFlush:()V
         7: .line 3280
            goto 10
         8: .line 3281
      StackMap locals: org.hibernate.internal.SessionImpl int
      StackMap stack: java.lang.RuntimeException
            astore 2 /* re */
        start local 2 // java.lang.RuntimeException re
         9: .line 3282
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionMapper:Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/ExceptionMapper;
            ldc "error during managed flush"
            aload 2 /* re */
            aload 0 /* this */
            invokeinterface org.hibernate.resource.transaction.backend.jta.internal.synchronization.ExceptionMapper.mapManagedFlushFailure:(Ljava/lang/String;Ljava/lang/RuntimeException;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.RuntimeException re
        10: .line 3284
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean doFlush
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lorg/hibernate/internal/SessionImpl;
            5   11     1  doFlush  Z
            9   10     2       re  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           5     7       8  Class java.lang.RuntimeException

  private boolean isTransactionFlushable();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 3287
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getCurrentTransaction:()Lorg/hibernate/engine/transaction/spi/TransactionImplementor;
            ifnonnull 2
         1: .line 3289
            iconst_1
            ireturn
         2: .line 3291
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getCurrentTransaction:()Lorg/hibernate/engine/transaction/spi/TransactionImplementor;
            invokeinterface org.hibernate.engine.transaction.spi.TransactionImplementor.getStatus:()Lorg/hibernate/resource/transaction/spi/TransactionStatus;
            astore 1 /* status */
        start local 1 // org.hibernate.resource.transaction.spi.TransactionStatus status
         3: .line 3292
            aload 1 /* status */
            getstatic org.hibernate.resource.transaction.spi.TransactionStatus.ACTIVE:Lorg/hibernate/resource/transaction/spi/TransactionStatus;
            if_acmpeq 4
            aload 1 /* status */
            getstatic org.hibernate.resource.transaction.spi.TransactionStatus.COMMITTING:Lorg/hibernate/resource/transaction/spi/TransactionStatus;
            if_acmpeq 4
            iconst_0
            ireturn
      StackMap locals: org.hibernate.resource.transaction.spi.TransactionStatus
      StackMap stack:
         4: iconst_1
            ireturn
        end local 1 // org.hibernate.resource.transaction.spi.TransactionStatus status
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/hibernate/internal/SessionImpl;
            3    5     1  status  Lorg/hibernate/resource/transaction/spi/TransactionStatus;

  public boolean isFlushBeforeCompletionEnabled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 3297
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getHibernateFlushMode:()Lorg/hibernate/FlushMode;
            getstatic org.hibernate.FlushMode.MANUAL:Lorg/hibernate/FlushMode;
            if_acmpeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/internal/SessionImpl;

  public org.hibernate.engine.spi.SessionImplementor getSession();
    descriptor: ()Lorg/hibernate/engine/spi/SessionImplementor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 3324
            aload 0 /* this */
            areturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/SessionImpl;

  public org.hibernate.LockOptions getLockRequest(javax.persistence.LockModeType, java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Ljavax/persistence/LockModeType;Ljava/util/Map;)Lorg/hibernate/LockOptions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // javax.persistence.LockModeType lockModeType
        start local 2 // java.util.Map properties
         0: .line 3334
            new org.hibernate.LockOptions
            dup
            invokespecial org.hibernate.LockOptions.<init>:()V
            astore 3 /* lockOptions */
        start local 3 // org.hibernate.LockOptions lockOptions
         1: .line 3335
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.lockOptions:Lorg/hibernate/LockOptions;
            aload 3 /* lockOptions */
            invokestatic org.hibernate.LockOptions.copy:(Lorg/hibernate/LockOptions;Lorg/hibernate/LockOptions;)Lorg/hibernate/LockOptions;
            pop
         2: .line 3336
            aload 3 /* lockOptions */
            aload 1 /* lockModeType */
            invokestatic org.hibernate.jpa.internal.util.LockModeTypeHelper.getLockMode:(Ljavax/persistence/LockModeType;)Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.LockOptions.setLockMode:(Lorg/hibernate/LockMode;)Lorg/hibernate/LockOptions;
            pop
         3: .line 3337
            aload 2 /* properties */
            ifnull 5
         4: .line 3338
            aload 0 /* this */
            aload 2 /* properties */
            aload 3 /* lockOptions */
            invokevirtual org.hibernate.internal.SessionImpl.setLockOptions:(Ljava/util/Map;Lorg/hibernate/LockOptions;)V
         5: .line 3340
      StackMap locals: org.hibernate.LockOptions
      StackMap stack:
            aload 3 /* lockOptions */
            areturn
        end local 3 // org.hibernate.LockOptions lockOptions
        end local 2 // java.util.Map properties
        end local 1 // javax.persistence.LockModeType lockModeType
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/hibernate/internal/SessionImpl;
            0    6     1  lockModeType  Ljavax/persistence/LockModeType;
            0    6     2    properties  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            1    6     3   lockOptions  Lorg/hibernate/LockOptions;
    Signature: (Ljavax/persistence/LockModeType;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lorg/hibernate/LockOptions;
    MethodParameters:
              Name  Flags
      lockModeType  
      properties    

  private void setLockOptions(java.util.Map<java.lang.String, java.lang.Object>, org.hibernate.LockOptions);
    descriptor: (Ljava/util/Map;Lorg/hibernate/LockOptions;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.util.Map props
        start local 2 // org.hibernate.LockOptions options
         0: .line 3344
            aload 1 /* props */
            ldc "javax.persistence.lock.scope"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* lockScope */
        start local 3 // java.lang.Object lockScope
         1: .line 3345
            aload 3 /* lockScope */
            instanceof java.lang.String
            ifeq 4
            aload 3 /* lockScope */
            checkcast java.lang.String
            invokestatic javax.persistence.PessimisticLockScope.valueOf:(Ljava/lang/String;)Ljavax/persistence/PessimisticLockScope;
            getstatic javax.persistence.PessimisticLockScope.EXTENDED:Ljavax/persistence/PessimisticLockScope;
            if_acmpne 4
         2: .line 3346
            aload 2 /* options */
            iconst_1
            invokevirtual org.hibernate.LockOptions.setScope:(Z)Lorg/hibernate/LockOptions;
            pop
         3: .line 3347
            goto 10
         4: .line 3348
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* lockScope */
            instanceof javax.persistence.PessimisticLockScope
            ifeq 8
         5: .line 3349
            getstatic javax.persistence.PessimisticLockScope.EXTENDED:Ljavax/persistence/PessimisticLockScope;
            aload 3 /* lockScope */
            invokevirtual javax.persistence.PessimisticLockScope.equals:(Ljava/lang/Object;)Z
            istore 4 /* extended */
        start local 4 // boolean extended
         6: .line 3350
            aload 2 /* options */
            iload 4 /* extended */
            invokevirtual org.hibernate.LockOptions.setScope:(Z)Lorg/hibernate/LockOptions;
            pop
        end local 4 // boolean extended
         7: .line 3351
            goto 10
         8: .line 3352
      StackMap locals:
      StackMap stack:
            aload 3 /* lockScope */
            ifnull 10
         9: .line 3353
            new javax.persistence.PersistenceException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to parse javax.persistence.lock.scope: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* lockScope */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.persistence.PersistenceException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 3356
      StackMap locals:
      StackMap stack:
            aload 1 /* props */
            ldc "javax.persistence.lock.timeout"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* lockTimeout */
        start local 4 // java.lang.Object lockTimeout
        11: .line 3357
            iconst_0
            istore 5 /* timeout */
        start local 5 // int timeout
        12: .line 3358
            iconst_0
            istore 6 /* timeoutSet */
        start local 6 // boolean timeoutSet
        13: .line 3359
            aload 4 /* lockTimeout */
            instanceof java.lang.String
            ifeq 17
        14: .line 3360
            aload 4 /* lockTimeout */
            checkcast java.lang.String
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 5 /* timeout */
        15: .line 3361
            iconst_1
            istore 6 /* timeoutSet */
        16: .line 3362
            goto 23
        17: .line 3363
      StackMap locals: java.lang.Object int int
      StackMap stack:
            aload 4 /* lockTimeout */
            instanceof java.lang.Number
            ifeq 21
        18: .line 3364
            aload 4 /* lockTimeout */
            checkcast java.lang.Number
            invokevirtual java.lang.Number.intValue:()I
            istore 5 /* timeout */
        19: .line 3365
            iconst_1
            istore 6 /* timeoutSet */
        20: .line 3366
            goto 23
        21: .line 3367
      StackMap locals:
      StackMap stack:
            aload 4 /* lockTimeout */
            ifnull 23
        22: .line 3368
            new javax.persistence.PersistenceException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to parse javax.persistence.lock.timeout: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* lockTimeout */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.persistence.PersistenceException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 3371
      StackMap locals:
      StackMap stack:
            iload 6 /* timeoutSet */
            ifeq 34
        24: .line 3372
            iload 5 /* timeout */
            bipush -2
            if_icmpne 27
        25: .line 3373
            aload 2 /* options */
            bipush -2
            invokevirtual org.hibernate.LockOptions.setTimeOut:(I)Lorg/hibernate/LockOptions;
            pop
        26: .line 3374
            goto 34
        27: .line 3375
      StackMap locals:
      StackMap stack:
            iload 5 /* timeout */
            ifge 30
        28: .line 3376
            aload 2 /* options */
            iconst_m1
            invokevirtual org.hibernate.LockOptions.setTimeOut:(I)Lorg/hibernate/LockOptions;
            pop
        29: .line 3377
            goto 34
        30: .line 3378
      StackMap locals:
      StackMap stack:
            iload 5 /* timeout */
            ifne 33
        31: .line 3379
            aload 2 /* options */
            iconst_0
            invokevirtual org.hibernate.LockOptions.setTimeOut:(I)Lorg/hibernate/LockOptions;
            pop
        32: .line 3380
            goto 34
        33: .line 3382
      StackMap locals:
      StackMap stack:
            aload 2 /* options */
            iload 5 /* timeout */
            invokevirtual org.hibernate.LockOptions.setTimeOut:(I)Lorg/hibernate/LockOptions;
            pop
        34: .line 3385
      StackMap locals:
      StackMap stack:
            return
        end local 6 // boolean timeoutSet
        end local 5 // int timeout
        end local 4 // java.lang.Object lockTimeout
        end local 3 // java.lang.Object lockScope
        end local 2 // org.hibernate.LockOptions options
        end local 1 // java.util.Map props
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   35     0         this  Lorg/hibernate/internal/SessionImpl;
            0   35     1        props  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            0   35     2      options  Lorg/hibernate/LockOptions;
            1   35     3    lockScope  Ljava/lang/Object;
            6    7     4     extended  Z
           11   35     4  lockTimeout  Ljava/lang/Object;
           12   35     5      timeout  I
           13   35     6   timeoutSet  Z
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;Lorg/hibernate/LockOptions;)V
    MethodParameters:
         Name  Flags
      props    
      options  

  public <T> org.hibernate.query.spi.QueryImplementor<T> createQuery(java.lang.String, java.lang.Class<T>, javax.persistence.criteria.Selection, org.hibernate.jpa.spi.HibernateEntityManagerImplementor$QueryOptions);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;Ljavax/persistence/criteria/Selection;Lorg/hibernate/jpa/spi/HibernateEntityManagerImplementor$QueryOptions;)Lorg/hibernate/query/spi/QueryImplementor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String jpaqlString
        start local 2 // java.lang.Class resultClass
        start local 3 // javax.persistence.criteria.Selection selection
        start local 4 // org.hibernate.jpa.spi.HibernateEntityManagerImplementor$QueryOptions queryOptions
         0: .line 3395
            aload 0 /* this */
            aload 1 /* jpaqlString */
            invokevirtual org.hibernate.internal.SessionImpl.createQuery:(Ljava/lang/String;)Lorg/hibernate/query/spi/QueryImplementor;
            astore 5 /* query */
        start local 5 // org.hibernate.query.spi.QueryImplementor query
         1: .line 3397
            aload 4 /* queryOptions */
            invokeinterface org.hibernate.jpa.spi.HibernateEntityManagerImplementor$QueryOptions.getValueHandlers:()Ljava/util/List;
            ifnonnull 4
         2: .line 3398
            aload 4 /* queryOptions */
            invokeinterface org.hibernate.jpa.spi.HibernateEntityManagerImplementor$QueryOptions.getResultMetadataValidator:()Lorg/hibernate/jpa/spi/HibernateEntityManagerImplementor$QueryOptions$ResultMetadataValidator;
            ifnull 4
         3: .line 3399
            aload 4 /* queryOptions */
            invokeinterface org.hibernate.jpa.spi.HibernateEntityManagerImplementor$QueryOptions.getResultMetadataValidator:()Lorg/hibernate/jpa/spi/HibernateEntityManagerImplementor$QueryOptions$ResultMetadataValidator;
            aload 5 /* query */
            invokeinterface org.hibernate.query.spi.QueryImplementor.getReturnTypes:()[Lorg/hibernate/type/Type;
            invokeinterface org.hibernate.jpa.spi.HibernateEntityManagerImplementor$QueryOptions$ResultMetadataValidator.validate:([Lorg/hibernate/type/Type;)V
         4: .line 3404
      StackMap locals: org.hibernate.query.spi.QueryImplementor
      StackMap stack:
            ldc Ljavax/persistence/Tuple;
            aload 2 /* resultClass */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 3405
            aload 3 /* selection */
            checkcast org.hibernate.query.criteria.internal.expression.CompoundSelectionImpl
            invokevirtual org.hibernate.query.criteria.internal.expression.CompoundSelectionImpl.getCompoundSelectionItems:()Ljava/util/List;
            goto 7
         6: .line 3406
      StackMap locals:
      StackMap stack:
            aconst_null
         7: .line 3404
      StackMap locals:
      StackMap stack: java.util.List
            astore 6 /* tupleElements */
        start local 6 // java.util.List tupleElements
         8: .line 3407
            aload 4 /* queryOptions */
            invokeinterface org.hibernate.jpa.spi.HibernateEntityManagerImplementor$QueryOptions.getValueHandlers:()Ljava/util/List;
            ifnonnull 9
            aload 6 /* tupleElements */
            ifnull 12
         9: .line 3408
      StackMap locals: java.util.List
      StackMap stack:
            aload 5 /* query */
        10: .line 3409
            new org.hibernate.jpa.spi.CriteriaQueryTupleTransformer
            dup
            aload 4 /* queryOptions */
            invokeinterface org.hibernate.jpa.spi.HibernateEntityManagerImplementor$QueryOptions.getValueHandlers:()Ljava/util/List;
            aload 6 /* tupleElements */
            invokespecial org.hibernate.jpa.spi.CriteriaQueryTupleTransformer.<init>:(Ljava/util/List;Ljava/util/List;)V
        11: .line 3408
            invokeinterface org.hibernate.query.spi.QueryImplementor.setResultTransformer:(Lorg/hibernate/transform/ResultTransformer;)Lorg/hibernate/query/Query;
            pop
        12: .line 3413
      StackMap locals:
      StackMap stack:
            aload 5 /* query */
        13: areturn
        end local 6 // java.util.List tupleElements
        end local 5 // org.hibernate.query.spi.QueryImplementor query
        14: .line 3415
      StackMap locals: org.hibernate.internal.SessionImpl java.lang.String java.lang.Class javax.persistence.criteria.Selection org.hibernate.jpa.spi.HibernateEntityManagerImplementor$QueryOptions
      StackMap stack: java.lang.RuntimeException
            astore 5 /* e */
        start local 5 // java.lang.RuntimeException e
        15: .line 3416
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 5 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 5 // java.lang.RuntimeException e
        end local 4 // org.hibernate.jpa.spi.HibernateEntityManagerImplementor$QueryOptions queryOptions
        end local 3 // javax.persistence.criteria.Selection selection
        end local 2 // java.lang.Class resultClass
        end local 1 // java.lang.String jpaqlString
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0           this  Lorg/hibernate/internal/SessionImpl;
            0   16     1    jpaqlString  Ljava/lang/String;
            0   16     2    resultClass  Ljava/lang/Class<TT;>;
            0   16     3      selection  Ljavax/persistence/criteria/Selection;
            0   16     4   queryOptions  Lorg/hibernate/jpa/spi/HibernateEntityManagerImplementor$QueryOptions;
            1   14     5          query  Lorg/hibernate/query/spi/QueryImplementor;
            8   14     6  tupleElements  Ljava/util/List;
           15   16     5              e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           0    13      14  Class java.lang.RuntimeException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TT;>;Ljavax/persistence/criteria/Selection;Lorg/hibernate/jpa/spi/HibernateEntityManagerImplementor$QueryOptions;)Lorg/hibernate/query/spi/QueryImplementor<TT;>;
    MethodParameters:
              Name  Flags
      jpaqlString   
      resultClass   
      selection     
      queryOptions  

  public void remove(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object entity
         0: .line 3426
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3429
            aload 0 /* this */
            aload 1 /* entity */
            invokevirtual org.hibernate.internal.SessionImpl.delete:(Ljava/lang/Object;)V
         2: .line 3430
            goto 7
         3: .line 3431
      StackMap locals:
      StackMap stack: org.hibernate.MappingException
            astore 2 /* e */
        start local 2 // org.hibernate.MappingException e
         4: .line 3432
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* e */
            invokevirtual org.hibernate.MappingException.getMessage:()Ljava/lang/String;
            aload 2 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // org.hibernate.MappingException e
         5: .line 3434
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 2 /* e */
        start local 2 // java.lang.RuntimeException e
         6: .line 3436
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 2 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.RuntimeException e
         7: .line 3438
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object entity
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/hibernate/internal/SessionImpl;
            0    8     1  entity  Ljava/lang/Object;
            4    5     2       e  Lorg/hibernate/MappingException;
            6    7     2       e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1     2       3  Class org.hibernate.MappingException
           1     2       5  Class java.lang.RuntimeException
    MethodParameters:
        Name  Flags
      entity  

  public <T> T find(java.lang.Class<T>, );
    descriptor: (Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Class entityClass
        start local 2 // java.lang.Object primaryKey
         0: .line 3442
            aload 0 /* this */
            aload 1 /* entityClass */
            aload 2 /* primaryKey */
            aconst_null
            aconst_null
            invokevirtual org.hibernate.internal.SessionImpl.find:(Ljava/lang/Class;Ljava/lang/Object;Ljavax/persistence/LockModeType;Ljava/util/Map;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object primaryKey
        end local 1 // java.lang.Class entityClass
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityClass  Ljava/lang/Class<TT;>;
            0    1     2   primaryKey  Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Ljava/lang/Object;)TT;
    MethodParameters:
             Name  Flags
      entityClass  
      primaryKey   

  public <T> T find(java.lang.Class<T>, , java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Class entityClass
        start local 2 // java.lang.Object primaryKey
        start local 3 // java.util.Map properties
         0: .line 3447
            aload 0 /* this */
            aload 1 /* entityClass */
            aload 2 /* primaryKey */
            aconst_null
            aload 3 /* properties */
            invokevirtual org.hibernate.internal.SessionImpl.find:(Ljava/lang/Class;Ljava/lang/Object;Ljavax/persistence/LockModeType;Ljava/util/Map;)Ljava/lang/Object;
            areturn
        end local 3 // java.util.Map properties
        end local 2 // java.lang.Object primaryKey
        end local 1 // java.lang.Class entityClass
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  entityClass  Ljava/lang/Class<TT;>;
            0    1     2   primaryKey  Ljava/lang/Object;
            0    1     3   properties  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Ljava/lang/Object;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)TT;
    MethodParameters:
             Name  Flags
      entityClass  
      primaryKey   
      properties   

  public <T> T find(java.lang.Class<T>, , javax.persistence.LockModeType);
    descriptor: (Ljava/lang/Class;Ljava/lang/Object;Ljavax/persistence/LockModeType;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Class entityClass
        start local 2 // java.lang.Object primaryKey
        start local 3 // javax.persistence.LockModeType lockModeType
         0: .line 3452
            aload 0 /* this */
            aload 1 /* entityClass */
            aload 2 /* primaryKey */
            aload 3 /* lockModeType */
            aconst_null
            invokevirtual org.hibernate.internal.SessionImpl.find:(Ljava/lang/Class;Ljava/lang/Object;Ljavax/persistence/LockModeType;Ljava/util/Map;)Ljava/lang/Object;
            areturn
        end local 3 // javax.persistence.LockModeType lockModeType
        end local 2 // java.lang.Object primaryKey
        end local 1 // java.lang.Class entityClass
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/hibernate/internal/SessionImpl;
            0    1     1   entityClass  Ljava/lang/Class<TT;>;
            0    1     2    primaryKey  Ljava/lang/Object;
            0    1     3  lockModeType  Ljavax/persistence/LockModeType;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Ljava/lang/Object;Ljavax/persistence/LockModeType;)TT;
    MethodParameters:
              Name  Flags
      entityClass   
      primaryKey    
      lockModeType  

  public <T> T find(java.lang.Class<T>, , javax.persistence.LockModeType, java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Object;Ljavax/persistence/LockModeType;Ljava/util/Map;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=5
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Class entityClass
        start local 2 // java.lang.Object primaryKey
        start local 3 // javax.persistence.LockModeType lockModeType
        start local 4 // java.util.Map properties
         0: .line 3457
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3459
            aconst_null
            astore 5 /* lockOptions */
        start local 5 // org.hibernate.LockOptions lockOptions
         2: .line 3462
            aload 4 /* properties */
            ifnull 5
            aload 4 /* properties */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 5
         3: .line 3463
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            aload 4 /* properties */
            ldc "javax.persistence.fetchgraph"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.persistence.EntityGraph
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.setFetchGraph:(Ljavax/persistence/EntityGraph;)V
         4: .line 3464
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            aload 4 /* properties */
            ldc "javax.persistence.loadgraph"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.persistence.EntityGraph
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.setLoadGraph:(Ljavax/persistence/EntityGraph;)V
         5: .line 3467
      StackMap locals: org.hibernate.LockOptions
      StackMap stack:
            aload 0 /* this */
            aload 1 /* entityClass */
            invokevirtual org.hibernate.internal.SessionImpl.byId:(Ljava/lang/Class;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            astore 6 /* loadAccess */
        start local 6 // org.hibernate.IdentifierLoadAccess loadAccess
         6: .line 3468
            aload 6 /* loadAccess */
            aload 0 /* this */
            aload 4 /* properties */
            invokevirtual org.hibernate.internal.SessionImpl.determineAppropriateLocalCacheMode:(Ljava/util/Map;)Lorg/hibernate/CacheMode;
            invokeinterface org.hibernate.IdentifierLoadAccess.with:(Lorg/hibernate/CacheMode;)Lorg/hibernate/IdentifierLoadAccess;
            pop
         7: .line 3470
            aload 3 /* lockModeType */
            ifnull 12
         8: .line 3471
            getstatic javax.persistence.LockModeType.NONE:Ljavax/persistence/LockModeType;
            aload 3 /* lockModeType */
            invokevirtual javax.persistence.LockModeType.equals:(Ljava/lang/Object;)Z
            ifne 10
         9: .line 3472
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionNeeded:()V
        10: .line 3474
      StackMap locals: org.hibernate.IdentifierLoadAccess
      StackMap stack:
            aload 0 /* this */
            aload 3 /* lockModeType */
            aload 4 /* properties */
            invokevirtual org.hibernate.internal.SessionImpl.buildLockOptions:(Ljavax/persistence/LockModeType;Ljava/util/Map;)Lorg/hibernate/LockOptions;
            astore 5 /* lockOptions */
        11: .line 3475
            aload 6 /* loadAccess */
            aload 5 /* lockOptions */
            invokeinterface org.hibernate.IdentifierLoadAccess.with:(Lorg/hibernate/LockOptions;)Lorg/hibernate/IdentifierLoadAccess;
            pop
        12: .line 3478
      StackMap locals:
      StackMap stack:
            aload 6 /* loadAccess */
            aload 2 /* primaryKey */
            checkcast java.io.Serializable
            invokeinterface org.hibernate.IdentifierLoadAccess.load:(Ljava/io/Serializable;)Ljava/lang/Object;
            astore 9
        13: .line 3514
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            aconst_null
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.setFetchGraph:(Ljavax/persistence/EntityGraph;)V
        14: .line 3515
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            aconst_null
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.setLoadGraph:(Ljavax/persistence/EntityGraph;)V
        15: .line 3478
            aload 9
            areturn
        end local 6 // org.hibernate.IdentifierLoadAccess loadAccess
        16: .line 3480
      StackMap locals: org.hibernate.internal.SessionImpl java.lang.Class java.lang.Object javax.persistence.LockModeType java.util.Map org.hibernate.LockOptions
      StackMap stack: javax.persistence.EntityNotFoundException
            pop
        17: .line 3483
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.isDebugEnabled:()Z
            ifeq 25
        18: .line 3484
            aload 1 /* entityClass */
            ifnull 19
            aload 1 /* entityClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            goto 20
      StackMap locals:
      StackMap stack:
        19: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
        20: astore 6 /* entityName */
        start local 6 // java.lang.String entityName
        21: .line 3485
            aload 2 /* primaryKey */
            ifnull 22
            aload 2 /* primaryKey */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            goto 23
      StackMap locals: java.lang.String
      StackMap stack:
        22: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
        23: astore 7 /* identifierValue */
        start local 7 // java.lang.String identifierValue
        24: .line 3486
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            aload 6 /* entityName */
            aload 7 /* identifierValue */
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.ignoringEntityNotFound:(Ljava/lang/String;Ljava/lang/String;)V
        end local 7 // java.lang.String identifierValue
        end local 6 // java.lang.String entityName
        25: .line 3514
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            aconst_null
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.setFetchGraph:(Ljavax/persistence/EntityGraph;)V
        26: .line 3515
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            aconst_null
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.setLoadGraph:(Ljavax/persistence/EntityGraph;)V
        27: .line 3488
            aconst_null
            areturn
        28: .line 3490
      StackMap locals:
      StackMap stack: org.hibernate.ObjectDeletedException
            pop
        29: .line 3514
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            aconst_null
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.setFetchGraph:(Ljavax/persistence/EntityGraph;)V
        30: .line 3515
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            aconst_null
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.setLoadGraph:(Ljavax/persistence/EntityGraph;)V
        31: .line 3492
            aconst_null
            areturn
        32: .line 3494
      StackMap locals:
      StackMap stack: org.hibernate.ObjectNotFoundException
            astore 6 /* e */
        start local 6 // org.hibernate.ObjectNotFoundException e
        33: .line 3496
            new java.lang.IllegalArgumentException
            dup
            aload 6 /* e */
            invokevirtual org.hibernate.ObjectNotFoundException.getMessage:()Ljava/lang/String;
            aload 6 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 6 // org.hibernate.ObjectNotFoundException e
        34: .line 3498
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 6 /* e */
        start local 6 // java.lang.RuntimeException e
        35: .line 3499
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            new java.lang.IllegalArgumentException
            dup
            aload 6 /* e */
            invokevirtual java.lang.RuntimeException.getMessage:()Ljava/lang/String;
            aload 6 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 6 // java.lang.RuntimeException e
        36: .line 3501
      StackMap locals:
      StackMap stack: org.hibernate.JDBCException
            astore 6 /* e */
        start local 6 // org.hibernate.JDBCException e
        37: .line 3502
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.accessTransaction:()Lorg/hibernate/Transaction;
            invokeinterface org.hibernate.Transaction.getRollbackOnly:()Z
            ifeq 41
        38: .line 3514
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            aconst_null
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.setFetchGraph:(Ljavax/persistence/EntityGraph;)V
        39: .line 3515
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            aconst_null
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.setLoadGraph:(Ljavax/persistence/EntityGraph;)V
        40: .line 3504
            aconst_null
            areturn
        41: .line 3507
      StackMap locals: org.hibernate.JDBCException
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 6 /* e */
            aload 5 /* lockOptions */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Lorg/hibernate/HibernateException;Lorg/hibernate/LockOptions;)Ljava/lang/RuntimeException;
            athrow
        end local 6 // org.hibernate.JDBCException e
        42: .line 3510
      StackMap locals: org.hibernate.internal.SessionImpl java.lang.Class java.lang.Object javax.persistence.LockModeType java.util.Map org.hibernate.LockOptions
      StackMap stack: java.lang.RuntimeException
            astore 6 /* e */
        start local 6 // java.lang.RuntimeException e
        43: .line 3511
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 6 /* e */
            aload 5 /* lockOptions */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;Lorg/hibernate/LockOptions;)Ljava/lang/RuntimeException;
            athrow
        end local 6 // java.lang.RuntimeException e
        44: .line 3513
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        45: .line 3514
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            aconst_null
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.setFetchGraph:(Ljavax/persistence/EntityGraph;)V
        46: .line 3515
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            aconst_null
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.setLoadGraph:(Ljavax/persistence/EntityGraph;)V
        47: .line 3516
            aload 8
            athrow
        end local 5 // org.hibernate.LockOptions lockOptions
        end local 4 // java.util.Map properties
        end local 3 // javax.persistence.LockModeType lockModeType
        end local 2 // java.lang.Object primaryKey
        end local 1 // java.lang.Class entityClass
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   48     0             this  Lorg/hibernate/internal/SessionImpl;
            0   48     1      entityClass  Ljava/lang/Class<TT;>;
            0   48     2       primaryKey  Ljava/lang/Object;
            0   48     3     lockModeType  Ljavax/persistence/LockModeType;
            0   48     4       properties  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            2   48     5      lockOptions  Lorg/hibernate/LockOptions;
            6   16     6       loadAccess  Lorg/hibernate/IdentifierLoadAccess<TT;>;
           21   25     6       entityName  Ljava/lang/String;
           24   25     7  identifierValue  Ljava/lang/String;
           33   34     6                e  Lorg/hibernate/ObjectNotFoundException;
           35   36     6                e  Ljava/lang/RuntimeException;
           37   42     6                e  Lorg/hibernate/JDBCException;
           43   44     6                e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           2    13      16  Class javax.persistence.EntityNotFoundException
           2    13      28  Class org.hibernate.ObjectDeletedException
           2    13      32  Class org.hibernate.ObjectNotFoundException
           2    13      34  Class org.hibernate.MappingException
           2    13      34  Class org.hibernate.TypeMismatchException
           2    13      34  Class java.lang.ClassCastException
           2    13      36  Class org.hibernate.JDBCException
           2    13      42  Class java.lang.RuntimeException
           2    13      44  any
          16    25      44  any
          28    29      44  any
          32    38      44  any
          41    44      44  any
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Ljava/lang/Object;Ljavax/persistence/LockModeType;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)TT;
    MethodParameters:
              Name  Flags
      entityClass   
      primaryKey    
      lockModeType  
      properties    

  private org.hibernate.CacheMode determineAppropriateLocalCacheMode(java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Ljava/util/Map;)Lorg/hibernate/CacheMode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.util.Map localProperties
         0: .line 3520
            aconst_null
            astore 2 /* retrieveMode */
        start local 2 // javax.persistence.CacheRetrieveMode retrieveMode
         1: .line 3521
            aconst_null
            astore 3 /* storeMode */
        start local 3 // javax.persistence.CacheStoreMode storeMode
         2: .line 3522
            aload 1 /* localProperties */
            ifnull 5
         3: .line 3523
            aload 0 /* this */
            aload 1 /* localProperties */
            invokevirtual org.hibernate.internal.SessionImpl.determineCacheRetrieveMode:(Ljava/util/Map;)Ljavax/persistence/CacheRetrieveMode;
            astore 2 /* retrieveMode */
         4: .line 3524
            aload 0 /* this */
            aload 1 /* localProperties */
            invokevirtual org.hibernate.internal.SessionImpl.determineCacheStoreMode:(Ljava/util/Map;)Ljavax/persistence/CacheStoreMode;
            astore 3 /* storeMode */
         5: .line 3526
      StackMap locals: javax.persistence.CacheRetrieveMode javax.persistence.CacheStoreMode
      StackMap stack:
            aload 2 /* retrieveMode */
            ifnonnull 7
         6: .line 3528
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.properties:Ljava/util/Map;
            invokevirtual org.hibernate.internal.SessionImpl.determineCacheRetrieveMode:(Ljava/util/Map;)Ljavax/persistence/CacheRetrieveMode;
            astore 2 /* retrieveMode */
         7: .line 3530
      StackMap locals:
      StackMap stack:
            aload 3 /* storeMode */
            ifnonnull 9
         8: .line 3532
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.properties:Ljava/util/Map;
            invokevirtual org.hibernate.internal.SessionImpl.determineCacheStoreMode:(Ljava/util/Map;)Ljavax/persistence/CacheStoreMode;
            astore 3 /* storeMode */
         9: .line 3534
      StackMap locals:
      StackMap stack:
            aload 3 /* storeMode */
            aload 2 /* retrieveMode */
            invokestatic org.hibernate.jpa.internal.util.CacheModeHelper.interpretCacheMode:(Ljavax/persistence/CacheStoreMode;Ljavax/persistence/CacheRetrieveMode;)Lorg/hibernate/CacheMode;
            areturn
        end local 3 // javax.persistence.CacheStoreMode storeMode
        end local 2 // javax.persistence.CacheRetrieveMode retrieveMode
        end local 1 // java.util.Map localProperties
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Lorg/hibernate/internal/SessionImpl;
            0   10     1  localProperties  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            1   10     2     retrieveMode  Ljavax/persistence/CacheRetrieveMode;
            2   10     3        storeMode  Ljavax/persistence/CacheStoreMode;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lorg/hibernate/CacheMode;
    MethodParameters:
                 Name  Flags
      localProperties  

  private javax.persistence.CacheRetrieveMode determineCacheRetrieveMode(java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Ljava/util/Map;)Ljavax/persistence/CacheRetrieveMode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.util.Map settings
         0: .line 3538
            aload 1 /* settings */
            ldc "javax.persistence.cache.retrieveMode"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.persistence.CacheRetrieveMode
            areturn
        end local 1 // java.util.Map settings
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  settings  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Ljavax/persistence/CacheRetrieveMode;
    MethodParameters:
          Name  Flags
      settings  

  private javax.persistence.CacheStoreMode determineCacheStoreMode(java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Ljava/util/Map;)Ljavax/persistence/CacheStoreMode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.util.Map settings
         0: .line 3542
            aload 1 /* settings */
            ldc "javax.persistence.cache.storeMode"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.persistence.CacheStoreMode
            areturn
        end local 1 // java.util.Map settings
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/hibernate/internal/SessionImpl;
            0    1     1  settings  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Ljavax/persistence/CacheStoreMode;
    MethodParameters:
          Name  Flags
      settings  

  private void checkTransactionNeeded();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 3546
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.disallowOutOfTransactionUpdateOperations:Z
            ifeq 2
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.isTransactionInProgress:()Z
            ifne 2
         1: .line 3547
            new javax.persistence.TransactionRequiredException
            dup
            ldc "no transaction is in progress"
            invokespecial javax.persistence.TransactionRequiredException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 3549
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/internal/SessionImpl;

  public <T> T getReference(java.lang.Class<T>, );
    descriptor: (Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Class entityClass
        start local 2 // java.lang.Object primaryKey
         0: .line 3553
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3556
            aload 0 /* this */
            aload 1 /* entityClass */
            invokevirtual org.hibernate.internal.SessionImpl.byId:(Ljava/lang/Class;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            aload 2 /* primaryKey */
            checkcast java.io.Serializable
            invokevirtual org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.getReference:(Ljava/io/Serializable;)Ljava/lang/Object;
         2: areturn
         3: .line 3558
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 3 /* e */
        start local 3 // java.lang.RuntimeException e
         4: .line 3559
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* e */
            invokevirtual java.lang.RuntimeException.getMessage:()Ljava/lang/String;
            aload 3 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.RuntimeException e
         5: .line 3561
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 3 /* e */
        start local 3 // java.lang.RuntimeException e
         6: .line 3562
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 3 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.RuntimeException e
        end local 2 // java.lang.Object primaryKey
        end local 1 // java.lang.Class entityClass
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lorg/hibernate/internal/SessionImpl;
            0    7     1  entityClass  Ljava/lang/Class<TT;>;
            0    7     2   primaryKey  Ljava/lang/Object;
            4    5     3            e  Ljava/lang/RuntimeException;
            6    7     3            e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1     2       3  Class org.hibernate.MappingException
           1     2       3  Class org.hibernate.TypeMismatchException
           1     2       3  Class java.lang.ClassCastException
           1     2       5  Class java.lang.RuntimeException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Ljava/lang/Object;)TT;
    MethodParameters:
             Name  Flags
      entityClass  
      primaryKey   

  public void lock(java.lang.Object, javax.persistence.LockModeType);
    descriptor: (Ljava/lang/Object;Ljavax/persistence/LockModeType;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object entity
        start local 2 // javax.persistence.LockModeType lockModeType
         0: .line 3568
            aload 0 /* this */
            aload 1 /* entity */
            aload 2 /* lockModeType */
            aconst_null
            invokevirtual org.hibernate.internal.SessionImpl.lock:(Ljava/lang/Object;Ljavax/persistence/LockModeType;Ljava/util/Map;)V
         1: .line 3569
            return
        end local 2 // javax.persistence.LockModeType lockModeType
        end local 1 // java.lang.Object entity
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/hibernate/internal/SessionImpl;
            0    2     1        entity  Ljava/lang/Object;
            0    2     2  lockModeType  Ljavax/persistence/LockModeType;
    MethodParameters:
              Name  Flags
      entity        
      lockModeType  

  public void lock(, javax.persistence.LockModeType, java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Ljava/lang/Object;Ljavax/persistence/LockModeType;Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object entity
        start local 2 // javax.persistence.LockModeType lockModeType
        start local 3 // java.util.Map properties
         0: .line 3573
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3574
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionNeeded:()V
         2: .line 3576
            aload 0 /* this */
            aload 1 /* entity */
            invokevirtual org.hibernate.internal.SessionImpl.contains:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 3577
            new java.lang.IllegalArgumentException
            dup
            ldc "entity not in the persistence context"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 3580
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* lockModeType */
            aload 3 /* properties */
            invokevirtual org.hibernate.internal.SessionImpl.buildLockOptions:(Ljavax/persistence/LockModeType;Ljava/util/Map;)Lorg/hibernate/LockOptions;
            astore 4 /* lockOptions */
        start local 4 // org.hibernate.LockOptions lockOptions
         5: .line 3582
            aload 0 /* this */
            aload 4 /* lockOptions */
            invokevirtual org.hibernate.internal.SessionImpl.buildLockRequest:(Lorg/hibernate/LockOptions;)Lorg/hibernate/Session$LockRequest;
            aload 1 /* entity */
            invokeinterface org.hibernate.Session$LockRequest.lock:(Ljava/lang/Object;)V
         6: .line 3583
            goto 9
         7: .line 3584
      StackMap locals: org.hibernate.internal.SessionImpl java.lang.Object javax.persistence.LockModeType java.util.Map org.hibernate.LockOptions
      StackMap stack: java.lang.RuntimeException
            astore 5 /* e */
        start local 5 // java.lang.RuntimeException e
         8: .line 3585
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 5 /* e */
            aload 4 /* lockOptions */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;Lorg/hibernate/LockOptions;)Ljava/lang/RuntimeException;
            athrow
        end local 5 // java.lang.RuntimeException e
         9: .line 3587
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.hibernate.LockOptions lockOptions
        end local 3 // java.util.Map properties
        end local 2 // javax.persistence.LockModeType lockModeType
        end local 1 // java.lang.Object entity
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lorg/hibernate/internal/SessionImpl;
            0   10     1        entity  Ljava/lang/Object;
            0   10     2  lockModeType  Ljavax/persistence/LockModeType;
            0   10     3    properties  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            5   10     4   lockOptions  Lorg/hibernate/LockOptions;
            8    9     5             e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.RuntimeException
    Signature: (Ljava/lang/Object;Ljavax/persistence/LockModeType;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)V
    MethodParameters:
              Name  Flags
      entity        
      lockModeType  
      properties    

  public void refresh(, java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Ljava/lang/Object;Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object entity
        start local 2 // java.util.Map properties
         0: .line 3591
            aload 0 /* this */
            aload 1 /* entity */
            aconst_null
            aload 2 /* properties */
            invokevirtual org.hibernate.internal.SessionImpl.refresh:(Ljava/lang/Object;Ljavax/persistence/LockModeType;Ljava/util/Map;)V
         1: .line 3592
            return
        end local 2 // java.util.Map properties
        end local 1 // java.lang.Object entity
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/hibernate/internal/SessionImpl;
            0    2     1      entity  Ljava/lang/Object;
            0    2     2  properties  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: (Ljava/lang/Object;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)V
    MethodParameters:
            Name  Flags
      entity      
      properties  

  public void refresh(java.lang.Object, javax.persistence.LockModeType);
    descriptor: (Ljava/lang/Object;Ljavax/persistence/LockModeType;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object entity
        start local 2 // javax.persistence.LockModeType lockModeType
         0: .line 3596
            aload 0 /* this */
            aload 1 /* entity */
            aload 2 /* lockModeType */
            aconst_null
            invokevirtual org.hibernate.internal.SessionImpl.refresh:(Ljava/lang/Object;Ljavax/persistence/LockModeType;Ljava/util/Map;)V
         1: .line 3597
            return
        end local 2 // javax.persistence.LockModeType lockModeType
        end local 1 // java.lang.Object entity
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/hibernate/internal/SessionImpl;
            0    2     1        entity  Ljava/lang/Object;
            0    2     2  lockModeType  Ljavax/persistence/LockModeType;
    MethodParameters:
              Name  Flags
      entity        
      lockModeType  

  public void refresh(, javax.persistence.LockModeType, java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Ljava/lang/Object;Ljavax/persistence/LockModeType;Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object entity
        start local 2 // javax.persistence.LockModeType lockModeType
        start local 3 // java.util.Map properties
         0: .line 3601
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3603
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getCacheMode:()Lorg/hibernate/CacheMode;
            astore 4 /* previousCacheMode */
        start local 4 // org.hibernate.CacheMode previousCacheMode
         2: .line 3604
            aload 0 /* this */
            aload 3 /* properties */
            invokevirtual org.hibernate.internal.SessionImpl.determineAppropriateLocalCacheMode:(Ljava/util/Map;)Lorg/hibernate/CacheMode;
            astore 5 /* refreshCacheMode */
        start local 5 // org.hibernate.CacheMode refreshCacheMode
         3: .line 3606
            aconst_null
            astore 6 /* lockOptions */
        start local 6 // org.hibernate.LockOptions lockOptions
         4: .line 3608
            aload 0 /* this */
            aload 5 /* refreshCacheMode */
            invokevirtual org.hibernate.internal.SessionImpl.setCacheMode:(Lorg/hibernate/CacheMode;)V
         5: .line 3610
            aload 0 /* this */
            aload 1 /* entity */
            invokevirtual org.hibernate.internal.SessionImpl.contains:(Ljava/lang/Object;)Z
            ifne 7
         6: .line 3611
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            new java.lang.IllegalArgumentException
            dup
            ldc "Entity not managed"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
         7: .line 3614
      StackMap locals: org.hibernate.CacheMode org.hibernate.CacheMode org.hibernate.LockOptions
      StackMap stack:
            aload 2 /* lockModeType */
            ifnull 13
         8: .line 3615
            getstatic javax.persistence.LockModeType.NONE:Ljavax/persistence/LockModeType;
            aload 2 /* lockModeType */
            invokevirtual javax.persistence.LockModeType.equals:(Ljava/lang/Object;)Z
            ifne 10
         9: .line 3616
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkTransactionNeeded:()V
        10: .line 3619
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* lockModeType */
            aload 3 /* properties */
            invokevirtual org.hibernate.internal.SessionImpl.buildLockOptions:(Ljavax/persistence/LockModeType;Ljava/util/Map;)Lorg/hibernate/LockOptions;
            astore 6 /* lockOptions */
        11: .line 3620
            aload 0 /* this */
            aload 1 /* entity */
            aload 6 /* lockOptions */
            invokevirtual org.hibernate.internal.SessionImpl.refresh:(Ljava/lang/Object;Lorg/hibernate/LockOptions;)V
        12: .line 3621
            goto 22
        13: .line 3623
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* entity */
            invokevirtual org.hibernate.internal.SessionImpl.refresh:(Ljava/lang/Object;)V
        14: .line 3625
            goto 22
        15: .line 3626
      StackMap locals:
      StackMap stack: org.hibernate.MappingException
            astore 7 /* e */
        start local 7 // org.hibernate.MappingException e
        16: .line 3627
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            new java.lang.IllegalArgumentException
            dup
            aload 7 /* e */
            invokevirtual org.hibernate.MappingException.getMessage:()Ljava/lang/String;
            aload 7 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 7 // org.hibernate.MappingException e
        17: .line 3629
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 7 /* e */
        start local 7 // java.lang.RuntimeException e
        18: .line 3630
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 7 /* e */
            aload 6 /* lockOptions */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;Lorg/hibernate/LockOptions;)Ljava/lang/RuntimeException;
            athrow
        end local 7 // java.lang.RuntimeException e
        19: .line 3632
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        20: .line 3633
            aload 0 /* this */
            aload 4 /* previousCacheMode */
            invokevirtual org.hibernate.internal.SessionImpl.setCacheMode:(Lorg/hibernate/CacheMode;)V
        21: .line 3634
            aload 8
            athrow
        22: .line 3633
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* previousCacheMode */
            invokevirtual org.hibernate.internal.SessionImpl.setCacheMode:(Lorg/hibernate/CacheMode;)V
        23: .line 3635
            return
        end local 6 // org.hibernate.LockOptions lockOptions
        end local 5 // org.hibernate.CacheMode refreshCacheMode
        end local 4 // org.hibernate.CacheMode previousCacheMode
        end local 3 // java.util.Map properties
        end local 2 // javax.persistence.LockModeType lockModeType
        end local 1 // java.lang.Object entity
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   24     0               this  Lorg/hibernate/internal/SessionImpl;
            0   24     1             entity  Ljava/lang/Object;
            0   24     2       lockModeType  Ljavax/persistence/LockModeType;
            0   24     3         properties  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            2   24     4  previousCacheMode  Lorg/hibernate/CacheMode;
            3   24     5   refreshCacheMode  Lorg/hibernate/CacheMode;
            4   24     6        lockOptions  Lorg/hibernate/LockOptions;
           16   17     7                  e  Lorg/hibernate/MappingException;
           18   19     7                  e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           4    14      15  Class org.hibernate.MappingException
           4    14      17  Class java.lang.RuntimeException
           4    19      19  any
    Signature: (Ljava/lang/Object;Ljavax/persistence/LockModeType;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)V
    MethodParameters:
              Name  Flags
      entity        
      lockModeType  
      properties    

  public void detach(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object entity
         0: .line 3639
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3641
            aload 0 /* this */
            aload 1 /* entity */
            invokevirtual org.hibernate.internal.SessionImpl.evict:(Ljava/lang/Object;)V
         2: .line 3642
            goto 5
         3: .line 3643
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 2 /* e */
        start local 2 // java.lang.RuntimeException e
         4: .line 3644
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 2 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.RuntimeException e
         5: .line 3646
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object entity
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/hibernate/internal/SessionImpl;
            0    6     1  entity  Ljava/lang/Object;
            4    5     2       e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.RuntimeException
    MethodParameters:
        Name  Flags
      entity  

  public javax.persistence.LockModeType getLockMode(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljavax/persistence/LockModeType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Object entity
         0: .line 3650
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3652
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.isTransactionInProgress:()Z
            ifne 3
         2: .line 3653
            new javax.persistence.TransactionRequiredException
            dup
            ldc "Call to EntityManager#getLockMode should occur within transaction according to spec"
            invokespecial javax.persistence.TransactionRequiredException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 3656
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* entity */
            invokevirtual org.hibernate.internal.SessionImpl.contains:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 3657
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            new java.lang.IllegalArgumentException
            dup
            ldc "entity not in the persistence context"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
         5: .line 3660
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* entity */
            invokevirtual org.hibernate.internal.SessionImpl.getCurrentLockMode:(Ljava/lang/Object;)Lorg/hibernate/LockMode;
            invokestatic org.hibernate.jpa.internal.util.LockModeTypeHelper.getLockModeType:(Lorg/hibernate/LockMode;)Ljavax/persistence/LockModeType;
            areturn
        end local 1 // java.lang.Object entity
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/hibernate/internal/SessionImpl;
            0    6     1  entity  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      entity  

  public void setProperty(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String propertyName
        start local 2 // java.lang.Object value
         0: .line 3666
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3668
            aload 2 /* value */
            instanceof java.io.Serializable
            ifne 4
         2: .line 3669
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            new java.lang.StringBuilder
            dup
            ldc "Property '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* propertyName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' is not serializable, value won't be set."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.warnf:(Ljava/lang/String;[Ljava/lang/Object;)V
         3: .line 3670
            return
         4: .line 3673
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.properties:Ljava/util/Map;
            aload 1 /* propertyName */
            aload 2 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 3674
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.applyProperties:()V
         6: .line 3675
            return
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String propertyName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lorg/hibernate/internal/SessionImpl;
            0    7     1  propertyName  Ljava/lang/String;
            0    7     2         value  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      propertyName  
      value         

  public java.util.Map<java.lang.String, java.lang.Object> getProperties();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 3679
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.properties:Ljava/util/Map;
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            areturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/SessionImpl;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;

  protected org.hibernate.query.criteria.internal.compile.CriteriaCompiler criteriaCompiler();
    descriptor: ()Lorg/hibernate/query/criteria/internal/compile/CriteriaCompiler;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 3686
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.criteriaCompiler:Lorg/hibernate/query/criteria/internal/compile/CriteriaCompiler;
            ifnonnull 2
         1: .line 3687
            aload 0 /* this */
            new org.hibernate.query.criteria.internal.compile.CriteriaCompiler
            dup
            aload 0 /* this */
            invokespecial org.hibernate.query.criteria.internal.compile.CriteriaCompiler.<init>:(Lorg/hibernate/engine/spi/SessionImplementor;)V
            putfield org.hibernate.internal.SessionImpl.criteriaCompiler:Lorg/hibernate/query/criteria/internal/compile/CriteriaCompiler;
         2: .line 3689
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.criteriaCompiler:Lorg/hibernate/query/criteria/internal/compile/CriteriaCompiler;
            areturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/internal/SessionImpl;

  public <T> org.hibernate.query.spi.QueryImplementor<T> createQuery(javax.persistence.criteria.CriteriaQuery<T>);
    descriptor: (Ljavax/persistence/criteria/CriteriaQuery;)Lorg/hibernate/query/spi/QueryImplementor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // javax.persistence.criteria.CriteriaQuery criteriaQuery
         0: .line 3695
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3697
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.criteriaCompiler:()Lorg/hibernate/query/criteria/internal/compile/CriteriaCompiler;
            aload 1 /* criteriaQuery */
            checkcast org.hibernate.query.criteria.internal.compile.CompilableCriteria
            invokevirtual org.hibernate.query.criteria.internal.compile.CriteriaCompiler.compile:(Lorg/hibernate/query/criteria/internal/compile/CompilableCriteria;)Lorg/hibernate/query/spi/QueryImplementor;
         2: areturn
         3: .line 3699
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 2 /* e */
        start local 2 // java.lang.RuntimeException e
         4: .line 3700
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 2 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.RuntimeException e
        end local 1 // javax.persistence.criteria.CriteriaQuery criteriaQuery
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lorg/hibernate/internal/SessionImpl;
            0    5     1  criteriaQuery  Ljavax/persistence/criteria/CriteriaQuery<TT;>;
            4    5     2              e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.RuntimeException
    Signature: <T:Ljava/lang/Object;>(Ljavax/persistence/criteria/CriteriaQuery<TT;>;)Lorg/hibernate/query/spi/QueryImplementor<TT;>;
    MethodParameters:
               Name  Flags
      criteriaQuery  

  public org.hibernate.query.spi.QueryImplementor createQuery(javax.persistence.criteria.CriteriaUpdate);
    descriptor: (Ljavax/persistence/criteria/CriteriaUpdate;)Lorg/hibernate/query/spi/QueryImplementor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // javax.persistence.criteria.CriteriaUpdate criteriaUpdate
         0: .line 3706
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3708
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.criteriaCompiler:()Lorg/hibernate/query/criteria/internal/compile/CriteriaCompiler;
            aload 1 /* criteriaUpdate */
            checkcast org.hibernate.query.criteria.internal.compile.CompilableCriteria
            invokevirtual org.hibernate.query.criteria.internal.compile.CriteriaCompiler.compile:(Lorg/hibernate/query/criteria/internal/compile/CompilableCriteria;)Lorg/hibernate/query/spi/QueryImplementor;
         2: areturn
         3: .line 3710
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 2 /* e */
        start local 2 // java.lang.RuntimeException e
         4: .line 3711
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 2 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.RuntimeException e
        end local 1 // javax.persistence.criteria.CriteriaUpdate criteriaUpdate
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lorg/hibernate/internal/SessionImpl;
            0    5     1  criteriaUpdate  Ljavax/persistence/criteria/CriteriaUpdate;
            4    5     2               e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.RuntimeException
    MethodParameters:
                Name  Flags
      criteriaUpdate  

  public org.hibernate.query.spi.QueryImplementor createQuery(javax.persistence.criteria.CriteriaDelete);
    descriptor: (Ljavax/persistence/criteria/CriteriaDelete;)Lorg/hibernate/query/spi/QueryImplementor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // javax.persistence.criteria.CriteriaDelete criteriaDelete
         0: .line 3717
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3719
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.criteriaCompiler:()Lorg/hibernate/query/criteria/internal/compile/CriteriaCompiler;
            aload 1 /* criteriaDelete */
            checkcast org.hibernate.query.criteria.internal.compile.CompilableCriteria
            invokevirtual org.hibernate.query.criteria.internal.compile.CriteriaCompiler.compile:(Lorg/hibernate/query/criteria/internal/compile/CompilableCriteria;)Lorg/hibernate/query/spi/QueryImplementor;
         2: areturn
         3: .line 3721
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 2 /* e */
        start local 2 // java.lang.RuntimeException e
         4: .line 3722
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 2 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.RuntimeException e
        end local 1 // javax.persistence.criteria.CriteriaDelete criteriaDelete
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lorg/hibernate/internal/SessionImpl;
            0    5     1  criteriaDelete  Ljavax/persistence/criteria/CriteriaDelete;
            4    5     2               e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.RuntimeException
    MethodParameters:
                Name  Flags
      criteriaDelete  

  protected void initQueryFromNamedDefinition(org.hibernate.query.Query, org.hibernate.engine.spi.NamedQueryDefinition);
    descriptor: (Lorg/hibernate/query/Query;Lorg/hibernate/engine/spi/NamedQueryDefinition;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // org.hibernate.query.Query query
        start local 2 // org.hibernate.engine.spi.NamedQueryDefinition namedQueryDefinition
         0: .line 3728
            aload 0 /* this */
            aload 1 /* query */
            aload 2 /* namedQueryDefinition */
            invokespecial org.hibernate.internal.AbstractSessionImpl.initQueryFromNamedDefinition:(Lorg/hibernate/query/Query;Lorg/hibernate/engine/spi/NamedQueryDefinition;)V
         1: .line 3730
            aload 2 /* namedQueryDefinition */
            invokevirtual org.hibernate.engine.spi.NamedQueryDefinition.isCacheable:()Z
            ifeq 5
         2: .line 3731
            aload 1 /* query */
            ldc "org.hibernate.cacheable"
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface org.hibernate.query.Query.setHint:(Ljava/lang/String;Ljava/lang/Object;)Lorg/hibernate/query/Query;
            pop
         3: .line 3732
            aload 2 /* namedQueryDefinition */
            invokevirtual org.hibernate.engine.spi.NamedQueryDefinition.getCacheRegion:()Ljava/lang/String;
            ifnull 5
         4: .line 3733
            aload 1 /* query */
            ldc "org.hibernate.cacheRegion"
            aload 2 /* namedQueryDefinition */
            invokevirtual org.hibernate.engine.spi.NamedQueryDefinition.getCacheRegion:()Ljava/lang/String;
            invokeinterface org.hibernate.query.Query.setHint:(Ljava/lang/String;Ljava/lang/Object;)Lorg/hibernate/query/Query;
            pop
         5: .line 3737
      StackMap locals:
      StackMap stack:
            aload 2 /* namedQueryDefinition */
            invokevirtual org.hibernate.engine.spi.NamedQueryDefinition.getCacheMode:()Lorg/hibernate/CacheMode;
            ifnull 7
         6: .line 3738
            aload 1 /* query */
            ldc "org.hibernate.cacheMode"
            aload 2 /* namedQueryDefinition */
            invokevirtual org.hibernate.engine.spi.NamedQueryDefinition.getCacheMode:()Lorg/hibernate/CacheMode;
            invokeinterface org.hibernate.query.Query.setHint:(Ljava/lang/String;Ljava/lang/Object;)Lorg/hibernate/query/Query;
            pop
         7: .line 3741
      StackMap locals:
      StackMap stack:
            aload 2 /* namedQueryDefinition */
            invokevirtual org.hibernate.engine.spi.NamedQueryDefinition.isReadOnly:()Z
            ifeq 9
         8: .line 3742
            aload 1 /* query */
            ldc "org.hibernate.readOnly"
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface org.hibernate.query.Query.setHint:(Ljava/lang/String;Ljava/lang/Object;)Lorg/hibernate/query/Query;
            pop
         9: .line 3745
      StackMap locals:
      StackMap stack:
            aload 2 /* namedQueryDefinition */
            invokevirtual org.hibernate.engine.spi.NamedQueryDefinition.getTimeout:()Ljava/lang/Integer;
            ifnull 11
        10: .line 3746
            aload 1 /* query */
            ldc "javax.persistence.query.timeout"
            aload 2 /* namedQueryDefinition */
            invokevirtual org.hibernate.engine.spi.NamedQueryDefinition.getTimeout:()Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            sipush 1000
            imul
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface org.hibernate.query.Query.setHint:(Ljava/lang/String;Ljava/lang/Object;)Lorg/hibernate/query/Query;
            pop
        11: .line 3749
      StackMap locals:
      StackMap stack:
            aload 2 /* namedQueryDefinition */
            invokevirtual org.hibernate.engine.spi.NamedQueryDefinition.getFetchSize:()Ljava/lang/Integer;
            ifnull 13
        12: .line 3750
            aload 1 /* query */
            ldc "org.hibernate.fetchSize"
            aload 2 /* namedQueryDefinition */
            invokevirtual org.hibernate.engine.spi.NamedQueryDefinition.getFetchSize:()Ljava/lang/Integer;
            invokeinterface org.hibernate.query.Query.setHint:(Ljava/lang/String;Ljava/lang/Object;)Lorg/hibernate/query/Query;
            pop
        13: .line 3753
      StackMap locals:
      StackMap stack:
            aload 2 /* namedQueryDefinition */
            invokevirtual org.hibernate.engine.spi.NamedQueryDefinition.getComment:()Ljava/lang/String;
            ifnull 15
        14: .line 3754
            aload 1 /* query */
            ldc "org.hibernate.comment"
            aload 2 /* namedQueryDefinition */
            invokevirtual org.hibernate.engine.spi.NamedQueryDefinition.getComment:()Ljava/lang/String;
            invokeinterface org.hibernate.query.Query.setHint:(Ljava/lang/String;Ljava/lang/Object;)Lorg/hibernate/query/Query;
            pop
        15: .line 3757
      StackMap locals:
      StackMap stack:
            aload 2 /* namedQueryDefinition */
            invokevirtual org.hibernate.engine.spi.NamedQueryDefinition.getFirstResult:()Ljava/lang/Integer;
            ifnull 17
        16: .line 3758
            aload 1 /* query */
            aload 2 /* namedQueryDefinition */
            invokevirtual org.hibernate.engine.spi.NamedQueryDefinition.getFirstResult:()Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            invokeinterface org.hibernate.query.Query.setFirstResult:(I)Lorg/hibernate/query/Query;
            pop
        17: .line 3761
      StackMap locals:
      StackMap stack:
            aload 2 /* namedQueryDefinition */
            invokevirtual org.hibernate.engine.spi.NamedQueryDefinition.getMaxResults:()Ljava/lang/Integer;
            ifnull 19
        18: .line 3762
            aload 1 /* query */
            aload 2 /* namedQueryDefinition */
            invokevirtual org.hibernate.engine.spi.NamedQueryDefinition.getMaxResults:()Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            invokeinterface org.hibernate.query.Query.setMaxResults:(I)Lorg/hibernate/query/Query;
            pop
        19: .line 3765
      StackMap locals:
      StackMap stack:
            aload 2 /* namedQueryDefinition */
            invokevirtual org.hibernate.engine.spi.NamedQueryDefinition.getLockOptions:()Lorg/hibernate/LockOptions;
            ifnull 24
        20: .line 3766
            aload 2 /* namedQueryDefinition */
            invokevirtual org.hibernate.engine.spi.NamedQueryDefinition.getLockOptions:()Lorg/hibernate/LockOptions;
            invokevirtual org.hibernate.LockOptions.getLockMode:()Lorg/hibernate/LockMode;
            ifnull 24
        21: .line 3767
            aload 1 /* query */
        22: .line 3768
            aload 2 /* namedQueryDefinition */
            invokevirtual org.hibernate.engine.spi.NamedQueryDefinition.getLockOptions:()Lorg/hibernate/LockOptions;
            invokevirtual org.hibernate.LockOptions.getLockMode:()Lorg/hibernate/LockMode;
            invokestatic org.hibernate.jpa.internal.util.LockModeTypeHelper.getLockModeType:(Lorg/hibernate/LockMode;)Ljavax/persistence/LockModeType;
        23: .line 3767
            invokeinterface org.hibernate.query.Query.setLockMode:(Ljavax/persistence/LockModeType;)Lorg/hibernate/query/Query;
            pop
        24: .line 3773
      StackMap locals:
      StackMap stack:
            aload 2 /* namedQueryDefinition */
            invokevirtual org.hibernate.engine.spi.NamedQueryDefinition.getFlushMode:()Lorg/hibernate/FlushMode;
            ifnull 29
        25: .line 3774
            aload 2 /* namedQueryDefinition */
            invokevirtual org.hibernate.engine.spi.NamedQueryDefinition.getFlushMode:()Lorg/hibernate/FlushMode;
            getstatic org.hibernate.FlushMode.COMMIT:Lorg/hibernate/FlushMode;
            if_acmpne 28
        26: .line 3775
            aload 1 /* query */
            getstatic javax.persistence.FlushModeType.COMMIT:Ljavax/persistence/FlushModeType;
            invokeinterface org.hibernate.query.Query.setFlushMode:(Ljavax/persistence/FlushModeType;)Lorg/hibernate/query/Query;
            pop
        27: .line 3776
            goto 29
        28: .line 3778
      StackMap locals:
      StackMap stack:
            aload 1 /* query */
            getstatic javax.persistence.FlushModeType.AUTO:Ljavax/persistence/FlushModeType;
            invokeinterface org.hibernate.query.Query.setFlushMode:(Ljavax/persistence/FlushModeType;)Lorg/hibernate/query/Query;
            pop
        29: .line 3781
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.hibernate.engine.spi.NamedQueryDefinition namedQueryDefinition
        end local 1 // org.hibernate.query.Query query
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   30     0                  this  Lorg/hibernate/internal/SessionImpl;
            0   30     1                 query  Lorg/hibernate/query/Query;
            0   30     2  namedQueryDefinition  Lorg/hibernate/engine/spi/NamedQueryDefinition;
    MethodParameters:
                      Name  Flags
      query                 
      namedQueryDefinition  

  public javax.persistence.StoredProcedureQuery createNamedStoredProcedureQuery(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/persistence/StoredProcedureQuery;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String name
         0: .line 3785
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3787
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getNamedQueryRepository:()Lorg/hibernate/query/spi/NamedQueryRepository;
            aload 1 /* name */
            invokevirtual org.hibernate.query.spi.NamedQueryRepository.getNamedProcedureCallMemento:(Ljava/lang/String;)Lorg/hibernate/procedure/ProcedureCallMemento;
            astore 2 /* memento */
        start local 2 // org.hibernate.procedure.ProcedureCallMemento memento
         2: .line 3788
            aload 2 /* memento */
            ifnonnull 4
         3: .line 3789
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No @NamedStoredProcedureQuery was found with that name : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 3791
      StackMap locals: org.hibernate.procedure.ProcedureCallMemento
      StackMap stack:
            aload 2 /* memento */
            aload 0 /* this */
            invokeinterface org.hibernate.procedure.ProcedureCallMemento.makeProcedureCall:(Lorg/hibernate/engine/spi/SessionImplementor;)Lorg/hibernate/procedure/ProcedureCall;
         5: areturn
        end local 2 // org.hibernate.procedure.ProcedureCallMemento memento
         6: .line 3793
      StackMap locals: org.hibernate.internal.SessionImpl java.lang.String
      StackMap stack: java.lang.RuntimeException
            astore 2 /* e */
        start local 2 // java.lang.RuntimeException e
         7: .line 3794
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 2 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.RuntimeException e
        end local 1 // java.lang.String name
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/hibernate/internal/SessionImpl;
            0    8     1     name  Ljava/lang/String;
            2    6     2  memento  Lorg/hibernate/procedure/ProcedureCallMemento;
            7    8     2        e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1     5       6  Class java.lang.RuntimeException
    MethodParameters:
      Name  Flags
      name  

  public javax.persistence.StoredProcedureQuery createStoredProcedureQuery(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/persistence/StoredProcedureQuery;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String procedureName
         0: .line 3801
            aload 0 /* this */
            aload 1 /* procedureName */
            invokevirtual org.hibernate.internal.SessionImpl.createStoredProcedureCall:(Ljava/lang/String;)Lorg/hibernate/procedure/ProcedureCall;
         1: areturn
         2: .line 3803
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 2 /* e */
        start local 2 // java.lang.RuntimeException e
         3: .line 3804
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 2 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.RuntimeException e
        end local 1 // java.lang.String procedureName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lorg/hibernate/internal/SessionImpl;
            0    4     1  procedureName  Ljava/lang/String;
            3    4     2              e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.RuntimeException
    MethodParameters:
               Name  Flags
      procedureName  

  public javax.persistence.StoredProcedureQuery createStoredProcedureQuery(java.lang.String, java.lang.Class[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Class;)Ljavax/persistence/StoredProcedureQuery;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String procedureName
        start local 2 // java.lang.Class[] resultClasses
         0: .line 3811
            aload 0 /* this */
            aload 1 /* procedureName */
            aload 2 /* resultClasses */
            invokevirtual org.hibernate.internal.SessionImpl.createStoredProcedureCall:(Ljava/lang/String;[Ljava/lang/Class;)Lorg/hibernate/procedure/ProcedureCall;
         1: areturn
         2: .line 3813
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 3 /* e */
        start local 3 // java.lang.RuntimeException e
         3: .line 3814
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 3 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.RuntimeException e
        end local 2 // java.lang.Class[] resultClasses
        end local 1 // java.lang.String procedureName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lorg/hibernate/internal/SessionImpl;
            0    4     1  procedureName  Ljava/lang/String;
            0    4     2  resultClasses  [Ljava/lang/Class;
            3    4     3              e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.RuntimeException
    MethodParameters:
               Name  Flags
      procedureName  
      resultClasses  

  public javax.persistence.StoredProcedureQuery createStoredProcedureQuery(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)Ljavax/persistence/StoredProcedureQuery;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String procedureName
        start local 2 // java.lang.String[] resultSetMappings
         0: .line 3820
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3823
            aload 0 /* this */
            aload 1 /* procedureName */
            aload 2 /* resultSetMappings */
            invokevirtual org.hibernate.internal.SessionImpl.createStoredProcedureCall:(Ljava/lang/String;[Ljava/lang/String;)Lorg/hibernate/procedure/ProcedureCall;
         2: areturn
         3: .line 3825
      StackMap locals:
      StackMap stack: org.hibernate.procedure.UnknownSqlResultSetMappingException
            astore 3 /* unknownResultSetMapping */
        start local 3 // org.hibernate.procedure.UnknownSqlResultSetMappingException unknownResultSetMapping
         4: .line 3826
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* unknownResultSetMapping */
            invokevirtual org.hibernate.procedure.UnknownSqlResultSetMappingException.getMessage:()Ljava/lang/String;
            aload 3 /* unknownResultSetMapping */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // org.hibernate.procedure.UnknownSqlResultSetMappingException unknownResultSetMapping
         5: .line 3829
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 3 /* e */
        start local 3 // java.lang.RuntimeException e
         6: .line 3830
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 3 /* e */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.RuntimeException e
        end local 2 // java.lang.String[] resultSetMappings
        end local 1 // java.lang.String procedureName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    7     0                     this  Lorg/hibernate/internal/SessionImpl;
            0    7     1            procedureName  Ljava/lang/String;
            0    7     2        resultSetMappings  [Ljava/lang/String;
            4    5     3  unknownResultSetMapping  Lorg/hibernate/procedure/UnknownSqlResultSetMappingException;
            6    7     3                        e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1     2       3  Class org.hibernate.procedure.UnknownSqlResultSetMappingException
           1     2       5  Class java.lang.RuntimeException
           3     5       5  Class java.lang.RuntimeException
    MethodParameters:
                   Name  Flags
      procedureName      
      resultSetMappings  

  public void joinTransaction();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 3836
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3837
            aload 0 /* this */
            iconst_1
            invokevirtual org.hibernate.internal.SessionImpl.joinTransaction:(Z)V
         2: .line 3838
            return
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/internal/SessionImpl;

  private void joinTransaction(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // boolean explicitRequest
         0: .line 3841
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getTransactionCoordinator:()Lorg/hibernate/resource/transaction/spi/TransactionCoordinator;
            invokeinterface org.hibernate.resource.transaction.spi.TransactionCoordinator.getTransactionCoordinatorBuilder:()Lorg/hibernate/resource/transaction/spi/TransactionCoordinatorBuilder;
            invokeinterface org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder.isJta:()Z
            ifne 4
         1: .line 3842
            iload 1 /* explicitRequest */
            ifeq 3
         2: .line 3843
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.callingJoinTransactionOnNonJtaEntityManager:()V
         3: .line 3845
      StackMap locals:
      StackMap stack:
            return
         4: .line 3849
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getTransactionCoordinator:()Lorg/hibernate/resource/transaction/spi/TransactionCoordinator;
            invokeinterface org.hibernate.resource.transaction.spi.TransactionCoordinator.explicitJoin:()V
         5: .line 3850
            goto 10
         6: .line 3851
      StackMap locals:
      StackMap stack: org.hibernate.resource.transaction.TransactionRequiredForJoinException
            astore 2 /* e */
        start local 2 // org.hibernate.resource.transaction.TransactionRequiredForJoinException e
         7: .line 3852
            new javax.persistence.TransactionRequiredException
            dup
            aload 2 /* e */
            invokevirtual org.hibernate.resource.transaction.TransactionRequiredForJoinException.getMessage:()Ljava/lang/String;
            invokespecial javax.persistence.TransactionRequiredException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // org.hibernate.resource.transaction.TransactionRequiredForJoinException e
         8: .line 3854
      StackMap locals:
      StackMap stack: org.hibernate.HibernateException
            astore 2 /* he */
        start local 2 // org.hibernate.HibernateException he
         9: .line 3855
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.exceptionConverter:Lorg/hibernate/engine/spi/ExceptionConverter;
            aload 2 /* he */
            invokeinterface org.hibernate.engine.spi.ExceptionConverter.convert:(Lorg/hibernate/HibernateException;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // org.hibernate.HibernateException he
        10: .line 3857
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean explicitRequest
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             this  Lorg/hibernate/internal/SessionImpl;
            0   11     1  explicitRequest  Z
            7    8     2                e  Lorg/hibernate/resource/transaction/TransactionRequiredForJoinException;
            9   10     2               he  Lorg/hibernate/HibernateException;
      Exception table:
        from    to  target  type
           4     5       6  Class org.hibernate.resource.transaction.TransactionRequiredForJoinException
           4     5       8  Class org.hibernate.HibernateException
    MethodParameters:
                 Name  Flags
      explicitRequest  

  public boolean isJoinedToTransaction();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 3861
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3862
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getTransactionCoordinator:()Lorg/hibernate/resource/transaction/spi/TransactionCoordinator;
            invokeinterface org.hibernate.resource.transaction.spi.TransactionCoordinator.isJoined:()Z
            ireturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/internal/SessionImpl;

  public <T> T unwrap(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Class clazz
         0: .line 3868
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3870
            ldc Lorg/hibernate/Session;
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 3
         2: .line 3871
            aload 0 /* this */
            areturn
         3: .line 3873
      StackMap locals:
      StackMap stack:
            ldc Lorg/hibernate/engine/spi/SessionImplementor;
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 5
         4: .line 3874
            aload 0 /* this */
            areturn
         5: .line 3876
      StackMap locals:
      StackMap stack:
            ldc Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 7
         6: .line 3877
            aload 0 /* this */
            areturn
         7: .line 3879
      StackMap locals:
      StackMap stack:
            ldc Ljavax/persistence/EntityManager;
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 9
         8: .line 3880
            aload 0 /* this */
            areturn
         9: .line 3883
      StackMap locals:
      StackMap stack:
            new javax.persistence.PersistenceException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Hibernate cannot unwrap "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* clazz */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.persistence.PersistenceException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.Class clazz
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lorg/hibernate/internal/SessionImpl;
            0   10     1  clazz  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
       Name  Flags
      clazz  

  public java.lang.Object getDelegate();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 3888
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3889
            aload 0 /* this */
            areturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/internal/SessionImpl;

  public org.hibernate.engine.spi.SessionFactoryImplementor getEntityManagerFactory();
    descriptor: ()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 3894
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3895
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            areturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/internal/SessionImpl;

  public javax.persistence.criteria.CriteriaBuilder getCriteriaBuilder();
    descriptor: ()Ljavax/persistence/criteria/CriteriaBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 3900
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3901
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getCriteriaBuilder:()Ljavax/persistence/criteria/CriteriaBuilder;
            areturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/internal/SessionImpl;

  public org.hibernate.metamodel.spi.MetamodelImplementor getMetamodel();
    descriptor: ()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.SessionImpl this
         0: .line 3906
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3907
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            areturn
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/internal/SessionImpl;

  public <T> javax.persistence.EntityGraph<T> createEntityGraph(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljavax/persistence/EntityGraph;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Class rootType
         0: .line 3912
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3913
            new org.hibernate.jpa.graph.internal.EntityGraphImpl
            dup
            aconst_null
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 1 /* rootType */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.entity:(Ljava/lang/Class;)Ljavax/persistence/metamodel/EntityType;
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getEntityManagerFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokespecial org.hibernate.jpa.graph.internal.EntityGraphImpl.<init>:(Ljava/lang/String;Ljavax/persistence/metamodel/EntityType;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
            areturn
        end local 1 // java.lang.Class rootType
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/hibernate/internal/SessionImpl;
            0    2     1  rootType  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Ljavax/persistence/EntityGraph<TT;>;
    MethodParameters:
          Name  Flags
      rootType  

  public javax.persistence.EntityGraph<?> createEntityGraph(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/persistence/EntityGraph;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String graphName
         0: .line 3918
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3919
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getEntityManagerFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 1 /* graphName */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.findEntityGraphByName:(Ljava/lang/String;)Ljavax/persistence/EntityGraph;
            astore 2 /* named */
        start local 2 // javax.persistence.EntityGraph named
         2: .line 3920
            aload 2 /* named */
            ifnonnull 4
         3: .line 3921
            aconst_null
            areturn
         4: .line 3924
      StackMap locals: javax.persistence.EntityGraph
      StackMap stack:
            ldc Lorg/hibernate/graph/spi/EntityGraphImplementor;
            aload 2 /* named */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 3925
            aload 2 /* named */
            checkcast org.hibernate.graph.spi.EntityGraphImplementor
            invokeinterface org.hibernate.graph.spi.EntityGraphImplementor.makeMutableCopy:()Lorg/hibernate/graph/spi/EntityGraphImplementor;
            areturn
         6: .line 3928
      StackMap locals:
      StackMap stack:
            aload 2 /* named */
            areturn
        end local 2 // javax.persistence.EntityGraph named
        end local 1 // java.lang.String graphName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lorg/hibernate/internal/SessionImpl;
            0    7     1  graphName  Ljava/lang/String;
            2    7     2      named  Ljavax/persistence/EntityGraph;
    Signature: (Ljava/lang/String;)Ljavax/persistence/EntityGraph<*>;
    MethodParameters:
           Name  Flags
      graphName  

  public javax.persistence.EntityGraph<?> getEntityGraph(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/persistence/EntityGraph;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.String graphName
         0: .line 3935
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3936
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getEntityManagerFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 1 /* graphName */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.findEntityGraphByName:(Ljava/lang/String;)Ljavax/persistence/EntityGraph;
            astore 2 /* named */
        start local 2 // javax.persistence.EntityGraph named
         2: .line 3937
            aload 2 /* named */
            ifnonnull 4
         3: .line 3938
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not locate EntityGraph with given name : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* graphName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 3940
      StackMap locals: javax.persistence.EntityGraph
      StackMap stack:
            aload 2 /* named */
            areturn
        end local 2 // javax.persistence.EntityGraph named
        end local 1 // java.lang.String graphName
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/hibernate/internal/SessionImpl;
            0    5     1  graphName  Ljava/lang/String;
            2    5     2      named  Ljavax/persistence/EntityGraph;
    Signature: (Ljava/lang/String;)Ljavax/persistence/EntityGraph<*>;
    MethodParameters:
           Name  Flags
      graphName  

  public <T> java.util.List<javax.persistence.EntityGraph<? super T>> getEntityGraphs(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.lang.Class entityClass
         0: .line 3945
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.checkOpen:()V
         1: .line 3946
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getEntityManagerFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 1 /* entityClass */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.findEntityGraphsByType:(Ljava/lang/Class;)Ljava/util/List;
            areturn
        end local 1 // java.lang.Class entityClass
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/hibernate/internal/SessionImpl;
            0    2     1  entityClass  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Ljava/util/List<Ljavax/persistence/EntityGraph<-TT;>;>;
    MethodParameters:
             Name  Flags
      entityClass  

  private void writeObject(java.io.ObjectOutputStream);
    descriptor: (Ljava/io/ObjectOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.io.ObjectOutputStream oos
         0: .line 3958
            getstatic org.hibernate.internal.SessionImpl.TRACE_ENABLED:Z
            ifeq 2
         1: .line 3959
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            ldc "Serializing Session [%s]"
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getSessionIdentifier:()Ljava/util/UUID;
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.tracef:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 3962
      StackMap locals:
      StackMap stack:
            aload 1 /* oos */
            invokevirtual java.io.ObjectOutputStream.defaultWriteObject:()V
         3: .line 3964
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 1 /* oos */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.serialize:(Ljava/io/ObjectOutputStream;)V
         4: .line 3965
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.actionQueue:Lorg/hibernate/engine/spi/ActionQueue;
            aload 1 /* oos */
            invokevirtual org.hibernate.engine.spi.ActionQueue.serialize:(Ljava/io/ObjectOutputStream;)V
         5: .line 3967
            aload 1 /* oos */
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.loadQueryInfluencers:Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
         6: .line 3968
            return
        end local 1 // java.io.ObjectOutputStream oos
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/hibernate/internal/SessionImpl;
            0    7     1   oos  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      oos   

  private void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.hibernate.internal.SessionImpl this
        start local 1 // java.io.ObjectInputStream ois
         0: .line 3979
            getstatic org.hibernate.internal.SessionImpl.TRACE_ENABLED:Z
            ifeq 2
         1: .line 3980
            getstatic org.hibernate.internal.SessionImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            ldc "Deserializing Session [%s]"
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getSessionIdentifier:()Ljava/util/UUID;
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.tracef:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 3983
      StackMap locals:
      StackMap stack:
            aload 1 /* ois */
            invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
         3: .line 3985
            aload 0 /* this */
            aload 1 /* ois */
            aload 0 /* this */
            invokestatic org.hibernate.engine.internal.StatefulPersistenceContext.deserialize:(Ljava/io/ObjectInputStream;Lorg/hibernate/engine/spi/SessionImplementor;)Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            putfield org.hibernate.internal.SessionImpl.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
         4: .line 3986
            aload 0 /* this */
            aload 1 /* ois */
            aload 0 /* this */
            invokestatic org.hibernate.engine.spi.ActionQueue.deserialize:(Ljava/io/ObjectInputStream;Lorg/hibernate/engine/spi/SessionImplementor;)Lorg/hibernate/engine/spi/ActionQueue;
            putfield org.hibernate.internal.SessionImpl.actionQueue:Lorg/hibernate/engine/spi/ActionQueue;
         5: .line 3988
            aload 0 /* this */
            aload 1 /* ois */
            invokevirtual java.io.ObjectInputStream.readObject:()Ljava/lang/Object;
            checkcast org.hibernate.engine.spi.LoadQueryInfluencers
            putfield org.hibernate.internal.SessionImpl.loadQueryInfluencers:Lorg/hibernate/engine/spi/LoadQueryInfluencers;
         6: .line 3993
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.loadQueryInfluencers:Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.getEnabledFilterNames:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 9
      StackMap locals: org.hibernate.internal.SessionImpl java.io.ObjectInputStream top java.util.Iterator
      StackMap stack:
         7: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* filterName */
        start local 2 // java.lang.String filterName
         8: .line 3994
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl.loadQueryInfluencers:Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            aload 2 /* filterName */
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.getEnabledFilter:(Ljava/lang/String;)Lorg/hibernate/Filter;
            checkcast org.hibernate.internal.FilterImpl
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokevirtual org.hibernate.internal.FilterImpl.afterDeserialize:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
        end local 2 // java.lang.String filterName
         9: .line 3993
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        10: .line 3997
            aload 0 /* this */
            aconst_null
            invokevirtual org.hibernate.internal.SessionImpl.initializeFromSessionOwner:(Lorg/hibernate/engine/spi/SessionOwner;)V
        11: .line 3999
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isAllowOutOfTransactionUpdateOperations:()Z
            ifeq 12
            iconst_0
            goto 13
      StackMap locals: org.hibernate.internal.SessionImpl java.io.ObjectInputStream
      StackMap stack: org.hibernate.internal.SessionImpl
        12: iconst_1
      StackMap locals: org.hibernate.internal.SessionImpl java.io.ObjectInputStream
      StackMap stack: org.hibernate.internal.SessionImpl int
        13: putfield org.hibernate.internal.SessionImpl.disallowOutOfTransactionUpdateOperations:Z
        14: .line 4000
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.internal.SessionImpl.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isReleaseResourcesOnCloseEnabled:()Z
            putfield org.hibernate.internal.SessionImpl.discardOnClose:Z
        15: .line 4001
            return
        end local 1 // java.io.ObjectInputStream ois
        end local 0 // org.hibernate.internal.SessionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0        this  Lorg/hibernate/internal/SessionImpl;
            0   16     1         ois  Ljava/io/ObjectInputStream;
            8    9     2  filterName  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException, java.sql.SQLException
    MethodParameters:
      Name  Flags
      ois   

  public org.hibernate.IdentifierLoadAccess byId(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Lorg/hibernate/IdentifierLoadAccess;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast java.lang.Class
            invokevirtual org.hibernate.internal.SessionImpl.byId:(Ljava/lang/Class;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public org.hibernate.IdentifierLoadAccess byId(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/IdentifierLoadAccess;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual org.hibernate.internal.SessionImpl.byId:(Ljava/lang/String;)Lorg/hibernate/internal/SessionImpl$IdentifierLoadAccessImpl;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public org.hibernate.Query createFilter(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)Lorg/hibernate/Query;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            invokevirtual org.hibernate.internal.SessionImpl.createFilter:(Ljava/lang/Object;Ljava/lang/String;)Lorg/hibernate/query/Query;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public org.hibernate.Session getSession();
    descriptor: ()Lorg/hibernate/Session;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.hibernate.internal.SessionImpl.getSession:()Lorg/hibernate/engine/spi/SessionImplementor;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public javax.persistence.EntityManagerFactory getEntityManagerFactory();
    descriptor: ()Ljavax/persistence/EntityManagerFactory;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.hibernate.internal.SessionImpl.getEntityManagerFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public org.hibernate.SessionFactory getSessionFactory();
    descriptor: ()Lorg/hibernate/SessionFactory;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.hibernate.internal.SessionImpl.getSessionFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public javax.persistence.metamodel.Metamodel getMetamodel();
    descriptor: ()Ljavax/persistence/metamodel/Metamodel;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.hibernate.internal.SessionImpl.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public javax.persistence.Query createQuery(javax.persistence.criteria.CriteriaDelete);
    descriptor: (Ljavax/persistence/criteria/CriteriaDelete;)Ljavax/persistence/Query;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual org.hibernate.internal.SessionImpl.createQuery:(Ljavax/persistence/criteria/CriteriaDelete;)Lorg/hibernate/query/spi/QueryImplementor;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public org.hibernate.query.Query createQuery(javax.persistence.criteria.CriteriaDelete);
    descriptor: (Ljavax/persistence/criteria/CriteriaDelete;)Lorg/hibernate/query/Query;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual org.hibernate.internal.SessionImpl.createQuery:(Ljavax/persistence/criteria/CriteriaDelete;)Lorg/hibernate/query/spi/QueryImplementor;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public javax.persistence.Query createQuery(javax.persistence.criteria.CriteriaUpdate);
    descriptor: (Ljavax/persistence/criteria/CriteriaUpdate;)Ljavax/persistence/Query;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual org.hibernate.internal.SessionImpl.createQuery:(Ljavax/persistence/criteria/CriteriaUpdate;)Lorg/hibernate/query/spi/QueryImplementor;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public org.hibernate.query.Query createQuery(javax.persistence.criteria.CriteriaUpdate);
    descriptor: (Ljavax/persistence/criteria/CriteriaUpdate;)Lorg/hibernate/query/Query;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual org.hibernate.internal.SessionImpl.createQuery:(Ljavax/persistence/criteria/CriteriaUpdate;)Lorg/hibernate/query/spi/QueryImplementor;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public javax.persistence.TypedQuery createQuery(javax.persistence.criteria.CriteriaQuery);
    descriptor: (Ljavax/persistence/criteria/CriteriaQuery;)Ljavax/persistence/TypedQuery;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast javax.persistence.criteria.CriteriaQuery
            invokevirtual org.hibernate.internal.SessionImpl.createQuery:(Ljavax/persistence/criteria/CriteriaQuery;)Lorg/hibernate/query/spi/QueryImplementor;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public org.hibernate.query.Query createQuery(javax.persistence.criteria.CriteriaQuery);
    descriptor: (Ljavax/persistence/criteria/CriteriaQuery;)Lorg/hibernate/query/Query;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast javax.persistence.criteria.CriteriaQuery
            invokevirtual org.hibernate.internal.SessionImpl.createQuery:(Ljavax/persistence/criteria/CriteriaQuery;)Lorg/hibernate/query/spi/QueryImplementor;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public org.hibernate.query.Query createQuery(java.lang.String, java.lang.Class, javax.persistence.criteria.Selection, org.hibernate.jpa.spi.HibernateEntityManagerImplementor$QueryOptions);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;Ljavax/persistence/criteria/Selection;Lorg/hibernate/jpa/spi/HibernateEntityManagerImplementor$QueryOptions;)Lorg/hibernate/query/Query;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=5
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast java.lang.Class
            aload 3
            aload 4
            invokevirtual org.hibernate.internal.SessionImpl.createQuery:(Ljava/lang/String;Ljava/lang/Class;Ljavax/persistence/criteria/Selection;Lorg/hibernate/jpa/spi/HibernateEntityManagerImplementor$QueryOptions;)Lorg/hibernate/query/spi/QueryImplementor;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static int[] $SWITCH_TABLE$org$hibernate$query$ImmutableEntityUpdateQueryHandlingMode();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 207
            getstatic org.hibernate.internal.SessionImpl.$SWITCH_TABLE$org$hibernate$query$ImmutableEntityUpdateQueryHandlingMode:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.hibernate.query.ImmutableEntityUpdateQueryHandlingMode.values:()[Lorg/hibernate/query/ImmutableEntityUpdateQueryHandlingMode;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.hibernate.query.ImmutableEntityUpdateQueryHandlingMode.EXCEPTION:Lorg/hibernate/query/ImmutableEntityUpdateQueryHandlingMode;
            invokevirtual org.hibernate.query.ImmutableEntityUpdateQueryHandlingMode.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.hibernate.query.ImmutableEntityUpdateQueryHandlingMode.WARNING:Lorg/hibernate/query/ImmutableEntityUpdateQueryHandlingMode;
            invokevirtual org.hibernate.query.ImmutableEntityUpdateQueryHandlingMode.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            dup
            putstatic org.hibernate.internal.SessionImpl.$SWITCH_TABLE$org$hibernate$query$ImmutableEntityUpdateQueryHandlingMode:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError

  private static void lambda$0(boolean, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (ZLorg/hibernate/engine/spi/SessionImplementor;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // boolean successful
        start local 1 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 3302
            return
        end local 1 // org.hibernate.engine.spi.SessionImplementor session
        end local 0 // boolean successful
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  successful  Z
            0    1     1     session  Lorg/hibernate/engine/spi/SessionImplementor;

  private static java.lang.Object $deserializeLambda$(java.lang.invoke.SerializedLambda);
    descriptor: (Ljava/lang/invoke/SerializedLambda;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=1
         0: .line 1
            aload 0
            invokevirtual java.lang.invoke.SerializedLambda.getImplMethodName:()Ljava/lang/String;
            astore 1
            iconst_m1
            istore 2
            aload 1
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 1
          -1647345005: 1
              default: 2
          }
      StackMap locals: java.lang.String int
      StackMap stack:
         1: aload 1
            ldc "lambda$0"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
            iconst_0
            istore 2
      StackMap locals:
      StackMap stack:
         2: iload 2
            lookupswitch { // 1
                    0: 3
              default: 4
          }
      StackMap locals:
      StackMap stack:
         3: aload 0
            invokevirtual java.lang.invoke.SerializedLambda.getImplMethodKind:()I
            bipush 6
            if_icmpne 4
            aload 0
            invokevirtual java.lang.invoke.SerializedLambda.getFunctionalInterfaceClass:()Ljava/lang/String;
            ldc "org/hibernate/resource/transaction/backend/jta/internal/synchronization/AfterCompletionAction"
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 4
            aload 0
            invokevirtual java.lang.invoke.SerializedLambda.getFunctionalInterfaceMethodName:()Ljava/lang/String;
            ldc "doAction"
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 4
            aload 0
            invokevirtual java.lang.invoke.SerializedLambda.getFunctionalInterfaceMethodSignature:()Ljava/lang/String;
            ldc "(ZLorg/hibernate/engine/spi/SessionImplementor;)V"
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 4
            aload 0
            invokevirtual java.lang.invoke.SerializedLambda.getImplClass:()Ljava/lang/String;
            ldc "org/hibernate/internal/SessionImpl"
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 4
            aload 0
            invokevirtual java.lang.invoke.SerializedLambda.getImplMethodSignature:()Ljava/lang/String;
            ldc "(ZLorg/hibernate/engine/spi/SessionImplementor;)V"
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 4
            invokedynamic doAction()Lorg/hibernate/resource/transaction/backend/jta/internal/synchronization/AfterCompletionAction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.altMetafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (ZLorg/hibernate/engine/spi/SessionImplementor;)V
                  org/hibernate/internal/SessionImpl.lambda$0(ZLorg/hibernate/engine/spi/SessionImplementor;)V (6)
                  (ZLorg/hibernate/engine/spi/SessionImplementor;)V
                  1
            areturn
      StackMap locals:
      StackMap stack:
         4: new java.lang.IllegalArgumentException
            dup
            ldc "Invalid lambda deserialization"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "SessionImpl.java"
NestMembers:
  org.hibernate.internal.SessionImpl$1  org.hibernate.internal.SessionImpl$2  org.hibernate.internal.SessionImpl$3  org.hibernate.internal.SessionImpl$4  org.hibernate.internal.SessionImpl$BaseNaturalIdLoadAccessImpl  org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl  org.hibernate.internal.SessionImpl$LobHelperImpl  org.hibernate.internal.SessionImpl$LockRequestImpl  org.hibernate.internal.SessionImpl$ManagedFlushCheckerStandardImpl  org.hibernate.internal.SessionImpl$MultiIdentifierLoadAccessImpl  org.hibernate.internal.SessionImpl$NaturalIdLoadAccessImpl  org.hibernate.internal.SessionImpl$SharedSessionBuilderImpl  org.hibernate.internal.SessionImpl$SimpleNaturalIdLoadAccessImpl
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract LockRequest = org.hibernate.Session$LockRequest of org.hibernate.Session
  public TransactionCompletionProcesses = org.hibernate.engine.spi.ActionQueue$TransactionCompletionProcesses of org.hibernate.engine.spi.ActionQueue
  public final LoadType = org.hibernate.event.spi.LoadEventListener$LoadType of org.hibernate.event.spi.LoadEventListener
  public final CriterionEntry = org.hibernate.internal.CriteriaImpl$CriterionEntry of org.hibernate.internal.CriteriaImpl
  org.hibernate.internal.SessionImpl$1
  org.hibernate.internal.SessionImpl$2
  org.hibernate.internal.SessionImpl$3
  org.hibernate.internal.SessionImpl$4
  private abstract BaseNaturalIdLoadAccessImpl = org.hibernate.internal.SessionImpl$BaseNaturalIdLoadAccessImpl of org.hibernate.internal.SessionImpl
  private IdentifierLoadAccessImpl = org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl of org.hibernate.internal.SessionImpl
  private LobHelperImpl = org.hibernate.internal.SessionImpl$LobHelperImpl of org.hibernate.internal.SessionImpl
  private LockRequestImpl = org.hibernate.internal.SessionImpl$LockRequestImpl of org.hibernate.internal.SessionImpl
  public ManagedFlushCheckerStandardImpl = org.hibernate.internal.SessionImpl$ManagedFlushCheckerStandardImpl of org.hibernate.internal.SessionImpl
  private MultiIdentifierLoadAccessImpl = org.hibernate.internal.SessionImpl$MultiIdentifierLoadAccessImpl of org.hibernate.internal.SessionImpl
  private NaturalIdLoadAccessImpl = org.hibernate.internal.SessionImpl$NaturalIdLoadAccessImpl of org.hibernate.internal.SessionImpl
  private SharedSessionBuilderImpl = org.hibernate.internal.SessionImpl$SharedSessionBuilderImpl of org.hibernate.internal.SessionImpl
  private SimpleNaturalIdLoadAccessImpl = org.hibernate.internal.SessionImpl$SimpleNaturalIdLoadAccessImpl of org.hibernate.internal.SessionImpl
  public abstract QueryOptions = org.hibernate.jpa.spi.HibernateEntityManagerImplementor$QueryOptions of org.hibernate.jpa.spi.HibernateEntityManagerImplementor
  public abstract ResultMetadataValidator = org.hibernate.jpa.spi.HibernateEntityManagerImplementor$QueryOptions$ResultMetadataValidator of org.hibernate.jpa.spi.HibernateEntityManagerImplementor$QueryOptions
  public abstract ValueHandler = org.hibernate.query.criteria.internal.ValueHandlerFactory$ValueHandler of org.hibernate.query.criteria.internal.ValueHandlerFactory