class org.hibernate.engine.internal.StatefulPersistenceContext$1 implements org.hibernate.engine.spi.PersistenceContext$NaturalIdHelper
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.hibernate.engine.internal.StatefulPersistenceContext$1
  super_class: java.lang.Object
{
  final org.hibernate.engine.internal.StatefulPersistenceContext this$0;
    descriptor: Lorg/hibernate/engine/internal/StatefulPersistenceContext;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

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

  void <init>(org.hibernate.engine.internal.StatefulPersistenceContext);
    descriptor: (Lorg/hibernate/engine/internal/StatefulPersistenceContext;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
         0: .line 1714
            aload 0 /* this */
            aload 1
            putfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/engine/internal/StatefulPersistenceContext$1;
    MethodParameters:
        Name  Flags
      this$0  final

  public void cacheNaturalIdCrossReferenceFromLoad(org.hibernate.persister.entity.EntityPersister, java.io.Serializable, java.lang.Object[]);
    descriptor: (Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;[Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
        start local 1 // org.hibernate.persister.entity.EntityPersister persister
        start local 2 // java.io.Serializable id
        start local 3 // java.lang.Object[] naturalIdValues
         0: .line 1720
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdentifier:()Z
            ifne 2
         1: .line 1722
            return
         2: .line 1725
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 1 /* persister */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.locateProperPersister:(Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/persister/entity/EntityPersister;
            astore 1 /* persister */
         3: .line 1731
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.naturalIdXrefDelegate:Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
            aload 1 /* persister */
            aload 2 /* id */
            aload 3 /* naturalIdValues */
            invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.cacheNaturalIdCrossReference:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;[Ljava/lang/Object;)Z
            istore 4 /* justAddedLocally */
        start local 4 // boolean justAddedLocally
         4: .line 1733
            iload 4 /* justAddedLocally */
            ifeq 6
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdCache:()Z
            ifeq 6
         5: .line 1734
            aload 0 /* this */
            aload 1 /* persister */
            aload 2 /* id */
            aload 3 /* naturalIdValues */
            aconst_null
            getstatic org.hibernate.engine.spi.CachedNaturalIdValueSource.LOAD:Lorg/hibernate/engine/spi/CachedNaturalIdValueSource;
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext$1.managedSharedCacheEntries:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;[Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/engine/spi/CachedNaturalIdValueSource;)V
         6: .line 1736
      StackMap locals: int
      StackMap stack:
            return
        end local 4 // boolean justAddedLocally
        end local 3 // java.lang.Object[] naturalIdValues
        end local 2 // java.io.Serializable id
        end local 1 // org.hibernate.persister.entity.EntityPersister persister
        end local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Lorg/hibernate/engine/internal/StatefulPersistenceContext$1;
            0    7     1         persister  Lorg/hibernate/persister/entity/EntityPersister;
            0    7     2                id  Ljava/io/Serializable;
            0    7     3   naturalIdValues  [Ljava/lang/Object;
            4    7     4  justAddedLocally  Z
    MethodParameters:
                 Name  Flags
      persister        
      id               
      naturalIdValues  

  public void manageLocalNaturalIdCrossReference(org.hibernate.persister.entity.EntityPersister, java.io.Serializable, java.lang.Object[], java.lang.Object[], org.hibernate.engine.spi.CachedNaturalIdValueSource);
    descriptor: (Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;[Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/engine/spi/CachedNaturalIdValueSource;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=6
        start local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
        start local 1 // org.hibernate.persister.entity.EntityPersister persister
        start local 2 // java.io.Serializable id
        start local 3 // java.lang.Object[] state
        start local 4 // java.lang.Object[] previousState
        start local 5 // org.hibernate.engine.spi.CachedNaturalIdValueSource source
         0: .line 1745
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdentifier:()Z
            ifne 2
         1: .line 1747
            return
         2: .line 1750
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 1 /* persister */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.locateProperPersister:(Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/persister/entity/EntityPersister;
            astore 1 /* persister */
         3: .line 1751
            aload 0 /* this */
            aload 3 /* state */
            aload 1 /* persister */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext$1.extractNaturalIdValues:([Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;)[Ljava/lang/Object;
            astore 6 /* naturalIdValues */
        start local 6 // java.lang.Object[] naturalIdValues
         4: .line 1754
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.naturalIdXrefDelegate:Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
            aload 1 /* persister */
            aload 2 /* id */
            aload 6 /* naturalIdValues */
            invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.cacheNaturalIdCrossReference:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;[Ljava/lang/Object;)Z
            pop
         5: .line 1755
            return
        end local 6 // java.lang.Object[] naturalIdValues
        end local 5 // org.hibernate.engine.spi.CachedNaturalIdValueSource source
        end local 4 // java.lang.Object[] previousState
        end local 3 // java.lang.Object[] state
        end local 2 // java.io.Serializable id
        end local 1 // org.hibernate.persister.entity.EntityPersister persister
        end local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lorg/hibernate/engine/internal/StatefulPersistenceContext$1;
            0    6     1        persister  Lorg/hibernate/persister/entity/EntityPersister;
            0    6     2               id  Ljava/io/Serializable;
            0    6     3            state  [Ljava/lang/Object;
            0    6     4    previousState  [Ljava/lang/Object;
            0    6     5           source  Lorg/hibernate/engine/spi/CachedNaturalIdValueSource;
            4    6     6  naturalIdValues  [Ljava/lang/Object;
    MethodParameters:
               Name  Flags
      persister      
      id             
      state          
      previousState  
      source         

  public void manageSharedNaturalIdCrossReference(org.hibernate.persister.entity.EntityPersister, java.io.Serializable, java.lang.Object[], java.lang.Object[], org.hibernate.engine.spi.CachedNaturalIdValueSource);
    descriptor: (Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;[Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/engine/spi/CachedNaturalIdValueSource;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=6
        start local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
        start local 1 // org.hibernate.persister.entity.EntityPersister persister
        start local 2 // java.io.Serializable id
        start local 3 // java.lang.Object[] state
        start local 4 // java.lang.Object[] previousState
        start local 5 // org.hibernate.engine.spi.CachedNaturalIdValueSource source
         0: .line 1764
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdentifier:()Z
            ifne 2
         1: .line 1766
            return
         2: .line 1769
      StackMap locals:
      StackMap stack:
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdCache:()Z
            ifne 4
         3: .line 1771
            return
         4: .line 1774
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 1 /* persister */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.locateProperPersister:(Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/persister/entity/EntityPersister;
            astore 1 /* persister */
         5: .line 1775
            aload 0 /* this */
            aload 3 /* state */
            aload 1 /* persister */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext$1.extractNaturalIdValues:([Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;)[Ljava/lang/Object;
            astore 6 /* naturalIdValues */
        start local 6 // java.lang.Object[] naturalIdValues
         6: .line 1776
            aload 4 /* previousState */
            ifnonnull 7
            aconst_null
            goto 8
      StackMap locals: java.lang.Object[]
      StackMap stack:
         7: aload 0 /* this */
            aload 4 /* previousState */
            aload 1 /* persister */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext$1.extractNaturalIdValues:([Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;)[Ljava/lang/Object;
      StackMap locals:
      StackMap stack: java.lang.Object[]
         8: astore 7 /* previousNaturalIdValues */
        start local 7 // java.lang.Object[] previousNaturalIdValues
         9: .line 1778
            aload 0 /* this */
            aload 1 /* persister */
            aload 2 /* id */
            aload 6 /* naturalIdValues */
            aload 7 /* previousNaturalIdValues */
            aload 5 /* source */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext$1.managedSharedCacheEntries:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;[Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/engine/spi/CachedNaturalIdValueSource;)V
        10: .line 1779
            return
        end local 7 // java.lang.Object[] previousNaturalIdValues
        end local 6 // java.lang.Object[] naturalIdValues
        end local 5 // org.hibernate.engine.spi.CachedNaturalIdValueSource source
        end local 4 // java.lang.Object[] previousState
        end local 3 // java.lang.Object[] state
        end local 2 // java.io.Serializable id
        end local 1 // org.hibernate.persister.entity.EntityPersister persister
        end local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   11     0                     this  Lorg/hibernate/engine/internal/StatefulPersistenceContext$1;
            0   11     1                persister  Lorg/hibernate/persister/entity/EntityPersister;
            0   11     2                       id  Ljava/io/Serializable;
            0   11     3                    state  [Ljava/lang/Object;
            0   11     4            previousState  [Ljava/lang/Object;
            0   11     5                   source  Lorg/hibernate/engine/spi/CachedNaturalIdValueSource;
            6   11     6          naturalIdValues  [Ljava/lang/Object;
            9   11     7  previousNaturalIdValues  [Ljava/lang/Object;
    MethodParameters:
               Name  Flags
      persister      
      id             final
      state          
      previousState  
      source         

  private void managedSharedCacheEntries(org.hibernate.persister.entity.EntityPersister, java.io.Serializable, java.lang.Object[], java.lang.Object[], org.hibernate.engine.spi.CachedNaturalIdValueSource);
    descriptor: (Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;[Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/engine/spi/CachedNaturalIdValueSource;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=13, args_size=6
        start local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
        start local 1 // org.hibernate.persister.entity.EntityPersister persister
        start local 2 // java.io.Serializable id
        start local 3 // java.lang.Object[] naturalIdValues
        start local 4 // java.lang.Object[] previousNaturalIdValues
        start local 5 // org.hibernate.engine.spi.CachedNaturalIdValueSource source
         0: .line 1787
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getNaturalIdCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/NaturalIdDataAccess;
            astore 6 /* naturalIdCacheAccessStrategy */
        start local 6 // org.hibernate.cache.spi.access.NaturalIdDataAccess naturalIdCacheAccessStrategy
         1: .line 1788
            aload 6 /* naturalIdCacheAccessStrategy */
            aload 3 /* naturalIdValues */
            aload 1 /* persister */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.session:Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            invokeinterface org.hibernate.cache.spi.access.NaturalIdDataAccess.generateCacheKey:([Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
            astore 7 /* naturalIdCacheKey */
        start local 7 // java.lang.Object naturalIdCacheKey
         2: .line 1790
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.session:Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            astore 8 /* factory */
        start local 8 // org.hibernate.engine.spi.SessionFactoryImplementor factory
         3: .line 1792
            invokestatic org.hibernate.engine.internal.StatefulPersistenceContext$1.$SWITCH_TABLE$org$hibernate$engine$spi$CachedNaturalIdValueSource:()[I
            aload 5 /* source */
            invokevirtual org.hibernate.engine.spi.CachedNaturalIdValueSource.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 4
                    2: 18
                    3: 28
              default: 44
          }
         4: .line 1794
      StackMap locals: org.hibernate.cache.spi.access.NaturalIdDataAccess java.lang.Object org.hibernate.engine.spi.SessionFactoryImplementor
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.session:Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            aload 7 /* naturalIdCacheKey */
            aload 6 /* naturalIdCacheAccessStrategy */
            invokestatic org.hibernate.engine.internal.CacheHelper.fromSharedCache:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;Lorg/hibernate/cache/spi/access/CachedDomainDataAccess;)Ljava/io/Serializable;
            ifnull 6
         5: .line 1796
            return
         6: .line 1798
      StackMap locals:
      StackMap stack:
            aload 6 /* naturalIdCacheAccessStrategy */
         7: .line 1799
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.session:Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
         8: .line 1800
            aload 7 /* naturalIdCacheKey */
         9: .line 1801
            aload 2 /* id */
        10: .line 1802
            aconst_null
        11: .line 1798
            invokeinterface org.hibernate.cache.spi.access.NaturalIdDataAccess.putFromLoad:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
            istore 9 /* put */
        start local 9 // boolean put
        12: .line 1805
            iload 9 /* put */
            ifeq 45
            aload 8 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatistics:()Lorg/hibernate/stat/spi/StatisticsImplementor;
            invokeinterface org.hibernate.stat.spi.StatisticsImplementor.isStatisticsEnabled:()Z
            ifeq 45
        13: .line 1806
            aload 8 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatistics:()Lorg/hibernate/stat/spi/StatisticsImplementor;
        14: .line 1807
            getstatic org.hibernate.stat.internal.StatsHelper.INSTANCE:Lorg/hibernate/stat/internal/StatsHelper;
            aload 1 /* persister */
            invokevirtual org.hibernate.stat.internal.StatsHelper.getRootEntityRole:(Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/metamodel/model/domain/NavigableRole;
        15: .line 1808
            aload 6 /* naturalIdCacheAccessStrategy */
            invokeinterface org.hibernate.cache.spi.access.NaturalIdDataAccess.getRegion:()Lorg/hibernate/cache/spi/DomainDataRegion;
            invokeinterface org.hibernate.cache.spi.DomainDataRegion.getName:()Ljava/lang/String;
        16: .line 1806
            invokeinterface org.hibernate.stat.spi.StatisticsImplementor.naturalIdCachePut:(Lorg/hibernate/metamodel/model/domain/NavigableRole;Ljava/lang/String;)V
        17: .line 1812
            goto 45
        end local 9 // boolean put
        18: .line 1815
      StackMap locals:
      StackMap stack:
            aload 6 /* naturalIdCacheAccessStrategy */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.session:Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            aload 7 /* naturalIdCacheKey */
            aload 2 /* id */
            invokeinterface org.hibernate.cache.spi.access.NaturalIdDataAccess.insert:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;Ljava/lang/Object;)Z
            istore 9 /* put */
        start local 9 // boolean put
        19: .line 1816
            iload 9 /* put */
            ifeq 24
            aload 8 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatistics:()Lorg/hibernate/stat/spi/StatisticsImplementor;
            invokeinterface org.hibernate.stat.spi.StatisticsImplementor.isStatisticsEnabled:()Z
            ifeq 24
        20: .line 1817
            aload 8 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatistics:()Lorg/hibernate/stat/spi/StatisticsImplementor;
        21: .line 1818
            getstatic org.hibernate.stat.internal.StatsHelper.INSTANCE:Lorg/hibernate/stat/internal/StatsHelper;
            aload 1 /* persister */
            invokevirtual org.hibernate.stat.internal.StatsHelper.getRootEntityRole:(Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/metamodel/model/domain/NavigableRole;
        22: .line 1819
            aload 6 /* naturalIdCacheAccessStrategy */
            invokeinterface org.hibernate.cache.spi.access.NaturalIdDataAccess.getRegion:()Lorg/hibernate/cache/spi/DomainDataRegion;
            invokeinterface org.hibernate.cache.spi.DomainDataRegion.getName:()Ljava/lang/String;
        23: .line 1817
            invokeinterface org.hibernate.stat.spi.StatisticsImplementor.naturalIdCachePut:(Lorg/hibernate/metamodel/model/domain/NavigableRole;Ljava/lang/String;)V
        24: .line 1823
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.session:Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            checkcast org.hibernate.event.spi.EventSource
            invokeinterface org.hibernate.event.spi.EventSource.getActionQueue:()Lorg/hibernate/engine/spi/ActionQueue;
        25: .line 1824
            new org.hibernate.engine.internal.StatefulPersistenceContext$1$1
            dup
            aload 0 /* this */
            aload 6 /* naturalIdCacheAccessStrategy */
            aload 7 /* naturalIdCacheKey */
            aload 2 /* id */
            aload 8 /* factory */
            aload 1 /* persister */
            invokespecial org.hibernate.engine.internal.StatefulPersistenceContext$1$1.<init>:(Lorg/hibernate/engine/internal/StatefulPersistenceContext$1;Lorg/hibernate/cache/spi/access/NaturalIdDataAccess;Ljava/lang/Object;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/persister/entity/EntityPersister;)V
        26: .line 1823
            invokevirtual org.hibernate.engine.spi.ActionQueue.registerProcess:(Lorg/hibernate/action/spi/AfterTransactionCompletionProcess;)V
        27: .line 1843
            goto 45
        end local 9 // boolean put
        28: .line 1846
      StackMap locals:
      StackMap stack:
            aload 6 /* naturalIdCacheAccessStrategy */
            aload 4 /* previousNaturalIdValues */
            aload 1 /* persister */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.session:Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            invokeinterface org.hibernate.cache.spi.access.NaturalIdDataAccess.generateCacheKey:([Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
            astore 9 /* previousCacheKey */
        start local 9 // java.lang.Object previousCacheKey
        29: .line 1847
            aload 7 /* naturalIdCacheKey */
            aload 9 /* previousCacheKey */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 31
        30: .line 1849
            return
        31: .line 1851
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 6 /* naturalIdCacheAccessStrategy */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.session:Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            aload 9 /* previousCacheKey */
            aconst_null
            invokeinterface org.hibernate.cache.spi.access.NaturalIdDataAccess.lockItem:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;Ljava/lang/Object;)Lorg/hibernate/cache/spi/access/SoftLock;
            astore 10 /* removalLock */
        start local 10 // org.hibernate.cache.spi.access.SoftLock removalLock
        32: .line 1852
            aload 6 /* naturalIdCacheAccessStrategy */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.session:Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            aload 9 /* previousCacheKey */
            invokeinterface org.hibernate.cache.spi.access.NaturalIdDataAccess.remove:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)V
        33: .line 1854
            aload 6 /* naturalIdCacheAccessStrategy */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.session:Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            aload 7 /* naturalIdCacheKey */
            aconst_null
            invokeinterface org.hibernate.cache.spi.access.NaturalIdDataAccess.lockItem:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;Ljava/lang/Object;)Lorg/hibernate/cache/spi/access/SoftLock;
            astore 11 /* lock */
        start local 11 // org.hibernate.cache.spi.access.SoftLock lock
        34: .line 1855
            aload 6 /* naturalIdCacheAccessStrategy */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.session:Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            aload 7 /* naturalIdCacheKey */
            aload 2 /* id */
            invokeinterface org.hibernate.cache.spi.access.NaturalIdDataAccess.update:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;Ljava/lang/Object;)Z
            istore 12 /* put */
        start local 12 // boolean put
        35: .line 1856
            iload 12 /* put */
            ifeq 40
            aload 8 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatistics:()Lorg/hibernate/stat/spi/StatisticsImplementor;
            invokeinterface org.hibernate.stat.spi.StatisticsImplementor.isStatisticsEnabled:()Z
            ifeq 40
        36: .line 1857
            aload 8 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatistics:()Lorg/hibernate/stat/spi/StatisticsImplementor;
        37: .line 1858
            getstatic org.hibernate.stat.internal.StatsHelper.INSTANCE:Lorg/hibernate/stat/internal/StatsHelper;
            aload 1 /* persister */
            invokevirtual org.hibernate.stat.internal.StatsHelper.getRootEntityRole:(Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/metamodel/model/domain/NavigableRole;
        38: .line 1859
            aload 6 /* naturalIdCacheAccessStrategy */
            invokeinterface org.hibernate.cache.spi.access.NaturalIdDataAccess.getRegion:()Lorg/hibernate/cache/spi/DomainDataRegion;
            invokeinterface org.hibernate.cache.spi.DomainDataRegion.getName:()Ljava/lang/String;
        39: .line 1857
            invokeinterface org.hibernate.stat.spi.StatisticsImplementor.naturalIdCachePut:(Lorg/hibernate/metamodel/model/domain/NavigableRole;Ljava/lang/String;)V
        40: .line 1863
      StackMap locals: org.hibernate.cache.spi.access.SoftLock org.hibernate.cache.spi.access.SoftLock int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.session:Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            checkcast org.hibernate.event.spi.EventSource
            invokeinterface org.hibernate.event.spi.EventSource.getActionQueue:()Lorg/hibernate/engine/spi/ActionQueue;
        41: .line 1864
            new org.hibernate.engine.internal.StatefulPersistenceContext$1$2
            dup
            aload 0 /* this */
            aload 6 /* naturalIdCacheAccessStrategy */
            aload 9 /* previousCacheKey */
            aload 10 /* removalLock */
            aload 7 /* naturalIdCacheKey */
            aload 2 /* id */
            aload 11 /* lock */
            aload 8 /* factory */
            aload 1 /* persister */
            invokespecial org.hibernate.engine.internal.StatefulPersistenceContext$1$2.<init>:(Lorg/hibernate/engine/internal/StatefulPersistenceContext$1;Lorg/hibernate/cache/spi/access/NaturalIdDataAccess;Ljava/lang/Object;Lorg/hibernate/cache/spi/access/SoftLock;Ljava/lang/Object;Ljava/io/Serializable;Lorg/hibernate/cache/spi/access/SoftLock;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/persister/entity/EntityPersister;)V
        42: .line 1863
            invokevirtual org.hibernate.engine.spi.ActionQueue.registerProcess:(Lorg/hibernate/action/spi/AfterTransactionCompletionProcess;)V
        43: .line 1890
            goto 45
        end local 12 // boolean put
        end local 11 // org.hibernate.cache.spi.access.SoftLock lock
        end local 10 // org.hibernate.cache.spi.access.SoftLock removalLock
        end local 9 // java.lang.Object previousCacheKey
        44: .line 1893
      StackMap locals: org.hibernate.engine.internal.StatefulPersistenceContext$1 org.hibernate.persister.entity.EntityPersister java.io.Serializable java.lang.Object[] java.lang.Object[] org.hibernate.engine.spi.CachedNaturalIdValueSource org.hibernate.cache.spi.access.NaturalIdDataAccess java.lang.Object org.hibernate.engine.spi.SessionFactoryImplementor
      StackMap stack:
            getstatic org.hibernate.engine.internal.StatefulPersistenceContext.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            new java.lang.StringBuilder
            dup
            ldc "Unexpected CachedNaturalIdValueSource ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* source */
            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;
            invokeinterface org.hibernate.internal.CoreMessageLogger.debug:(Ljava/lang/Object;)V
        45: .line 1896
      StackMap locals:
      StackMap stack:
            return
        end local 8 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 7 // java.lang.Object naturalIdCacheKey
        end local 6 // org.hibernate.cache.spi.access.NaturalIdDataAccess naturalIdCacheAccessStrategy
        end local 5 // org.hibernate.engine.spi.CachedNaturalIdValueSource source
        end local 4 // java.lang.Object[] previousNaturalIdValues
        end local 3 // java.lang.Object[] naturalIdValues
        end local 2 // java.io.Serializable id
        end local 1 // org.hibernate.persister.entity.EntityPersister persister
        end local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0   46     0                          this  Lorg/hibernate/engine/internal/StatefulPersistenceContext$1;
            0   46     1                     persister  Lorg/hibernate/persister/entity/EntityPersister;
            0   46     2                            id  Ljava/io/Serializable;
            0   46     3               naturalIdValues  [Ljava/lang/Object;
            0   46     4       previousNaturalIdValues  [Ljava/lang/Object;
            0   46     5                        source  Lorg/hibernate/engine/spi/CachedNaturalIdValueSource;
            1   46     6  naturalIdCacheAccessStrategy  Lorg/hibernate/cache/spi/access/NaturalIdDataAccess;
            2   46     7             naturalIdCacheKey  Ljava/lang/Object;
            3   46     8                       factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
           12   18     9                           put  Z
           19   28     9                           put  Z
           29   44     9              previousCacheKey  Ljava/lang/Object;
           32   44    10                   removalLock  Lorg/hibernate/cache/spi/access/SoftLock;
           34   44    11                          lock  Lorg/hibernate/cache/spi/access/SoftLock;
           35   44    12                           put  Z
    MethodParameters:
                         Name  Flags
      persister                
      id                       final
      naturalIdValues          
      previousNaturalIdValues  
      source                   

  public java.lang.Object[] removeLocalNaturalIdCrossReference(org.hibernate.persister.entity.EntityPersister, java.io.Serializable, java.lang.Object[]);
    descriptor: (Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;[Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
        start local 1 // org.hibernate.persister.entity.EntityPersister persister
        start local 2 // java.io.Serializable id
        start local 3 // java.lang.Object[] state
         0: .line 1900
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdentifier:()Z
            ifne 2
         1: .line 1902
            aconst_null
            areturn
         2: .line 1905
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 1 /* persister */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.locateProperPersister:(Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/persister/entity/EntityPersister;
            astore 1 /* persister */
         3: .line 1906
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 3 /* state */
            aload 1 /* persister */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.getNaturalIdValues:([Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;)[Ljava/lang/Object;
            astore 4 /* naturalIdValues */
        start local 4 // java.lang.Object[] naturalIdValues
         4: .line 1908
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.naturalIdXrefDelegate:Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
         5: .line 1909
            aload 1 /* persister */
         6: .line 1910
            aload 2 /* id */
         7: .line 1911
            aload 4 /* naturalIdValues */
         8: .line 1908
            invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.removeNaturalIdCrossReference:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;[Ljava/lang/Object;)[Ljava/lang/Object;
            astore 5 /* localNaturalIdValues */
        start local 5 // java.lang.Object[] localNaturalIdValues
         9: .line 1914
            aload 5 /* localNaturalIdValues */
            ifnull 10
            aload 5 /* localNaturalIdValues */
            goto 11
      StackMap locals: java.lang.Object[] java.lang.Object[]
      StackMap stack:
        10: aload 4 /* naturalIdValues */
      StackMap locals:
      StackMap stack: java.lang.Object[]
        11: areturn
        end local 5 // java.lang.Object[] localNaturalIdValues
        end local 4 // java.lang.Object[] naturalIdValues
        end local 3 // java.lang.Object[] state
        end local 2 // java.io.Serializable id
        end local 1 // org.hibernate.persister.entity.EntityPersister persister
        end local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   12     0                  this  Lorg/hibernate/engine/internal/StatefulPersistenceContext$1;
            0   12     1             persister  Lorg/hibernate/persister/entity/EntityPersister;
            0   12     2                    id  Ljava/io/Serializable;
            0   12     3                 state  [Ljava/lang/Object;
            4   12     4       naturalIdValues  [Ljava/lang/Object;
            9   12     5  localNaturalIdValues  [Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      persister  
      id         
      state      

  public void removeSharedNaturalIdCrossReference(org.hibernate.persister.entity.EntityPersister, java.io.Serializable, java.lang.Object[]);
    descriptor: (Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;[Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
        start local 1 // org.hibernate.persister.entity.EntityPersister persister
        start local 2 // java.io.Serializable id
        start local 3 // java.lang.Object[] naturalIdValues
         0: .line 1919
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdentifier:()Z
            ifne 2
         1: .line 1921
            return
         2: .line 1924
      StackMap locals:
      StackMap stack:
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdCache:()Z
            ifne 4
         3: .line 1926
            return
         4: .line 1933
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 1 /* persister */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.locateProperPersister:(Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/persister/entity/EntityPersister;
            astore 1 /* persister */
         5: .line 1934
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getNaturalIdCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/NaturalIdDataAccess;
            astore 4 /* naturalIdCacheAccessStrategy */
        start local 4 // org.hibernate.cache.spi.access.NaturalIdDataAccess naturalIdCacheAccessStrategy
         6: .line 1935
            aload 4 /* naturalIdCacheAccessStrategy */
            aload 3 /* naturalIdValues */
            aload 1 /* persister */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.session:Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            invokeinterface org.hibernate.cache.spi.access.NaturalIdDataAccess.generateCacheKey:([Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
            astore 5 /* naturalIdCacheKey */
        start local 5 // java.lang.Object naturalIdCacheKey
         7: .line 1936
            aload 4 /* naturalIdCacheAccessStrategy */
            aload 5 /* naturalIdCacheKey */
            invokeinterface org.hibernate.cache.spi.access.NaturalIdDataAccess.evict:(Ljava/lang/Object;)V
         8: .line 1943
            return
        end local 5 // java.lang.Object naturalIdCacheKey
        end local 4 // org.hibernate.cache.spi.access.NaturalIdDataAccess naturalIdCacheAccessStrategy
        end local 3 // java.lang.Object[] naturalIdValues
        end local 2 // java.io.Serializable id
        end local 1 // org.hibernate.persister.entity.EntityPersister persister
        end local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0    9     0                          this  Lorg/hibernate/engine/internal/StatefulPersistenceContext$1;
            0    9     1                     persister  Lorg/hibernate/persister/entity/EntityPersister;
            0    9     2                            id  Ljava/io/Serializable;
            0    9     3               naturalIdValues  [Ljava/lang/Object;
            6    9     4  naturalIdCacheAccessStrategy  Lorg/hibernate/cache/spi/access/NaturalIdDataAccess;
            7    9     5             naturalIdCacheKey  Ljava/lang/Object;
    MethodParameters:
                 Name  Flags
      persister        
      id               
      naturalIdValues  

  public java.lang.Object[] findCachedNaturalId(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=3, locals=3, args_size=3
        start local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
        start local 1 // org.hibernate.persister.entity.EntityPersister persister
        start local 2 // java.io.Serializable pk
         0: .line 1947
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.naturalIdXrefDelegate:Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 1 /* persister */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.locateProperPersister:(Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/persister/entity/EntityPersister;
            aload 2 /* pk */
            invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.findCachedNaturalId:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;)[Ljava/lang/Object;
            areturn
        end local 2 // java.io.Serializable pk
        end local 1 // org.hibernate.persister.entity.EntityPersister persister
        end local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/hibernate/engine/internal/StatefulPersistenceContext$1;
            0    1     1  persister  Lorg/hibernate/persister/entity/EntityPersister;
            0    1     2         pk  Ljava/io/Serializable;
    MethodParameters:
           Name  Flags
      persister  
      pk         

  public java.io.Serializable findCachedNaturalIdResolution(org.hibernate.persister.entity.EntityPersister, java.lang.Object[]);
    descriptor: (Lorg/hibernate/persister/entity/EntityPersister;[Ljava/lang/Object;)Ljava/io/Serializable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
        start local 1 // org.hibernate.persister.entity.EntityPersister persister
        start local 2 // java.lang.Object[] naturalIdValues
         0: .line 1952
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.naturalIdXrefDelegate:Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 1 /* persister */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.locateProperPersister:(Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/persister/entity/EntityPersister;
            aload 2 /* naturalIdValues */
            invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.findCachedNaturalIdResolution:(Lorg/hibernate/persister/entity/EntityPersister;[Ljava/lang/Object;)Ljava/io/Serializable;
            areturn
        end local 2 // java.lang.Object[] naturalIdValues
        end local 1 // org.hibernate.persister.entity.EntityPersister persister
        end local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/hibernate/engine/internal/StatefulPersistenceContext$1;
            0    1     1        persister  Lorg/hibernate/persister/entity/EntityPersister;
            0    1     2  naturalIdValues  [Ljava/lang/Object;
    MethodParameters:
                 Name  Flags
      persister        
      naturalIdValues  

  public java.lang.Object[] extractNaturalIdValues(java.lang.Object[], org.hibernate.persister.entity.EntityPersister);
    descriptor: ([Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;)[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
        start local 1 // java.lang.Object[] state
        start local 2 // org.hibernate.persister.entity.EntityPersister persister
         0: .line 1957
            aload 2 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getNaturalIdentifierProperties:()[I
            astore 3 /* naturalIdPropertyIndexes */
        start local 3 // int[] naturalIdPropertyIndexes
         1: .line 1958
            aload 1 /* state */
            arraylength
            aload 3 /* naturalIdPropertyIndexes */
            arraylength
            if_icmpne 3
         2: .line 1959
            aload 1 /* state */
            areturn
         3: .line 1962
      StackMap locals: int[]
      StackMap stack:
            aload 3 /* naturalIdPropertyIndexes */
            arraylength
            anewarray java.lang.Object
            astore 4 /* naturalIdValues */
        start local 4 // java.lang.Object[] naturalIdValues
         4: .line 1963
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         5: goto 8
         6: .line 1964
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            aload 4 /* naturalIdValues */
            iload 5 /* i */
            aload 1 /* state */
            aload 3 /* naturalIdPropertyIndexes */
            iload 5 /* i */
            iaload
            aaload
            aastore
         7: .line 1963
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* i */
            aload 3 /* naturalIdPropertyIndexes */
            arraylength
            if_icmplt 6
        end local 5 // int i
         9: .line 1966
            aload 4 /* naturalIdValues */
            areturn
        end local 4 // java.lang.Object[] naturalIdValues
        end local 3 // int[] naturalIdPropertyIndexes
        end local 2 // org.hibernate.persister.entity.EntityPersister persister
        end local 1 // java.lang.Object[] state
        end local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   10     0                      this  Lorg/hibernate/engine/internal/StatefulPersistenceContext$1;
            0   10     1                     state  [Ljava/lang/Object;
            0   10     2                 persister  Lorg/hibernate/persister/entity/EntityPersister;
            1   10     3  naturalIdPropertyIndexes  [I
            4   10     4           naturalIdValues  [Ljava/lang/Object;
            5    9     5                         i  I
    MethodParameters:
           Name  Flags
      state      
      persister  

  public java.lang.Object[] extractNaturalIdValues(java.lang.Object, org.hibernate.persister.entity.EntityPersister);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;)[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
        start local 1 // java.lang.Object entity
        start local 2 // org.hibernate.persister.entity.EntityPersister persister
         0: .line 1971
            aload 1 /* entity */
            ifnonnull 2
         1: .line 1972
            new org.hibernate.AssertionFailure
            dup
            ldc "Entity from which to extract natural id value(s) cannot be null"
            invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1974
      StackMap locals:
      StackMap stack:
            aload 2 /* persister */
            ifnonnull 4
         3: .line 1975
            new org.hibernate.AssertionFailure
            dup
            ldc "Persister to use in extracting natural id value(s) cannot be null"
            invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1978
      StackMap locals:
      StackMap stack:
            aload 2 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getNaturalIdentifierProperties:()[I
            astore 3 /* naturalIdentifierProperties */
        start local 3 // int[] naturalIdentifierProperties
         5: .line 1979
            aload 3 /* naturalIdentifierProperties */
            arraylength
            anewarray java.lang.Object
            astore 4 /* naturalIdValues */
        start local 4 // java.lang.Object[] naturalIdValues
         6: .line 1981
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         7: goto 10
         8: .line 1982
      StackMap locals: int[] java.lang.Object[] int
      StackMap stack:
            aload 4 /* naturalIdValues */
            iload 5 /* i */
            aload 2 /* persister */
            aload 1 /* entity */
            aload 3 /* naturalIdentifierProperties */
            iload 5 /* i */
            iaload
            invokeinterface org.hibernate.persister.entity.EntityPersister.getPropertyValue:(Ljava/lang/Object;I)Ljava/lang/Object;
            aastore
         9: .line 1981
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 5 /* i */
            aload 3 /* naturalIdentifierProperties */
            arraylength
            if_icmplt 8
        end local 5 // int i
        11: .line 1985
            aload 4 /* naturalIdValues */
            areturn
        end local 4 // java.lang.Object[] naturalIdValues
        end local 3 // int[] naturalIdentifierProperties
        end local 2 // org.hibernate.persister.entity.EntityPersister persister
        end local 1 // java.lang.Object entity
        end local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   12     0                         this  Lorg/hibernate/engine/internal/StatefulPersistenceContext$1;
            0   12     1                       entity  Ljava/lang/Object;
            0   12     2                    persister  Lorg/hibernate/persister/entity/EntityPersister;
            5   12     3  naturalIdentifierProperties  [I
            6   12     4              naturalIdValues  [Ljava/lang/Object;
            7   11     5                            i  I
    MethodParameters:
           Name  Flags
      entity     
      persister  

  public java.util.Collection<java.io.Serializable> getCachedPkResolutions(org.hibernate.persister.entity.EntityPersister);
    descriptor: (Lorg/hibernate/persister/entity/EntityPersister;)Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
        start local 1 // org.hibernate.persister.entity.EntityPersister entityPersister
         0: .line 1990
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.naturalIdXrefDelegate:Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
            aload 1 /* entityPersister */
            invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.getCachedPkResolutions:(Lorg/hibernate/persister/entity/EntityPersister;)Ljava/util/Collection;
            areturn
        end local 1 // org.hibernate.persister.entity.EntityPersister entityPersister
        end local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/hibernate/engine/internal/StatefulPersistenceContext$1;
            0    1     1  entityPersister  Lorg/hibernate/persister/entity/EntityPersister;
    Signature: (Lorg/hibernate/persister/entity/EntityPersister;)Ljava/util/Collection<Ljava/io/Serializable;>;
    MethodParameters:
                 Name  Flags
      entityPersister  

  public void handleSynchronization(org.hibernate.persister.entity.EntityPersister, java.io.Serializable, java.lang.Object);
    descriptor: (Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
        start local 1 // org.hibernate.persister.entity.EntityPersister persister
        start local 2 // java.io.Serializable pk
        start local 3 // java.lang.Object entity
         0: .line 1995
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdentifier:()Z
            ifne 2
         1: .line 1997
            return
         2: .line 2000
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            aload 1 /* persister */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.locateProperPersister:(Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/persister/entity/EntityPersister;
            astore 1 /* persister */
         3: .line 2002
            aload 0 /* this */
            aload 3 /* entity */
            aload 1 /* persister */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext$1.extractNaturalIdValues:(Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;)[Ljava/lang/Object;
            astore 4 /* naturalIdValuesFromCurrentObjectState */
        start local 4 // java.lang.Object[] naturalIdValuesFromCurrentObjectState
         4: .line 2003
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.naturalIdXrefDelegate:Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
         5: .line 2004
            aload 1 /* persister */
         6: .line 2005
            aload 2 /* pk */
         7: .line 2006
            aload 4 /* naturalIdValuesFromCurrentObjectState */
         8: .line 2003
            invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.sameAsCached:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;[Ljava/lang/Object;)Z
         9: .line 2007
            ifeq 11
        10: .line 2003
            iconst_0
            goto 12
      StackMap locals: java.lang.Object[]
      StackMap stack:
        11: iconst_1
      StackMap locals:
      StackMap stack: int
        12: istore 5 /* changed */
        start local 5 // boolean changed
        13: .line 2009
            iload 5 /* changed */
            ifeq 22
        14: .line 2010
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.naturalIdXrefDelegate:Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
            aload 1 /* persister */
            aload 2 /* pk */
            invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.findCachedNaturalId:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;)[Ljava/lang/Object;
            astore 6 /* cachedNaturalIdValues */
        start local 6 // java.lang.Object[] cachedNaturalIdValues
        15: .line 2011
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.naturalIdXrefDelegate:Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
            aload 1 /* persister */
            aload 2 /* pk */
            aload 4 /* naturalIdValuesFromCurrentObjectState */
            invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.cacheNaturalIdCrossReference:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;[Ljava/lang/Object;)Z
            pop
        16: .line 2012
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.naturalIdXrefDelegate:Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
            aload 1 /* persister */
            aload 6 /* cachedNaturalIdValues */
            invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.stashInvalidNaturalIdReference:(Lorg/hibernate/persister/entity/EntityPersister;[Ljava/lang/Object;)V
        17: .line 2014
            aload 0 /* this */
        18: .line 2015
            aload 1 /* persister */
        19: .line 2016
            aload 2 /* pk */
        20: .line 2017
            aload 6 /* cachedNaturalIdValues */
        21: .line 2014
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext$1.removeSharedNaturalIdCrossReference:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;[Ljava/lang/Object;)V
        end local 6 // java.lang.Object[] cachedNaturalIdValues
        22: .line 2020
      StackMap locals: int
      StackMap stack:
            return
        end local 5 // boolean changed
        end local 4 // java.lang.Object[] naturalIdValuesFromCurrentObjectState
        end local 3 // java.lang.Object entity
        end local 2 // java.io.Serializable pk
        end local 1 // org.hibernate.persister.entity.EntityPersister persister
        end local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
      LocalVariableTable:
        Start  End  Slot                                   Name  Signature
            0   23     0                                   this  Lorg/hibernate/engine/internal/StatefulPersistenceContext$1;
            0   23     1                              persister  Lorg/hibernate/persister/entity/EntityPersister;
            0   23     2                                     pk  Ljava/io/Serializable;
            0   23     3                                 entity  Ljava/lang/Object;
            4   23     4  naturalIdValuesFromCurrentObjectState  [Ljava/lang/Object;
           13   23     5                                changed  Z
           15   22     6                  cachedNaturalIdValues  [Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      persister  
      pk         
      entity     

  public void cleanupFromSynchronizations();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
         0: .line 2024
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.naturalIdXrefDelegate:Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
            invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.unStashInvalidNaturalIdReferences:()V
         1: .line 2025
            return
        end local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/engine/internal/StatefulPersistenceContext$1;

  public void handleEviction(java.lang.Object, org.hibernate.persister.entity.EntityPersister, java.io.Serializable);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
        start local 1 // java.lang.Object object
        start local 2 // org.hibernate.persister.entity.EntityPersister persister
        start local 3 // java.io.Serializable identifier
         0: .line 2029
            aload 0 /* this */
            getfield org.hibernate.engine.internal.StatefulPersistenceContext$1.this$0:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
            getfield org.hibernate.engine.internal.StatefulPersistenceContext.naturalIdXrefDelegate:Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
         1: .line 2030
            aload 2 /* persister */
         2: .line 2031
            aload 3 /* identifier */
         3: .line 2032
            aload 0 /* this */
            aload 2 /* persister */
            aload 3 /* identifier */
            invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext$1.findCachedNaturalId:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;)[Ljava/lang/Object;
         4: .line 2029
            invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.removeNaturalIdCrossReference:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;[Ljava/lang/Object;)[Ljava/lang/Object;
            pop
         5: .line 2034
            return
        end local 3 // java.io.Serializable identifier
        end local 2 // org.hibernate.persister.entity.EntityPersister persister
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.engine.internal.StatefulPersistenceContext$1 this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/hibernate/engine/internal/StatefulPersistenceContext$1;
            0    6     1      object  Ljava/lang/Object;
            0    6     2   persister  Lorg/hibernate/persister/entity/EntityPersister;
            0    6     3  identifier  Ljava/io/Serializable;
    MethodParameters:
            Name  Flags
      object      
      persister   
      identifier  

  static int[] $SWITCH_TABLE$org$hibernate$engine$spi$CachedNaturalIdValueSource();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 1714
            getstatic org.hibernate.engine.internal.StatefulPersistenceContext$1.$SWITCH_TABLE$org$hibernate$engine$spi$CachedNaturalIdValueSource:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.hibernate.engine.spi.CachedNaturalIdValueSource.values:()[Lorg/hibernate/engine/spi/CachedNaturalIdValueSource;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.hibernate.engine.spi.CachedNaturalIdValueSource.INSERT:Lorg/hibernate/engine/spi/CachedNaturalIdValueSource;
            invokevirtual org.hibernate.engine.spi.CachedNaturalIdValueSource.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.engine.spi.CachedNaturalIdValueSource.LOAD:Lorg/hibernate/engine/spi/CachedNaturalIdValueSource;
            invokevirtual org.hibernate.engine.spi.CachedNaturalIdValueSource.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.hibernate.engine.spi.CachedNaturalIdValueSource.UPDATE:Lorg/hibernate/engine/spi/CachedNaturalIdValueSource;
            invokevirtual org.hibernate.engine.spi.CachedNaturalIdValueSource.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            dup
            putstatic org.hibernate.engine.internal.StatefulPersistenceContext$1.$SWITCH_TABLE$org$hibernate$engine$spi$CachedNaturalIdValueSource:[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
           8     9      10  Class java.lang.NoSuchFieldError
}
SourceFile: "StatefulPersistenceContext.java"
EnclosingMethod: org.hibernate.engine.internal.StatefulPersistenceContext
NestHost: org.hibernate.engine.internal.StatefulPersistenceContext
InnerClasses:
  org.hibernate.engine.internal.StatefulPersistenceContext$1
  org.hibernate.engine.internal.StatefulPersistenceContext$1$1
  org.hibernate.engine.internal.StatefulPersistenceContext$1$2
  public abstract NaturalIdHelper = org.hibernate.engine.spi.PersistenceContext$NaturalIdHelper of org.hibernate.engine.spi.PersistenceContext