public final class org.hibernate.engine.internal.Collections
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.hibernate.engine.internal.Collections
  super_class: java.lang.Object
{
  private static final org.hibernate.internal.CoreMessageLogger LOG;
    descriptor: Lorg/hibernate/internal/CoreMessageLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 35
            ldc Lorg/hibernate/internal/CoreMessageLogger;
         1: .line 36
            ldc Lorg/hibernate/engine/internal/Collections;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         2: .line 34
            invokestatic org.jboss.logging.Logger.getMessageLogger:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.hibernate.internal.CoreMessageLogger
            putstatic org.hibernate.engine.internal.Collections.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         3: .line 37
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void processUnreachableCollection(org.hibernate.collection.spi.PersistentCollection, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Lorg/hibernate/collection/spi/PersistentCollection;Lorg/hibernate/engine/spi/SessionImplementor;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.collection.spi.PersistentCollection coll
        start local 1 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 46
            aload 0 /* coll */
            invokeinterface org.hibernate.collection.spi.PersistentCollection.getOwner:()Ljava/lang/Object;
            ifnonnull 3
         1: .line 47
            aload 0 /* coll */
            aload 1 /* session */
            invokestatic org.hibernate.engine.internal.Collections.processNeverReferencedCollection:(Lorg/hibernate/collection/spi/PersistentCollection;Lorg/hibernate/engine/spi/SessionImplementor;)V
         2: .line 48
            goto 4
         3: .line 50
      StackMap locals:
      StackMap stack:
            aload 0 /* coll */
            aload 1 /* session */
            invokestatic org.hibernate.engine.internal.Collections.processDereferencedCollection:(Lorg/hibernate/collection/spi/PersistentCollection;Lorg/hibernate/engine/spi/SessionImplementor;)V
         4: .line 52
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.hibernate.engine.spi.SessionImplementor session
        end local 0 // org.hibernate.collection.spi.PersistentCollection coll
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     coll  Lorg/hibernate/collection/spi/PersistentCollection;
            0    5     1  session  Lorg/hibernate/engine/spi/SessionImplementor;
    MethodParameters:
         Name  Flags
      coll     
      session  

  private static void processDereferencedCollection(org.hibernate.collection.spi.PersistentCollection, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Lorg/hibernate/collection/spi/PersistentCollection;Lorg/hibernate/engine/spi/SessionImplementor;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=10, args_size=2
        start local 0 // org.hibernate.collection.spi.PersistentCollection coll
        start local 1 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 55
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getPersistenceContext:()Lorg/hibernate/engine/spi/PersistenceContext;
            astore 2 /* persistenceContext */
        start local 2 // org.hibernate.engine.spi.PersistenceContext persistenceContext
         1: .line 56
            aload 2 /* persistenceContext */
            aload 0 /* coll */
            invokeinterface org.hibernate.engine.spi.PersistenceContext.getCollectionEntry:(Lorg/hibernate/collection/spi/PersistentCollection;)Lorg/hibernate/engine/spi/CollectionEntry;
            astore 3 /* entry */
        start local 3 // org.hibernate.engine.spi.CollectionEntry entry
         2: .line 57
            aload 3 /* entry */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.getLoadedPersister:()Lorg/hibernate/persister/collection/CollectionPersister;
            astore 4 /* loadedPersister */
        start local 4 // org.hibernate.persister.collection.CollectionPersister loadedPersister
         3: .line 59
            aload 4 /* loadedPersister */
            ifnull 10
            getstatic org.hibernate.engine.internal.Collections.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isDebugEnabled:()Z
            ifeq 10
         4: .line 60
            getstatic org.hibernate.engine.internal.Collections.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         5: .line 61
            ldc "Collection dereferenced: %s"
         6: .line 62
            aload 4 /* loadedPersister */
         7: .line 63
            aload 0 /* coll */
            aload 3 /* entry */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.getLoadedKey:()Ljava/io/Serializable;
            aload 1 /* session */
         8: .line 62
            invokestatic org.hibernate.pretty.MessageHelper.collectionInfoString:(Lorg/hibernate/persister/collection/CollectionPersister;Lorg/hibernate/collection/spi/PersistentCollection;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/String;
         9: .line 60
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
        10: .line 69
      StackMap locals: org.hibernate.engine.spi.PersistenceContext org.hibernate.engine.spi.CollectionEntry org.hibernate.persister.collection.CollectionPersister
      StackMap stack:
            aload 4 /* loadedPersister */
            ifnull 11
            aload 4 /* loadedPersister */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.hasOrphanDelete:()Z
            ifeq 11
            iconst_1
            goto 12
      StackMap locals:
      StackMap stack:
        11: iconst_0
      StackMap locals:
      StackMap stack: int
        12: istore 5 /* hasOrphanDelete */
        start local 5 // boolean hasOrphanDelete
        13: .line 70
            iload 5 /* hasOrphanDelete */
            ifeq 37
        14: .line 71
            aload 4 /* loadedPersister */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.getOwnerEntityPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            aload 0 /* coll */
            invokeinterface org.hibernate.collection.spi.PersistentCollection.getOwner:()Ljava/lang/Object;
            aload 1 /* session */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getIdentifier:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/io/Serializable;
            astore 6 /* ownerId */
        start local 6 // java.io.Serializable ownerId
        15: .line 72
            aload 6 /* ownerId */
            ifnonnull 22
        16: .line 76
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isIdentifierRollbackEnabled:()Z
            ifeq 20
        17: .line 77
            aload 2 /* persistenceContext */
            aload 0 /* coll */
            invokeinterface org.hibernate.collection.spi.PersistentCollection.getOwner:()Ljava/lang/Object;
            invokeinterface org.hibernate.engine.spi.PersistenceContext.getEntry:(Ljava/lang/Object;)Lorg/hibernate/engine/spi/EntityEntry;
            astore 7 /* ownerEntry */
        start local 7 // org.hibernate.engine.spi.EntityEntry ownerEntry
        18: .line 78
            aload 7 /* ownerEntry */
            ifnull 20
        19: .line 79
            aload 7 /* ownerEntry */
            invokeinterface org.hibernate.engine.spi.EntityEntry.getId:()Ljava/io/Serializable;
            astore 6 /* ownerId */
        end local 7 // org.hibernate.engine.spi.EntityEntry ownerEntry
        20: .line 82
      StackMap locals: int java.io.Serializable
      StackMap stack:
            aload 6 /* ownerId */
            ifnonnull 22
        21: .line 83
            new org.hibernate.AssertionFailure
            dup
            ldc "Unable to determine collection owner identifier for orphan-delete processing"
            invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 86
      StackMap locals:
      StackMap stack:
            aload 1 /* session */
            aload 6 /* ownerId */
            aload 4 /* loadedPersister */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.getOwnerEntityPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            invokeinterface org.hibernate.engine.spi.SessionImplementor.generateEntityKey:(Ljava/io/Serializable;Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/engine/spi/EntityKey;
            astore 7 /* key */
        start local 7 // org.hibernate.engine.spi.EntityKey key
        23: .line 87
            aload 2 /* persistenceContext */
            aload 7 /* key */
            invokeinterface org.hibernate.engine.spi.PersistenceContext.getEntity:(Lorg/hibernate/engine/spi/EntityKey;)Ljava/lang/Object;
            astore 8 /* owner */
        start local 8 // java.lang.Object owner
        24: .line 88
            aload 8 /* owner */
            ifnonnull 30
        25: .line 89
            new org.hibernate.AssertionFailure
            dup
        26: .line 90
            new java.lang.StringBuilder
            dup
            ldc "collection owner not associated with session: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        27: .line 91
            aload 4 /* loadedPersister */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.getRole:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        28: .line 90
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        29: .line 89
            invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
            athrow
        30: .line 94
      StackMap locals: org.hibernate.engine.spi.EntityKey java.lang.Object
      StackMap stack:
            aload 2 /* persistenceContext */
            aload 8 /* owner */
            invokeinterface org.hibernate.engine.spi.PersistenceContext.getEntry:(Ljava/lang/Object;)Lorg/hibernate/engine/spi/EntityEntry;
            astore 9 /* e */
        start local 9 // org.hibernate.engine.spi.EntityEntry e
        31: .line 96
            aload 9 /* e */
            ifnull 37
            aload 9 /* e */
            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 37
            aload 9 /* e */
            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 37
        32: .line 97
            new org.hibernate.HibernateException
            dup
        33: .line 98
            new java.lang.StringBuilder
            dup
            ldc "A collection with cascade=\"all-delete-orphan\" was no longer referenced by the owning entity instance: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        34: .line 99
            aload 4 /* loadedPersister */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.getRole:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        35: .line 98
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        36: .line 97
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // org.hibernate.engine.spi.EntityEntry e
        end local 8 // java.lang.Object owner
        end local 7 // org.hibernate.engine.spi.EntityKey key
        end local 6 // java.io.Serializable ownerId
        37: .line 105
      StackMap locals:
      StackMap stack:
            aload 3 /* entry */
            aconst_null
            invokevirtual org.hibernate.engine.spi.CollectionEntry.setCurrentPersister:(Lorg/hibernate/persister/collection/CollectionPersister;)V
        38: .line 106
            aload 3 /* entry */
            aconst_null
            invokevirtual org.hibernate.engine.spi.CollectionEntry.setCurrentKey:(Ljava/io/Serializable;)V
        39: .line 107
            aload 0 /* coll */
            aload 3 /* entry */
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.engine.internal.Collections.prepareCollectionForUpdate:(Lorg/hibernate/collection/spi/PersistentCollection;Lorg/hibernate/engine/spi/CollectionEntry;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
        40: .line 109
            return
        end local 5 // boolean hasOrphanDelete
        end local 4 // org.hibernate.persister.collection.CollectionPersister loadedPersister
        end local 3 // org.hibernate.engine.spi.CollectionEntry entry
        end local 2 // org.hibernate.engine.spi.PersistenceContext persistenceContext
        end local 1 // org.hibernate.engine.spi.SessionImplementor session
        end local 0 // org.hibernate.collection.spi.PersistentCollection coll
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   41     0                coll  Lorg/hibernate/collection/spi/PersistentCollection;
            0   41     1             session  Lorg/hibernate/engine/spi/SessionImplementor;
            1   41     2  persistenceContext  Lorg/hibernate/engine/spi/PersistenceContext;
            2   41     3               entry  Lorg/hibernate/engine/spi/CollectionEntry;
            3   41     4     loadedPersister  Lorg/hibernate/persister/collection/CollectionPersister;
           13   41     5     hasOrphanDelete  Z
           15   37     6             ownerId  Ljava/io/Serializable;
           18   20     7          ownerEntry  Lorg/hibernate/engine/spi/EntityEntry;
           23   37     7                 key  Lorg/hibernate/engine/spi/EntityKey;
           24   37     8               owner  Ljava/lang/Object;
           31   37     9                   e  Lorg/hibernate/engine/spi/EntityEntry;
    MethodParameters:
         Name  Flags
      coll     
      session  

  private static void processNeverReferencedCollection(org.hibernate.collection.spi.PersistentCollection, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Lorg/hibernate/collection/spi/PersistentCollection;Lorg/hibernate/engine/spi/SessionImplementor;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.hibernate.collection.spi.PersistentCollection coll
        start local 1 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 113
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getPersistenceContext:()Lorg/hibernate/engine/spi/PersistenceContext;
            astore 2 /* persistenceContext */
        start local 2 // org.hibernate.engine.spi.PersistenceContext persistenceContext
         1: .line 114
            aload 2 /* persistenceContext */
            aload 0 /* coll */
            invokeinterface org.hibernate.engine.spi.PersistenceContext.getCollectionEntry:(Lorg/hibernate/collection/spi/PersistentCollection;)Lorg/hibernate/engine/spi/CollectionEntry;
            astore 3 /* entry */
        start local 3 // org.hibernate.engine.spi.CollectionEntry entry
         2: .line 116
            getstatic org.hibernate.engine.internal.Collections.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isDebugEnabled:()Z
            ifeq 11
         3: .line 117
            getstatic org.hibernate.engine.internal.Collections.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         4: .line 118
            ldc "Found collection with unloaded owner: %s"
         5: .line 120
            aload 3 /* entry */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.getLoadedPersister:()Lorg/hibernate/persister/collection/CollectionPersister;
         6: .line 121
            aload 0 /* coll */
         7: .line 122
            aload 3 /* entry */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.getLoadedKey:()Ljava/io/Serializable;
         8: .line 123
            aload 1 /* session */
         9: .line 119
            invokestatic org.hibernate.pretty.MessageHelper.collectionInfoString:(Lorg/hibernate/persister/collection/CollectionPersister;Lorg/hibernate/collection/spi/PersistentCollection;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/String;
        10: .line 117
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
        11: .line 128
      StackMap locals: org.hibernate.engine.spi.PersistenceContext org.hibernate.engine.spi.CollectionEntry
      StackMap stack:
            aload 3 /* entry */
            aload 3 /* entry */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.getLoadedPersister:()Lorg/hibernate/persister/collection/CollectionPersister;
            invokevirtual org.hibernate.engine.spi.CollectionEntry.setCurrentPersister:(Lorg/hibernate/persister/collection/CollectionPersister;)V
        12: .line 129
            aload 3 /* entry */
            aload 3 /* entry */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.getLoadedKey:()Ljava/io/Serializable;
            invokevirtual org.hibernate.engine.spi.CollectionEntry.setCurrentKey:(Ljava/io/Serializable;)V
        13: .line 131
            aload 0 /* coll */
            aload 3 /* entry */
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.engine.internal.Collections.prepareCollectionForUpdate:(Lorg/hibernate/collection/spi/PersistentCollection;Lorg/hibernate/engine/spi/CollectionEntry;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
        14: .line 133
            return
        end local 3 // org.hibernate.engine.spi.CollectionEntry entry
        end local 2 // org.hibernate.engine.spi.PersistenceContext persistenceContext
        end local 1 // org.hibernate.engine.spi.SessionImplementor session
        end local 0 // org.hibernate.collection.spi.PersistentCollection coll
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   15     0                coll  Lorg/hibernate/collection/spi/PersistentCollection;
            0   15     1             session  Lorg/hibernate/engine/spi/SessionImplementor;
            1   15     2  persistenceContext  Lorg/hibernate/engine/spi/PersistenceContext;
            2   15     3               entry  Lorg/hibernate/engine/spi/CollectionEntry;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      coll     
      session  

  public static void processReachableCollection(org.hibernate.collection.spi.PersistentCollection, org.hibernate.type.CollectionType, java.lang.Object, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Lorg/hibernate/collection/spi/PersistentCollection;Lorg/hibernate/type/CollectionType;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=8, args_size=4
        start local 0 // org.hibernate.collection.spi.PersistentCollection collection
        start local 1 // org.hibernate.type.CollectionType type
        start local 2 // java.lang.Object entity
        start local 3 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 148
            aload 0 /* collection */
            aload 2 /* entity */
            invokeinterface org.hibernate.collection.spi.PersistentCollection.setOwner:(Ljava/lang/Object;)V
         1: .line 149
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getPersistenceContext:()Lorg/hibernate/engine/spi/PersistenceContext;
            aload 0 /* collection */
            invokeinterface org.hibernate.engine.spi.PersistenceContext.getCollectionEntry:(Lorg/hibernate/collection/spi/PersistentCollection;)Lorg/hibernate/engine/spi/CollectionEntry;
            astore 4 /* ce */
        start local 4 // org.hibernate.engine.spi.CollectionEntry ce
         2: .line 151
            aload 4 /* ce */
            ifnonnull 8
         3: .line 153
            new org.hibernate.HibernateException
            dup
         4: .line 154
            new java.lang.StringBuilder
            dup
            ldc "Found two representations of same collection: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 155
            aload 1 /* type */
            invokevirtual org.hibernate.type.CollectionType.getRole:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 154
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 153
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 159
      StackMap locals: org.hibernate.engine.spi.CollectionEntry
      StackMap stack:
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            astore 5 /* factory */
        start local 5 // org.hibernate.engine.spi.SessionFactoryImplementor factory
         9: .line 160
            aload 5 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 1 /* type */
            invokevirtual org.hibernate.type.CollectionType.getRole:()Ljava/lang/String;
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.collectionPersister:(Ljava/lang/String;)Lorg/hibernate/persister/collection/CollectionPersister;
            astore 6 /* persister */
        start local 6 // org.hibernate.persister.collection.CollectionPersister persister
        10: .line 162
            aload 4 /* ce */
            aload 6 /* persister */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.setCurrentPersister:(Lorg/hibernate/persister/collection/CollectionPersister;)V
        11: .line 164
            aload 4 /* ce */
            aload 1 /* type */
            aload 2 /* entity */
            aload 3 /* session */
            invokevirtual org.hibernate.type.CollectionType.getKeyOfOwner:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/io/Serializable;
            invokevirtual org.hibernate.engine.spi.CollectionEntry.setCurrentKey:(Ljava/io/Serializable;)V
        12: .line 166
            aload 6 /* persister */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.getOwnerEntityPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            invokeinterface org.hibernate.persister.entity.EntityPersister.getInstrumentationMetadata:()Lorg/hibernate/bytecode/spi/BytecodeEnhancementMetadata;
            invokeinterface org.hibernate.bytecode.spi.BytecodeEnhancementMetadata.isEnhancedForLazyLoading:()Z
            istore 7 /* isBytecodeEnhanced */
        start local 7 // boolean isBytecodeEnhanced
        13: .line 167
            iload 7 /* isBytecodeEnhanced */
            ifeq 21
            aload 0 /* collection */
            invokeinterface org.hibernate.collection.spi.PersistentCollection.wasInitialized:()Z
            ifne 21
        14: .line 169
            getstatic org.hibernate.engine.internal.Collections.LOG:Lorg/hibernate/internal/CoreMessageLogger;
        15: .line 170
            ldc "Skipping uninitialized bytecode-lazy collection: %s"
        16: .line 171
            aload 6 /* persister */
            aload 0 /* collection */
            aload 4 /* ce */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.getCurrentKey:()Ljava/io/Serializable;
            aload 3 /* session */
            invokestatic org.hibernate.pretty.MessageHelper.collectionInfoString:(Lorg/hibernate/persister/collection/CollectionPersister;Lorg/hibernate/collection/spi/PersistentCollection;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/String;
        17: .line 169
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
        18: .line 173
            aload 4 /* ce */
            iconst_1
            invokevirtual org.hibernate.engine.spi.CollectionEntry.setReached:(Z)V
        19: .line 174
            aload 4 /* ce */
            iconst_1
            invokevirtual org.hibernate.engine.spi.CollectionEntry.setProcessed:(Z)V
        20: .line 175
            goto 56
        21: .line 179
      StackMap locals: org.hibernate.engine.spi.SessionFactoryImplementor org.hibernate.persister.collection.CollectionPersister int
      StackMap stack:
            aload 4 /* ce */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.isReached:()Z
            ifeq 25
        22: .line 181
            new org.hibernate.HibernateException
            dup
        23: .line 182
            new java.lang.StringBuilder
            dup
            ldc "Found shared references to a collection: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* type */
            invokevirtual org.hibernate.type.CollectionType.getRole:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        24: .line 181
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
        25: .line 185
      StackMap locals:
      StackMap stack:
            aload 4 /* ce */
            iconst_1
            invokevirtual org.hibernate.engine.spi.CollectionEntry.setReached:(Z)V
        26: .line 187
            getstatic org.hibernate.engine.internal.Collections.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isDebugEnabled:()Z
            ifeq 55
        27: .line 188
            aload 0 /* collection */
            invokeinterface org.hibernate.collection.spi.PersistentCollection.wasInitialized:()Z
            ifeq 42
        28: .line 189
            getstatic org.hibernate.engine.internal.Collections.LOG:Lorg/hibernate/internal/CoreMessageLogger;
        29: .line 190
            ldc "Collection found: %s, was: %s (initialized)"
        30: .line 192
            aload 6 /* persister */
        31: .line 193
            aload 0 /* collection */
        32: .line 194
            aload 4 /* ce */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.getCurrentKey:()Ljava/io/Serializable;
        33: .line 195
            aload 3 /* session */
        34: .line 191
            invokestatic org.hibernate.pretty.MessageHelper.collectionInfoString:(Lorg/hibernate/persister/collection/CollectionPersister;Lorg/hibernate/collection/spi/PersistentCollection;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/String;
        35: .line 198
            aload 4 /* ce */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.getLoadedPersister:()Lorg/hibernate/persister/collection/CollectionPersister;
        36: .line 199
            aload 0 /* collection */
        37: .line 200
            aload 4 /* ce */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.getLoadedKey:()Ljava/io/Serializable;
        38: .line 201
            aload 3 /* session */
        39: .line 197
            invokestatic org.hibernate.pretty.MessageHelper.collectionInfoString:(Lorg/hibernate/persister/collection/CollectionPersister;Lorg/hibernate/collection/spi/PersistentCollection;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/String;
        40: .line 189
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        41: .line 204
            goto 55
        42: .line 206
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.engine.internal.Collections.LOG:Lorg/hibernate/internal/CoreMessageLogger;
        43: .line 207
            ldc "Collection found: %s, was: %s (uninitialized)"
        44: .line 209
            aload 6 /* persister */
        45: .line 210
            aload 0 /* collection */
        46: .line 211
            aload 4 /* ce */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.getCurrentKey:()Ljava/io/Serializable;
        47: .line 212
            aload 3 /* session */
        48: .line 208
            invokestatic org.hibernate.pretty.MessageHelper.collectionInfoString:(Lorg/hibernate/persister/collection/CollectionPersister;Lorg/hibernate/collection/spi/PersistentCollection;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/String;
        49: .line 215
            aload 4 /* ce */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.getLoadedPersister:()Lorg/hibernate/persister/collection/CollectionPersister;
        50: .line 216
            aload 0 /* collection */
        51: .line 217
            aload 4 /* ce */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.getLoadedKey:()Ljava/io/Serializable;
        52: .line 218
            aload 3 /* session */
        53: .line 214
            invokestatic org.hibernate.pretty.MessageHelper.collectionInfoString:(Lorg/hibernate/persister/collection/CollectionPersister;Lorg/hibernate/collection/spi/PersistentCollection;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/String;
        54: .line 206
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        55: .line 224
      StackMap locals:
      StackMap stack:
            aload 0 /* collection */
            aload 4 /* ce */
            aload 5 /* factory */
            invokestatic org.hibernate.engine.internal.Collections.prepareCollectionForUpdate:(Lorg/hibernate/collection/spi/PersistentCollection;Lorg/hibernate/engine/spi/CollectionEntry;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
        56: .line 226
      StackMap locals:
      StackMap stack:
            return
        end local 7 // boolean isBytecodeEnhanced
        end local 6 // org.hibernate.persister.collection.CollectionPersister persister
        end local 5 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 4 // org.hibernate.engine.spi.CollectionEntry ce
        end local 3 // org.hibernate.engine.spi.SessionImplementor session
        end local 2 // java.lang.Object entity
        end local 1 // org.hibernate.type.CollectionType type
        end local 0 // org.hibernate.collection.spi.PersistentCollection collection
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   57     0          collection  Lorg/hibernate/collection/spi/PersistentCollection;
            0   57     1                type  Lorg/hibernate/type/CollectionType;
            0   57     2              entity  Ljava/lang/Object;
            0   57     3             session  Lorg/hibernate/engine/spi/SessionImplementor;
            2   57     4                  ce  Lorg/hibernate/engine/spi/CollectionEntry;
            9   57     5             factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
           10   57     6           persister  Lorg/hibernate/persister/collection/CollectionPersister;
           13   57     7  isBytecodeEnhanced  Z
    MethodParameters:
            Name  Flags
      collection  
      type        
      entity      
      session     

  private static void prepareCollectionForUpdate(org.hibernate.collection.spi.PersistentCollection, org.hibernate.engine.spi.CollectionEntry, org.hibernate.engine.spi.SessionFactoryImplementor);
    descriptor: (Lorg/hibernate/collection/spi/PersistentCollection;Lorg/hibernate/engine/spi/CollectionEntry;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.hibernate.collection.spi.PersistentCollection collection
        start local 1 // org.hibernate.engine.spi.CollectionEntry entry
        start local 2 // org.hibernate.engine.spi.SessionFactoryImplementor factory
         0: .line 238
            aload 1 /* entry */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.isProcessed:()Z
            ifeq 2
         1: .line 239
            new org.hibernate.AssertionFailure
            dup
            ldc "collection was processed twice by flush()"
            invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 241
      StackMap locals:
      StackMap stack:
            aload 1 /* entry */
            iconst_1
            invokevirtual org.hibernate.engine.spi.CollectionEntry.setProcessed:(Z)V
         3: .line 243
            aload 1 /* entry */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.getLoadedPersister:()Lorg/hibernate/persister/collection/CollectionPersister;
            astore 3 /* loadedPersister */
        start local 3 // org.hibernate.persister.collection.CollectionPersister loadedPersister
         4: .line 244
            aload 1 /* entry */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.getCurrentPersister:()Lorg/hibernate/persister/collection/CollectionPersister;
            astore 4 /* currentPersister */
        start local 4 // org.hibernate.persister.collection.CollectionPersister currentPersister
         5: .line 245
            aload 3 /* loadedPersister */
            ifnonnull 6
            aload 4 /* currentPersister */
            ifnull 32
         6: .line 249
      StackMap locals: org.hibernate.persister.collection.CollectionPersister org.hibernate.persister.collection.CollectionPersister
      StackMap stack:
            aload 3 /* loadedPersister */
            aload 4 /* currentPersister */
            if_acmpne 9
         7: .line 250
            aload 4 /* currentPersister */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.getKeyType:()Lorg/hibernate/type/Type;
            aload 1 /* entry */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.getLoadedKey:()Ljava/io/Serializable;
            aload 1 /* entry */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.getCurrentKey:()Ljava/io/Serializable;
            aload 2 /* factory */
            invokeinterface org.hibernate.type.Type.isEqual:(Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Z
            ifeq 9
         8: .line 249
            iconst_0
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_1
      StackMap locals:
      StackMap stack: int
        10: istore 5 /* ownerChanged */
        start local 5 // boolean ownerChanged
        11: .line 252
            iload 5 /* ownerChanged */
            ifeq 30
        12: .line 255
            aload 3 /* loadedPersister */
            ifnull 14
            aload 4 /* currentPersister */
            ifnull 14
            aload 3 /* loadedPersister */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.hasOrphanDelete:()Z
            ifeq 14
        13: .line 254
            iconst_1
            goto 15
      StackMap locals: int
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: istore 6 /* orphanDeleteAndRoleChanged */
        start local 6 // boolean orphanDeleteAndRoleChanged
        16: .line 257
            iload 6 /* orphanDeleteAndRoleChanged */
            ifeq 22
        17: .line 258
            new org.hibernate.HibernateException
            dup
        18: .line 259
            new java.lang.StringBuilder
            dup
            ldc "Don't change the reference to a collection with delete-orphan enabled : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        19: .line 260
            aload 3 /* loadedPersister */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.getRole:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        20: .line 259
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        21: .line 258
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 265
      StackMap locals: int
      StackMap stack:
            aload 4 /* currentPersister */
            ifnull 24
        23: .line 266
            aload 1 /* entry */
            iconst_1
            invokevirtual org.hibernate.engine.spi.CollectionEntry.setDorecreate:(Z)V
        24: .line 269
      StackMap locals:
      StackMap stack:
            aload 3 /* loadedPersister */
            ifnull 32
        25: .line 271
            aload 1 /* entry */
            iconst_1
            invokevirtual org.hibernate.engine.spi.CollectionEntry.setDoremove:(Z)V
        26: .line 272
            aload 1 /* entry */
            invokevirtual org.hibernate.engine.spi.CollectionEntry.isDorecreate:()Z
            ifeq 32
        27: .line 273
            getstatic org.hibernate.engine.internal.Collections.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Forcing collection initialization"
            invokeinterface org.hibernate.internal.CoreMessageLogger.trace:(Ljava/lang/Object;)V
        28: .line 274
            aload 0 /* collection */
            invokeinterface org.hibernate.collection.spi.PersistentCollection.forceInitialization:()V
        end local 6 // boolean orphanDeleteAndRoleChanged
        29: .line 277
            goto 32
        30: .line 278
      StackMap locals:
      StackMap stack:
            aload 0 /* collection */
            invokeinterface org.hibernate.collection.spi.PersistentCollection.isDirty:()Z
            ifeq 32
        31: .line 280
            aload 1 /* entry */
            iconst_1
            invokevirtual org.hibernate.engine.spi.CollectionEntry.setDoupdate:(Z)V
        end local 5 // boolean ownerChanged
        32: .line 283
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.hibernate.persister.collection.CollectionPersister currentPersister
        end local 3 // org.hibernate.persister.collection.CollectionPersister loadedPersister
        end local 2 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 1 // org.hibernate.engine.spi.CollectionEntry entry
        end local 0 // org.hibernate.collection.spi.PersistentCollection collection
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   33     0                  collection  Lorg/hibernate/collection/spi/PersistentCollection;
            0   33     1                       entry  Lorg/hibernate/engine/spi/CollectionEntry;
            0   33     2                     factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            4   33     3             loadedPersister  Lorg/hibernate/persister/collection/CollectionPersister;
            5   33     4            currentPersister  Lorg/hibernate/persister/collection/CollectionPersister;
           11   32     5                ownerChanged  Z
           16   29     6  orphanDeleteAndRoleChanged  Z
    MethodParameters:
            Name  Flags
      collection  
      entry       
      factory     

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.engine.internal.Collections this
         0: .line 288
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 289
            return
        end local 0 // org.hibernate.engine.internal.Collections this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/engine/internal/Collections;
}
SourceFile: "Collections.java"