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=6, 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 "equals"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 6
aload 2
invokevirtual java.lang.reflect.Method.getParameterCount:()I
iconst_1
if_icmpne 6
2: aload 3
iconst_0
aaload
ifnull 4
3: aload 3
iconst_0
aaload
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic java.lang.reflect.Proxy.isProxyClass:(Ljava/lang/Class;)Z
ifne 5
4: StackMap locals: java.lang.String
StackMap stack:
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
5: StackMap locals:
StackMap stack:
aload 0
aload 3
iconst_0
aaload
invokestatic java.lang.reflect.Proxy.getInvocationHandler:(Ljava/lang/Object;)Ljava/lang/reflect/InvocationHandler;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
6: StackMap locals:
StackMap stack:
ldc "hashCode"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 8
aload 2
invokevirtual java.lang.reflect.Method.getParameterCount:()I
ifne 8
7: aload 0
invokevirtual java.lang.Object.hashCode:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
areturn
8: StackMap locals:
StackMap stack:
ldc "toString"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 10
aload 2
invokevirtual java.lang.reflect.Method.getParameterCount:()I
ifne 10
9: getstatic java.util.Locale.ROOT:Ljava/util/Locale;
ldc "ThreadLocalSessionContext.TransactionProtectionWrapper[%s]"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.realSession:Lorg/hibernate/Session;
aastore
invokestatic java.lang.String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
10: StackMap locals:
StackMap stack:
ldc "close"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 13
11: 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
12: goto 35
13: StackMap locals:
StackMap stack:
ldc "getStatistics"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 16
14: ldc "isOpen"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 16
15: ldc "getListeners"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 18
16: 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
17: goto 35
18: StackMap locals:
StackMap stack:
aload 0
getfield org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.realSession:Lorg/hibernate/Session;
invokeinterface org.hibernate.Session.isOpen:()Z
ifne 21
19: 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
20: goto 35
21: 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.getStatus:()Lorg/hibernate/resource/transaction/spi/TransactionStatus;
getstatic org.hibernate.resource.transaction.spi.TransactionStatus.ACTIVE:Lorg/hibernate/resource/transaction/spi/TransactionStatus;
if_acmpeq 35
22: ldc "beginTransaction"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 29
23: ldc "getTransaction"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 29
24: ldc "isTransactionInProgress"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 29
25: ldc "setFlushMode"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 29
26: ldc "getFactory"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 29
27: ldc "getSessionFactory"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 29
28: ldc "getTenantIdentifier"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 31
29: 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
30: goto 35
31: StackMap locals:
StackMap stack:
ldc "reconnect"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 32
ldc "disconnect"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 34
32: 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
33: goto 35
34: 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
35: 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
36: 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;
37: areturn
38: StackMap locals:
StackMap stack: java.lang.reflect.InvocationTargetException
astore 5
start local 5 39: aload 5
invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
instanceof java.lang.RuntimeException
ifeq 41
40: aload 5
invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
checkcast java.lang.RuntimeException
athrow
41: 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 42 0 this Lorg/hibernate/context/internal/ThreadLocalSessionContext$TransactionProtectionWrapper;
0 42 1 proxy Ljava/lang/Object;
0 42 2 method Ljava/lang/reflect/Method;
0 42 3 args [Ljava/lang/Object;
1 42 4 methodName Ljava/lang/String;
39 42 5 e Ljava/lang/reflect/InvocationTargetException;
Exception table:
from to target type
10 37 38 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