public class org.hibernate.event.internal.OnLockVisitor extends org.hibernate.event.internal.ReattachVisitor
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.hibernate.event.internal.OnLockVisitor
super_class: org.hibernate.event.internal.ReattachVisitor
{
public void <init>(org.hibernate.event.spi.EventSource, java.io.Serializable, java.lang.Object);
descriptor: (Lorg/hibernate/event/spi/EventSource;Ljava/io/Serializable;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 // org.hibernate.event.internal.OnLockVisitor this
start local 1 // org.hibernate.event.spi.EventSource session
start local 2 // java.io.Serializable key
start local 3 // java.lang.Object owner
0: .line 30
aload 0 /* this */
aload 1 /* session */
aload 2 /* key */
aload 3 /* owner */
invokespecial org.hibernate.event.internal.ReattachVisitor.<init>:(Lorg/hibernate/event/spi/EventSource;Ljava/io/Serializable;Ljava/lang/Object;)V
1: .line 31
return
end local 3 // java.lang.Object owner
end local 2 // java.io.Serializable key
end local 1 // org.hibernate.event.spi.EventSource session
end local 0 // org.hibernate.event.internal.OnLockVisitor this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/hibernate/event/internal/OnLockVisitor;
0 2 1 session Lorg/hibernate/event/spi/EventSource;
0 2 2 key Ljava/io/Serializable;
0 2 3 owner Ljava/lang/Object;
MethodParameters:
Name Flags
session
key
owner
public java.lang.Object processCollection(java.lang.Object, org.hibernate.type.CollectionType);
descriptor: (Ljava/lang/Object;Lorg/hibernate/type/CollectionType;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=3
start local 0 // org.hibernate.event.internal.OnLockVisitor this
start local 1 // java.lang.Object collection
start local 2 // org.hibernate.type.CollectionType type
0: .line 35
aload 1 /* collection */
ifnonnull 2
1: .line 36
aconst_null
areturn
2: .line 39
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual org.hibernate.event.internal.OnLockVisitor.getSession:()Lorg/hibernate/event/spi/EventSource;
astore 3 /* session */
start local 3 // org.hibernate.engine.spi.SessionImplementor session
3: .line 40
aload 3 /* session */
invokeinterface org.hibernate.engine.spi.SessionImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
aload 2 /* type */
invokevirtual org.hibernate.type.CollectionType.getRole:()Ljava/lang/String;
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getCollectionPersister:(Ljava/lang/String;)Lorg/hibernate/persister/collection/CollectionPersister;
astore 4 /* persister */
start local 4 // org.hibernate.persister.collection.CollectionPersister persister
4: .line 42
aload 1 /* collection */
instanceof org.hibernate.collection.spi.PersistentCollection
ifeq 14
5: .line 43
aload 1 /* collection */
checkcast org.hibernate.collection.spi.PersistentCollection
astore 5 /* persistentCollection */
start local 5 // org.hibernate.collection.spi.PersistentCollection persistentCollection
6: .line 44
aload 5 /* persistentCollection */
aload 3 /* session */
invokeinterface org.hibernate.collection.spi.PersistentCollection.setCurrentSession:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Z
ifeq 13
7: .line 45
aload 5 /* persistentCollection */
aload 4 /* persister */
aload 0 /* this */
aload 4 /* persister */
invokevirtual org.hibernate.event.internal.OnLockVisitor.extractCollectionKeyFromOwner:(Lorg/hibernate/persister/collection/CollectionPersister;)Ljava/io/Serializable;
invokestatic org.hibernate.event.internal.OnLockVisitor.isOwnerUnchanged:(Lorg/hibernate/collection/spi/PersistentCollection;Lorg/hibernate/persister/collection/CollectionPersister;Ljava/io/Serializable;)Z
ifeq 12
8: .line 47
aload 5 /* persistentCollection */
invokeinterface org.hibernate.collection.spi.PersistentCollection.isDirty:()Z
ifeq 10
9: .line 48
new org.hibernate.HibernateException
dup
ldc "reassociated object has dirty collection"
invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
athrow
10: .line 50
StackMap locals: org.hibernate.engine.spi.SessionImplementor org.hibernate.persister.collection.CollectionPersister org.hibernate.collection.spi.PersistentCollection
StackMap stack:
aload 0 /* this */
aload 5 /* persistentCollection */
aload 2 /* type */
invokevirtual org.hibernate.event.internal.OnLockVisitor.reattachCollection:(Lorg/hibernate/collection/spi/PersistentCollection;Lorg/hibernate/type/CollectionType;)V
11: .line 51
goto 15
12: .line 54
StackMap locals:
StackMap stack:
new org.hibernate.HibernateException
dup
ldc "reassociated object has dirty collection reference"
invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
athrow
13: .line 61
StackMap locals:
StackMap stack:
new org.hibernate.HibernateException
dup
ldc "reassociated object has dirty collection reference"
invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
athrow
end local 5 // org.hibernate.collection.spi.PersistentCollection persistentCollection
14: .line 67
StackMap locals:
StackMap stack:
new org.hibernate.HibernateException
dup
ldc "reassociated object has dirty collection reference (or an array)"
invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
athrow
15: .line 70
StackMap locals:
StackMap stack:
aconst_null
areturn
end local 4 // org.hibernate.persister.collection.CollectionPersister persister
end local 3 // org.hibernate.engine.spi.SessionImplementor session
end local 2 // org.hibernate.type.CollectionType type
end local 1 // java.lang.Object collection
end local 0 // org.hibernate.event.internal.OnLockVisitor this
LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/hibernate/event/internal/OnLockVisitor;
0 16 1 collection Ljava/lang/Object;
0 16 2 type Lorg/hibernate/type/CollectionType;
3 16 3 session Lorg/hibernate/engine/spi/SessionImplementor;
4 16 4 persister Lorg/hibernate/persister/collection/CollectionPersister;
6 14 5 persistentCollection Lorg/hibernate/collection/spi/PersistentCollection;
Exceptions:
throws org.hibernate.HibernateException
MethodParameters:
Name Flags
collection
type
}
SourceFile: "OnLockVisitor.java"