public class org.hibernate.context.internal.ManagedSessionContext extends org.hibernate.context.spi.AbstractCurrentSessionContext
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.hibernate.context.internal.ManagedSessionContext
super_class: org.hibernate.context.spi.AbstractCurrentSessionContext
{
private static final java.lang.ThreadLocal<java.util.Map<org.hibernate.SessionFactory, org.hibernate.Session>> CONTEXT_TL;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/lang/ThreadLocal<Ljava/util/Map<Lorg/hibernate/SessionFactory;Lorg/hibernate/Session;>;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new java.lang.ThreadLocal
dup
invokespecial java.lang.ThreadLocal.<init>:()V
putstatic org.hibernate.context.internal.ManagedSessionContext.CONTEXT_TL:Ljava/lang/ThreadLocal;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.hibernate.engine.spi.SessionFactoryImplementor);
descriptor: (Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.hibernate.context.spi.AbstractCurrentSessionContext.<init>:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/hibernate/context/internal/ManagedSessionContext;
0 2 1 factory Lorg/hibernate/engine/spi/SessionFactoryImplementor;
MethodParameters:
Name Flags
factory
public org.hibernate.Session currentSession();
descriptor: ()Lorg/hibernate/Session;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.hibernate.context.internal.ManagedSessionContext.factory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
invokestatic org.hibernate.context.internal.ManagedSessionContext.existingSession:(Lorg/hibernate/SessionFactory;)Lorg/hibernate/Session;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: new org.hibernate.HibernateException
dup
ldc "No session currently bound to execution context"
invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: org.hibernate.Session
StackMap stack:
aload 0
aload 1
invokevirtual org.hibernate.context.internal.ManagedSessionContext.validateExistingSession:(Lorg/hibernate/Session;)V
4: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/hibernate/context/internal/ManagedSessionContext;
1 5 1 current Lorg/hibernate/Session;
public static boolean hasBind(org.hibernate.SessionFactory);
descriptor: (Lorg/hibernate/SessionFactory;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic org.hibernate.context.internal.ManagedSessionContext.existingSession:(Lorg/hibernate/SessionFactory;)Lorg/hibernate/Session;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 factory Lorg/hibernate/SessionFactory;
MethodParameters:
Name Flags
factory
public static org.hibernate.Session bind(org.hibernate.Session);
descriptor: (Lorg/hibernate/Session;)Lorg/hibernate/Session;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: iconst_1
invokestatic org.hibernate.context.internal.ManagedSessionContext.sessionMap:(Z)Ljava/util/Map;
aload 0
invokeinterface org.hibernate.Session.getSessionFactory:()Lorg/hibernate/SessionFactory;
aload 0
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.hibernate.Session
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 session Lorg/hibernate/Session;
MethodParameters:
Name Flags
session
public static org.hibernate.Session unbind(org.hibernate.SessionFactory);
descriptor: (Lorg/hibernate/SessionFactory;)Lorg/hibernate/Session;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: invokestatic org.hibernate.context.internal.ManagedSessionContext.sessionMap:()Ljava/util/Map;
astore 1
start local 1 1: aconst_null
astore 2
start local 2 2: aload 1
ifnull 5
3: aload 1
aload 0
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.hibernate.Session
astore 2
4: invokestatic org.hibernate.context.internal.ManagedSessionContext.doCleanup:()V
5: StackMap locals: java.util.Map org.hibernate.Session
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 factory Lorg/hibernate/SessionFactory;
1 6 1 sessionMap Ljava/util/Map<Lorg/hibernate/SessionFactory;Lorg/hibernate/Session;>;
2 6 2 existing Lorg/hibernate/Session;
MethodParameters:
Name Flags
factory
private static org.hibernate.Session existingSession(org.hibernate.SessionFactory);
descriptor: (Lorg/hibernate/SessionFactory;)Lorg/hibernate/Session;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic org.hibernate.context.internal.ManagedSessionContext.sessionMap:()Ljava/util/Map;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: java.util.Map
StackMap stack:
aload 1
aload 0
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.hibernate.Session
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 factory Lorg/hibernate/SessionFactory;
1 4 1 sessionMap Ljava/util/Map;
MethodParameters:
Name Flags
factory
protected static java.util.Map<org.hibernate.SessionFactory, org.hibernate.Session> sessionMap();
descriptor: ()Ljava/util/Map;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: iconst_0
invokestatic org.hibernate.context.internal.ManagedSessionContext.sessionMap:(Z)Ljava/util/Map;
areturn
LocalVariableTable:
Start End Slot Name Signature
Signature: ()Ljava/util/Map<Lorg/hibernate/SessionFactory;Lorg/hibernate/Session;>;
private static synchronized java.util.Map<org.hibernate.SessionFactory, org.hibernate.Session> sessionMap(boolean);
descriptor: (Z)Ljava/util/Map;
flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic org.hibernate.context.internal.ManagedSessionContext.CONTEXT_TL:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast java.util.Map
astore 1
start local 1 1: aload 1
ifnonnull 4
iload 0
ifeq 4
2: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 1
3: getstatic org.hibernate.context.internal.ManagedSessionContext.CONTEXT_TL:Ljava/lang/ThreadLocal;
aload 1
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
4: StackMap locals: java.util.Map
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 createMap Z
1 5 1 sessionMap Ljava/util/Map<Lorg/hibernate/SessionFactory;Lorg/hibernate/Session;>;
Signature: (Z)Ljava/util/Map<Lorg/hibernate/SessionFactory;Lorg/hibernate/Session;>;
MethodParameters:
Name Flags
createMap
private static synchronized void doCleanup();
descriptor: ()V
flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=0
0: iconst_0
invokestatic org.hibernate.context.internal.ManagedSessionContext.sessionMap:(Z)Ljava/util/Map;
astore 0
start local 0 1: aload 0
ifnull 4
2: aload 0
invokeinterface java.util.Map.isEmpty:()Z
ifeq 4
3: getstatic org.hibernate.context.internal.ManagedSessionContext.CONTEXT_TL:Ljava/lang/ThreadLocal;
aconst_null
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
4: StackMap locals: java.util.Map
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 5 0 sessionMap Ljava/util/Map<Lorg/hibernate/SessionFactory;Lorg/hibernate/Session;>;
}
SourceFile: "ManagedSessionContext.java"