public class org.springframework.orm.hibernate5.HibernateTransactionManager extends org.springframework.transaction.support.AbstractPlatformTransactionManager implements org.springframework.transaction.support.ResourceTransactionManager, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.InitializingBean
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.orm.hibernate5.HibernateTransactionManager
super_class: org.springframework.transaction.support.AbstractPlatformTransactionManager
{
private org.hibernate.SessionFactory sessionFactory;
descriptor: Lorg/hibernate/SessionFactory;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private javax.sql.DataSource dataSource;
descriptor: Ljavax/sql/DataSource;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private boolean autodetectDataSource;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean prepareConnection;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean allowResultAccessAfterCompletion;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean hibernateManagedSession;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.lang.Object entityInterceptor;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private org.springframework.beans.factory.BeanFactory beanFactory;
descriptor: Lorg/springframework/beans/factory/BeanFactory;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.springframework.transaction.support.AbstractPlatformTransactionManager.<init>:()V
1: aload 0
iconst_1
putfield org.springframework.orm.hibernate5.HibernateTransactionManager.autodetectDataSource:Z
2: aload 0
iconst_1
putfield org.springframework.orm.hibernate5.HibernateTransactionManager.prepareConnection:Z
3: aload 0
iconst_0
putfield org.springframework.orm.hibernate5.HibernateTransactionManager.allowResultAccessAfterCompletion:Z
4: aload 0
iconst_0
putfield org.springframework.orm.hibernate5.HibernateTransactionManager.hibernateManagedSession:Z
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
public void <init>(org.hibernate.SessionFactory);
descriptor: (Lorg/hibernate/SessionFactory;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial org.springframework.transaction.support.AbstractPlatformTransactionManager.<init>:()V
1: aload 0
iconst_1
putfield org.springframework.orm.hibernate5.HibernateTransactionManager.autodetectDataSource:Z
2: aload 0
iconst_1
putfield org.springframework.orm.hibernate5.HibernateTransactionManager.prepareConnection:Z
3: aload 0
iconst_0
putfield org.springframework.orm.hibernate5.HibernateTransactionManager.allowResultAccessAfterCompletion:Z
4: aload 0
iconst_0
putfield org.springframework.orm.hibernate5.HibernateTransactionManager.hibernateManagedSession:Z
5: aload 0
aload 1
putfield org.springframework.orm.hibernate5.HibernateTransactionManager.sessionFactory:Lorg/hibernate/SessionFactory;
6: aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.afterPropertiesSet:()V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
0 8 1 sessionFactory Lorg/hibernate/SessionFactory;
MethodParameters:
Name Flags
sessionFactory
public void setSessionFactory(org.hibernate.SessionFactory);
descriptor: (Lorg/hibernate/SessionFactory;)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.springframework.orm.hibernate5.HibernateTransactionManager.sessionFactory:Lorg/hibernate/SessionFactory;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
0 2 1 sessionFactory Lorg/hibernate/SessionFactory;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
sessionFactory
public org.hibernate.SessionFactory getSessionFactory();
descriptor: ()Lorg/hibernate/SessionFactory;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.sessionFactory:Lorg/hibernate/SessionFactory;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
protected final org.hibernate.SessionFactory obtainSessionFactory();
descriptor: ()Lorg/hibernate/SessionFactory;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.getSessionFactory:()Lorg/hibernate/SessionFactory;
astore 1
start local 1 1: aload 1
ifnull 2
iconst_1
goto 3
StackMap locals: org.hibernate.SessionFactory
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: ldc "No SessionFactory set"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
4: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
1 5 1 sessionFactory Lorg/hibernate/SessionFactory;
public void setDataSource(javax.sql.DataSource);
descriptor: (Ljavax/sql/DataSource;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy
ifeq 3
1: aload 0
aload 1
checkcast org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy
invokevirtual org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy.getTargetDataSource:()Ljavax/sql/DataSource;
putfield org.springframework.orm.hibernate5.HibernateTransactionManager.dataSource:Ljavax/sql/DataSource;
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield org.springframework.orm.hibernate5.HibernateTransactionManager.dataSource:Ljavax/sql/DataSource;
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/HibernateTransactionManager;
0 5 1 dataSource Ljavax/sql/DataSource;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
dataSource
public javax.sql.DataSource getDataSource();
descriptor: ()Ljavax/sql/DataSource;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.dataSource:Ljavax/sql/DataSource;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void setAutodetectDataSource(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.springframework.orm.hibernate5.HibernateTransactionManager.autodetectDataSource:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
0 2 1 autodetectDataSource Z
MethodParameters:
Name Flags
autodetectDataSource
public void setPrepareConnection(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.springframework.orm.hibernate5.HibernateTransactionManager.prepareConnection:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
0 2 1 prepareConnection Z
MethodParameters:
Name Flags
prepareConnection
public void setAllowResultAccessAfterCompletion(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.springframework.orm.hibernate5.HibernateTransactionManager.allowResultAccessAfterCompletion:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
0 2 1 allowResultAccessAfterCompletion Z
MethodParameters:
Name Flags
allowResultAccessAfterCompletion
public void setHibernateManagedSession(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.springframework.orm.hibernate5.HibernateTransactionManager.hibernateManagedSession:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
0 2 1 hibernateManagedSession Z
MethodParameters:
Name Flags
hibernateManagedSession
public void setEntityInterceptorBeanName(java.lang.String);
descriptor: (Ljava/lang/String;)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.springframework.orm.hibernate5.HibernateTransactionManager.entityInterceptor:Ljava/lang/Object;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
0 2 1 entityInterceptorBeanName Ljava/lang/String;
MethodParameters:
Name Flags
entityInterceptorBeanName
public void setEntityInterceptor(org.hibernate.Interceptor);
descriptor: (Lorg/hibernate/Interceptor;)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.springframework.orm.hibernate5.HibernateTransactionManager.entityInterceptor:Ljava/lang/Object;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
0 2 1 entityInterceptor Lorg/hibernate/Interceptor;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
entityInterceptor
public org.hibernate.Interceptor getEntityInterceptor();
descriptor: ()Lorg/hibernate/Interceptor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.entityInterceptor:Ljava/lang/Object;
instanceof org.hibernate.Interceptor
ifeq 2
1: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.entityInterceptor:Ljava/lang/Object;
checkcast org.hibernate.Interceptor
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.entityInterceptor:Ljava/lang/Object;
instanceof java.lang.String
ifeq 7
3: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.beanFactory:Lorg/springframework/beans/factory/BeanFactory;
ifnonnull 5
4: new java.lang.IllegalStateException
dup
ldc "Cannot get entity interceptor via bean name if no bean factory set"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.entityInterceptor:Ljava/lang/Object;
checkcast java.lang.String
astore 1
start local 1 6: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.beanFactory:Lorg/springframework/beans/factory/BeanFactory;
aload 1
ldc Lorg/hibernate/Interceptor;
invokeinterface org.springframework.beans.factory.BeanFactory.getBean:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
checkcast org.hibernate.Interceptor
areturn
end local 1 7: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
6 7 1 beanName Ljava/lang/String;
Exceptions:
throws java.lang.IllegalStateException, org.springframework.beans.BeansException
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void setBeanFactory(org.springframework.beans.factory.BeanFactory);
descriptor: (Lorg/springframework/beans/factory/BeanFactory;)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.springframework.orm.hibernate5.HibernateTransactionManager.beanFactory:Lorg/springframework/beans/factory/BeanFactory;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
0 2 1 beanFactory Lorg/springframework/beans/factory/BeanFactory;
MethodParameters:
Name Flags
beanFactory
public void afterPropertiesSet();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.getSessionFactory:()Lorg/hibernate/SessionFactory;
ifnonnull 2
1: new java.lang.IllegalArgumentException
dup
ldc "Property 'sessionFactory' is required"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.entityInterceptor:Ljava/lang/Object;
instanceof java.lang.String
ifeq 4
aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.beanFactory:Lorg/springframework/beans/factory/BeanFactory;
ifnonnull 4
3: new java.lang.IllegalArgumentException
dup
ldc "Property 'beanFactory' is required for 'entityInterceptorBeanName'"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.autodetectDataSource:Z
ifeq 12
aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.getDataSource:()Ljavax/sql/DataSource;
ifnonnull 12
5: aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.getSessionFactory:()Lorg/hibernate/SessionFactory;
invokestatic org.springframework.orm.hibernate5.SessionFactoryUtils.getDataSource:(Lorg/hibernate/SessionFactory;)Ljavax/sql/DataSource;
astore 1
start local 1 6: aload 1
ifnull 12
7: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 11
8: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Using DataSource ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
9: ldc "] of Hibernate SessionFactory for HibernateTransactionManager"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
11: StackMap locals: javax.sql.DataSource
StackMap stack:
aload 0
aload 1
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.setDataSource:(Ljavax/sql/DataSource;)V
end local 1 12: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
6 12 1 sfds Ljavax/sql/DataSource;
public java.lang.Object getResourceFactory();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.obtainSessionFactory:()Lorg/hibernate/SessionFactory;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
protected java.lang.Object doGetTransaction();
descriptor: ()Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=1
start local 0 0: new org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject
dup
aload 0
invokespecial org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.<init>:(Lorg/springframework/orm/hibernate5/HibernateTransactionManager;)V
astore 1
start local 1 1: aload 1
aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.isNestedTransactionAllowed:()Z
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.setSavepointAllowed:(Z)V
2: aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.obtainSessionFactory:()Lorg/hibernate/SessionFactory;
astore 2
start local 2 3: aload 2
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.getResource:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.springframework.orm.hibernate5.SessionHolder
4: astore 3
start local 3 5: aload 3
ifnull 10
6: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 8
7: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Found thread-bound Session ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual org.springframework.orm.hibernate5.SessionHolder.getSession:()Lorg/hibernate/Session;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] for Hibernate transaction"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
8: StackMap locals: org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject org.hibernate.SessionFactory org.springframework.orm.hibernate5.SessionHolder
StackMap stack:
aload 1
aload 3
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.setSessionHolder:(Lorg/springframework/orm/hibernate5/SessionHolder;)V
9: goto 20
10: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.hibernateManagedSession:Z
ifeq 20
11: aload 2
invokeinterface org.hibernate.SessionFactory.getCurrentSession:()Lorg/hibernate/Session;
astore 4
start local 4 12: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 14
13: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Found Hibernate-managed Session ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] for Spring-managed transaction"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
14: StackMap locals: org.hibernate.Session
StackMap stack:
aload 1
aload 4
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.setExistingSession:(Lorg/hibernate/Session;)V
end local 4 15: goto 20
16: StackMap locals: org.springframework.orm.hibernate5.HibernateTransactionManager org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject org.hibernate.SessionFactory org.springframework.orm.hibernate5.SessionHolder
StackMap stack: org.hibernate.HibernateException
astore 4
start local 4 17: new org.springframework.dao.DataAccessResourceFailureException
dup
18: ldc "Could not obtain Hibernate-managed Session for Spring-managed transaction"
aload 4
19: invokespecial org.springframework.dao.DataAccessResourceFailureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 20: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.getDataSource:()Ljavax/sql/DataSource;
ifnull 24
21: aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.getDataSource:()Ljavax/sql/DataSource;
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.getResource:(Ljava/lang/Object;)Ljava/lang/Object;
22: checkcast org.springframework.jdbc.datasource.ConnectionHolder
astore 4
start local 4 23: aload 1
aload 4
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.setConnectionHolder:(Lorg/springframework/jdbc/datasource/ConnectionHolder;)V
end local 4 24: StackMap locals:
StackMap stack:
aload 1
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
1 25 1 txObject Lorg/springframework/orm/hibernate5/HibernateTransactionManager$HibernateTransactionObject;
3 25 2 sessionFactory Lorg/hibernate/SessionFactory;
5 25 3 sessionHolder Lorg/springframework/orm/hibernate5/SessionHolder;
12 15 4 session Lorg/hibernate/Session;
17 20 4 ex Lorg/hibernate/HibernateException;
23 24 4 conHolder Lorg/springframework/jdbc/datasource/ConnectionHolder;
Exception table:
from to target type
11 15 16 Class org.hibernate.HibernateException
protected boolean isExistingTransaction(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=3, args_size=2
start local 0 start local 1 0: aload 1
checkcast org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject
astore 2
start local 2 1: aload 2
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.hasSpringManagedTransaction:()Z
ifne 4
2: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.hibernateManagedSession:Z
ifeq 3
aload 2
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.hasHibernateManagedTransaction:()Z
ifne 4
3: StackMap locals: org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject
StackMap stack:
iconst_0
ireturn
StackMap locals:
StackMap stack:
4: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
0 5 1 transaction Ljava/lang/Object;
1 5 2 txObject Lorg/springframework/orm/hibernate5/HibernateTransactionManager$HibernateTransactionObject;
MethodParameters:
Name Flags
transaction
protected void doBegin(java.lang.Object, org.springframework.transaction.TransactionDefinition);
descriptor: (Ljava/lang/Object;Lorg/springframework/transaction/TransactionDefinition;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject
astore 3
start local 3 1: aload 3
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.hasConnectionHolder:()Z
ifeq 5
aload 3
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.getConnectionHolder:()Lorg/springframework/jdbc/datasource/ConnectionHolder;
invokevirtual org.springframework.jdbc.datasource.ConnectionHolder.isSynchronizedWithTransaction:()Z
ifne 5
2: new org.springframework.transaction.IllegalTransactionStateException
dup
3: ldc "Pre-bound JDBC Connection found! HibernateTransactionManager does not support running within DataSourceTransactionManager if told to manage the DataSource itself. It is recommended to use a single HibernateTransactionManager for all transactions on a single DataSource, no matter whether Hibernate or JDBC access."
4: invokespecial org.springframework.transaction.IllegalTransactionStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject
StackMap stack:
aconst_null
astore 4
start local 4 6: aload 3
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.hasSessionHolder:()Z
ifeq 7
aload 3
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.getSessionHolder:()Lorg/springframework/orm/hibernate5/SessionHolder;
invokevirtual org.springframework.orm.hibernate5.SessionHolder.isSynchronizedWithTransaction:()Z
ifeq 15
7: StackMap locals: org.hibernate.Session
StackMap stack:
aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.getEntityInterceptor:()Lorg/hibernate/Interceptor;
astore 5
start local 5 8: aload 5
ifnull 10
9: aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.obtainSessionFactory:()Lorg/hibernate/SessionFactory;
invokeinterface org.hibernate.SessionFactory.withOptions:()Lorg/hibernate/SessionBuilder;
aload 5
invokeinterface org.hibernate.SessionBuilder.interceptor:(Lorg/hibernate/Interceptor;)Lorg/hibernate/SessionBuilder;
invokeinterface org.hibernate.SessionBuilder.openSession:()Lorg/hibernate/Session;
goto 11
10: StackMap locals: org.hibernate.Interceptor
StackMap stack:
aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.obtainSessionFactory:()Lorg/hibernate/SessionFactory;
invokeinterface org.hibernate.SessionFactory.openSession:()Lorg/hibernate/Session;
11: StackMap locals:
StackMap stack: org.hibernate.Session
astore 6
start local 6 12: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 14
13: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Opened new Session ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] for Hibernate transaction"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
14: StackMap locals: org.hibernate.Session
StackMap stack:
aload 3
aload 6
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.setSession:(Lorg/hibernate/Session;)V
end local 6 end local 5 15: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.getSessionHolder:()Lorg/springframework/orm/hibernate5/SessionHolder;
invokevirtual org.springframework.orm.hibernate5.SessionHolder.getSession:()Lorg/hibernate/Session;
astore 4
16: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.allowResultAccessAfterCompletion:Z
ifeq 17
aload 3
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.isNewSession:()Z
ifne 17
iconst_1
goto 18
StackMap locals:
StackMap stack:
17: iconst_0
StackMap locals:
StackMap stack: int
18: istore 5
start local 5 19: aload 2
invokeinterface org.springframework.transaction.TransactionDefinition.getIsolationLevel:()I
iconst_m1
if_icmpeq 20
iconst_1
goto 21
StackMap locals: int
StackMap stack:
20: iconst_0
StackMap locals:
StackMap stack: int
21: istore 6
start local 6 22: iload 5
ifne 23
iload 6
ifne 23
aload 2
invokeinterface org.springframework.transaction.TransactionDefinition.isReadOnly:()Z
ifeq 41
23: StackMap locals: int
StackMap stack:
aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.prepareConnection:Z
ifeq 35
aload 0
aload 4
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.isSameConnectionForEntireSession:(Lorg/hibernate/Session;)Z
ifeq 35
24: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 26
25: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Preparing JDBC Connection of Hibernate Session ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
26: StackMap locals:
StackMap stack:
aload 4
checkcast org.hibernate.engine.spi.SessionImplementor
invokeinterface org.hibernate.engine.spi.SessionImplementor.connection:()Ljava/sql/Connection;
astore 7
start local 7 27: aload 7
aload 2
invokestatic org.springframework.jdbc.datasource.DataSourceUtils.prepareConnectionForTransaction:(Ljava/sql/Connection;Lorg/springframework/transaction/TransactionDefinition;)Ljava/lang/Integer;
astore 8
start local 8 28: aload 3
aload 8
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.setPreviousIsolationLevel:(Ljava/lang/Integer;)V
29: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.allowResultAccessAfterCompletion:Z
ifeq 41
aload 3
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.isNewSession:()Z
ifne 41
30: aload 7
invokeinterface java.sql.Connection.getHoldability:()I
istore 9
start local 9 31: iload 9
iconst_1
if_icmpeq 41
32: aload 3
iload 9
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.setPreviousHoldability:(Ljava/lang/Integer;)V
33: aload 7
iconst_1
invokeinterface java.sql.Connection.setHoldability:(I)V
end local 9 end local 8 end local 7 34: goto 41
35: StackMap locals:
StackMap stack:
iload 6
ifeq 39
36: new org.springframework.transaction.InvalidIsolationLevelException
dup
37: ldc "HibernateTransactionManager is not allowed to support custom isolation levels: make sure that its 'prepareConnection' flag is on (the default) and that the Hibernate connection release mode is set to 'on_close' (the default for JDBC)."
38: invokespecial org.springframework.transaction.InvalidIsolationLevelException.<init>:(Ljava/lang/String;)V
athrow
39: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 41
40: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Not preparing JDBC Connection of Hibernate Session ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
41: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.springframework.transaction.TransactionDefinition.isReadOnly:()Z
ifeq 44
aload 3
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.isNewSession:()Z
ifeq 44
42: aload 4
getstatic org.hibernate.FlushMode.MANUAL:Lorg/hibernate/FlushMode;
invokeinterface org.hibernate.Session.setFlushMode:(Lorg/hibernate/FlushMode;)V
43: aload 4
iconst_1
invokeinterface org.hibernate.Session.setDefaultReadOnly:(Z)V
44: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.springframework.transaction.TransactionDefinition.isReadOnly:()Z
ifne 49
aload 3
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.isNewSession:()Z
ifne 49
45: aload 4
invokestatic org.springframework.orm.hibernate5.SessionFactoryUtils.getFlushMode:(Lorg/hibernate/Session;)Lorg/hibernate/FlushMode;
astore 7
start local 7 46: getstatic org.hibernate.FlushMode.MANUAL:Lorg/hibernate/FlushMode;
aload 7
invokevirtual org.hibernate.FlushMode.equals:(Ljava/lang/Object;)Z
ifeq 49
47: aload 4
getstatic org.hibernate.FlushMode.AUTO:Lorg/hibernate/FlushMode;
invokeinterface org.hibernate.Session.setFlushMode:(Lorg/hibernate/FlushMode;)V
48: aload 3
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.getSessionHolder:()Lorg/springframework/orm/hibernate5/SessionHolder;
aload 7
invokevirtual org.springframework.orm.hibernate5.SessionHolder.setPreviousFlushMode:(Lorg/hibernate/FlushMode;)V
end local 7 49: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.determineTimeout:(Lorg/springframework/transaction/TransactionDefinition;)I
istore 8
start local 8 50: iload 8
iconst_m1
if_icmpeq 55
51: aload 4
invokeinterface org.hibernate.Session.getTransaction:()Lorg/hibernate/Transaction;
astore 7
start local 7 52: aload 7
iload 8
invokeinterface org.hibernate.Transaction.setTimeout:(I)V
53: aload 7
invokeinterface org.hibernate.Transaction.begin:()V
54: goto 56
end local 7 55: StackMap locals: org.springframework.orm.hibernate5.HibernateTransactionManager java.lang.Object org.springframework.transaction.TransactionDefinition org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject org.hibernate.Session int int top int
StackMap stack:
aload 4
invokeinterface org.hibernate.Session.beginTransaction:()Lorg/hibernate/Transaction;
astore 7
start local 7 56: StackMap locals: org.springframework.orm.hibernate5.HibernateTransactionManager java.lang.Object org.springframework.transaction.TransactionDefinition org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject org.hibernate.Session int int org.hibernate.Transaction int
StackMap stack:
aload 3
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.getSessionHolder:()Lorg/springframework/orm/hibernate5/SessionHolder;
aload 7
invokevirtual org.springframework.orm.hibernate5.SessionHolder.setTransaction:(Lorg/hibernate/Transaction;)V
57: aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.getDataSource:()Ljavax/sql/DataSource;
ifnull 66
58: aload 4
checkcast org.hibernate.engine.spi.SessionImplementor
astore 9
start local 9 59: new org.springframework.jdbc.datasource.ConnectionHolder
dup
aload 9
invokedynamic getConnection(Lorg/hibernate/engine/spi/SessionImplementor;)Lorg/springframework/jdbc/datasource/ConnectionHandle;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/sql/Connection;
org/springframework/orm/hibernate5/HibernateTransactionManager.lambda$0(Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/sql/Connection; (6)
()Ljava/sql/Connection;
invokespecial org.springframework.jdbc.datasource.ConnectionHolder.<init>:(Lorg/springframework/jdbc/datasource/ConnectionHandle;)V
astore 10
start local 10 60: iload 8
iconst_m1
if_icmpeq 62
61: aload 10
iload 8
invokevirtual org.springframework.jdbc.datasource.ConnectionHolder.setTimeoutInSeconds:(I)V
62: StackMap locals: org.hibernate.engine.spi.SessionImplementor org.springframework.jdbc.datasource.ConnectionHolder
StackMap stack:
aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 64
63: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Exposing Hibernate transaction as JDBC ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
invokevirtual org.springframework.jdbc.datasource.ConnectionHolder.getConnectionHandle:()Lorg/springframework/jdbc/datasource/ConnectionHandle;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
64: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.getDataSource:()Ljavax/sql/DataSource;
aload 10
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.bindResource:(Ljava/lang/Object;Ljava/lang/Object;)V
65: aload 3
aload 10
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.setConnectionHolder:(Lorg/springframework/jdbc/datasource/ConnectionHolder;)V
end local 10 end local 9 66: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.isNewSessionHolder:()Z
ifeq 68
67: aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.obtainSessionFactory:()Lorg/hibernate/SessionFactory;
aload 3
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.getSessionHolder:()Lorg/springframework/orm/hibernate5/SessionHolder;
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.bindResource:(Ljava/lang/Object;Ljava/lang/Object;)V
68: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.getSessionHolder:()Lorg/springframework/orm/hibernate5/SessionHolder;
iconst_1
invokevirtual org.springframework.orm.hibernate5.SessionHolder.setSynchronizedWithTransaction:(Z)V
end local 8 end local 7 end local 6 end local 5 69: goto 86
70: StackMap locals: org.springframework.orm.hibernate5.HibernateTransactionManager java.lang.Object org.springframework.transaction.TransactionDefinition org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject org.hibernate.Session
StackMap stack: java.lang.Throwable
astore 5
start local 5 71: aload 3
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.isNewSession:()Z
ifeq 85
72: aload 4
ifnull 83
aload 4
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_acmpne 83
73: aload 4
invokeinterface org.hibernate.Session.getTransaction:()Lorg/hibernate/Transaction;
invokeinterface org.hibernate.Transaction.rollback:()V
74: goto 83
75: StackMap locals: org.springframework.orm.hibernate5.HibernateTransactionManager java.lang.Object org.springframework.transaction.TransactionDefinition org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject org.hibernate.Session java.lang.Throwable
StackMap stack: java.lang.Throwable
pop
76: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
ldc "Could not rollback Session after failed transaction begin"
aload 5
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
77: aload 4
invokestatic org.springframework.orm.hibernate5.SessionFactoryUtils.closeSession:(Lorg/hibernate/Session;)V
78: aload 3
aconst_null
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.setSessionHolder:(Lorg/springframework/orm/hibernate5/SessionHolder;)V
goto 85
79: StackMap locals:
StackMap stack: java.lang.Throwable
astore 6
80: aload 4
invokestatic org.springframework.orm.hibernate5.SessionFactoryUtils.closeSession:(Lorg/hibernate/Session;)V
81: aload 3
aconst_null
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.setSessionHolder:(Lorg/springframework/orm/hibernate5/SessionHolder;)V
82: aload 6
athrow
83: StackMap locals:
StackMap stack:
aload 4
invokestatic org.springframework.orm.hibernate5.SessionFactoryUtils.closeSession:(Lorg/hibernate/Session;)V
84: aload 3
aconst_null
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.setSessionHolder:(Lorg/springframework/orm/hibernate5/SessionHolder;)V
85: StackMap locals:
StackMap stack:
new org.springframework.transaction.CannotCreateTransactionException
dup
ldc "Could not open Hibernate Session for transaction"
aload 5
invokespecial org.springframework.transaction.CannotCreateTransactionException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 5 86: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 87 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
0 87 1 transaction Ljava/lang/Object;
0 87 2 definition Lorg/springframework/transaction/TransactionDefinition;
1 87 3 txObject Lorg/springframework/orm/hibernate5/HibernateTransactionManager$HibernateTransactionObject;
6 87 4 session Lorg/hibernate/Session;
8 15 5 entityInterceptor Lorg/hibernate/Interceptor;
12 15 6 newSession Lorg/hibernate/Session;
19 69 5 holdabilityNeeded Z
22 69 6 isolationLevelNeeded Z
27 34 7 con Ljava/sql/Connection;
28 34 8 previousIsolationLevel Ljava/lang/Integer;
31 34 9 currentHoldability I
46 49 7 flushMode Lorg/hibernate/FlushMode;
52 55 7 hibTx Lorg/hibernate/Transaction;
56 69 7 hibTx Lorg/hibernate/Transaction;
50 69 8 timeout I
59 66 9 sessionImpl Lorg/hibernate/engine/spi/SessionImplementor;
60 66 10 conHolder Lorg/springframework/jdbc/datasource/ConnectionHolder;
71 86 5 ex Ljava/lang/Throwable;
Exception table:
from to target type
6 69 70 Class java.lang.Throwable
72 74 75 Class java.lang.Throwable
72 77 79 any
MethodParameters:
Name Flags
transaction
definition
protected java.lang.Object doSuspend(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
checkcast org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject
astore 2
start local 2 1: aload 2
aconst_null
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.setSessionHolder:(Lorg/springframework/orm/hibernate5/SessionHolder;)V
2: aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.obtainSessionFactory:()Lorg/hibernate/SessionFactory;
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.unbindResource:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.springframework.orm.hibernate5.SessionHolder
3: astore 3
start local 3 4: aload 2
aconst_null
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.setConnectionHolder:(Lorg/springframework/jdbc/datasource/ConnectionHolder;)V
5: aconst_null
astore 4
start local 4 6: aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.getDataSource:()Ljavax/sql/DataSource;
ifnull 8
7: aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.getDataSource:()Ljavax/sql/DataSource;
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.unbindResource:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.springframework.jdbc.datasource.ConnectionHolder
astore 4
8: StackMap locals: org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject org.springframework.orm.hibernate5.SessionHolder org.springframework.jdbc.datasource.ConnectionHolder
StackMap stack:
new org.springframework.orm.hibernate5.HibernateTransactionManager$SuspendedResourcesHolder
dup
aload 3
aload 4
invokespecial org.springframework.orm.hibernate5.HibernateTransactionManager$SuspendedResourcesHolder.<init>:(Lorg/springframework/orm/hibernate5/SessionHolder;Lorg/springframework/jdbc/datasource/ConnectionHolder;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
0 9 1 transaction Ljava/lang/Object;
1 9 2 txObject Lorg/springframework/orm/hibernate5/HibernateTransactionManager$HibernateTransactionObject;
4 9 3 sessionHolder Lorg/springframework/orm/hibernate5/SessionHolder;
6 9 4 connectionHolder Lorg/springframework/jdbc/datasource/ConnectionHolder;
MethodParameters:
Name Flags
transaction
protected void doResume(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.obtainSessionFactory:()Lorg/hibernate/SessionFactory;
astore 3
start local 3 1: aload 2
checkcast org.springframework.orm.hibernate5.HibernateTransactionManager$SuspendedResourcesHolder
astore 4
start local 4 2: aload 3
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.hasResource:(Ljava/lang/Object;)Z
ifeq 4
3: aload 3
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.unbindResource:(Ljava/lang/Object;)Ljava/lang/Object;
pop
4: StackMap locals: org.hibernate.SessionFactory org.springframework.orm.hibernate5.HibernateTransactionManager$SuspendedResourcesHolder
StackMap stack:
aload 3
aload 4
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$SuspendedResourcesHolder.getSessionHolder:()Lorg/springframework/orm/hibernate5/SessionHolder;
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.bindResource:(Ljava/lang/Object;Ljava/lang/Object;)V
5: aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.getDataSource:()Ljavax/sql/DataSource;
ifnull 7
aload 4
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$SuspendedResourcesHolder.getConnectionHolder:()Lorg/springframework/jdbc/datasource/ConnectionHolder;
ifnull 7
6: aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.getDataSource:()Ljavax/sql/DataSource;
aload 4
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$SuspendedResourcesHolder.getConnectionHolder:()Lorg/springframework/jdbc/datasource/ConnectionHolder;
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.bindResource:(Ljava/lang/Object;Ljava/lang/Object;)V
7: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
0 8 1 transaction Ljava/lang/Object;
0 8 2 suspendedResources Ljava/lang/Object;
1 8 3 sessionFactory Lorg/hibernate/SessionFactory;
2 8 4 resourcesHolder Lorg/springframework/orm/hibernate5/HibernateTransactionManager$SuspendedResourcesHolder;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
MethodParameters:
Name Flags
transaction
suspendedResources
protected void doCommit(org.springframework.transaction.support.DefaultTransactionStatus);
descriptor: (Lorg/springframework/transaction/support/DefaultTransactionStatus;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.springframework.transaction.support.DefaultTransactionStatus.getTransaction:()Ljava/lang/Object;
checkcast org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject
astore 2
start local 2 1: aload 2
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.getSessionHolder:()Lorg/springframework/orm/hibernate5/SessionHolder;
invokevirtual org.springframework.orm.hibernate5.SessionHolder.getTransaction:()Lorg/hibernate/Transaction;
astore 3
start local 3 2: aload 3
ifnull 3
iconst_1
goto 4
StackMap locals: org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject org.hibernate.Transaction
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: ldc "No Hibernate transaction"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
5: aload 1
invokevirtual org.springframework.transaction.support.DefaultTransactionStatus.isDebug:()Z
ifeq 9
6: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Committing Hibernate transaction on Session ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
7: aload 2
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.getSessionHolder:()Lorg/springframework/orm/hibernate5/SessionHolder;
invokevirtual org.springframework.orm.hibernate5.SessionHolder.getSession:()Lorg/hibernate/Session;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
9: StackMap locals:
StackMap stack:
aload 3
invokeinterface org.hibernate.Transaction.commit:()V
10: goto 19
11: StackMap locals:
StackMap stack: org.hibernate.TransactionException
astore 4
start local 4 12: new org.springframework.transaction.TransactionSystemException
dup
ldc "Could not commit Hibernate transaction"
aload 4
invokespecial org.springframework.transaction.TransactionSystemException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 13: StackMap locals:
StackMap stack: org.hibernate.HibernateException
astore 4
start local 4 14: aload 0
aload 4
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.convertHibernateAccessException:(Lorg/hibernate/HibernateException;)Lorg/springframework/dao/DataAccessException;
athrow
end local 4 15: StackMap locals:
StackMap stack: javax.persistence.PersistenceException
astore 4
start local 4 16: aload 4
invokevirtual javax.persistence.PersistenceException.getCause:()Ljava/lang/Throwable;
instanceof org.hibernate.HibernateException
ifeq 18
17: aload 0
aload 4
invokevirtual javax.persistence.PersistenceException.getCause:()Ljava/lang/Throwable;
checkcast org.hibernate.HibernateException
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.convertHibernateAccessException:(Lorg/hibernate/HibernateException;)Lorg/springframework/dao/DataAccessException;
athrow
18: StackMap locals: javax.persistence.PersistenceException
StackMap stack:
aload 4
athrow
end local 4 19: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
0 20 1 status Lorg/springframework/transaction/support/DefaultTransactionStatus;
1 20 2 txObject Lorg/springframework/orm/hibernate5/HibernateTransactionManager$HibernateTransactionObject;
2 20 3 hibTx Lorg/hibernate/Transaction;
12 13 4 ex Lorg/hibernate/TransactionException;
14 15 4 ex Lorg/hibernate/HibernateException;
16 19 4 ex Ljavax/persistence/PersistenceException;
Exception table:
from to target type
9 10 11 Class org.hibernate.TransactionException
9 10 13 Class org.hibernate.HibernateException
9 10 15 Class javax.persistence.PersistenceException
MethodParameters:
Name Flags
status
protected void doRollback(org.springframework.transaction.support.DefaultTransactionStatus);
descriptor: (Lorg/springframework/transaction/support/DefaultTransactionStatus;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.springframework.transaction.support.DefaultTransactionStatus.getTransaction:()Ljava/lang/Object;
checkcast org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject
astore 2
start local 2 1: aload 2
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.getSessionHolder:()Lorg/springframework/orm/hibernate5/SessionHolder;
invokevirtual org.springframework.orm.hibernate5.SessionHolder.getTransaction:()Lorg/hibernate/Transaction;
astore 3
start local 3 2: aload 3
ifnull 3
iconst_1
goto 4
StackMap locals: org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject org.hibernate.Transaction
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: ldc "No Hibernate transaction"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
5: aload 1
invokevirtual org.springframework.transaction.support.DefaultTransactionStatus.isDebug:()Z
ifeq 9
6: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Rolling back Hibernate transaction on Session ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
7: aload 2
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.getSessionHolder:()Lorg/springframework/orm/hibernate5/SessionHolder;
invokevirtual org.springframework.orm.hibernate5.SessionHolder.getSession:()Lorg/hibernate/Session;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
9: StackMap locals:
StackMap stack:
aload 3
invokeinterface org.hibernate.Transaction.rollback:()V
10: goto 23
11: StackMap locals:
StackMap stack: org.hibernate.TransactionException
astore 4
start local 4 12: new org.springframework.transaction.TransactionSystemException
dup
ldc "Could not roll back Hibernate transaction"
aload 4
invokespecial org.springframework.transaction.TransactionSystemException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 13: StackMap locals:
StackMap stack: org.hibernate.HibernateException
astore 4
start local 4 14: aload 0
aload 4
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.convertHibernateAccessException:(Lorg/hibernate/HibernateException;)Lorg/springframework/dao/DataAccessException;
athrow
end local 4 15: StackMap locals:
StackMap stack: javax.persistence.PersistenceException
astore 4
start local 4 16: aload 4
invokevirtual javax.persistence.PersistenceException.getCause:()Ljava/lang/Throwable;
instanceof org.hibernate.HibernateException
ifeq 18
17: aload 0
aload 4
invokevirtual javax.persistence.PersistenceException.getCause:()Ljava/lang/Throwable;
checkcast org.hibernate.HibernateException
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.convertHibernateAccessException:(Lorg/hibernate/HibernateException;)Lorg/springframework/dao/DataAccessException;
athrow
18: StackMap locals: javax.persistence.PersistenceException
StackMap stack:
aload 4
athrow
end local 4 19: StackMap locals: org.springframework.orm.hibernate5.HibernateTransactionManager org.springframework.transaction.support.DefaultTransactionStatus org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject org.hibernate.Transaction
StackMap stack: java.lang.Throwable
astore 5
20: aload 2
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.isNewSession:()Z
ifne 22
aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.hibernateManagedSession:Z
ifne 22
21: aload 2
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.getSessionHolder:()Lorg/springframework/orm/hibernate5/SessionHolder;
invokevirtual org.springframework.orm.hibernate5.SessionHolder.getSession:()Lorg/hibernate/Session;
invokeinterface org.hibernate.Session.clear:()V
22: StackMap locals: org.springframework.orm.hibernate5.HibernateTransactionManager org.springframework.transaction.support.DefaultTransactionStatus org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject org.hibernate.Transaction top java.lang.Throwable
StackMap stack:
aload 5
athrow
23: StackMap locals: org.springframework.orm.hibernate5.HibernateTransactionManager org.springframework.transaction.support.DefaultTransactionStatus org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject org.hibernate.Transaction
StackMap stack:
aload 2
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.isNewSession:()Z
ifne 25
aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.hibernateManagedSession:Z
ifne 25
24: aload 2
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.getSessionHolder:()Lorg/springframework/orm/hibernate5/SessionHolder;
invokevirtual org.springframework.orm.hibernate5.SessionHolder.getSession:()Lorg/hibernate/Session;
invokeinterface org.hibernate.Session.clear:()V
25: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
0 26 1 status Lorg/springframework/transaction/support/DefaultTransactionStatus;
1 26 2 txObject Lorg/springframework/orm/hibernate5/HibernateTransactionManager$HibernateTransactionObject;
2 26 3 hibTx Lorg/hibernate/Transaction;
12 13 4 ex Lorg/hibernate/TransactionException;
14 15 4 ex Lorg/hibernate/HibernateException;
16 19 4 ex Ljavax/persistence/PersistenceException;
Exception table:
from to target type
9 10 11 Class org.hibernate.TransactionException
9 10 13 Class org.hibernate.HibernateException
9 10 15 Class javax.persistence.PersistenceException
9 19 19 any
MethodParameters:
Name Flags
status
protected void doSetRollbackOnly(org.springframework.transaction.support.DefaultTransactionStatus);
descriptor: (Lorg/springframework/transaction/support/DefaultTransactionStatus;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.springframework.transaction.support.DefaultTransactionStatus.getTransaction:()Ljava/lang/Object;
checkcast org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject
astore 2
start local 2 1: aload 1
invokevirtual org.springframework.transaction.support.DefaultTransactionStatus.isDebug:()Z
ifeq 5
2: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Setting Hibernate transaction on Session ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
3: aload 2
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.getSessionHolder:()Lorg/springframework/orm/hibernate5/SessionHolder;
invokevirtual org.springframework.orm.hibernate5.SessionHolder.getSession:()Lorg/hibernate/Session;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] rollback-only"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
5: StackMap locals: org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject
StackMap stack:
aload 2
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.setRollbackOnly:()V
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
0 7 1 status Lorg/springframework/transaction/support/DefaultTransactionStatus;
1 7 2 txObject Lorg/springframework/orm/hibernate5/HibernateTransactionManager$HibernateTransactionObject;
MethodParameters:
Name Flags
status
protected void doCleanupAfterCompletion(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 1
checkcast org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject
astore 2
start local 2 1: aload 2
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.isNewSessionHolder:()Z
ifeq 3
2: aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.obtainSessionFactory:()Lorg/hibernate/SessionFactory;
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.unbindResource:(Ljava/lang/Object;)Ljava/lang/Object;
pop
3: StackMap locals: org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject
StackMap stack:
aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.getDataSource:()Ljavax/sql/DataSource;
ifnull 5
4: aload 0
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.getDataSource:()Ljavax/sql/DataSource;
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.unbindResource:(Ljava/lang/Object;)Ljava/lang/Object;
pop
5: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.getSessionHolder:()Lorg/springframework/orm/hibernate5/SessionHolder;
invokevirtual org.springframework.orm.hibernate5.SessionHolder.getSession:()Lorg/hibernate/Session;
astore 3
start local 3 6: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.prepareConnection:Z
ifeq 18
aload 0
aload 3
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.isPhysicallyConnected:(Lorg/hibernate/Session;)Z
ifeq 18
7: aload 3
checkcast org.hibernate.engine.spi.SessionImplementor
invokeinterface org.hibernate.engine.spi.SessionImplementor.connection:()Ljava/sql/Connection;
astore 4
start local 4 8: aload 2
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.getPreviousHoldability:()Ljava/lang/Integer;
astore 5
start local 5 9: aload 5
ifnull 11
10: aload 4
aload 5
invokevirtual java.lang.Integer.intValue:()I
invokeinterface java.sql.Connection.setHoldability:(I)V
11: StackMap locals: org.hibernate.Session java.sql.Connection java.lang.Integer
StackMap stack:
aload 4
aload 2
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.getPreviousIsolationLevel:()Ljava/lang/Integer;
invokestatic org.springframework.jdbc.datasource.DataSourceUtils.resetConnectionAfterTransaction:(Ljava/sql/Connection;Ljava/lang/Integer;)V
end local 5 end local 4 12: goto 18
13: StackMap locals: org.springframework.orm.hibernate5.HibernateTransactionManager java.lang.Object org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject org.hibernate.Session
StackMap stack: org.hibernate.HibernateException
astore 4
start local 4 14: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
ldc "Could not access JDBC Connection of Hibernate Session"
aload 4
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 4 15: goto 18
16: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
start local 4 17: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
ldc "Could not reset JDBC Connection after transaction"
aload 4
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 4 18: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.isNewSession:()Z
ifeq 23
19: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 21
20: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Closing Hibernate Session ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] after transaction"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
21: StackMap locals:
StackMap stack:
aload 3
invokestatic org.springframework.orm.hibernate5.SessionFactoryUtils.closeSession:(Lorg/hibernate/Session;)V
22: goto 29
23: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 25
24: aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Not closing pre-bound Hibernate Session ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] after transaction"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
25: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.getSessionHolder:()Lorg/springframework/orm/hibernate5/SessionHolder;
invokevirtual org.springframework.orm.hibernate5.SessionHolder.getPreviousFlushMode:()Lorg/hibernate/FlushMode;
ifnull 27
26: aload 3
aload 2
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.getSessionHolder:()Lorg/springframework/orm/hibernate5/SessionHolder;
invokevirtual org.springframework.orm.hibernate5.SessionHolder.getPreviousFlushMode:()Lorg/hibernate/FlushMode;
invokeinterface org.hibernate.Session.setFlushMode:(Lorg/hibernate/FlushMode;)V
27: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.allowResultAccessAfterCompletion:Z
ifne 29
aload 0
getfield org.springframework.orm.hibernate5.HibernateTransactionManager.hibernateManagedSession:Z
ifne 29
28: aload 0
aload 3
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager.disconnectOnCompletion:(Lorg/hibernate/Session;)V
29: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject.getSessionHolder:()Lorg/springframework/orm/hibernate5/SessionHolder;
invokevirtual org.springframework.orm.hibernate5.SessionHolder.clear:()V
30: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
0 31 1 transaction Ljava/lang/Object;
1 31 2 txObject Lorg/springframework/orm/hibernate5/HibernateTransactionManager$HibernateTransactionObject;
6 31 3 session Lorg/hibernate/Session;
8 12 4 con Ljava/sql/Connection;
9 12 5 previousHoldability Ljava/lang/Integer;
14 15 4 ex Lorg/hibernate/HibernateException;
17 18 4 ex Ljava/lang/Throwable;
Exception table:
from to target type
7 12 13 Class org.hibernate.HibernateException
7 12 16 Class java.lang.Throwable
MethodParameters:
Name Flags
transaction
protected void disconnectOnCompletion(org.hibernate.Session);
descriptor: (Lorg/hibernate/Session;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface org.hibernate.Session.disconnect:()Ljava/sql/Connection;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
0 2 1 session Lorg/hibernate/Session;
MethodParameters:
Name Flags
session
protected boolean isSameConnectionForEntireSession(org.hibernate.Session);
descriptor: (Lorg/hibernate/Session;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof org.hibernate.engine.spi.SessionImplementor
ifne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
checkcast org.hibernate.engine.spi.SessionImplementor
invokeinterface org.hibernate.engine.spi.SessionImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getConnectionReleaseMode:()Lorg/hibernate/ConnectionReleaseMode;
3: astore 2
start local 2 4: getstatic org.hibernate.ConnectionReleaseMode.ON_CLOSE:Lorg/hibernate/ConnectionReleaseMode;
aload 2
invokevirtual org.hibernate.ConnectionReleaseMode.equals:(Ljava/lang/Object;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
0 5 1 session Lorg/hibernate/Session;
4 5 2 releaseMode Lorg/hibernate/ConnectionReleaseMode;
MethodParameters:
Name Flags
session
protected boolean isPhysicallyConnected(org.hibernate.Session);
descriptor: (Lorg/hibernate/Session;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof org.hibernate.engine.spi.SessionImplementor
ifne 2
1: aload 1
invokeinterface org.hibernate.Session.isConnected:()Z
ireturn
2: StackMap locals:
StackMap stack:
aload 1
checkcast org.hibernate.engine.spi.SessionImplementor
invokeinterface org.hibernate.engine.spi.SessionImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.isPhysicallyConnected:()Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
0 3 1 session Lorg/hibernate/Session;
MethodParameters:
Name Flags
session
protected org.springframework.dao.DataAccessException convertHibernateAccessException(org.hibernate.HibernateException);
descriptor: (Lorg/hibernate/HibernateException;)Lorg/springframework/dao/DataAccessException;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic org.springframework.orm.hibernate5.SessionFactoryUtils.convertHibernateAccessException:(Lorg/hibernate/HibernateException;)Lorg/springframework/dao/DataAccessException;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/orm/hibernate5/HibernateTransactionManager;
0 1 1 ex Lorg/hibernate/HibernateException;
MethodParameters:
Name Flags
ex
private static java.sql.Connection lambda$0(org.hibernate.engine.spi.SessionImplementor);
descriptor: (Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/sql/Connection;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokeinterface org.hibernate.engine.spi.SessionImplementor.connection:()Ljava/sql/Connection;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "HibernateTransactionManager.java"
NestMembers:
org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject org.springframework.orm.hibernate5.HibernateTransactionManager$SuspendedResourcesHolder
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
private HibernateTransactionObject = org.springframework.orm.hibernate5.HibernateTransactionManager$HibernateTransactionObject of org.springframework.orm.hibernate5.HibernateTransactionManager
private final SuspendedResourcesHolder = org.springframework.orm.hibernate5.HibernateTransactionManager$SuspendedResourcesHolder of org.springframework.orm.hibernate5.HibernateTransactionManager