public final class org.hibernate.action.internal.EntityUpdateAction extends org.hibernate.action.internal.EntityAction
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.hibernate.action.internal.EntityUpdateAction
super_class: org.hibernate.action.internal.EntityAction
{
private final java.lang.Object[] state;
descriptor: [Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object[] previousState;
descriptor: [Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object previousVersion;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int[] dirtyFields;
descriptor: [I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean hasDirtyCollection;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object rowId;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object[] previousNaturalIdValues;
descriptor: [Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.lang.Object nextVersion;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private java.lang.Object cacheEntry;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private org.hibernate.cache.spi.access.SoftLock lock;
descriptor: Lorg/hibernate/cache/spi/access/SoftLock;
flags: (0x0002) ACC_PRIVATE
public void <init>(java.io.Serializable, java.lang.Object[], int[], boolean, java.lang.Object[], java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, org.hibernate.persister.entity.EntityPersister, org.hibernate.engine.spi.SessionImplementor);
descriptor: (Ljava/io/Serializable;[Ljava/lang/Object;[IZ[Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/engine/spi/SessionImplementor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=12, args_size=12
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 start local 10 start local 11 0: aload 0
aload 11
aload 1
aload 8
aload 10
invokespecial org.hibernate.action.internal.EntityAction.<init>:(Lorg/hibernate/engine/spi/SessionImplementor;Ljava/io/Serializable;Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;)V
1: aload 0
aload 2
putfield org.hibernate.action.internal.EntityUpdateAction.state:[Ljava/lang/Object;
2: aload 0
aload 5
putfield org.hibernate.action.internal.EntityUpdateAction.previousState:[Ljava/lang/Object;
3: aload 0
aload 6
putfield org.hibernate.action.internal.EntityUpdateAction.previousVersion:Ljava/lang/Object;
4: aload 0
aload 7
putfield org.hibernate.action.internal.EntityUpdateAction.nextVersion:Ljava/lang/Object;
5: aload 0
aload 3
putfield org.hibernate.action.internal.EntityUpdateAction.dirtyFields:[I
6: aload 0
iload 4
putfield org.hibernate.action.internal.EntityUpdateAction.hasDirtyCollection:Z
7: aload 0
aload 9
putfield org.hibernate.action.internal.EntityUpdateAction.rowId:Ljava/lang/Object;
8: aload 0
aload 0
aload 10
aload 5
aload 11
aload 1
invokevirtual org.hibernate.action.internal.EntityUpdateAction.determinePreviousNaturalIdValues:(Lorg/hibernate/persister/entity/EntityPersister;[Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/io/Serializable;)[Ljava/lang/Object;
putfield org.hibernate.action.internal.EntityUpdateAction.previousNaturalIdValues:[Ljava/lang/Object;
9: aload 11
invokeinterface org.hibernate.engine.spi.SessionImplementor.getPersistenceContext:()Lorg/hibernate/engine/spi/PersistenceContext;
invokeinterface org.hibernate.engine.spi.PersistenceContext.getNaturalIdHelper:()Lorg/hibernate/engine/spi/PersistenceContext$NaturalIdHelper;
10: aload 10
11: aload 1
12: aload 2
13: aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.previousNaturalIdValues:[Ljava/lang/Object;
14: getstatic org.hibernate.engine.spi.CachedNaturalIdValueSource.UPDATE:Lorg/hibernate/engine/spi/CachedNaturalIdValueSource;
15: invokeinterface org.hibernate.engine.spi.PersistenceContext$NaturalIdHelper.manageLocalNaturalIdCrossReference:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;[Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/engine/spi/CachedNaturalIdValueSource;)V
16: return
end local 11 end local 10 end local 9 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 17 0 this Lorg/hibernate/action/internal/EntityUpdateAction;
0 17 1 id Ljava/io/Serializable;
0 17 2 state [Ljava/lang/Object;
0 17 3 dirtyProperties [I
0 17 4 hasDirtyCollection Z
0 17 5 previousState [Ljava/lang/Object;
0 17 6 previousVersion Ljava/lang/Object;
0 17 7 nextVersion Ljava/lang/Object;
0 17 8 instance Ljava/lang/Object;
0 17 9 rowId Ljava/lang/Object;
0 17 10 persister Lorg/hibernate/persister/entity/EntityPersister;
0 17 11 session Lorg/hibernate/engine/spi/SessionImplementor;
MethodParameters:
Name Flags
id final
state final
dirtyProperties final
hasDirtyCollection final
previousState final
previousVersion final
nextVersion final
instance final
rowId final
persister final
session final
private java.lang.Object[] determinePreviousNaturalIdValues(org.hibernate.persister.entity.EntityPersister, java.lang.Object[], org.hibernate.engine.spi.SessionImplementor, java.io.Serializable);
descriptor: (Lorg/hibernate/persister/entity/EntityPersister;[Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/io/Serializable;)[Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdentifier:()Z
ifne 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 2
ifnull 4
3: aload 3
invokeinterface org.hibernate.engine.spi.SessionImplementor.getPersistenceContext:()Lorg/hibernate/engine/spi/PersistenceContext;
invokeinterface org.hibernate.engine.spi.PersistenceContext.getNaturalIdHelper:()Lorg/hibernate/engine/spi/PersistenceContext$NaturalIdHelper;
aload 2
aload 1
invokeinterface org.hibernate.engine.spi.PersistenceContext$NaturalIdHelper.extractNaturalIdValues:([Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;)[Ljava/lang/Object;
areturn
4: StackMap locals:
StackMap stack:
aload 3
invokeinterface org.hibernate.engine.spi.SessionImplementor.getPersistenceContext:()Lorg/hibernate/engine/spi/PersistenceContext;
aload 4
aload 1
invokeinterface org.hibernate.engine.spi.PersistenceContext.getNaturalIdSnapshot:(Ljava/io/Serializable;Lorg/hibernate/persister/entity/EntityPersister;)[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 5 0 this Lorg/hibernate/action/internal/EntityUpdateAction;
0 5 1 persister Lorg/hibernate/persister/entity/EntityPersister;
0 5 2 previousState [Ljava/lang/Object;
0 5 3 session Lorg/hibernate/engine/spi/SessionImplementor;
0 5 4 id Ljava/io/Serializable;
MethodParameters:
Name Flags
persister
previousState
session
id
public void execute();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=12, args_size=1
start local 0 0: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getId:()Ljava/io/Serializable;
astore 1
start local 1 1: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getPersister:()Lorg/hibernate/persister/entity/EntityPersister;
astore 2
start local 2 2: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getSession:()Lorg/hibernate/engine/spi/SessionImplementor;
astore 3
start local 3 3: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getInstance:()Ljava/lang/Object;
astore 4
start local 4 4: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.preUpdate:()Z
istore 5
start local 5 5: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getSession:()Lorg/hibernate/engine/spi/SessionImplementor;
invokeinterface org.hibernate.engine.spi.SessionImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
astore 6
start local 6 6: aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.previousVersion:Ljava/lang/Object;
astore 7
start local 7 7: aload 2
invokeinterface org.hibernate.persister.entity.EntityPersister.isVersionPropertyGenerated:()Z
ifeq 9
8: aload 2
aload 4
invokeinterface org.hibernate.persister.entity.EntityPersister.getVersion:(Ljava/lang/Object;)Ljava/lang/Object;
astore 7
9: StackMap locals: org.hibernate.action.internal.EntityUpdateAction java.io.Serializable org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionImplementor java.lang.Object int org.hibernate.engine.spi.SessionFactoryImplementor java.lang.Object
StackMap stack:
aload 2
invokeinterface org.hibernate.persister.entity.EntityPersister.hasCache:()Z
ifeq 17
10: aload 3
11: aload 1
12: aload 2
invokeinterface org.hibernate.persister.entity.EntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
13: aload 2
invokeinterface org.hibernate.persister.entity.EntityPersister.getRootEntityName:()Ljava/lang/String;
14: invokeinterface org.hibernate.engine.spi.SessionImplementor.generateCacheKey:(Ljava/io/Serializable;Lorg/hibernate/type/Type;Ljava/lang/String;)Lorg/hibernate/cache/spi/CacheKey;
astore 8
start local 8 15: aload 0
aload 2
invokeinterface org.hibernate.persister.entity.EntityPersister.getCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
aload 8
aload 7
invokeinterface org.hibernate.cache.spi.access.EntityRegionAccessStrategy.lockItem:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/hibernate/cache/spi/access/SoftLock;
putfield org.hibernate.action.internal.EntityUpdateAction.lock:Lorg/hibernate/cache/spi/access/SoftLock;
16: goto 18
end local 8 17: StackMap locals:
StackMap stack:
aconst_null
astore 8
start local 8 18: StackMap locals: org.hibernate.cache.spi.CacheKey
StackMap stack:
iload 5
ifne 30
19: aload 2
20: aload 1
21: aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.state:[Ljava/lang/Object;
22: aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.dirtyFields:[I
23: aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.hasDirtyCollection:Z
24: aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.previousState:[Ljava/lang/Object;
25: aload 7
26: aload 4
27: aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.rowId:Ljava/lang/Object;
28: aload 3
29: invokeinterface org.hibernate.persister.entity.EntityPersister.update:(Ljava/io/Serializable;[Ljava/lang/Object;[IZ[Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)V
30: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getSession:()Lorg/hibernate/engine/spi/SessionImplementor;
invokeinterface org.hibernate.engine.spi.SessionImplementor.getPersistenceContext:()Lorg/hibernate/engine/spi/PersistenceContext;
aload 4
invokeinterface org.hibernate.engine.spi.PersistenceContext.getEntry:(Ljava/lang/Object;)Lorg/hibernate/engine/spi/EntityEntry;
astore 9
start local 9 31: aload 9
ifnonnull 33
32: new org.hibernate.AssertionFailure
dup
ldc "possible nonthreadsafe access to session"
invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
athrow
33: StackMap locals: org.hibernate.engine.spi.EntityEntry
StackMap stack:
aload 9
invokevirtual org.hibernate.engine.spi.EntityEntry.getStatus:()Lorg/hibernate/engine/spi/Status;
getstatic org.hibernate.engine.spi.Status.MANAGED:Lorg/hibernate/engine/spi/Status;
if_acmpeq 34
aload 2
invokeinterface org.hibernate.persister.entity.EntityPersister.isVersionPropertyGenerated:()Z
ifeq 45
34: StackMap locals:
StackMap stack:
aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.state:[Ljava/lang/Object;
35: aload 2
invokeinterface org.hibernate.persister.entity.EntityPersister.getPropertyTypes:()[Lorg/hibernate/type/Type;
36: aload 2
invokeinterface org.hibernate.persister.entity.EntityPersister.getPropertyCheckability:()[Z
37: aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.state:[Ljava/lang/Object;
38: aload 3
39: invokestatic org.hibernate.type.TypeHelper.deepCopy:([Ljava/lang/Object;[Lorg/hibernate/type/Type;[Z[Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)V
40: aload 2
invokeinterface org.hibernate.persister.entity.EntityPersister.hasUpdateGeneratedProperties:()Z
ifeq 44
41: aload 2
aload 1
aload 4
aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.state:[Ljava/lang/Object;
aload 3
invokeinterface org.hibernate.persister.entity.EntityPersister.processUpdateGeneratedProperties:(Ljava/io/Serializable;Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)V
42: aload 2
invokeinterface org.hibernate.persister.entity.EntityPersister.isVersionPropertyGenerated:()Z
ifeq 44
43: aload 0
aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.state:[Ljava/lang/Object;
aload 2
invokestatic org.hibernate.engine.internal.Versioning.getVersion:([Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;)Ljava/lang/Object;
putfield org.hibernate.action.internal.EntityUpdateAction.nextVersion:Ljava/lang/Object;
44: StackMap locals:
StackMap stack:
aload 9
aload 4
aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.state:[Ljava/lang/Object;
aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.nextVersion:Ljava/lang/Object;
invokevirtual org.hibernate.engine.spi.EntityEntry.postUpdate:(Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Object;)V
45: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.hibernate.persister.entity.EntityPersister.hasCache:()Z
ifeq 54
46: aload 2
invokeinterface org.hibernate.persister.entity.EntityPersister.isCacheInvalidationRequired:()Z
ifne 47
aload 9
invokevirtual org.hibernate.engine.spi.EntityEntry.getStatus:()Lorg/hibernate/engine/spi/Status;
getstatic org.hibernate.engine.spi.Status.MANAGED:Lorg/hibernate/engine/spi/Status;
if_acmpeq 49
47: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.hibernate.persister.entity.EntityPersister.getCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
aload 8
invokeinterface org.hibernate.cache.spi.access.EntityRegionAccessStrategy.remove:(Ljava/lang/Object;)V
48: goto 54
49: StackMap locals:
StackMap stack:
aload 2
aload 4
aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.state:[Ljava/lang/Object;
aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.nextVersion:Ljava/lang/Object;
aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getSession:()Lorg/hibernate/engine/spi/SessionImplementor;
invokeinterface org.hibernate.persister.entity.EntityPersister.buildCacheEntry:(Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)Lorg/hibernate/cache/spi/entry/CacheEntry;
astore 10
start local 10 50: aload 0
aload 2
invokeinterface org.hibernate.persister.entity.EntityPersister.getCacheEntryStructure:()Lorg/hibernate/cache/spi/entry/CacheEntryStructure;
aload 10
invokeinterface org.hibernate.cache.spi.entry.CacheEntryStructure.structure:(Ljava/lang/Object;)Ljava/lang/Object;
putfield org.hibernate.action.internal.EntityUpdateAction.cacheEntry:Ljava/lang/Object;
51: aload 0
aload 2
aload 7
aload 8
invokevirtual org.hibernate.action.internal.EntityUpdateAction.cacheUpdate:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/cache/spi/CacheKey;)Z
istore 11
start local 11 52: iload 11
ifeq 54
aload 6
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatistics:()Lorg/hibernate/stat/Statistics;
invokeinterface org.hibernate.stat.Statistics.isStatisticsEnabled:()Z
ifeq 54
53: aload 6
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatisticsImplementor:()Lorg/hibernate/stat/spi/StatisticsImplementor;
aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getPersister:()Lorg/hibernate/persister/entity/EntityPersister;
invokeinterface org.hibernate.persister.entity.EntityPersister.getCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
invokeinterface org.hibernate.cache.spi.access.EntityRegionAccessStrategy.getRegion:()Lorg/hibernate/cache/spi/EntityRegion;
invokeinterface org.hibernate.cache.spi.EntityRegion.getName:()Ljava/lang/String;
invokeinterface org.hibernate.stat.spi.StatisticsImplementor.secondLevelCachePut:(Ljava/lang/String;)V
end local 11 end local 10 54: StackMap locals:
StackMap stack:
aload 3
invokeinterface org.hibernate.engine.spi.SessionImplementor.getPersistenceContext:()Lorg/hibernate/engine/spi/PersistenceContext;
invokeinterface org.hibernate.engine.spi.PersistenceContext.getNaturalIdHelper:()Lorg/hibernate/engine/spi/PersistenceContext$NaturalIdHelper;
55: aload 2
56: aload 1
57: aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.state:[Ljava/lang/Object;
58: aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.previousNaturalIdValues:[Ljava/lang/Object;
59: getstatic org.hibernate.engine.spi.CachedNaturalIdValueSource.UPDATE:Lorg/hibernate/engine/spi/CachedNaturalIdValueSource;
60: invokeinterface org.hibernate.engine.spi.PersistenceContext$NaturalIdHelper.manageSharedNaturalIdCrossReference:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;[Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/engine/spi/CachedNaturalIdValueSource;)V
61: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.postUpdate:()V
62: aload 6
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatistics:()Lorg/hibernate/stat/Statistics;
invokeinterface org.hibernate.stat.Statistics.isStatisticsEnabled:()Z
ifeq 64
iload 5
ifne 64
63: aload 6
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatisticsImplementor:()Lorg/hibernate/stat/spi/StatisticsImplementor;
aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getPersister:()Lorg/hibernate/persister/entity/EntityPersister;
invokeinterface org.hibernate.persister.entity.EntityPersister.getEntityName:()Ljava/lang/String;
invokeinterface org.hibernate.stat.spi.StatisticsImplementor.updateEntity:(Ljava/lang/String;)V
64: StackMap locals:
StackMap stack:
return
end local 9 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 65 0 this Lorg/hibernate/action/internal/EntityUpdateAction;
1 65 1 id Ljava/io/Serializable;
2 65 2 persister Lorg/hibernate/persister/entity/EntityPersister;
3 65 3 session Lorg/hibernate/engine/spi/SessionImplementor;
4 65 4 instance Ljava/lang/Object;
5 65 5 veto Z
6 65 6 factory Lorg/hibernate/engine/spi/SessionFactoryImplementor;
7 65 7 previousVersion Ljava/lang/Object;
15 17 8 ck Lorg/hibernate/cache/spi/CacheKey;
18 65 8 ck Lorg/hibernate/cache/spi/CacheKey;
31 65 9 entry Lorg/hibernate/engine/spi/EntityEntry;
50 54 10 ce Lorg/hibernate/cache/spi/entry/CacheEntry;
52 54 11 put Z
Exceptions:
throws org.hibernate.HibernateException
private boolean cacheUpdate(org.hibernate.persister.entity.EntityPersister, java.lang.Object, org.hibernate.cache.spi.CacheKey);
descriptor: (Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/cache/spi/CacheKey;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getSession:()Lorg/hibernate/engine/spi/SessionImplementor;
invokeinterface org.hibernate.engine.spi.SessionImplementor.getEventListenerManager:()Lorg/hibernate/engine/spi/SessionEventListenerManager;
invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.cachePutStart:()V
1: aload 1
invokeinterface org.hibernate.persister.entity.EntityPersister.getCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
aload 3
aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.cacheEntry:Ljava/lang/Object;
aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.nextVersion:Ljava/lang/Object;
aload 2
invokeinterface org.hibernate.cache.spi.access.EntityRegionAccessStrategy.update:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
istore 5
2: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getSession:()Lorg/hibernate/engine/spi/SessionImplementor;
invokeinterface org.hibernate.engine.spi.SessionImplementor.getEventListenerManager:()Lorg/hibernate/engine/spi/SessionEventListenerManager;
invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.cachePutEnd:()V
3: iload 5
ireturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
5: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getSession:()Lorg/hibernate/engine/spi/SessionImplementor;
invokeinterface org.hibernate.engine.spi.SessionImplementor.getEventListenerManager:()Lorg/hibernate/engine/spi/SessionEventListenerManager;
invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.cachePutEnd:()V
6: aload 4
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/hibernate/action/internal/EntityUpdateAction;
0 7 1 persister Lorg/hibernate/persister/entity/EntityPersister;
0 7 2 previousVersion Ljava/lang/Object;
0 7 3 ck Lorg/hibernate/cache/spi/CacheKey;
Exception table:
from to target type
0 2 4 any
MethodParameters:
Name Flags
persister
previousVersion
ck
private boolean preUpdate();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=6, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
getstatic org.hibernate.event.spi.EventType.PRE_UPDATE:Lorg/hibernate/event/spi/EventType;
invokevirtual org.hibernate.action.internal.EntityUpdateAction.listenerGroup:(Lorg/hibernate/event/spi/EventType;)Lorg/hibernate/event/service/spi/EventListenerGroup;
astore 2
start local 2 2: aload 2
invokeinterface org.hibernate.event.service.spi.EventListenerGroup.isEmpty:()Z
ifeq 4
3: iload 1
ireturn
4: StackMap locals: int org.hibernate.event.service.spi.EventListenerGroup
StackMap stack:
new org.hibernate.event.spi.PreUpdateEvent
dup
5: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getInstance:()Ljava/lang/Object;
6: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getId:()Ljava/io/Serializable;
7: aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.state:[Ljava/lang/Object;
8: aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.previousState:[Ljava/lang/Object;
9: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getPersister:()Lorg/hibernate/persister/entity/EntityPersister;
10: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.eventSource:()Lorg/hibernate/event/spi/EventSource;
11: invokespecial org.hibernate.event.spi.PreUpdateEvent.<init>:(Ljava/lang/Object;Ljava/io/Serializable;[Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/event/spi/EventSource;)V
astore 3
start local 3 12: aload 2
invokeinterface org.hibernate.event.service.spi.EventListenerGroup.listeners:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 5
goto 15
StackMap locals: org.hibernate.action.internal.EntityUpdateAction int org.hibernate.event.service.spi.EventListenerGroup org.hibernate.event.spi.PreUpdateEvent top java.util.Iterator
StackMap stack:
13: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.hibernate.event.spi.PreUpdateEventListener
astore 4
start local 4 14: iload 1
aload 4
aload 3
invokeinterface org.hibernate.event.spi.PreUpdateEventListener.onPreUpdate:(Lorg/hibernate/event/spi/PreUpdateEvent;)Z
ior
istore 1
end local 4 15: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
16: iload 1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/hibernate/action/internal/EntityUpdateAction;
1 17 1 veto Z
2 17 2 listenerGroup Lorg/hibernate/event/service/spi/EventListenerGroup<Lorg/hibernate/event/spi/PreUpdateEventListener;>;
12 17 3 event Lorg/hibernate/event/spi/PreUpdateEvent;
14 15 4 listener Lorg/hibernate/event/spi/PreUpdateEventListener;
private void postUpdate();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=5, args_size=1
start local 0 0: aload 0
getstatic org.hibernate.event.spi.EventType.POST_UPDATE:Lorg/hibernate/event/spi/EventType;
invokevirtual org.hibernate.action.internal.EntityUpdateAction.listenerGroup:(Lorg/hibernate/event/spi/EventType;)Lorg/hibernate/event/service/spi/EventListenerGroup;
astore 1
start local 1 1: aload 1
invokeinterface org.hibernate.event.service.spi.EventListenerGroup.isEmpty:()Z
ifeq 3
2: return
3: StackMap locals: org.hibernate.event.service.spi.EventListenerGroup
StackMap stack:
new org.hibernate.event.spi.PostUpdateEvent
dup
4: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getInstance:()Ljava/lang/Object;
5: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getId:()Ljava/io/Serializable;
6: aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.state:[Ljava/lang/Object;
7: aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.previousState:[Ljava/lang/Object;
8: aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.dirtyFields:[I
9: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getPersister:()Lorg/hibernate/persister/entity/EntityPersister;
10: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.eventSource:()Lorg/hibernate/event/spi/EventSource;
11: invokespecial org.hibernate.event.spi.PostUpdateEvent.<init>:(Ljava/lang/Object;Ljava/io/Serializable;[Ljava/lang/Object;[Ljava/lang/Object;[ILorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/event/spi/EventSource;)V
astore 2
start local 2 12: aload 1
invokeinterface org.hibernate.event.service.spi.EventListenerGroup.listeners:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 4
goto 15
StackMap locals: org.hibernate.action.internal.EntityUpdateAction org.hibernate.event.service.spi.EventListenerGroup org.hibernate.event.spi.PostUpdateEvent top java.util.Iterator
StackMap stack:
13: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.hibernate.event.spi.PostUpdateEventListener
astore 3
start local 3 14: aload 3
aload 2
invokeinterface org.hibernate.event.spi.PostUpdateEventListener.onPostUpdate:(Lorg/hibernate/event/spi/PostUpdateEvent;)V
end local 3 15: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
16: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/hibernate/action/internal/EntityUpdateAction;
1 17 1 listenerGroup Lorg/hibernate/event/service/spi/EventListenerGroup<Lorg/hibernate/event/spi/PostUpdateEventListener;>;
12 17 2 event Lorg/hibernate/event/spi/PostUpdateEvent;
14 15 3 listener Lorg/hibernate/event/spi/PostUpdateEventListener;
private void postCommitUpdate(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getstatic org.hibernate.event.spi.EventType.POST_COMMIT_UPDATE:Lorg/hibernate/event/spi/EventType;
invokevirtual org.hibernate.action.internal.EntityUpdateAction.listenerGroup:(Lorg/hibernate/event/spi/EventType;)Lorg/hibernate/event/service/spi/EventListenerGroup;
astore 2
start local 2 1: aload 2
invokeinterface org.hibernate.event.service.spi.EventListenerGroup.isEmpty:()Z
ifeq 3
2: return
3: StackMap locals: org.hibernate.event.service.spi.EventListenerGroup
StackMap stack:
new org.hibernate.event.spi.PostUpdateEvent
dup
4: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getInstance:()Ljava/lang/Object;
5: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getId:()Ljava/io/Serializable;
6: aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.state:[Ljava/lang/Object;
7: aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.previousState:[Ljava/lang/Object;
8: aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.dirtyFields:[I
9: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getPersister:()Lorg/hibernate/persister/entity/EntityPersister;
10: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.eventSource:()Lorg/hibernate/event/spi/EventSource;
11: invokespecial org.hibernate.event.spi.PostUpdateEvent.<init>:(Ljava/lang/Object;Ljava/io/Serializable;[Ljava/lang/Object;[Ljava/lang/Object;[ILorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/event/spi/EventSource;)V
astore 3
start local 3 12: aload 2
invokeinterface org.hibernate.event.service.spi.EventListenerGroup.listeners:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 5
goto 21
StackMap locals: org.hibernate.action.internal.EntityUpdateAction int org.hibernate.event.service.spi.EventListenerGroup org.hibernate.event.spi.PostUpdateEvent top java.util.Iterator
StackMap stack:
13: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.hibernate.event.spi.PostUpdateEventListener
astore 4
start local 4 14: ldc Lorg/hibernate/event/spi/PostCommitUpdateEventListener;
aload 4
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 20
15: iload 1
ifeq 18
16: aload 4
aload 3
invokeinterface org.hibernate.event.spi.PostUpdateEventListener.onPostUpdate:(Lorg/hibernate/event/spi/PostUpdateEvent;)V
17: goto 21
18: StackMap locals: org.hibernate.action.internal.EntityUpdateAction int org.hibernate.event.service.spi.EventListenerGroup org.hibernate.event.spi.PostUpdateEvent org.hibernate.event.spi.PostUpdateEventListener java.util.Iterator
StackMap stack:
aload 4
checkcast org.hibernate.event.spi.PostCommitUpdateEventListener
aload 3
invokeinterface org.hibernate.event.spi.PostCommitUpdateEventListener.onPostUpdateCommitFailed:(Lorg/hibernate/event/spi/PostUpdateEvent;)V
19: goto 21
20: StackMap locals:
StackMap stack:
aload 4
aload 3
invokeinterface org.hibernate.event.spi.PostUpdateEventListener.onPostUpdate:(Lorg/hibernate/event/spi/PostUpdateEvent;)V
end local 4 21: StackMap locals: org.hibernate.action.internal.EntityUpdateAction int org.hibernate.event.service.spi.EventListenerGroup org.hibernate.event.spi.PostUpdateEvent top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
22: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lorg/hibernate/action/internal/EntityUpdateAction;
0 23 1 success Z
1 23 2 listenerGroup Lorg/hibernate/event/service/spi/EventListenerGroup<Lorg/hibernate/event/spi/PostUpdateEventListener;>;
12 23 3 event Lorg/hibernate/event/spi/PostUpdateEvent;
14 21 4 listener Lorg/hibernate/event/spi/PostUpdateEventListener;
MethodParameters:
Name Flags
success
protected boolean hasPostCommitEventListeners();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getstatic org.hibernate.event.spi.EventType.POST_COMMIT_UPDATE:Lorg/hibernate/event/spi/EventType;
invokevirtual org.hibernate.action.internal.EntityUpdateAction.listenerGroup:(Lorg/hibernate/event/spi/EventType;)Lorg/hibernate/event/service/spi/EventListenerGroup;
astore 1
start local 1 1: aload 1
invokeinterface org.hibernate.event.service.spi.EventListenerGroup.listeners:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: org.hibernate.action.internal.EntityUpdateAction org.hibernate.event.service.spi.EventListenerGroup top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.hibernate.event.spi.PostUpdateEventListener
astore 2
start local 2 3: aload 2
aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getPersister:()Lorg/hibernate/persister/entity/EntityPersister;
invokeinterface org.hibernate.event.spi.PostUpdateEventListener.requiresPostCommitHanding:(Lorg/hibernate/persister/entity/EntityPersister;)Z
ifeq 5
4: iconst_1
ireturn
end local 2 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/hibernate/action/internal/EntityUpdateAction;
1 7 1 group Lorg/hibernate/event/service/spi/EventListenerGroup<Lorg/hibernate/event/spi/PostUpdateEventListener;>;
3 5 2 listener Lorg/hibernate/event/spi/PostUpdateEventListener;
public void doAfterTransactionCompletion(boolean, org.hibernate.engine.spi.SessionImplementor);
descriptor: (ZLorg/hibernate/engine/spi/SessionImplementor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getPersister:()Lorg/hibernate/persister/entity/EntityPersister;
astore 3
start local 3 1: aload 3
invokeinterface org.hibernate.persister.entity.EntityPersister.hasCache:()Z
ifeq 13
2: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getSession:()Lorg/hibernate/engine/spi/SessionImplementor;
3: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getId:()Ljava/io/Serializable;
4: aload 3
invokeinterface org.hibernate.persister.entity.EntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
5: aload 3
invokeinterface org.hibernate.persister.entity.EntityPersister.getRootEntityName:()Ljava/lang/String;
6: invokeinterface org.hibernate.engine.spi.SessionImplementor.generateCacheKey:(Ljava/io/Serializable;Lorg/hibernate/type/Type;Ljava/lang/String;)Lorg/hibernate/cache/spi/CacheKey;
astore 4
start local 4 7: iload 1
ifeq 12
aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.cacheEntry:Ljava/lang/Object;
ifnull 12
8: aload 0
aload 3
aload 4
invokevirtual org.hibernate.action.internal.EntityUpdateAction.cacheAfterUpdate:(Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/cache/spi/CacheKey;)Z
istore 5
start local 5 9: iload 5
ifeq 13
aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getSession:()Lorg/hibernate/engine/spi/SessionImplementor;
invokeinterface org.hibernate.engine.spi.SessionImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatistics:()Lorg/hibernate/stat/Statistics;
invokeinterface org.hibernate.stat.Statistics.isStatisticsEnabled:()Z
ifeq 13
10: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getSession:()Lorg/hibernate/engine/spi/SessionImplementor;
invokeinterface org.hibernate.engine.spi.SessionImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatisticsImplementor:()Lorg/hibernate/stat/spi/StatisticsImplementor;
aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getPersister:()Lorg/hibernate/persister/entity/EntityPersister;
invokeinterface org.hibernate.persister.entity.EntityPersister.getCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
invokeinterface org.hibernate.cache.spi.access.EntityRegionAccessStrategy.getRegion:()Lorg/hibernate/cache/spi/EntityRegion;
invokeinterface org.hibernate.cache.spi.EntityRegion.getName:()Ljava/lang/String;
invokeinterface org.hibernate.stat.spi.StatisticsImplementor.secondLevelCachePut:(Ljava/lang/String;)V
end local 5 11: goto 13
12: StackMap locals: org.hibernate.persister.entity.EntityPersister org.hibernate.cache.spi.CacheKey
StackMap stack:
aload 3
invokeinterface org.hibernate.persister.entity.EntityPersister.getCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
aload 4
aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.lock:Lorg/hibernate/cache/spi/access/SoftLock;
invokeinterface org.hibernate.cache.spi.access.EntityRegionAccessStrategy.unlockItem:(Ljava/lang/Object;Lorg/hibernate/cache/spi/access/SoftLock;)V
end local 4 13: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual org.hibernate.action.internal.EntityUpdateAction.postCommitUpdate:(Z)V
14: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/hibernate/action/internal/EntityUpdateAction;
0 15 1 success Z
0 15 2 session Lorg/hibernate/engine/spi/SessionImplementor;
1 15 3 persister Lorg/hibernate/persister/entity/EntityPersister;
7 13 4 ck Lorg/hibernate/cache/spi/CacheKey;
9 11 5 put Z
Exceptions:
throws org.hibernate.cache.CacheException
MethodParameters:
Name Flags
success
session
private boolean cacheAfterUpdate(org.hibernate.persister.entity.EntityPersister, org.hibernate.cache.spi.CacheKey);
descriptor: (Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/cache/spi/CacheKey;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getSession:()Lorg/hibernate/engine/spi/SessionImplementor;
invokeinterface org.hibernate.engine.spi.SessionImplementor.getEventListenerManager:()Lorg/hibernate/engine/spi/SessionEventListenerManager;
invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.cachePutStart:()V
1: aload 1
invokeinterface org.hibernate.persister.entity.EntityPersister.getCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
aload 2
aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.cacheEntry:Ljava/lang/Object;
aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.nextVersion:Ljava/lang/Object;
aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.previousVersion:Ljava/lang/Object;
aload 0
getfield org.hibernate.action.internal.EntityUpdateAction.lock:Lorg/hibernate/cache/spi/access/SoftLock;
invokeinterface org.hibernate.cache.spi.access.EntityRegionAccessStrategy.afterUpdate:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/cache/spi/access/SoftLock;)Z
istore 4
2: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getSession:()Lorg/hibernate/engine/spi/SessionImplementor;
invokeinterface org.hibernate.engine.spi.SessionImplementor.getEventListenerManager:()Lorg/hibernate/engine/spi/SessionEventListenerManager;
invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.cachePutEnd:()V
3: iload 4
ireturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
5: aload 0
invokevirtual org.hibernate.action.internal.EntityUpdateAction.getSession:()Lorg/hibernate/engine/spi/SessionImplementor;
invokeinterface org.hibernate.engine.spi.SessionImplementor.getEventListenerManager:()Lorg/hibernate/engine/spi/SessionEventListenerManager;
invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.cachePutEnd:()V
6: aload 3
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/hibernate/action/internal/EntityUpdateAction;
0 7 1 persister Lorg/hibernate/persister/entity/EntityPersister;
0 7 2 ck Lorg/hibernate/cache/spi/CacheKey;
Exception table:
from to target type
0 2 4 any
MethodParameters:
Name Flags
persister
ck
}
SourceFile: "EntityUpdateAction.java"
InnerClasses:
public abstract NaturalIdHelper = org.hibernate.engine.spi.PersistenceContext$NaturalIdHelper of org.hibernate.engine.spi.PersistenceContext