public class org.springframework.orm.hibernate5.SpringSessionSynchronization implements org.springframework.transaction.support.TransactionSynchronization, org.springframework.core.Ordered
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.orm.hibernate5.SpringSessionSynchronization
super_class: java.lang.Object
{
private final org.springframework.orm.hibernate5.SessionHolder sessionHolder;
descriptor: Lorg/springframework/orm/hibernate5/SessionHolder;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.hibernate.SessionFactory sessionFactory;
descriptor: Lorg/hibernate/SessionFactory;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean newSession;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean holderActive;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
public void <init>(org.springframework.orm.hibernate5.SessionHolder, org.hibernate.SessionFactory);
descriptor: (Lorg/springframework/orm/hibernate5/SessionHolder;Lorg/hibernate/SessionFactory;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
iconst_0
invokespecial org.springframework.orm.hibernate5.SpringSessionSynchronization.<init>:(Lorg/springframework/orm/hibernate5/SessionHolder;Lorg/hibernate/SessionFactory;Z)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/orm/hibernate5/SpringSessionSynchronization;
0 2 1 sessionHolder Lorg/springframework/orm/hibernate5/SessionHolder;
0 2 2 sessionFactory Lorg/hibernate/SessionFactory;
MethodParameters:
Name Flags
sessionHolder
sessionFactory
public void <init>(org.springframework.orm.hibernate5.SessionHolder, org.hibernate.SessionFactory, boolean);
descriptor: (Lorg/springframework/orm/hibernate5/SessionHolder;Lorg/hibernate/SessionFactory;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_1
putfield org.springframework.orm.hibernate5.SpringSessionSynchronization.holderActive:Z
2: aload 0
aload 1
putfield org.springframework.orm.hibernate5.SpringSessionSynchronization.sessionHolder:Lorg/springframework/orm/hibernate5/SessionHolder;
3: aload 0
aload 2
putfield org.springframework.orm.hibernate5.SpringSessionSynchronization.sessionFactory:Lorg/hibernate/SessionFactory;
4: aload 0
iload 3
putfield org.springframework.orm.hibernate5.SpringSessionSynchronization.newSession:Z
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/orm/hibernate5/SpringSessionSynchronization;
0 6 1 sessionHolder Lorg/springframework/orm/hibernate5/SessionHolder;
0 6 2 sessionFactory Lorg/hibernate/SessionFactory;
0 6 3 newSession Z
MethodParameters:
Name Flags
sessionHolder
sessionFactory
newSession
private org.hibernate.Session getCurrentSession();
descriptor: ()Lorg/hibernate/Session;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.orm.hibernate5.SpringSessionSynchronization.sessionHolder:Lorg/springframework/orm/hibernate5/SessionHolder;
invokevirtual org.springframework.orm.hibernate5.SessionHolder.getSession:()Lorg/hibernate/Session;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/orm/hibernate5/SpringSessionSynchronization;
public int getOrder();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: sipush 900
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/orm/hibernate5/SpringSessionSynchronization;
public void suspend();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.orm.hibernate5.SpringSessionSynchronization.holderActive:Z
ifeq 3
1: aload 0
getfield org.springframework.orm.hibernate5.SpringSessionSynchronization.sessionFactory:Lorg/hibernate/SessionFactory;
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.unbindResource:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 0
invokevirtual org.springframework.orm.hibernate5.SpringSessionSynchronization.getCurrentSession:()Lorg/hibernate/Session;
invokeinterface org.hibernate.Session.disconnect:()Ljava/sql/Connection;
pop
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/orm/hibernate5/SpringSessionSynchronization;
public void resume();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.orm.hibernate5.SpringSessionSynchronization.holderActive:Z
ifeq 2
1: aload 0
getfield org.springframework.orm.hibernate5.SpringSessionSynchronization.sessionFactory:Lorg/hibernate/SessionFactory;
aload 0
getfield org.springframework.orm.hibernate5.SpringSessionSynchronization.sessionHolder:Lorg/springframework/orm/hibernate5/SessionHolder;
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.bindResource:(Ljava/lang/Object;Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/orm/hibernate5/SpringSessionSynchronization;
public void flush();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.orm.hibernate5.SpringSessionSynchronization.getCurrentSession:()Lorg/hibernate/Session;
iconst_0
invokestatic org.springframework.orm.hibernate5.SessionFactoryUtils.flush:(Lorg/hibernate/Session;Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/orm/hibernate5/SpringSessionSynchronization;
public void beforeCommit(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: iload 1
ifne 4
1: aload 0
invokevirtual org.springframework.orm.hibernate5.SpringSessionSynchronization.getCurrentSession:()Lorg/hibernate/Session;
astore 2
start local 2 2: getstatic org.hibernate.FlushMode.MANUAL:Lorg/hibernate/FlushMode;
aload 2
invokestatic org.springframework.orm.hibernate5.SessionFactoryUtils.getFlushMode:(Lorg/hibernate/Session;)Lorg/hibernate/FlushMode;
invokevirtual org.hibernate.FlushMode.equals:(Ljava/lang/Object;)Z
ifne 4
3: aload 0
invokevirtual org.springframework.orm.hibernate5.SpringSessionSynchronization.getCurrentSession:()Lorg/hibernate/Session;
iconst_1
invokestatic org.springframework.orm.hibernate5.SessionFactoryUtils.flush:(Lorg/hibernate/Session;Z)V
end local 2 4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/orm/hibernate5/SpringSessionSynchronization;
0 5 1 readOnly Z
2 4 2 session Lorg/hibernate/Session;
Exceptions:
throws org.springframework.dao.DataAccessException
MethodParameters:
Name Flags
readOnly
public void beforeCompletion();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield org.springframework.orm.hibernate5.SpringSessionSynchronization.sessionHolder:Lorg/springframework/orm/hibernate5/SessionHolder;
invokevirtual org.springframework.orm.hibernate5.SessionHolder.getSession:()Lorg/hibernate/Session;
astore 1
start local 1 1: aload 0
getfield org.springframework.orm.hibernate5.SpringSessionSynchronization.sessionHolder:Lorg/springframework/orm/hibernate5/SessionHolder;
invokevirtual org.springframework.orm.hibernate5.SessionHolder.getPreviousFlushMode:()Lorg/hibernate/FlushMode;
ifnull 3
2: aload 1
aload 0
getfield org.springframework.orm.hibernate5.SpringSessionSynchronization.sessionHolder:Lorg/springframework/orm/hibernate5/SessionHolder;
invokevirtual org.springframework.orm.hibernate5.SessionHolder.getPreviousFlushMode:()Lorg/hibernate/FlushMode;
invokeinterface org.hibernate.Session.setFlushMode:(Lorg/hibernate/FlushMode;)V
3: StackMap locals: org.hibernate.Session
StackMap stack:
aload 1
invokeinterface org.hibernate.Session.disconnect:()Ljava/sql/Connection;
pop
end local 1 4: goto 10
5: StackMap locals: org.springframework.orm.hibernate5.SpringSessionSynchronization
StackMap stack: java.lang.Throwable
astore 2
6: aload 0
getfield org.springframework.orm.hibernate5.SpringSessionSynchronization.newSession:Z
ifeq 9
7: aload 0
getfield org.springframework.orm.hibernate5.SpringSessionSynchronization.sessionFactory:Lorg/hibernate/SessionFactory;
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.unbindResource:(Ljava/lang/Object;)Ljava/lang/Object;
pop
8: aload 0
iconst_0
putfield org.springframework.orm.hibernate5.SpringSessionSynchronization.holderActive:Z
9: StackMap locals: org.springframework.orm.hibernate5.SpringSessionSynchronization top java.lang.Throwable
StackMap stack:
aload 2
athrow
10: StackMap locals: org.springframework.orm.hibernate5.SpringSessionSynchronization
StackMap stack:
aload 0
getfield org.springframework.orm.hibernate5.SpringSessionSynchronization.newSession:Z
ifeq 13
11: aload 0
getfield org.springframework.orm.hibernate5.SpringSessionSynchronization.sessionFactory:Lorg/hibernate/SessionFactory;
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.unbindResource:(Ljava/lang/Object;)Ljava/lang/Object;
pop
12: aload 0
iconst_0
putfield org.springframework.orm.hibernate5.SpringSessionSynchronization.holderActive:Z
13: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/springframework/orm/hibernate5/SpringSessionSynchronization;
1 4 1 session Lorg/hibernate/Session;
Exception table:
from to target type
0 5 5 any
public void afterCommit();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/orm/hibernate5/SpringSessionSynchronization;
public void afterCompletion(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: iload 1
ifeq 8
1: aload 0
getfield org.springframework.orm.hibernate5.SpringSessionSynchronization.sessionHolder:Lorg/springframework/orm/hibernate5/SessionHolder;
invokevirtual org.springframework.orm.hibernate5.SessionHolder.getSession:()Lorg/hibernate/Session;
invokeinterface org.hibernate.Session.clear:()V
2: goto 8
3: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
4: aload 0
getfield org.springframework.orm.hibernate5.SpringSessionSynchronization.sessionHolder:Lorg/springframework/orm/hibernate5/SessionHolder;
iconst_0
invokevirtual org.springframework.orm.hibernate5.SessionHolder.setSynchronizedWithTransaction:(Z)V
5: aload 0
getfield org.springframework.orm.hibernate5.SpringSessionSynchronization.newSession:Z
ifeq 7
6: aload 0
getfield org.springframework.orm.hibernate5.SpringSessionSynchronization.sessionHolder:Lorg/springframework/orm/hibernate5/SessionHolder;
invokevirtual org.springframework.orm.hibernate5.SessionHolder.getSession:()Lorg/hibernate/Session;
invokestatic org.springframework.orm.hibernate5.SessionFactoryUtils.closeSession:(Lorg/hibernate/Session;)V
7: StackMap locals: java.lang.Throwable
StackMap stack:
aload 2
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.orm.hibernate5.SpringSessionSynchronization.sessionHolder:Lorg/springframework/orm/hibernate5/SessionHolder;
iconst_0
invokevirtual org.springframework.orm.hibernate5.SessionHolder.setSynchronizedWithTransaction:(Z)V
9: aload 0
getfield org.springframework.orm.hibernate5.SpringSessionSynchronization.newSession:Z
ifeq 11
10: aload 0
getfield org.springframework.orm.hibernate5.SpringSessionSynchronization.sessionHolder:Lorg/springframework/orm/hibernate5/SessionHolder;
invokevirtual org.springframework.orm.hibernate5.SessionHolder.getSession:()Lorg/hibernate/Session;
invokestatic org.springframework.orm.hibernate5.SessionFactoryUtils.closeSession:(Lorg/hibernate/Session;)V
11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/springframework/orm/hibernate5/SpringSessionSynchronization;
0 12 1 status I
Exception table:
from to target type
0 3 3 any
MethodParameters:
Name Flags
status
}
SourceFile: "SpringSessionSynchronization.java"