public abstract class org.hibernate.context.spi.AbstractCurrentSessionContext implements org.hibernate.context.spi.CurrentSessionContext
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.hibernate.context.spi.AbstractCurrentSessionContext
super_class: java.lang.Object
{
private final org.hibernate.engine.spi.SessionFactoryImplementor factory;
descriptor: Lorg/hibernate/engine/spi/SessionFactoryImplementor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected void <init>(org.hibernate.engine.spi.SessionFactoryImplementor);
descriptor: (Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.hibernate.context.spi.AbstractCurrentSessionContext.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/hibernate/context/spi/AbstractCurrentSessionContext;
0 3 1 factory Lorg/hibernate/engine/spi/SessionFactoryImplementor;
MethodParameters:
Name Flags
factory
public org.hibernate.engine.spi.SessionFactoryImplementor factory();
descriptor: ()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.hibernate.context.spi.AbstractCurrentSessionContext.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hibernate/context/spi/AbstractCurrentSessionContext;
protected org.hibernate.SessionBuilder baseSessionBuilder();
descriptor: ()Lorg/hibernate/SessionBuilder;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield org.hibernate.context.spi.AbstractCurrentSessionContext.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.withOptions:()Lorg/hibernate/engine/spi/SessionBuilderImplementor;
astore 1
start local 1 1: aload 0
getfield org.hibernate.context.spi.AbstractCurrentSessionContext.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getCurrentTenantIdentifierResolver:()Lorg/hibernate/context/spi/CurrentTenantIdentifierResolver;
astore 2
start local 2 2: aload 2
ifnull 4
3: aload 1
aload 2
invokeinterface org.hibernate.context.spi.CurrentTenantIdentifierResolver.resolveCurrentTenantIdentifier:()Ljava/lang/String;
invokeinterface org.hibernate.SessionBuilder.tenantIdentifier:(Ljava/lang/String;)Lorg/hibernate/SessionBuilder;
pop
4: StackMap locals: org.hibernate.SessionBuilder org.hibernate.context.spi.CurrentTenantIdentifierResolver
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/hibernate/context/spi/AbstractCurrentSessionContext;
1 5 1 builder Lorg/hibernate/SessionBuilder;
2 5 2 resolver Lorg/hibernate/context/spi/CurrentTenantIdentifierResolver;
protected void validateExistingSession(org.hibernate.Session);
descriptor: (Lorg/hibernate/Session;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.hibernate.context.spi.AbstractCurrentSessionContext.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getCurrentTenantIdentifierResolver:()Lorg/hibernate/context/spi/CurrentTenantIdentifierResolver;
astore 2
start local 2 1: aload 2
ifnull 10
aload 2
invokeinterface org.hibernate.context.spi.CurrentTenantIdentifierResolver.validateExistingCurrentSessions:()Z
ifeq 10
2: aload 2
invokeinterface org.hibernate.context.spi.CurrentTenantIdentifierResolver.resolveCurrentTenantIdentifier:()Ljava/lang/String;
astore 3
start local 3 3: aload 1
invokeinterface org.hibernate.Session.getTenantIdentifier:()Ljava/lang/String;
aload 3
invokestatic org.hibernate.internal.util.compare.EqualsHelper.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 10
4: new org.hibernate.context.TenantIdentifierMismatchException
dup
5: ldc "Reported current tenant identifier [%s] did not match tenant identifier from existing session [%s]"
iconst_2
anewarray java.lang.Object
dup
iconst_0
6: aload 3
aastore
dup
iconst_1
7: aload 1
invokeinterface org.hibernate.Session.getTenantIdentifier:()Ljava/lang/String;
aastore
8: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
9: invokespecial org.hibernate.context.TenantIdentifierMismatchException.<init>:(Ljava/lang/String;)V
athrow
end local 3 10: StackMap locals: org.hibernate.context.spi.CurrentTenantIdentifierResolver
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/hibernate/context/spi/AbstractCurrentSessionContext;
0 11 1 existingSession Lorg/hibernate/Session;
1 11 2 resolver Lorg/hibernate/context/spi/CurrentTenantIdentifierResolver;
3 10 3 current Ljava/lang/String;
MethodParameters:
Name Flags
existingSession
}
SourceFile: "AbstractCurrentSessionContext.java"