public class org.hibernate.engine.internal.ForeignKeys$Nullifier
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.hibernate.engine.internal.ForeignKeys$Nullifier
super_class: java.lang.Object
{
private final boolean isDelete;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean isEarlyInsert;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.hibernate.engine.spi.SessionImplementor session;
descriptor: Lorg/hibernate/engine/spi/SessionImplementor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object self;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(java.lang.Object, boolean, boolean, org.hibernate.engine.spi.SessionImplementor);
descriptor: (Ljava/lang/Object;ZZLorg/hibernate/engine/spi/SessionImplementor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iload 2
putfield org.hibernate.engine.internal.ForeignKeys$Nullifier.isDelete:Z
2: aload 0
iload 3
putfield org.hibernate.engine.internal.ForeignKeys$Nullifier.isEarlyInsert:Z
3: aload 0
aload 4
putfield org.hibernate.engine.internal.ForeignKeys$Nullifier.session:Lorg/hibernate/engine/spi/SessionImplementor;
4: aload 0
aload 1
putfield org.hibernate.engine.internal.ForeignKeys$Nullifier.self:Ljava/lang/Object;
5: return
end local 4 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/ForeignKeys$Nullifier;
0 6 1 self Ljava/lang/Object;
0 6 2 isDelete Z
0 6 3 isEarlyInsert Z
0 6 4 session Lorg/hibernate/engine/spi/SessionImplementor;
MethodParameters:
Name Flags
self
isDelete
isEarlyInsert
session
public void nullifyTransientReferences(java.lang.Object[], org.hibernate.type.Type[]);
descriptor: ([Ljava/lang/Object;[Lorg/hibernate/type/Type;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: goto 4
2: StackMap locals: int
StackMap stack:
aload 1
iload 3
aload 0
aload 1
iload 3
aaload
aload 2
iload 3
aaload
invokevirtual org.hibernate.engine.internal.ForeignKeys$Nullifier.nullifyTransientReferences:(Ljava/lang/Object;Lorg/hibernate/type/Type;)Ljava/lang/Object;
aastore
3: iinc 3 1
StackMap locals:
StackMap stack:
4: iload 3
aload 2
arraylength
if_icmplt 2
end local 3 5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/hibernate/engine/internal/ForeignKeys$Nullifier;
0 6 1 values [Ljava/lang/Object;
0 6 2 types [Lorg/hibernate/type/Type;
1 5 3 i I
MethodParameters:
Name Flags
values final
types final
private java.lang.Object nullifyTransientReferences(java.lang.Object, org.hibernate.type.Type);
descriptor: (Ljava/lang/Object;Lorg/hibernate/type/Type;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.hibernate.type.Type.isEntityType:()Z
ifeq 10
3: aload 2
checkcast org.hibernate.type.EntityType
astore 3
start local 3 4: aload 3
invokevirtual org.hibernate.type.EntityType.isOneToOne:()Z
ifeq 6
5: aload 1
areturn
6: StackMap locals: org.hibernate.type.EntityType
StackMap stack:
aload 3
invokevirtual org.hibernate.type.EntityType.getAssociatedEntityName:()Ljava/lang/String;
astore 4
start local 4 7: aload 0
aload 4
aload 1
invokevirtual org.hibernate.engine.internal.ForeignKeys$Nullifier.isNullifiable:(Ljava/lang/String;Ljava/lang/Object;)Z
ifeq 8
aconst_null
goto 9
StackMap locals: java.lang.String
StackMap stack:
8: aload 1
StackMap locals:
StackMap stack: java.lang.Object
9: areturn
end local 4 end local 3 10: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.hibernate.type.Type.isAnyType:()Z
ifeq 14
11: aload 0
aconst_null
aload 1
invokevirtual org.hibernate.engine.internal.ForeignKeys$Nullifier.isNullifiable:(Ljava/lang/String;Ljava/lang/Object;)Z
ifeq 12
aconst_null
goto 13
StackMap locals:
StackMap stack:
12: aload 1
StackMap locals:
StackMap stack: java.lang.Object
13: areturn
14: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.hibernate.type.Type.isComponentType:()Z
ifeq 30
15: aload 2
checkcast org.hibernate.type.CompositeType
astore 3
start local 3 16: aload 3
aload 1
aload 0
getfield org.hibernate.engine.internal.ForeignKeys$Nullifier.session:Lorg/hibernate/engine/spi/SessionImplementor;
invokeinterface org.hibernate.type.CompositeType.getPropertyValues:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)[Ljava/lang/Object;
astore 4
start local 4 17: aload 3
invokeinterface org.hibernate.type.CompositeType.getSubtypes:()[Lorg/hibernate/type/Type;
astore 5
start local 5 18: iconst_0
istore 6
start local 6 19: iconst_0
istore 7
start local 7 20: goto 26
21: StackMap locals: org.hibernate.engine.internal.ForeignKeys$Nullifier java.lang.Object org.hibernate.type.Type org.hibernate.type.CompositeType java.lang.Object[] org.hibernate.type.Type[] int int
StackMap stack:
aload 0
aload 4
iload 7
aaload
aload 5
iload 7
aaload
invokevirtual org.hibernate.engine.internal.ForeignKeys$Nullifier.nullifyTransientReferences:(Ljava/lang/Object;Lorg/hibernate/type/Type;)Ljava/lang/Object;
astore 8
start local 8 22: aload 8
aload 4
iload 7
aaload
if_acmpeq 25
23: iconst_1
istore 6
24: aload 4
iload 7
aload 8
aastore
end local 8 25: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
26: iload 7
aload 4
arraylength
if_icmplt 21
end local 7 27: iload 6
ifeq 29
28: aload 3
aload 1
aload 4
getstatic org.hibernate.EntityMode.POJO:Lorg/hibernate/EntityMode;
invokeinterface org.hibernate.type.CompositeType.setPropertyValues:(Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/EntityMode;)V
29: StackMap locals:
StackMap stack:
aload 1
areturn
end local 6 end local 5 end local 4 end local 3 30: StackMap locals: org.hibernate.engine.internal.ForeignKeys$Nullifier java.lang.Object org.hibernate.type.Type
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lorg/hibernate/engine/internal/ForeignKeys$Nullifier;
0 31 1 value Ljava/lang/Object;
0 31 2 type Lorg/hibernate/type/Type;
4 10 3 entityType Lorg/hibernate/type/EntityType;
7 10 4 entityName Ljava/lang/String;
16 30 3 actype Lorg/hibernate/type/CompositeType;
17 30 4 subvalues [Ljava/lang/Object;
18 30 5 subtypes [Lorg/hibernate/type/Type;
19 30 6 substitute Z
20 27 7 i I
22 25 8 replacement Ljava/lang/Object;
MethodParameters:
Name Flags
value final
type final
private boolean isNullifiable(java.lang.String, java.lang.Object);
descriptor: (Ljava/lang/String;Ljava/lang/Object;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
getstatic org.hibernate.bytecode.instrumentation.spi.LazyPropertyInitializer.UNFETCHED_PROPERTY:Ljava/io/Serializable;
if_acmpne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 2
instanceof org.hibernate.proxy.HibernateProxy
ifeq 7
3: aload 2
checkcast org.hibernate.proxy.HibernateProxy
invokeinterface org.hibernate.proxy.HibernateProxy.getHibernateLazyInitializer:()Lorg/hibernate/proxy/LazyInitializer;
astore 3
start local 3 4: aload 3
aload 0
getfield org.hibernate.engine.internal.ForeignKeys$Nullifier.session:Lorg/hibernate/engine/spi/SessionImplementor;
invokeinterface org.hibernate.proxy.LazyInitializer.getImplementation:(Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/lang/Object;
ifnonnull 6
5: iconst_0
ireturn
6: StackMap locals: org.hibernate.proxy.LazyInitializer
StackMap stack:
aload 3
invokeinterface org.hibernate.proxy.LazyInitializer.getImplementation:()Ljava/lang/Object;
astore 2
end local 3 7: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.hibernate.engine.internal.ForeignKeys$Nullifier.self:Ljava/lang/Object;
if_acmpne 12
8: aload 0
getfield org.hibernate.engine.internal.ForeignKeys$Nullifier.isEarlyInsert:Z
ifne 11
9: aload 0
getfield org.hibernate.engine.internal.ForeignKeys$Nullifier.isDelete:Z
ifeq 10
aload 0
getfield org.hibernate.engine.internal.ForeignKeys$Nullifier.session:Lorg/hibernate/engine/spi/SessionImplementor;
invokeinterface org.hibernate.engine.spi.SessionImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
invokevirtual org.hibernate.dialect.Dialect.hasSelfReferentialForeignKeyBug:()Z
ifne 11
10: StackMap locals:
StackMap stack:
iconst_0
ireturn
StackMap locals:
StackMap stack:
11: iconst_1
ireturn
12: StackMap locals:
StackMap stack:
aload 0
getfield org.hibernate.engine.internal.ForeignKeys$Nullifier.session:Lorg/hibernate/engine/spi/SessionImplementor;
invokeinterface org.hibernate.engine.spi.SessionImplementor.getPersistenceContext:()Lorg/hibernate/engine/spi/PersistenceContext;
aload 2
invokeinterface org.hibernate.engine.spi.PersistenceContext.getEntry:(Ljava/lang/Object;)Lorg/hibernate/engine/spi/EntityEntry;
astore 3
start local 3 13: aload 3
ifnonnull 15
14: aload 1
aload 2
aconst_null
aload 0
getfield org.hibernate.engine.internal.ForeignKeys$Nullifier.session:Lorg/hibernate/engine/spi/SessionImplementor;
invokestatic org.hibernate.engine.internal.ForeignKeys.isTransient:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Boolean;Lorg/hibernate/engine/spi/SessionImplementor;)Z
ireturn
15: StackMap locals: org.hibernate.engine.spi.EntityEntry
StackMap stack:
aload 3
aload 0
getfield org.hibernate.engine.internal.ForeignKeys$Nullifier.isEarlyInsert:Z
aload 0
getfield org.hibernate.engine.internal.ForeignKeys$Nullifier.session:Lorg/hibernate/engine/spi/SessionImplementor;
invokevirtual org.hibernate.engine.spi.EntityEntry.isNullifiable:(ZLorg/hibernate/engine/spi/SessionImplementor;)Z
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/hibernate/engine/internal/ForeignKeys$Nullifier;
0 16 1 entityName Ljava/lang/String;
0 16 2 object Ljava/lang/Object;
4 7 3 li Lorg/hibernate/proxy/LazyInitializer;
13 16 3 entityEntry Lorg/hibernate/engine/spi/EntityEntry;
Exceptions:
throws org.hibernate.HibernateException
MethodParameters:
Name Flags
entityName final
object
}
SourceFile: "ForeignKeys.java"
NestHost: org.hibernate.engine.internal.ForeignKeys
InnerClasses:
public Nullifier = org.hibernate.engine.internal.ForeignKeys$Nullifier of org.hibernate.engine.internal.ForeignKeys