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 1682
            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 1688
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdentifier:()Z
            ifne 2
         1: .line 1690
            return
         2: .line 1693
      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 1699
            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 1701
            iload 4 /* justAddedLocally */
            ifeq 6
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdCache:()Z
            ifeq 6
         5: .line 1702
            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 1704
      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 1713
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdentifier:()Z
            ifne 2
         1: .line 1715
            return
         2: .line 1718
      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 1719
            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 1722
            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 1723
            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 1732
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdentifier:()Z
            ifne 2
         1: .line 1734
            return
         2: .line 1737
      StackMap locals:
      StackMap stack:
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdCache:()Z
            ifne 4
         3: .line 1739
            return
         4: .line 1742
      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 1743
            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 1744
            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 1746
            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 1747
            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=11, 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 1755
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getNaturalIdCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;
            astore 6 /* naturalIdCacheAccessStrategy */
        start local 6 // org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy naturalIdCacheAccessStrategy
         1: .line 1756
            new org.hibernate.cache.spi.NaturalIdCacheKey
            dup
            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/SessionImplementor;
            invokespecial org.hibernate.cache.spi.NaturalIdCacheKey.<init>:([Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/engine/spi/SessionImplementor;)V
            astore 7 /* naturalIdCacheKey */
        start local 7 // org.hibernate.cache.spi.NaturalIdCacheKey naturalIdCacheKey
         2: .line 1758
            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/SessionImplementor;
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            astore 8 /* factory */
        start local 8 // org.hibernate.engine.spi.SessionFactoryImplementor factory
         3: .line 1760
            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: 26
              default: 40
          }
         4: .line 1762
      StackMap locals: org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.cache.spi.NaturalIdCacheKey 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/SessionImplementor;
            aload 7 /* naturalIdCacheKey */
            aload 6 /* naturalIdCacheAccessStrategy */
            invokestatic org.hibernate.engine.internal.CacheHelper.fromSharedCache:(Lorg/hibernate/engine/spi/SessionImplementor;Lorg/hibernate/cache/spi/NaturalIdCacheKey;Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;)Ljava/io/Serializable;
            ifnull 6
         5: .line 1764
            return
         6: .line 1766
      StackMap locals:
      StackMap stack:
            aload 6 /* naturalIdCacheAccessStrategy */
         7: .line 1767
            aload 7 /* naturalIdCacheKey */
         8: .line 1768
            aload 2 /* id */
         9: .line 1769
            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/SessionImplementor;
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTimestamp:()J
        10: .line 1770
            aconst_null
        11: .line 1766
            invokeinterface org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy.putFromLoad:(Ljava/lang/Object;Ljava/lang/Object;JLjava/lang/Object;)Z
            istore 9 /* put */
        start local 9 // boolean put
        12: .line 1773
            iload 9 /* put */
            ifeq 41
            aload 8 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatistics:()Lorg/hibernate/stat/Statistics;
            invokeinterface org.hibernate.stat.Statistics.isStatisticsEnabled:()Z
            ifeq 41
        13: .line 1774
            aload 8 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatisticsImplementor:()Lorg/hibernate/stat/spi/StatisticsImplementor;
        14: .line 1775
            aload 6 /* naturalIdCacheAccessStrategy */
            invokeinterface org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy.getRegion:()Lorg/hibernate/cache/spi/NaturalIdRegion;
        15: .line 1776
            invokeinterface org.hibernate.cache.spi.NaturalIdRegion.getName:()Ljava/lang/String;
        16: .line 1774
            invokeinterface org.hibernate.stat.spi.StatisticsImplementor.naturalIdCachePut:(Ljava/lang/String;)V
        17: .line 1780
            goto 41
        end local 9 // boolean put
        18: .line 1783
      StackMap locals:
      StackMap stack:
            aload 6 /* naturalIdCacheAccessStrategy */
            aload 7 /* naturalIdCacheKey */
            aload 2 /* id */
            invokeinterface org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy.insert:(Ljava/lang/Object;Ljava/lang/Object;)Z
            istore 9 /* put */
        start local 9 // boolean put
        19: .line 1784
            iload 9 /* put */
            ifeq 22
            aload 8 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatistics:()Lorg/hibernate/stat/Statistics;
            invokeinterface org.hibernate.stat.Statistics.isStatisticsEnabled:()Z
            ifeq 22
        20: .line 1785
            aload 8 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatisticsImplementor:()Lorg/hibernate/stat/spi/StatisticsImplementor;
        21: .line 1786
            aload 6 /* naturalIdCacheAccessStrategy */
            invokeinterface org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy.getRegion:()Lorg/hibernate/cache/spi/NaturalIdRegion;
            invokeinterface org.hibernate.cache.spi.NaturalIdRegion.getName:()Ljava/lang/String;
            invokeinterface org.hibernate.stat.spi.StatisticsImplementor.naturalIdCachePut:(Ljava/lang/String;)V
        22: .line 1789
      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/SessionImplementor;
            checkcast org.hibernate.event.spi.EventSource
            invokeinterface org.hibernate.event.spi.EventSource.getActionQueue:()Lorg/hibernate/engine/spi/ActionQueue;
        23: .line 1790
            new org.hibernate.engine.internal.StatefulPersistenceContext$1$1
            dup
            aload 0 /* this */
            aload 6 /* naturalIdCacheAccessStrategy */
            aload 7 /* naturalIdCacheKey */
            aload 2 /* id */
            aload 8 /* factory */
            invokespecial org.hibernate.engine.internal.StatefulPersistenceContext$1$1.<init>:(Lorg/hibernate/engine/internal/StatefulPersistenceContext$1;Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;Lorg/hibernate/cache/spi/NaturalIdCacheKey;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
        24: .line 1789
            invokevirtual org.hibernate.engine.spi.ActionQueue.registerProcess:(Lorg/hibernate/action/spi/AfterTransactionCompletionProcess;)V
        25: .line 1808
            goto 41
        end local 9 // boolean put
        26: .line 1811
      StackMap locals:
      StackMap stack:
            new org.hibernate.cache.spi.NaturalIdCacheKey
            dup
            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/SessionImplementor;
            invokespecial org.hibernate.cache.spi.NaturalIdCacheKey.<init>:([Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/engine/spi/SessionImplementor;)V
            astore 9 /* previousCacheKey */
        start local 9 // org.hibernate.cache.spi.NaturalIdCacheKey previousCacheKey
        27: .line 1812
            aload 7 /* naturalIdCacheKey */
            aload 9 /* previousCacheKey */
            invokevirtual org.hibernate.cache.spi.NaturalIdCacheKey.equals:(Ljava/lang/Object;)Z
            ifeq 29
        28: .line 1814
            return
        29: .line 1816
      StackMap locals: org.hibernate.cache.spi.NaturalIdCacheKey
      StackMap stack:
            aload 6 /* naturalIdCacheAccessStrategy */
            aload 9 /* previousCacheKey */
            aconst_null
            invokeinterface org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy.lockItem:(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
        30: .line 1817
            aload 6 /* naturalIdCacheAccessStrategy */
            aload 9 /* previousCacheKey */
            invokeinterface org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy.remove:(Ljava/lang/Object;)V
        31: .line 1819
            aload 6 /* naturalIdCacheAccessStrategy */
            aload 7 /* naturalIdCacheKey */
            aconst_null
            invokeinterface org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy.lockItem:(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
        32: .line 1820
            aload 6 /* naturalIdCacheAccessStrategy */
            aload 7 /* naturalIdCacheKey */
            aload 2 /* id */
            invokeinterface org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy.update:(Ljava/lang/Object;Ljava/lang/Object;)Z
            istore 12 /* put */
        start local 12 // boolean put
        33: .line 1821
            iload 12 /* put */
            ifeq 36
            aload 8 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatistics:()Lorg/hibernate/stat/Statistics;
            invokeinterface org.hibernate.stat.Statistics.isStatisticsEnabled:()Z
            ifeq 36
        34: .line 1822
            aload 8 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatisticsImplementor:()Lorg/hibernate/stat/spi/StatisticsImplementor;
        35: .line 1823
            aload 6 /* naturalIdCacheAccessStrategy */
            invokeinterface org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy.getRegion:()Lorg/hibernate/cache/spi/NaturalIdRegion;
            invokeinterface org.hibernate.cache.spi.NaturalIdRegion.getName:()Ljava/lang/String;
            invokeinterface org.hibernate.stat.spi.StatisticsImplementor.naturalIdCachePut:(Ljava/lang/String;)V
        36: .line 1826
      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/SessionImplementor;
            checkcast org.hibernate.event.spi.EventSource
            invokeinterface org.hibernate.event.spi.EventSource.getActionQueue:()Lorg/hibernate/engine/spi/ActionQueue;
        37: .line 1827
            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 */
            invokespecial org.hibernate.engine.internal.StatefulPersistenceContext$1$2.<init>:(Lorg/hibernate/engine/internal/StatefulPersistenceContext$1;Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;Lorg/hibernate/cache/spi/NaturalIdCacheKey;Lorg/hibernate/cache/spi/access/SoftLock;Lorg/hibernate/cache/spi/NaturalIdCacheKey;Ljava/io/Serializable;Lorg/hibernate/cache/spi/access/SoftLock;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
        38: .line 1826
            invokevirtual org.hibernate.engine.spi.ActionQueue.registerProcess:(Lorg/hibernate/action/spi/AfterTransactionCompletionProcess;)V
        39: .line 1850
            goto 41
        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 // org.hibernate.cache.spi.NaturalIdCacheKey previousCacheKey
        40: .line 1853
      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.NaturalIdRegionAccessStrategy org.hibernate.cache.spi.NaturalIdCacheKey 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
        41: .line 1856
      StackMap locals:
      StackMap stack:
            return
        end local 8 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 7 // org.hibernate.cache.spi.NaturalIdCacheKey naturalIdCacheKey
        end local 6 // org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy 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   42     0                          this  Lorg/hibernate/engine/internal/StatefulPersistenceContext$1;
            0   42     1                     persister  Lorg/hibernate/persister/entity/EntityPersister;
            0   42     2                            id  Ljava/io/Serializable;
            0   42     3               naturalIdValues  [Ljava/lang/Object;
            0   42     4       previousNaturalIdValues  [Ljava/lang/Object;
            0   42     5                        source  Lorg/hibernate/engine/spi/CachedNaturalIdValueSource;
            1   42     6  naturalIdCacheAccessStrategy  Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;
            2   42     7             naturalIdCacheKey  Lorg/hibernate/cache/spi/NaturalIdCacheKey;
            3   42     8                       factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
           12   18     9                           put  Z
           19   26     9                           put  Z
           27   40     9              previousCacheKey  Lorg/hibernate/cache/spi/NaturalIdCacheKey;
           30   40    10                   removalLock  Lorg/hibernate/cache/spi/access/SoftLock;
           32   40    11                          lock  Lorg/hibernate/cache/spi/access/SoftLock;
           33   40    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 1860
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdentifier:()Z
            ifne 2
         1: .line 1862
            aconst_null
            areturn
         2: .line 1865
      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 1866
            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 1868
            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 1869
            aload 1 /* persister */
         6: .line 1870
            aload 2 /* id */
         7: .line 1871
            aload 4 /* naturalIdValues */
         8: .line 1868
            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 1874
            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=5, 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 1879
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdentifier:()Z
            ifne 2
         1: .line 1881
            return
         2: .line 1884
      StackMap locals:
      StackMap stack:
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdCache:()Z
            ifne 4
         3: .line 1886
            return
         4: .line 1893
      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 1894
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getNaturalIdCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;
            astore 4 /* naturalIdCacheAccessStrategy */
        start local 4 // org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy naturalIdCacheAccessStrategy
         6: .line 1895
            new org.hibernate.cache.spi.NaturalIdCacheKey
            dup
            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/SessionImplementor;
            invokespecial org.hibernate.cache.spi.NaturalIdCacheKey.<init>:([Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/engine/spi/SessionImplementor;)V
            astore 5 /* naturalIdCacheKey */
        start local 5 // org.hibernate.cache.spi.NaturalIdCacheKey naturalIdCacheKey
         7: .line 1896
            aload 4 /* naturalIdCacheAccessStrategy */
            aload 5 /* naturalIdCacheKey */
            invokeinterface org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy.evict:(Ljava/lang/Object;)V
         8: .line 1903
            return
        end local 5 // org.hibernate.cache.spi.NaturalIdCacheKey naturalIdCacheKey
        end local 4 // org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy 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/NaturalIdRegionAccessStrategy;
            7    9     5             naturalIdCacheKey  Lorg/hibernate/cache/spi/NaturalIdCacheKey;
    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 1907
            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 1912
            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 1917
            aload 2 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getNaturalIdentifierProperties:()[I
            astore 3 /* naturalIdPropertyIndexes */
        start local 3 // int[] naturalIdPropertyIndexes
         1: .line 1918
            aload 1 /* state */
            arraylength
            aload 3 /* naturalIdPropertyIndexes */
            arraylength
            if_icmpne 3
         2: .line 1919
            aload 1 /* state */
            areturn
         3: .line 1922
      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 1923
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         5: goto 8
         6: .line 1924
      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 1923
            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 1926
            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 1931
            aload 1 /* entity */
            ifnonnull 2
         1: .line 1932
            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 1934
      StackMap locals:
      StackMap stack:
            aload 2 /* persister */
            ifnonnull 4
         3: .line 1935
            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 1938
      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 1939
            aload 3 /* naturalIdentifierProperties */
            arraylength
            anewarray java.lang.Object
            astore 4 /* naturalIdValues */
        start local 4 // java.lang.Object[] naturalIdValues
         6: .line 1941
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         7: goto 10
         8: .line 1942
      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 1941
            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 1945
            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 1950
            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 1955
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdentifier:()Z
            ifne 2
         1: .line 1957
            return
         2: .line 1960
      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 1962
            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 1963
            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 1964
            aload 1 /* persister */
         6: .line 1965
            aload 2 /* pk */
         7: .line 1966
            aload 4 /* naturalIdValuesFromCurrentObjectState */
         8: .line 1963
            invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.sameAsCached:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;[Ljava/lang/Object;)Z
         9: .line 1967
            ifeq 11
        10: .line 1963
            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 1969
            iload 5 /* changed */
            ifeq 22
        14: .line 1970
            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 1971
            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 1972
            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 1974
            aload 0 /* this */
        18: .line 1975
            aload 1 /* persister */
        19: .line 1976
            aload 2 /* pk */
        20: .line 1977
            aload 6 /* cachedNaturalIdValues */
        21: .line 1974
            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 1980
      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 1984
            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 1985
            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 1989
            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 1990
            aload 2 /* persister */
         2: .line 1991
            aload 3 /* identifier */
         3: .line 1992
            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 1989
            invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.removeNaturalIdCrossReference:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;[Ljava/lang/Object;)[Ljava/lang/Object;
            pop
         5: .line 1994
            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 1682
            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