public final class org.hibernate.action.internal.CollectionUpdateAction extends org.hibernate.action.internal.CollectionAction
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.hibernate.action.internal.CollectionUpdateAction
super_class: org.hibernate.action.internal.CollectionAction
{
private final boolean emptySnapshot;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(org.hibernate.collection.spi.PersistentCollection, org.hibernate.persister.collection.CollectionPersister, java.io.Serializable, boolean, org.hibernate.engine.spi.SharedSessionContractImplementor);
descriptor: (Lorg/hibernate/collection/spi/PersistentCollection;Lorg/hibernate/persister/collection/CollectionPersister;Ljava/io/Serializable;ZLorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 2
aload 1
aload 3
aload 5
invokespecial org.hibernate.action.internal.CollectionAction.<init>:(Lorg/hibernate/persister/collection/CollectionPersister;Lorg/hibernate/collection/spi/PersistentCollection;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
1: aload 0
iload 4
putfield org.hibernate.action.internal.CollectionUpdateAction.emptySnapshot:Z
2: return
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 3 0 this Lorg/hibernate/action/internal/CollectionUpdateAction;
0 3 1 collection Lorg/hibernate/collection/spi/PersistentCollection;
0 3 2 persister Lorg/hibernate/persister/collection/CollectionPersister;
0 3 3 id Ljava/io/Serializable;
0 3 4 emptySnapshot Z
0 3 5 session Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
MethodParameters:
Name Flags
collection final
persister final
id final
emptySnapshot final
session final
public void execute();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=6, args_size=1
start local 0 0: aload 0
invokevirtual org.hibernate.action.internal.CollectionUpdateAction.getKey:()Ljava/io/Serializable;
astore 1
start local 1 1: aload 0
invokevirtual org.hibernate.action.internal.CollectionUpdateAction.getSession:()Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
astore 2
start local 2 2: aload 0
invokevirtual org.hibernate.action.internal.CollectionUpdateAction.getPersister:()Lorg/hibernate/persister/collection/CollectionPersister;
astore 3
start local 3 3: aload 0
invokevirtual org.hibernate.action.internal.CollectionUpdateAction.getCollection:()Lorg/hibernate/collection/spi/PersistentCollection;
astore 4
start local 4 4: aload 3
aload 2
invokeinterface org.hibernate.persister.collection.CollectionPersister.isAffectedByEnabledFilters:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Z
istore 5
start local 5 5: aload 0
invokevirtual org.hibernate.action.internal.CollectionUpdateAction.preUpdate:()V
6: aload 4
invokeinterface org.hibernate.collection.spi.PersistentCollection.wasInitialized:()Z
ifne 9
7: aload 4
invokeinterface org.hibernate.collection.spi.PersistentCollection.hasQueuedOperations:()Z
ifne 27
8: new org.hibernate.AssertionFailure
dup
ldc "no queued adds"
invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: org.hibernate.action.internal.CollectionUpdateAction java.io.Serializable org.hibernate.engine.spi.SharedSessionContractImplementor org.hibernate.persister.collection.CollectionPersister org.hibernate.collection.spi.PersistentCollection int
StackMap stack:
iload 5
ifne 13
aload 4
invokeinterface org.hibernate.collection.spi.PersistentCollection.empty:()Z
ifeq 13
10: aload 0
getfield org.hibernate.action.internal.CollectionUpdateAction.emptySnapshot:Z
ifne 27
11: aload 3
aload 1
aload 2
invokeinterface org.hibernate.persister.collection.CollectionPersister.remove:(Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
12: goto 27
13: StackMap locals:
StackMap stack:
aload 4
aload 3
invokeinterface org.hibernate.collection.spi.PersistentCollection.needsRecreate:(Lorg/hibernate/persister/collection/CollectionPersister;)Z
ifeq 24
14: iload 5
ifeq 20
15: new org.hibernate.HibernateException
dup
16: new java.lang.StringBuilder
dup
ldc "cannot recreate collection while filter is enabled: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
17: aload 3
aload 4
aload 1
aload 2
invokestatic org.hibernate.pretty.MessageHelper.collectionInfoString:(Lorg/hibernate/persister/collection/CollectionPersister;Lorg/hibernate/collection/spi/PersistentCollection;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
18: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
19: invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals:
StackMap stack:
aload 0
getfield org.hibernate.action.internal.CollectionUpdateAction.emptySnapshot:Z
ifne 22
21: aload 3
aload 1
aload 2
invokeinterface org.hibernate.persister.collection.CollectionPersister.remove:(Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
22: StackMap locals:
StackMap stack:
aload 3
aload 4
aload 1
aload 2
invokeinterface org.hibernate.persister.collection.CollectionPersister.recreate:(Lorg/hibernate/collection/spi/PersistentCollection;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
23: goto 27
24: StackMap locals:
StackMap stack:
aload 3
aload 4
aload 1
aload 2
invokeinterface org.hibernate.persister.collection.CollectionPersister.deleteRows:(Lorg/hibernate/collection/spi/PersistentCollection;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
25: aload 3
aload 4
aload 1
aload 2
invokeinterface org.hibernate.persister.collection.CollectionPersister.updateRows:(Lorg/hibernate/collection/spi/PersistentCollection;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
26: aload 3
aload 4
aload 1
aload 2
invokeinterface org.hibernate.persister.collection.CollectionPersister.insertRows:(Lorg/hibernate/collection/spi/PersistentCollection;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
27: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.hibernate.action.internal.CollectionUpdateAction.getSession:()Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getPersistenceContext:()Lorg/hibernate/engine/spi/PersistenceContext;
aload 4
invokeinterface org.hibernate.engine.spi.PersistenceContext.getCollectionEntry:(Lorg/hibernate/collection/spi/PersistentCollection;)Lorg/hibernate/engine/spi/CollectionEntry;
aload 4
invokevirtual org.hibernate.engine.spi.CollectionEntry.afterAction:(Lorg/hibernate/collection/spi/PersistentCollection;)V
28: aload 0
invokevirtual org.hibernate.action.internal.CollectionUpdateAction.evict:()V
29: aload 0
invokevirtual org.hibernate.action.internal.CollectionUpdateAction.postUpdate:()V
30: aload 0
invokevirtual org.hibernate.action.internal.CollectionUpdateAction.getSession:()Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatistics:()Lorg/hibernate/stat/spi/StatisticsImplementor;
invokeinterface org.hibernate.stat.spi.StatisticsImplementor.isStatisticsEnabled:()Z
ifeq 32
31: aload 0
invokevirtual org.hibernate.action.internal.CollectionUpdateAction.getSession:()Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatistics:()Lorg/hibernate/stat/spi/StatisticsImplementor;
aload 0
invokevirtual org.hibernate.action.internal.CollectionUpdateAction.getPersister:()Lorg/hibernate/persister/collection/CollectionPersister;
invokeinterface org.hibernate.persister.collection.CollectionPersister.getRole:()Ljava/lang/String;
invokeinterface org.hibernate.stat.spi.StatisticsImplementor.updateCollection:(Ljava/lang/String;)V
32: StackMap locals:
StackMap stack:
return
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 33 0 this Lorg/hibernate/action/internal/CollectionUpdateAction;
1 33 1 id Ljava/io/Serializable;
2 33 2 session Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
3 33 3 persister Lorg/hibernate/persister/collection/CollectionPersister;
4 33 4 collection Lorg/hibernate/collection/spi/PersistentCollection;
5 33 5 affectedByFilters Z
Exceptions:
throws org.hibernate.HibernateException
private void preUpdate();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=1
start local 0 0: aload 0
getstatic org.hibernate.event.spi.EventType.PRE_COLLECTION_UPDATE:Lorg/hibernate/event/spi/EventType;
invokevirtual org.hibernate.action.internal.CollectionUpdateAction.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.PreCollectionUpdateEvent
dup
4: aload 0
invokevirtual org.hibernate.action.internal.CollectionUpdateAction.getPersister:()Lorg/hibernate/persister/collection/CollectionPersister;
5: aload 0
invokevirtual org.hibernate.action.internal.CollectionUpdateAction.getCollection:()Lorg/hibernate/collection/spi/PersistentCollection;
6: aload 0
invokevirtual org.hibernate.action.internal.CollectionUpdateAction.eventSource:()Lorg/hibernate/event/spi/EventSource;
7: invokespecial org.hibernate.event.spi.PreCollectionUpdateEvent.<init>:(Lorg/hibernate/persister/collection/CollectionPersister;Lorg/hibernate/collection/spi/PersistentCollection;Lorg/hibernate/event/spi/EventSource;)V
astore 2
start local 2 8: aload 1
invokeinterface org.hibernate.event.service.spi.EventListenerGroup.listeners:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 4
goto 11
StackMap locals: org.hibernate.action.internal.CollectionUpdateAction org.hibernate.event.service.spi.EventListenerGroup org.hibernate.event.spi.PreCollectionUpdateEvent top java.util.Iterator
StackMap stack:
9: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.hibernate.event.spi.PreCollectionUpdateEventListener
astore 3
start local 3 10: aload 3
aload 2
invokeinterface org.hibernate.event.spi.PreCollectionUpdateEventListener.onPreUpdateCollection:(Lorg/hibernate/event/spi/PreCollectionUpdateEvent;)V
end local 3 11: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
12: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/hibernate/action/internal/CollectionUpdateAction;
1 13 1 listenerGroup Lorg/hibernate/event/service/spi/EventListenerGroup<Lorg/hibernate/event/spi/PreCollectionUpdateEventListener;>;
8 13 2 event Lorg/hibernate/event/spi/PreCollectionUpdateEvent;
10 11 3 listener Lorg/hibernate/event/spi/PreCollectionUpdateEventListener;
private void postUpdate();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=1
start local 0 0: aload 0
getstatic org.hibernate.event.spi.EventType.POST_COLLECTION_UPDATE:Lorg/hibernate/event/spi/EventType;
invokevirtual org.hibernate.action.internal.CollectionUpdateAction.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.PostCollectionUpdateEvent
dup
4: aload 0
invokevirtual org.hibernate.action.internal.CollectionUpdateAction.getPersister:()Lorg/hibernate/persister/collection/CollectionPersister;
5: aload 0
invokevirtual org.hibernate.action.internal.CollectionUpdateAction.getCollection:()Lorg/hibernate/collection/spi/PersistentCollection;
6: aload 0
invokevirtual org.hibernate.action.internal.CollectionUpdateAction.eventSource:()Lorg/hibernate/event/spi/EventSource;
7: invokespecial org.hibernate.event.spi.PostCollectionUpdateEvent.<init>:(Lorg/hibernate/persister/collection/CollectionPersister;Lorg/hibernate/collection/spi/PersistentCollection;Lorg/hibernate/event/spi/EventSource;)V
astore 2
start local 2 8: aload 1
invokeinterface org.hibernate.event.service.spi.EventListenerGroup.listeners:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 4
goto 11
StackMap locals: org.hibernate.action.internal.CollectionUpdateAction org.hibernate.event.service.spi.EventListenerGroup org.hibernate.event.spi.PostCollectionUpdateEvent top java.util.Iterator
StackMap stack:
9: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.hibernate.event.spi.PostCollectionUpdateEventListener
astore 3
start local 3 10: aload 3
aload 2
invokeinterface org.hibernate.event.spi.PostCollectionUpdateEventListener.onPostUpdateCollection:(Lorg/hibernate/event/spi/PostCollectionUpdateEvent;)V
end local 3 11: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
12: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/hibernate/action/internal/CollectionUpdateAction;
1 13 1 listenerGroup Lorg/hibernate/event/service/spi/EventListenerGroup<Lorg/hibernate/event/spi/PostCollectionUpdateEventListener;>;
8 13 2 event Lorg/hibernate/event/spi/PostCollectionUpdateEvent;
10 11 3 listener Lorg/hibernate/event/spi/PostCollectionUpdateEventListener;
}
SourceFile: "CollectionUpdateAction.java"