public class org.hibernate.engine.internal.NaturalIdXrefDelegate
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.hibernate.engine.internal.NaturalIdXrefDelegate
super_class: java.lang.Object
{
private static final org.jboss.logging.Logger LOG;
descriptor: Lorg/jboss/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final org.hibernate.engine.internal.StatefulPersistenceContext persistenceContext;
descriptor: Lorg/hibernate/engine/internal/StatefulPersistenceContext;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.ConcurrentHashMap<org.hibernate.persister.entity.EntityPersister, org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache> naturalIdResolutionCacheMap;
descriptor: Ljava/util/concurrent/ConcurrentHashMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentHashMap<Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/engine/internal/NaturalIdXrefDelegate$NaturalIdResolutionCache;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
invokestatic org.jboss.logging.Logger.getLogger:(Ljava/lang/Class;)Lorg/jboss/logging/Logger;
putstatic org.hibernate.engine.internal.NaturalIdXrefDelegate.LOG:Lorg/jboss/logging/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.hibernate.engine.internal.StatefulPersistenceContext);
descriptor: (Lorg/hibernate/engine/internal/StatefulPersistenceContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield org.hibernate.engine.internal.NaturalIdXrefDelegate.naturalIdResolutionCacheMap:Ljava/util/concurrent/ConcurrentHashMap;
2: aload 0
aload 1
putfield org.hibernate.engine.internal.NaturalIdXrefDelegate.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
0 4 1 persistenceContext Lorg/hibernate/engine/internal/StatefulPersistenceContext;
MethodParameters:
Name Flags
persistenceContext
protected org.hibernate.engine.spi.SessionImplementor session();
descriptor: ()Lorg/hibernate/engine/spi/SessionImplementor;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.hibernate.engine.internal.NaturalIdXrefDelegate.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.getSession:()Lorg/hibernate/engine/spi/SessionImplementor;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
public boolean cacheNaturalIdCrossReference(org.hibernate.persister.entity.EntityPersister, java.io.Serializable, java.lang.Object[]);
descriptor: (Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;[Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 3
invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.validateNaturalId:(Lorg/hibernate/persister/entity/EntityPersister;[Ljava/lang/Object;)V
1: aload 0
getfield org.hibernate.engine.internal.NaturalIdXrefDelegate.naturalIdResolutionCacheMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache
astore 4
start local 4 2: aload 4
ifnonnull 7
3: new org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache
dup
aload 1
invokespecial org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache.<init>:(Lorg/hibernate/persister/entity/EntityPersister;)V
astore 4
4: aload 0
getfield org.hibernate.engine.internal.NaturalIdXrefDelegate.naturalIdResolutionCacheMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
aload 4
invokevirtual java.util.concurrent.ConcurrentHashMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache
astore 5
start local 5 5: aload 5
ifnull 7
6: aload 5
astore 4
end local 5 7: StackMap locals: org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache
StackMap stack:
aload 4
aload 2
aload 3
invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache.cache:(Ljava/io/Serializable;[Ljava/lang/Object;)Z
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
0 8 1 persister Lorg/hibernate/persister/entity/EntityPersister;
0 8 2 pk Ljava/io/Serializable;
0 8 3 naturalIdValues [Ljava/lang/Object;
2 8 4 entityNaturalIdResolutionCache Lorg/hibernate/engine/internal/NaturalIdXrefDelegate$NaturalIdResolutionCache;
5 7 5 previousInstance Lorg/hibernate/engine/internal/NaturalIdXrefDelegate$NaturalIdResolutionCache;
MethodParameters:
Name Flags
persister
pk
naturalIdValues
public java.lang.Object[] removeNaturalIdCrossReference(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=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.locatePersisterForKey:(Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/persister/entity/EntityPersister;
astore 1
1: aload 0
aload 1
aload 3
invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.validateNaturalId:(Lorg/hibernate/persister/entity/EntityPersister;[Ljava/lang/Object;)V
2: aload 0
getfield org.hibernate.engine.internal.NaturalIdXrefDelegate.naturalIdResolutionCacheMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache
astore 4
start local 4 3: aconst_null
astore 5
start local 5 4: aload 4
ifnull 11
5: aload 4
getfield org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache.pkToNaturalIdMap:Ljava/util/Map;
6: aload 2
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId
7: astore 6
start local 6 8: aload 6
ifnull 11
9: aload 4
getfield org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache.naturalIdToPkMap:Ljava/util/Map;
aload 6
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
10: aload 6
invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId.getValues:()[Ljava/lang/Object;
astore 5
end local 6 11: StackMap locals: org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache java.lang.Object[]
StackMap stack:
aload 1
invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdCache:()Z
ifeq 21
12: aload 1
13: invokeinterface org.hibernate.persister.entity.EntityPersister.getNaturalIdCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;
14: astore 6
start local 6 15: new org.hibernate.cache.spi.NaturalIdCacheKey
dup
aload 3
aload 1
aload 0
invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.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
start local 7 16: aload 6
aload 7
invokeinterface org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy.evict:(Ljava/lang/Object;)V
17: aload 5
ifnull 21
18: aload 5
aload 3
invokestatic java.util.Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z
ifne 21
19: new org.hibernate.cache.spi.NaturalIdCacheKey
dup
aload 5
aload 1
aload 0
invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.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 8
start local 8 20: aload 6
aload 8
invokeinterface org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy.evict:(Ljava/lang/Object;)V
end local 8 end local 7 end local 6 21: StackMap locals:
StackMap stack:
aload 5
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
0 22 1 persister Lorg/hibernate/persister/entity/EntityPersister;
0 22 2 pk Ljava/io/Serializable;
0 22 3 naturalIdValues [Ljava/lang/Object;
3 22 4 entityNaturalIdResolutionCache Lorg/hibernate/engine/internal/NaturalIdXrefDelegate$NaturalIdResolutionCache;
4 22 5 sessionCachedNaturalIdValues [Ljava/lang/Object;
8 11 6 cachedNaturalId Lorg/hibernate/engine/internal/NaturalIdXrefDelegate$CachedNaturalId;
15 21 6 naturalIdCacheAccessStrategy Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;
16 21 7 naturalIdCacheKey Lorg/hibernate/cache/spi/NaturalIdCacheKey;
20 21 8 sessionNaturalIdCacheKey Lorg/hibernate/cache/spi/NaturalIdCacheKey;
MethodParameters:
Name Flags
persister
pk
naturalIdValues
public boolean sameAsCached(org.hibernate.persister.entity.EntityPersister, java.io.Serializable, java.lang.Object[]);
descriptor: (Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;[Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.hibernate.engine.internal.NaturalIdXrefDelegate.naturalIdResolutionCacheMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache
astore 4
start local 4 1: aload 4
ifnull 4
2: aload 4
aload 2
aload 3
invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache.sameAsCached:(Ljava/io/Serializable;[Ljava/lang/Object;)Z
ifeq 4
3: iconst_1
ireturn
StackMap locals: org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache
StackMap stack:
4: iconst_0
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
0 5 1 persister Lorg/hibernate/persister/entity/EntityPersister;
0 5 2 pk Ljava/io/Serializable;
0 5 3 naturalIdValues [Ljava/lang/Object;
1 5 4 entityNaturalIdResolutionCache Lorg/hibernate/engine/internal/NaturalIdXrefDelegate$NaturalIdResolutionCache;
MethodParameters:
Name Flags
persister
pk
naturalIdValues
protected org.hibernate.persister.entity.EntityPersister locatePersisterForKey(org.hibernate.persister.entity.EntityPersister);
descriptor: (Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/persister/entity/EntityPersister;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.hibernate.engine.internal.NaturalIdXrefDelegate.persistenceContext:Lorg/hibernate/engine/internal/StatefulPersistenceContext;
invokevirtual org.hibernate.engine.internal.StatefulPersistenceContext.getSession:()Lorg/hibernate/engine/spi/SessionImplementor;
invokeinterface org.hibernate.engine.spi.SessionImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
aload 1
invokeinterface org.hibernate.persister.entity.EntityPersister.getRootEntityName:()Ljava/lang/String;
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getEntityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
0 1 1 persister Lorg/hibernate/persister/entity/EntityPersister;
MethodParameters:
Name Flags
persister
protected void validateNaturalId(org.hibernate.persister.entity.EntityPersister, java.lang.Object[]);
descriptor: (Lorg/hibernate/persister/entity/EntityPersister;[Ljava/lang/Object;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdentifier:()Z
ifne 2
1: new java.lang.IllegalArgumentException
dup
ldc "Entity did not define a natrual-id"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.hibernate.persister.entity.EntityPersister.getNaturalIdentifierProperties:()[I
arraylength
aload 2
arraylength
if_icmpeq 4
3: new java.lang.IllegalArgumentException
dup
ldc "Mismatch between expected number of natural-id values and found."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
0 5 1 persister Lorg/hibernate/persister/entity/EntityPersister;
0 5 2 naturalIdValues [Ljava/lang/Object;
MethodParameters:
Name Flags
persister
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=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.locatePersisterForKey:(Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/persister/entity/EntityPersister;
astore 1
1: aload 0
getfield org.hibernate.engine.internal.NaturalIdXrefDelegate.naturalIdResolutionCacheMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache
astore 3
start local 3 2: aload 3
ifnonnull 4
3: aconst_null
areturn
4: StackMap locals: org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache
StackMap stack:
aload 3
getfield org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache.pkToNaturalIdMap:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId
astore 4
start local 4 5: aload 4
ifnonnull 7
6: aconst_null
areturn
7: StackMap locals: org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId
StackMap stack:
aload 4
invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId.getValues:()[Ljava/lang/Object;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
0 8 1 persister Lorg/hibernate/persister/entity/EntityPersister;
0 8 2 pk Ljava/io/Serializable;
2 8 3 entityNaturalIdResolutionCache Lorg/hibernate/engine/internal/NaturalIdXrefDelegate$NaturalIdResolutionCache;
5 8 4 cachedNaturalId Lorg/hibernate/engine/internal/NaturalIdXrefDelegate$CachedNaturalId;
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=5, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.locatePersisterForKey:(Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/persister/entity/EntityPersister;
astore 1
1: aload 0
aload 1
aload 2
invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.validateNaturalId:(Lorg/hibernate/persister/entity/EntityPersister;[Ljava/lang/Object;)V
2: aload 0
getfield org.hibernate.engine.internal.NaturalIdXrefDelegate.naturalIdResolutionCacheMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache
astore 3
start local 3 3: new org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId
dup
aload 1
aload 2
invokespecial org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId.<init>:(Lorg/hibernate/persister/entity/EntityPersister;[Ljava/lang/Object;)V
astore 5
start local 5 4: aload 3
ifnull 17
5: aload 3
getfield org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache.naturalIdToPkMap:Ljava/util/Map;
aload 5
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.io.Serializable
astore 4
start local 4 6: aload 4
ifnull 15
7: getstatic org.hibernate.engine.internal.NaturalIdXrefDelegate.LOG:Lorg/jboss/logging/Logger;
invokevirtual org.jboss.logging.Logger.isTraceEnabled:()Z
ifeq 14
8: getstatic org.hibernate.engine.internal.NaturalIdXrefDelegate.LOG:Lorg/jboss/logging/Logger;
9: new java.lang.StringBuilder
dup
ldc "Resolved natural key -> primary key resolution in session cache: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
10: aload 1
invokeinterface org.hibernate.persister.entity.EntityPersister.getRootEntityName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "#["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: aload 2
invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: invokevirtual org.jboss.logging.Logger.trace:(Ljava/lang/Object;)V
14: StackMap locals: org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache java.io.Serializable org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId
StackMap stack:
aload 4
areturn
15: StackMap locals:
StackMap stack:
aload 3
aload 2
invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache.containsInvalidNaturalIdReference:([Ljava/lang/Object;)Z
ifeq 17
16: getstatic org.hibernate.engine.spi.PersistenceContext$NaturalIdHelper.INVALID_NATURAL_ID_REFERENCE:Ljava/io/Serializable;
areturn
end local 4 17: StackMap locals: org.hibernate.engine.internal.NaturalIdXrefDelegate org.hibernate.persister.entity.EntityPersister java.lang.Object[] org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache top org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId
StackMap stack:
aload 1
invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdCache:()Z
ifne 19
18: aconst_null
areturn
19: StackMap locals:
StackMap stack:
new org.hibernate.cache.spi.NaturalIdCacheKey
dup
aload 2
aload 1
aload 0
invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.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 6
start local 6 20: aload 1
invokeinterface org.hibernate.persister.entity.EntityPersister.getNaturalIdCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;
astore 7
start local 7 21: aload 0
invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.session:()Lorg/hibernate/engine/spi/SessionImplementor;
aload 6
aload 7
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;
astore 4
start local 4 22: aload 0
invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.session:()Lorg/hibernate/engine/spi/SessionImplementor;
invokeinterface org.hibernate.engine.spi.SessionImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
astore 8
start local 8 23: aload 4
ifnull 43
24: aload 8
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatistics:()Lorg/hibernate/stat/Statistics;
invokeinterface org.hibernate.stat.Statistics.isStatisticsEnabled:()Z
ifeq 28
25: aload 8
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatisticsImplementor:()Lorg/hibernate/stat/spi/StatisticsImplementor;
26: aload 7
invokeinterface org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy.getRegion:()Lorg/hibernate/cache/spi/NaturalIdRegion;
invokeinterface org.hibernate.cache.spi.NaturalIdRegion.getName:()Ljava/lang/String;
27: invokeinterface org.hibernate.stat.spi.StatisticsImplementor.naturalIdCacheHit:(Ljava/lang/String;)V
28: StackMap locals: org.hibernate.engine.internal.NaturalIdXrefDelegate org.hibernate.persister.entity.EntityPersister java.lang.Object[] org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache java.io.Serializable org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId org.hibernate.cache.spi.NaturalIdCacheKey org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor
StackMap stack:
getstatic org.hibernate.engine.internal.NaturalIdXrefDelegate.LOG:Lorg/jboss/logging/Logger;
invokevirtual org.jboss.logging.Logger.isTraceEnabled:()Z
ifeq 35
29: getstatic org.hibernate.engine.internal.NaturalIdXrefDelegate.LOG:Lorg/jboss/logging/Logger;
30: ldc "Found natural key [%s] -> primary key [%s] xref in second-level cache for %s"
31: aload 2
invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
32: aload 4
33: aload 1
invokeinterface org.hibernate.persister.entity.EntityPersister.getRootEntityName:()Ljava/lang/String;
34: invokevirtual org.jboss.logging.Logger.tracef:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
35: StackMap locals:
StackMap stack:
aload 3
ifnonnull 40
36: new org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache
dup
aload 1
invokespecial org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache.<init>:(Lorg/hibernate/persister/entity/EntityPersister;)V
astore 3
37: aload 0
getfield org.hibernate.engine.internal.NaturalIdXrefDelegate.naturalIdResolutionCacheMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
aload 3
invokevirtual java.util.concurrent.ConcurrentHashMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache
astore 9
start local 9 38: aload 9
ifnull 40
39: aload 9
astore 3
end local 9 40: StackMap locals:
StackMap stack:
aload 3
getfield org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache.pkToNaturalIdMap:Ljava/util/Map;
aload 4
aload 5
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
41: aload 3
getfield org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache.naturalIdToPkMap:Ljava/util/Map;
aload 5
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
42: goto 45
43: StackMap locals:
StackMap stack:
aload 8
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatistics:()Lorg/hibernate/stat/Statistics;
invokeinterface org.hibernate.stat.Statistics.isStatisticsEnabled:()Z
ifeq 45
44: aload 8
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatisticsImplementor:()Lorg/hibernate/stat/spi/StatisticsImplementor;
aload 7
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.naturalIdCacheMiss:(Ljava/lang/String;)V
45: StackMap locals:
StackMap stack:
aload 4
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
0 46 1 persister Lorg/hibernate/persister/entity/EntityPersister;
0 46 2 naturalIdValues [Ljava/lang/Object;
3 46 3 entityNaturalIdResolutionCache Lorg/hibernate/engine/internal/NaturalIdXrefDelegate$NaturalIdResolutionCache;
6 17 4 pk Ljava/io/Serializable;
22 46 4 pk Ljava/io/Serializable;
4 46 5 cachedNaturalId Lorg/hibernate/engine/internal/NaturalIdXrefDelegate$CachedNaturalId;
20 46 6 naturalIdCacheKey Lorg/hibernate/cache/spi/NaturalIdCacheKey;
21 46 7 naturalIdCacheAccessStrategy Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;
23 46 8 factory Lorg/hibernate/engine/spi/SessionFactoryImplementor;
38 40 9 existingCache Lorg/hibernate/engine/internal/NaturalIdXrefDelegate$NaturalIdResolutionCache;
MethodParameters:
Name Flags
persister
naturalIdValues
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=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.locatePersisterForKey:(Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/persister/entity/EntityPersister;
astore 1
1: aconst_null
astore 2
start local 2 2: aload 0
getfield org.hibernate.engine.internal.NaturalIdXrefDelegate.naturalIdResolutionCacheMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache
astore 3
start local 3 3: aload 3
ifnull 5
4: aload 3
getfield org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache.pkToNaturalIdMap:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
astore 2
5: StackMap locals: java.util.Collection org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache
StackMap stack:
aload 2
ifnull 6
aload 2
invokeinterface java.util.Collection.isEmpty:()Z
ifeq 7
6: StackMap locals:
StackMap stack:
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
7: StackMap locals:
StackMap stack:
aload 2
invokestatic java.util.Collections.unmodifiableCollection:(Ljava/util/Collection;)Ljava/util/Collection;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
0 8 1 persister Lorg/hibernate/persister/entity/EntityPersister;
2 8 2 pks Ljava/util/Collection<Ljava/io/Serializable;>;
3 8 3 entityNaturalIdResolutionCache Lorg/hibernate/engine/internal/NaturalIdXrefDelegate$NaturalIdResolutionCache;
Signature: (Lorg/hibernate/persister/entity/EntityPersister;)Ljava/util/Collection<Ljava/io/Serializable;>;
MethodParameters:
Name Flags
persister
public void stashInvalidNaturalIdReference(org.hibernate.persister.entity.EntityPersister, java.lang.Object[]);
descriptor: (Lorg/hibernate/persister/entity/EntityPersister;[Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate.locatePersisterForKey:(Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/persister/entity/EntityPersister;
astore 1
1: aload 0
getfield org.hibernate.engine.internal.NaturalIdXrefDelegate.naturalIdResolutionCacheMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache
astore 3
start local 3 2: aload 3
ifnonnull 4
3: new org.hibernate.AssertionFailure
dup
new java.lang.StringBuilder
dup
ldc "Expecting NaturalIdResolutionCache to exist already for entity "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface org.hibernate.persister.entity.EntityPersister.getEntityName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache
StackMap stack:
aload 3
aload 2
invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache.stashInvalidNaturalIdReference:([Ljava/lang/Object;)V
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
0 6 1 persister Lorg/hibernate/persister/entity/EntityPersister;
0 6 2 invalidNaturalIdValues [Ljava/lang/Object;
2 6 3 entityNaturalIdResolutionCache Lorg/hibernate/engine/internal/NaturalIdXrefDelegate$NaturalIdResolutionCache;
MethodParameters:
Name Flags
persister
invalidNaturalIdValues
public void unStashInvalidNaturalIdReferences();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield org.hibernate.engine.internal.NaturalIdXrefDelegate.naturalIdResolutionCacheMap:Ljava/util/concurrent/ConcurrentHashMap;
invokevirtual java.util.concurrent.ConcurrentHashMap.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 2
goto 3
StackMap locals: org.hibernate.engine.internal.NaturalIdXrefDelegate top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache
astore 1
start local 1 2: aload 1
invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache.unStashInvalidNaturalIdReferences:()V
end local 1 3: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
2 3 1 naturalIdResolutionCache Lorg/hibernate/engine/internal/NaturalIdXrefDelegate$NaturalIdResolutionCache;
public void clear();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.hibernate.engine.internal.NaturalIdXrefDelegate.naturalIdResolutionCacheMap:Ljava/util/concurrent/ConcurrentHashMap;
invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/hibernate/engine/internal/NaturalIdXrefDelegate;
}
SourceFile: "NaturalIdXrefDelegate.java"
NestMembers:
org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache
InnerClasses:
private CachedNaturalId = org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId of org.hibernate.engine.internal.NaturalIdXrefDelegate
private NaturalIdResolutionCache = org.hibernate.engine.internal.NaturalIdXrefDelegate$NaturalIdResolutionCache of org.hibernate.engine.internal.NaturalIdXrefDelegate
public abstract NaturalIdHelper = org.hibernate.engine.spi.PersistenceContext$NaturalIdHelper of org.hibernate.engine.spi.PersistenceContext