class org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper implements java.lang.reflect.InvocationHandler, java.io.Serializable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper
super_class: java.lang.Object
{
private final org.hibernate.Session realSession;
descriptor: Lorg/hibernate/Session;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private org.hibernate.Session wrappedSession;
descriptor: Lorg/hibernate/Session;
flags: (0x0002) ACC_PRIVATE
final org.hibernate.context.internal.ThreadLocalSessionContext this$0;
descriptor: Lorg/hibernate/context/internal/ThreadLocalSessionContext;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
public void <init>(org.hibernate.context.internal.ThreadLocalSessionContext, org.hibernate.Session);
descriptor: (Lorg/hibernate/context/internal/ThreadLocalSessionContext;Lorg/hibernate/Session;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.this$0:Lorg/hibernate/context/internal/ThreadLocalSessionContext;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 2
putfield org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.realSession:Lorg/hibernate/Session;
2: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/hibernate/context/internal/ThreadLocalSessionContext$TransactionProtectionWrapper;
0 3 2 realSession Lorg/hibernate/Session;
MethodParameters:
Name Flags
this$0 final
realSession
public java.lang.Object invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]);
descriptor: (Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
astore 4
start local 4 1: ldc "close"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
2: aload 0
getfield org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.realSession:Lorg/hibernate/Session;
invokeinterface org.hibernate.Session.getSessionFactory:()Lorg/hibernate/SessionFactory;
invokestatic org.hibernate.context.internal.ThreadLocalSessionContext.unbind:(Lorg/hibernate/SessionFactory;)Lorg/hibernate/Session;
pop
3: goto 29
4: StackMap locals: java.lang.String
StackMap stack:
ldc "toString"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
5: ldc "equals"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
6: ldc "hashCode"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
7: ldc "getStatistics"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
8: ldc "isOpen"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
9: ldc "getListeners"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 12
10: StackMap locals:
StackMap stack:
getstatic org.hibernate.context.internal.ThreadLocalSessionContext.LOG:Lorg/hibernate/internal/CoreMessageLogger;
ldc "Allowing invocation [%s] to proceed to real session"
aload 4
invokeinterface org.hibernate.internal.CoreMessageLogger.tracef:(Ljava/lang/String;Ljava/lang/Object;)V
11: goto 29
12: StackMap locals:
StackMap stack:
aload 0
getfield org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.realSession:Lorg/hibernate/Session;
invokeinterface org.hibernate.Session.isOpen:()Z
ifne 15
13: getstatic org.hibernate.context.internal.ThreadLocalSessionContext.LOG:Lorg/hibernate/internal/CoreMessageLogger;
ldc "Allowing invocation [%s] to proceed to real (closed) session"
aload 4
invokeinterface org.hibernate.internal.CoreMessageLogger.tracef:(Ljava/lang/String;Ljava/lang/Object;)V
14: goto 29
15: StackMap locals:
StackMap stack:
aload 0
getfield org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.realSession:Lorg/hibernate/Session;
invokeinterface org.hibernate.Session.getTransaction:()Lorg/hibernate/Transaction;
invokeinterface org.hibernate.Transaction.isActive:()Z
ifne 29
16: ldc "beginTransaction"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 23
17: ldc "getTransaction"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 23
18: ldc "isTransactionInProgress"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 23
19: ldc "setFlushMode"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 23
20: ldc "getFactory"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 23
21: ldc "getSessionFactory"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 23
22: ldc "getTenantIdentifier"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 25
23: StackMap locals:
StackMap stack:
getstatic org.hibernate.context.internal.ThreadLocalSessionContext.LOG:Lorg/hibernate/internal/CoreMessageLogger;
ldc "Allowing invocation [%s] to proceed to real (non-transacted) session"
aload 4
invokeinterface org.hibernate.internal.CoreMessageLogger.tracef:(Ljava/lang/String;Ljava/lang/Object;)V
24: goto 29
25: StackMap locals:
StackMap stack:
ldc "reconnect"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 26
ldc "disconnect"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 28
26: StackMap locals:
StackMap stack:
getstatic org.hibernate.context.internal.ThreadLocalSessionContext.LOG:Lorg/hibernate/internal/CoreMessageLogger;
ldc "Allowing invocation [%s] to proceed to real (non-transacted) session - deprecated methods"
aload 4
invokeinterface org.hibernate.internal.CoreMessageLogger.tracef:(Ljava/lang/String;Ljava/lang/Object;)V
27: goto 29
28: StackMap locals:
StackMap stack:
new org.hibernate.HibernateException
dup
new java.lang.StringBuilder
dup
aload 4
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " is not valid without active transaction"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
athrow
29: StackMap locals:
StackMap stack:
getstatic org.hibernate.context.internal.ThreadLocalSessionContext.LOG:Lorg/hibernate/internal/CoreMessageLogger;
ldc "Allowing proxy invocation [%s] to proceed to real session"
aload 4
invokeinterface org.hibernate.internal.CoreMessageLogger.tracef:(Ljava/lang/String;Ljava/lang/Object;)V
30: aload 2
aload 0
getfield org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.realSession:Lorg/hibernate/Session;
aload 3
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
31: areturn
32: StackMap locals:
StackMap stack: java.lang.reflect.InvocationTargetException
astore 5
start local 5 33: aload 5
invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
instanceof java.lang.RuntimeException
ifeq 35
34: aload 5
invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
checkcast java.lang.RuntimeException
athrow
35: StackMap locals: java.lang.reflect.InvocationTargetException
StackMap stack:
aload 5
athrow
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 36 0 this Lorg/hibernate/context/internal/ThreadLocalSessionContext$TransactionProtectionWrapper;
0 36 1 proxy Ljava/lang/Object;
0 36 2 method Ljava/lang/reflect/Method;
0 36 3 args [Ljava/lang/Object;
1 36 4 methodName Ljava/lang/String;
33 36 5 e Ljava/lang/reflect/InvocationTargetException;
Exception table:
from to target type
1 31 32 Class java.lang.reflect.InvocationTargetException
Exceptions:
throws java.lang.Throwable
MethodParameters:
Name Flags
proxy
method
args
public void setWrapped(org.hibernate.Session);
descriptor: (Lorg/hibernate/Session;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.wrappedSession:Lorg/hibernate/Session;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/hibernate/context/internal/ThreadLocalSessionContext$TransactionProtectionWrapper;
0 2 1 wrapped Lorg/hibernate/Session;
MethodParameters:
Name Flags
wrapped
private void writeObject(java.io.ObjectOutputStream);
descriptor: (Ljava/io/ObjectOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.ObjectOutputStream.defaultWriteObject:()V
1: aload 0
getfield org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.this$0:Lorg/hibernate/context/internal/ThreadLocalSessionContext;
invokevirtual org.hibernate.context.internal.ThreadLocalSessionContext.factory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
invokestatic org.hibernate.context.internal.ThreadLocalSessionContext.existingSession:(Lorg/hibernate/SessionFactory;)Lorg/hibernate/Session;
aload 0
getfield org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.wrappedSession:Lorg/hibernate/Session;
if_acmpne 3
2: aload 0
getfield org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.this$0:Lorg/hibernate/context/internal/ThreadLocalSessionContext;
invokevirtual org.hibernate.context.internal.ThreadLocalSessionContext.factory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
invokestatic org.hibernate.context.internal.ThreadLocalSessionContext.unbind:(Lorg/hibernate/SessionFactory;)Lorg/hibernate/Session;
pop
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/hibernate/context/internal/ThreadLocalSessionContext$TransactionProtectionWrapper;
0 4 1 oos Ljava/io/ObjectOutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
oos
private void readObject(java.io.ObjectInputStream);
descriptor: (Ljava/io/ObjectInputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
1: aload 0
getfield org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.realSession:Lorg/hibernate/Session;
invokeinterface org.hibernate.Session.getTransaction:()Lorg/hibernate/Transaction;
aload 0
getfield org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.this$0:Lorg/hibernate/context/internal/ThreadLocalSessionContext;
invokevirtual org.hibernate.context.internal.ThreadLocalSessionContext.buildCleanupSynch:()Lorg/hibernate/context/internal/ThreadLocalSessionContext$CleanupSync;
invokeinterface org.hibernate.Transaction.registerSynchronization:(Ljavax/transaction/Synchronization;)V
2: aload 0
getfield org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.wrappedSession:Lorg/hibernate/Session;
aload 0
getfield org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.this$0:Lorg/hibernate/context/internal/ThreadLocalSessionContext;
invokevirtual org.hibernate.context.internal.ThreadLocalSessionContext.factory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
invokestatic org.hibernate.context.internal.ThreadLocalSessionContext.doBind:(Lorg/hibernate/Session;Lorg/hibernate/SessionFactory;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/hibernate/context/internal/ThreadLocalSessionContext$TransactionProtectionWrapper;
0 4 1 ois Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.IOException, java.lang.ClassNotFoundException
MethodParameters:
Name Flags
ois
}
SourceFile: "ThreadLocalSessionContext.java"
NestHost: org.hibernate.context.internal.ThreadLocalSessionContext
InnerClasses:
protected CleanupSync = org.hibernate.context.internal.ThreadLocalSessionContext$CleanupSync of org.hibernate.context.internal.ThreadLocalSessionContext
private TransactionProtectionWrapper = org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper of org.hibernate.context.internal.ThreadLocalSessionContext