public class org.springframework.orm.jpa.JpaTransactionManager 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.jpa.JpaTransactionManager
super_class: org.springframework.transaction.support.AbstractPlatformTransactionManager
{
private javax.persistence.EntityManagerFactory entityManagerFactory;
descriptor: Ljavax/persistence/EntityManagerFactory;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private java.lang.String persistenceUnitName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private final java.util.Map<java.lang.String, java.lang.Object> jpaPropertyMap;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
private javax.sql.DataSource dataSource;
descriptor: Ljavax/sql/DataSource;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private org.springframework.orm.jpa.JpaDialect jpaDialect;
descriptor: Lorg/springframework/orm/jpa/JpaDialect;
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.springframework.transaction.support.AbstractPlatformTransactionManager.<init>:()V
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.springframework.orm.jpa.JpaTransactionManager.jpaPropertyMap:Ljava/util/Map;
2: aload 0
new org.springframework.orm.jpa.DefaultJpaDialect
dup
invokespecial org.springframework.orm.jpa.DefaultJpaDialect.<init>:()V
putfield org.springframework.orm.jpa.JpaTransactionManager.jpaDialect:Lorg/springframework/orm/jpa/JpaDialect;
3: aload 0
iconst_1
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.setNestedTransactionAllowed:(Z)V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
public void <init>(javax.persistence.EntityManagerFactory);
descriptor: (Ljavax/persistence/EntityManagerFactory;)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.orm.jpa.JpaTransactionManager.<init>:()V
1: aload 0
aload 1
putfield org.springframework.orm.jpa.JpaTransactionManager.entityManagerFactory:Ljavax/persistence/EntityManagerFactory;
2: aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.afterPropertiesSet:()V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
0 4 1 emf Ljavax/persistence/EntityManagerFactory;
MethodParameters:
Name Flags
emf
public void setEntityManagerFactory(javax.persistence.EntityManagerFactory);
descriptor: (Ljavax/persistence/EntityManagerFactory;)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.jpa.JpaTransactionManager.entityManagerFactory:Ljavax/persistence/EntityManagerFactory;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
0 2 1 emf Ljavax/persistence/EntityManagerFactory;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
emf
public javax.persistence.EntityManagerFactory getEntityManagerFactory();
descriptor: ()Ljavax/persistence/EntityManagerFactory;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.orm.jpa.JpaTransactionManager.entityManagerFactory:Ljavax/persistence/EntityManagerFactory;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
protected final javax.persistence.EntityManagerFactory obtainEntityManagerFactory();
descriptor: ()Ljavax/persistence/EntityManagerFactory;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getEntityManagerFactory:()Ljavax/persistence/EntityManagerFactory;
astore 1
start local 1 1: aload 1
ifnull 2
iconst_1
goto 3
StackMap locals: javax.persistence.EntityManagerFactory
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: ldc "No EntityManagerFactory 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/jpa/JpaTransactionManager;
1 5 1 emf Ljavax/persistence/EntityManagerFactory;
public void setPersistenceUnitName(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.jpa.JpaTransactionManager.persistenceUnitName:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
0 2 1 persistenceUnitName Ljava/lang/String;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
persistenceUnitName
public java.lang.String getPersistenceUnitName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.orm.jpa.JpaTransactionManager.persistenceUnitName:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void setJpaProperties(java.util.Properties);
descriptor: (Ljava/util/Properties;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield org.springframework.orm.jpa.JpaTransactionManager.jpaPropertyMap:Ljava/util/Map;
invokestatic org.springframework.util.CollectionUtils.mergePropertiesIntoMap:(Ljava/util/Properties;Ljava/util/Map;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
0 2 1 jpaProperties Ljava/util/Properties;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
jpaProperties
public void setJpaPropertyMap(java.util.Map<java.lang.String, ?>);
descriptor: (Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 2
1: aload 0
getfield org.springframework.orm.jpa.JpaTransactionManager.jpaPropertyMap:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
0 3 1 jpaProperties Ljava/util/Map<Ljava/lang/String;*>;
Signature: (Ljava/util/Map<Ljava/lang/String;*>;)V
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
jpaProperties
public java.util.Map<java.lang.String, java.lang.Object> getJpaPropertyMap();
descriptor: ()Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.orm.jpa.JpaTransactionManager.jpaPropertyMap:Ljava/util/Map;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
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.jpa.JpaTransactionManager.dataSource:Ljavax/sql/DataSource;
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield org.springframework.orm.jpa.JpaTransactionManager.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/jpa/JpaTransactionManager;
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.jpa.JpaTransactionManager.dataSource:Ljavax/sql/DataSource;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void setJpaDialect(org.springframework.orm.jpa.JpaDialect);
descriptor: (Lorg/springframework/orm/jpa/JpaDialect;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
ifnull 1
aload 1
goto 2
StackMap locals:
StackMap stack: org.springframework.orm.jpa.JpaTransactionManager
1: new org.springframework.orm.jpa.DefaultJpaDialect
dup
invokespecial org.springframework.orm.jpa.DefaultJpaDialect.<init>:()V
StackMap locals: org.springframework.orm.jpa.JpaTransactionManager org.springframework.orm.jpa.JpaDialect
StackMap stack: org.springframework.orm.jpa.JpaTransactionManager org.springframework.orm.jpa.JpaDialect
2: putfield org.springframework.orm.jpa.JpaTransactionManager.jpaDialect:Lorg/springframework/orm/jpa/JpaDialect;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
0 4 1 jpaDialect Lorg/springframework/orm/jpa/JpaDialect;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
jpaDialect
public org.springframework.orm.jpa.JpaDialect getJpaDialect();
descriptor: ()Lorg/springframework/orm/jpa/JpaDialect;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.orm.jpa.JpaTransactionManager.jpaDialect:Lorg/springframework/orm/jpa/JpaDialect;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
public void setBeanFactory(org.springframework.beans.factory.BeanFactory);
descriptor: (Lorg/springframework/beans/factory/BeanFactory;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getEntityManagerFactory:()Ljavax/persistence/EntityManagerFactory;
ifnonnull 7
1: aload 1
instanceof org.springframework.beans.factory.ListableBeanFactory
ifne 5
2: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Cannot retrieve EntityManagerFactory by persistence unit name in a non-listable BeanFactory: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
3: aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 1
checkcast org.springframework.beans.factory.ListableBeanFactory
astore 2
start local 2 6: aload 0
aload 2
aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getPersistenceUnitName:()Ljava/lang/String;
invokestatic org.springframework.orm.jpa.EntityManagerFactoryUtils.findEntityManagerFactory:(Lorg/springframework/beans/factory/ListableBeanFactory;Ljava/lang/String;)Ljavax/persistence/EntityManagerFactory;
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.setEntityManagerFactory:(Ljavax/persistence/EntityManagerFactory;)V
end local 2 7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
0 8 1 beanFactory Lorg/springframework/beans/factory/BeanFactory;
6 7 2 lbf Lorg/springframework/beans/factory/ListableBeanFactory;
Exceptions:
throws org.springframework.beans.BeansException
MethodParameters:
Name Flags
beanFactory
public void afterPropertiesSet();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getEntityManagerFactory:()Ljavax/persistence/EntityManagerFactory;
ifnonnull 2
1: new java.lang.IllegalArgumentException
dup
ldc "'entityManagerFactory' or 'persistenceUnitName' is required"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getEntityManagerFactory:()Ljavax/persistence/EntityManagerFactory;
instanceof org.springframework.orm.jpa.EntityManagerFactoryInfo
ifeq 10
3: aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getEntityManagerFactory:()Ljavax/persistence/EntityManagerFactory;
checkcast org.springframework.orm.jpa.EntityManagerFactoryInfo
astore 1
start local 1 4: aload 1
invokeinterface org.springframework.orm.jpa.EntityManagerFactoryInfo.getDataSource:()Ljavax/sql/DataSource;
astore 2
start local 2 5: aload 2
ifnull 7
6: aload 0
aload 2
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.setDataSource:(Ljavax/sql/DataSource;)V
7: StackMap locals: org.springframework.orm.jpa.EntityManagerFactoryInfo javax.sql.DataSource
StackMap stack:
aload 1
invokeinterface org.springframework.orm.jpa.EntityManagerFactoryInfo.getJpaDialect:()Lorg/springframework/orm/jpa/JpaDialect;
astore 3
start local 3 8: aload 3
ifnull 10
9: aload 0
aload 3
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.setJpaDialect:(Lorg/springframework/orm/jpa/JpaDialect;)V
end local 3 end local 2 end local 1 10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
4 10 1 emfInfo Lorg/springframework/orm/jpa/EntityManagerFactoryInfo;
5 10 2 dataSource Ljavax/sql/DataSource;
8 10 3 jpaDialect Lorg/springframework/orm/jpa/JpaDialect;
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.jpa.JpaTransactionManager.obtainEntityManagerFactory:()Ljavax/persistence/EntityManagerFactory;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
protected java.lang.Object doGetTransaction();
descriptor: ()Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=1
start local 0 0: new org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject
dup
aload 0
invokespecial org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.<init>:(Lorg/springframework/orm/jpa/JpaTransactionManager;)V
astore 1
start local 1 1: aload 1
aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.isNestedTransactionAllowed:()Z
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.setSavepointAllowed:(Z)V
2: aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.obtainEntityManagerFactory:()Ljavax/persistence/EntityManagerFactory;
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.getResource:(Ljava/lang/Object;)Ljava/lang/Object;
3: checkcast org.springframework.orm.jpa.EntityManagerHolder
astore 2
start local 2 4: aload 2
ifnull 10
5: aload 0
getfield org.springframework.orm.jpa.JpaTransactionManager.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 9
6: aload 0
getfield org.springframework.orm.jpa.JpaTransactionManager.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Found thread-bound EntityManager ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual org.springframework.orm.jpa.EntityManagerHolder.getEntityManager:()Ljavax/persistence/EntityManager;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
7: ldc "] for JPA transaction"
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: org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject org.springframework.orm.jpa.EntityManagerHolder
StackMap stack:
aload 1
aload 2
iconst_0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.setEntityManagerHolder:(Lorg/springframework/orm/jpa/EntityManagerHolder;Z)V
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getDataSource:()Ljavax/sql/DataSource;
ifnull 14
11: aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getDataSource:()Ljavax/sql/DataSource;
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.getResource:(Ljava/lang/Object;)Ljava/lang/Object;
12: checkcast org.springframework.jdbc.datasource.ConnectionHolder
astore 3
start local 3 13: aload 1
aload 3
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.setConnectionHolder:(Lorg/springframework/jdbc/datasource/ConnectionHolder;)V
end local 3 14: StackMap locals:
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
1 15 1 txObject Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;
4 15 2 emHolder Lorg/springframework/orm/jpa/EntityManagerHolder;
13 14 3 conHolder Lorg/springframework/jdbc/datasource/ConnectionHolder;
protected boolean isExistingTransaction(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
checkcast org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.hasTransaction:()Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
0 1 1 transaction Ljava/lang/Object;
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=7, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject
astore 3
start local 3 1: aload 3
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.hasConnectionHolder:()Z
ifeq 5
aload 3
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.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! JpaTransactionManager does not support running within DataSourceTransactionManager if told to manage the DataSource itself. It is recommended to use a single JpaTransactionManager for all transactions on a single DataSource, no matter whether JPA or JDBC access."
4: invokespecial org.springframework.transaction.IllegalTransactionStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject
StackMap stack:
aload 3
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.hasEntityManagerHolder:()Z
ifeq 7
6: aload 3
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
invokevirtual org.springframework.orm.jpa.EntityManagerHolder.isSynchronizedWithTransaction:()Z
ifeq 11
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.createEntityManagerForTransaction:()Ljavax/persistence/EntityManager;
astore 4
start local 4 8: aload 0
getfield org.springframework.orm.jpa.JpaTransactionManager.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 10
9: aload 0
getfield org.springframework.orm.jpa.JpaTransactionManager.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Opened new EntityManager ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] for JPA 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
10: StackMap locals: javax.persistence.EntityManager
StackMap stack:
aload 3
new org.springframework.orm.jpa.EntityManagerHolder
dup
aload 4
invokespecial org.springframework.orm.jpa.EntityManagerHolder.<init>:(Ljavax/persistence/EntityManager;)V
iconst_1
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.setEntityManagerHolder:(Lorg/springframework/orm/jpa/EntityManagerHolder;Z)V
end local 4 11: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
invokevirtual org.springframework.orm.jpa.EntityManagerHolder.getEntityManager:()Ljavax/persistence/EntityManager;
astore 4
start local 4 12: aload 0
aload 2
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.determineTimeout:(Lorg/springframework/transaction/TransactionDefinition;)I
istore 5
start local 5 13: aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getJpaDialect:()Lorg/springframework/orm/jpa/JpaDialect;
aload 4
14: new org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionDefinition
dup
aload 2
iload 5
aload 3
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.isNewEntityManagerHolder:()Z
invokespecial org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionDefinition.<init>:(Lorg/springframework/transaction/TransactionDefinition;IZ)V
15: invokeinterface org.springframework.orm.jpa.JpaDialect.beginTransaction:(Ljavax/persistence/EntityManager;Lorg/springframework/transaction/TransactionDefinition;)Ljava/lang/Object;
astore 6
start local 6 16: aload 3
aload 6
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.setTransactionData:(Ljava/lang/Object;)V
17: iload 5
iconst_m1
if_icmpeq 19
18: aload 3
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
iload 5
invokevirtual org.springframework.orm.jpa.EntityManagerHolder.setTimeoutInSeconds:(I)V
19: StackMap locals: javax.persistence.EntityManager int java.lang.Object
StackMap stack:
aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getDataSource:()Ljavax/sql/DataSource;
ifnull 34
20: aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getJpaDialect:()Lorg/springframework/orm/jpa/JpaDialect;
aload 4
aload 2
invokeinterface org.springframework.transaction.TransactionDefinition.isReadOnly:()Z
invokeinterface org.springframework.orm.jpa.JpaDialect.getJdbcConnection:(Ljavax/persistence/EntityManager;Z)Lorg/springframework/jdbc/datasource/ConnectionHandle;
astore 7
start local 7 21: aload 7
ifnull 30
22: new org.springframework.jdbc.datasource.ConnectionHolder
dup
aload 7
invokespecial org.springframework.jdbc.datasource.ConnectionHolder.<init>:(Lorg/springframework/jdbc/datasource/ConnectionHandle;)V
astore 8
start local 8 23: iload 5
iconst_m1
if_icmpeq 25
24: aload 8
iload 5
invokevirtual org.springframework.jdbc.datasource.ConnectionHolder.setTimeoutInSeconds:(I)V
25: StackMap locals: org.springframework.jdbc.datasource.ConnectionHandle org.springframework.jdbc.datasource.ConnectionHolder
StackMap stack:
aload 0
getfield org.springframework.orm.jpa.JpaTransactionManager.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 27
26: aload 0
getfield org.springframework.orm.jpa.JpaTransactionManager.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Exposing JPA transaction as JDBC ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
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
27: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getDataSource:()Ljavax/sql/DataSource;
aload 8
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.bindResource:(Ljava/lang/Object;Ljava/lang/Object;)V
28: aload 3
aload 8
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.setConnectionHolder:(Lorg/springframework/jdbc/datasource/ConnectionHolder;)V
end local 8 29: goto 34
30: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.orm.jpa.JpaTransactionManager.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 34
31: aload 0
getfield org.springframework.orm.jpa.JpaTransactionManager.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Not exposing JPA transaction ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] as JDBC transaction because "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
32: ldc "JpaDialect ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getJpaDialect:()Lorg/springframework/orm/jpa/JpaDialect;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] does not support JDBC Connection retrieval"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
33: invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
end local 7 34: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.isNewEntityManagerHolder:()Z
ifeq 37
35: aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.obtainEntityManagerFactory:()Ljavax/persistence/EntityManagerFactory;
aload 3
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
36: invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.bindResource:(Ljava/lang/Object;Ljava/lang/Object;)V
37: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
iconst_1
invokevirtual org.springframework.orm.jpa.EntityManagerHolder.setSynchronizedWithTransaction:(Z)V
end local 6 end local 5 end local 4 38: goto 45
39: StackMap locals: org.springframework.orm.jpa.JpaTransactionManager java.lang.Object org.springframework.transaction.TransactionDefinition org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject
StackMap stack: org.springframework.transaction.TransactionException
astore 4
start local 4 40: aload 0
aload 3
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.closeEntityManagerAfterFailedBegin:(Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;)V
41: aload 4
athrow
end local 4 42: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
start local 4 43: aload 0
aload 3
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.closeEntityManagerAfterFailedBegin:(Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;)V
44: new org.springframework.transaction.CannotCreateTransactionException
dup
ldc "Could not open JPA EntityManager for transaction"
aload 4
invokespecial org.springframework.transaction.CannotCreateTransactionException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 45: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
0 46 1 transaction Ljava/lang/Object;
0 46 2 definition Lorg/springframework/transaction/TransactionDefinition;
1 46 3 txObject Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;
8 11 4 newEm Ljavax/persistence/EntityManager;
12 38 4 em Ljavax/persistence/EntityManager;
13 38 5 timeoutToUse I
16 38 6 transactionData Ljava/lang/Object;
21 34 7 conHandle Lorg/springframework/jdbc/datasource/ConnectionHandle;
23 29 8 conHolder Lorg/springframework/jdbc/datasource/ConnectionHolder;
40 42 4 ex Lorg/springframework/transaction/TransactionException;
43 45 4 ex Ljava/lang/Throwable;
Exception table:
from to target type
5 38 39 Class org.springframework.transaction.TransactionException
5 38 42 Class java.lang.Throwable
MethodParameters:
Name Flags
transaction
definition
protected javax.persistence.EntityManager createEntityManagerForTransaction();
descriptor: ()Ljavax/persistence/EntityManager;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.obtainEntityManagerFactory:()Ljavax/persistence/EntityManagerFactory;
astore 1
start local 1 1: aload 1
instanceof org.springframework.orm.jpa.EntityManagerFactoryInfo
ifeq 3
2: aload 1
checkcast org.springframework.orm.jpa.EntityManagerFactoryInfo
invokeinterface org.springframework.orm.jpa.EntityManagerFactoryInfo.getNativeEntityManagerFactory:()Ljavax/persistence/EntityManagerFactory;
astore 1
3: StackMap locals: javax.persistence.EntityManagerFactory
StackMap stack:
aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getJpaPropertyMap:()Ljava/util/Map;
astore 2
start local 2 4: aload 2
invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Map;)Z
ifne 6
5: aload 1
aload 2
invokeinterface javax.persistence.EntityManagerFactory.createEntityManager:(Ljava/util/Map;)Ljavax/persistence/EntityManager;
goto 7
StackMap locals: java.util.Map
StackMap stack:
6: aload 1
invokeinterface javax.persistence.EntityManagerFactory.createEntityManager:()Ljavax/persistence/EntityManager;
7: StackMap locals:
StackMap stack: javax.persistence.EntityManager
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
1 8 1 emf Ljavax/persistence/EntityManagerFactory;
4 8 2 properties Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
protected void closeEntityManagerAfterFailedBegin(org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject);
descriptor: (Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.isNewEntityManagerHolder:()Z
ifeq 13
1: aload 1
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
invokevirtual org.springframework.orm.jpa.EntityManagerHolder.getEntityManager:()Ljavax/persistence/EntityManager;
astore 2
start local 2 2: aload 2
invokeinterface javax.persistence.EntityManager.getTransaction:()Ljavax/persistence/EntityTransaction;
invokeinterface javax.persistence.EntityTransaction.isActive:()Z
ifeq 11
3: aload 2
invokeinterface javax.persistence.EntityManager.getTransaction:()Ljavax/persistence/EntityTransaction;
invokeinterface javax.persistence.EntityTransaction.rollback:()V
4: goto 11
5: StackMap locals: org.springframework.orm.jpa.JpaTransactionManager org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject javax.persistence.EntityManager
StackMap stack: java.lang.Throwable
astore 3
start local 3 6: aload 0
getfield org.springframework.orm.jpa.JpaTransactionManager.logger:Lorg/apache/commons/logging/Log;
ldc "Could not rollback EntityManager after failed transaction begin"
aload 3
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 3 7: aload 2
invokestatic org.springframework.orm.jpa.EntityManagerFactoryUtils.closeEntityManager:(Ljavax/persistence/EntityManager;)V
goto 12
8: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
9: aload 2
invokestatic org.springframework.orm.jpa.EntityManagerFactoryUtils.closeEntityManager:(Ljavax/persistence/EntityManager;)V
10: aload 4
athrow
11: StackMap locals:
StackMap stack:
aload 2
invokestatic org.springframework.orm.jpa.EntityManagerFactoryUtils.closeEntityManager:(Ljavax/persistence/EntityManager;)V
12: StackMap locals:
StackMap stack:
aload 1
aconst_null
iconst_0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.setEntityManagerHolder:(Lorg/springframework/orm/jpa/EntityManagerHolder;Z)V
end local 2 13: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
0 14 1 txObject Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;
2 13 2 em Ljavax/persistence/EntityManager;
6 7 3 ex Ljava/lang/Throwable;
Exception table:
from to target type
2 4 5 Class java.lang.Throwable
2 7 8 any
MethodParameters:
Name Flags
txObject
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.jpa.JpaTransactionManager$JpaTransactionObject
astore 2
start local 2 1: aload 2
aconst_null
iconst_0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.setEntityManagerHolder:(Lorg/springframework/orm/jpa/EntityManagerHolder;Z)V
2: aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.obtainEntityManagerFactory:()Ljavax/persistence/EntityManagerFactory;
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.unbindResource:(Ljava/lang/Object;)Ljava/lang/Object;
3: checkcast org.springframework.orm.jpa.EntityManagerHolder
astore 3
start local 3 4: aload 2
aconst_null
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.setConnectionHolder:(Lorg/springframework/jdbc/datasource/ConnectionHolder;)V
5: aconst_null
astore 4
start local 4 6: aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getDataSource:()Ljavax/sql/DataSource;
ifnull 8
aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getDataSource:()Ljavax/sql/DataSource;
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.hasResource:(Ljava/lang/Object;)Z
ifeq 8
7: aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.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.jpa.JpaTransactionManager$JpaTransactionObject org.springframework.orm.jpa.EntityManagerHolder org.springframework.jdbc.datasource.ConnectionHolder
StackMap stack:
new org.springframework.orm.jpa.JpaTransactionManager$SuspendedResourcesHolder
dup
aload 3
aload 4
invokespecial org.springframework.orm.jpa.JpaTransactionManager$SuspendedResourcesHolder.<init>:(Lorg/springframework/orm/jpa/EntityManagerHolder;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/jpa/JpaTransactionManager;
0 9 1 transaction Ljava/lang/Object;
1 9 2 txObject Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;
4 9 3 entityManagerHolder Lorg/springframework/orm/jpa/EntityManagerHolder;
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=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
checkcast org.springframework.orm.jpa.JpaTransactionManager$SuspendedResourcesHolder
astore 3
start local 3 1: aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.obtainEntityManagerFactory:()Ljavax/persistence/EntityManagerFactory;
aload 3
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$SuspendedResourcesHolder.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
2: invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.bindResource:(Ljava/lang/Object;Ljava/lang/Object;)V
3: aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getDataSource:()Ljavax/sql/DataSource;
ifnull 5
aload 3
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$SuspendedResourcesHolder.getConnectionHolder:()Lorg/springframework/jdbc/datasource/ConnectionHolder;
ifnull 5
4: aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getDataSource:()Ljavax/sql/DataSource;
aload 3
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$SuspendedResourcesHolder.getConnectionHolder:()Lorg/springframework/jdbc/datasource/ConnectionHolder;
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.bindResource:(Ljava/lang/Object;Ljava/lang/Object;)V
5: StackMap locals: org.springframework.orm.jpa.JpaTransactionManager$SuspendedResourcesHolder
StackMap stack:
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/jpa/JpaTransactionManager;
0 6 1 transaction Ljava/lang/Object;
0 6 2 suspendedResources Ljava/lang/Object;
1 6 3 resourcesHolder Lorg/springframework/orm/jpa/JpaTransactionManager$SuspendedResourcesHolder;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
MethodParameters:
Name Flags
transaction
suspendedResources
protected boolean shouldCommitOnGlobalRollbackOnly();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
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.jpa.JpaTransactionManager$JpaTransactionObject
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.jpa.JpaTransactionManager.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Committing JPA transaction on EntityManager ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
3: aload 2
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
invokevirtual org.springframework.orm.jpa.EntityManagerHolder.getEntityManager:()Ljavax/persistence/EntityManager;
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;
4: invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
5: StackMap locals: org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject
StackMap stack:
aload 2
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
invokevirtual org.springframework.orm.jpa.EntityManagerHolder.getEntityManager:()Ljavax/persistence/EntityManager;
invokeinterface javax.persistence.EntityManager.getTransaction:()Ljavax/persistence/EntityTransaction;
astore 3
start local 3 6: aload 3
invokeinterface javax.persistence.EntityTransaction.commit:()V
end local 3 7: goto 16
8: StackMap locals:
StackMap stack: javax.persistence.RollbackException
astore 3
start local 3 9: aload 3
invokevirtual javax.persistence.RollbackException.getCause:()Ljava/lang/Throwable;
instanceof java.lang.RuntimeException
ifeq 13
10: aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getJpaDialect:()Lorg/springframework/orm/jpa/JpaDialect;
aload 3
invokevirtual javax.persistence.RollbackException.getCause:()Ljava/lang/Throwable;
checkcast java.lang.RuntimeException
invokeinterface org.springframework.orm.jpa.JpaDialect.translateExceptionIfPossible:(Ljava/lang/RuntimeException;)Lorg/springframework/dao/DataAccessException;
astore 4
start local 4 11: aload 4
ifnull 13
12: aload 4
athrow
end local 4 13: StackMap locals: javax.persistence.RollbackException
StackMap stack:
new org.springframework.transaction.TransactionSystemException
dup
ldc "Could not commit JPA transaction"
aload 3
invokespecial org.springframework.transaction.TransactionSystemException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 14: StackMap locals: org.springframework.orm.jpa.JpaTransactionManager org.springframework.transaction.support.DefaultTransactionStatus org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject
StackMap stack: java.lang.RuntimeException
astore 3
start local 3 15: aload 3
aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getJpaDialect:()Lorg/springframework/orm/jpa/JpaDialect;
invokestatic org.springframework.dao.support.DataAccessUtils.translateIfNecessary:(Ljava/lang/RuntimeException;Lorg/springframework/dao/support/PersistenceExceptionTranslator;)Ljava/lang/RuntimeException;
athrow
end local 3 16: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
0 17 1 status Lorg/springframework/transaction/support/DefaultTransactionStatus;
1 17 2 txObject Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;
6 7 3 tx Ljavax/persistence/EntityTransaction;
9 14 3 ex Ljavax/persistence/RollbackException;
11 13 4 dae Lorg/springframework/dao/DataAccessException;
15 16 3 ex Ljava/lang/RuntimeException;
Exception table:
from to target type
5 7 8 Class javax.persistence.RollbackException
5 7 14 Class java.lang.RuntimeException
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=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.jpa.JpaTransactionManager$JpaTransactionObject
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.jpa.JpaTransactionManager.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Rolling back JPA transaction on EntityManager ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
3: aload 2
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
invokevirtual org.springframework.orm.jpa.EntityManagerHolder.getEntityManager:()Ljavax/persistence/EntityManager;
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;
4: invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
5: StackMap locals: org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject
StackMap stack:
aload 2
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
invokevirtual org.springframework.orm.jpa.EntityManagerHolder.getEntityManager:()Ljavax/persistence/EntityManager;
invokeinterface javax.persistence.EntityManager.getTransaction:()Ljavax/persistence/EntityTransaction;
astore 3
start local 3 6: aload 3
invokeinterface javax.persistence.EntityTransaction.isActive:()Z
ifeq 15
7: aload 3
invokeinterface javax.persistence.EntityTransaction.rollback:()V
end local 3 8: goto 15
9: StackMap locals:
StackMap stack: javax.persistence.PersistenceException
astore 3
start local 3 10: new org.springframework.transaction.TransactionSystemException
dup
ldc "Could not roll back JPA transaction"
aload 3
invokespecial org.springframework.transaction.TransactionSystemException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 11: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
12: aload 2
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.isNewEntityManagerHolder:()Z
ifne 14
13: aload 2
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
invokevirtual org.springframework.orm.jpa.EntityManagerHolder.getEntityManager:()Ljavax/persistence/EntityManager;
invokeinterface javax.persistence.EntityManager.clear:()V
14: StackMap locals: org.springframework.orm.jpa.JpaTransactionManager org.springframework.transaction.support.DefaultTransactionStatus org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject top java.lang.Throwable
StackMap stack:
aload 4
athrow
15: StackMap locals: org.springframework.orm.jpa.JpaTransactionManager org.springframework.transaction.support.DefaultTransactionStatus org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject
StackMap stack:
aload 2
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.isNewEntityManagerHolder:()Z
ifne 17
16: aload 2
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
invokevirtual org.springframework.orm.jpa.EntityManagerHolder.getEntityManager:()Ljavax/persistence/EntityManager;
invokeinterface javax.persistence.EntityManager.clear:()V
17: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
0 18 1 status Lorg/springframework/transaction/support/DefaultTransactionStatus;
1 18 2 txObject Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;
6 8 3 tx Ljavax/persistence/EntityTransaction;
10 11 3 ex Ljavax/persistence/PersistenceException;
Exception table:
from to target type
5 8 9 Class javax.persistence.PersistenceException
5 11 11 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.jpa.JpaTransactionManager$JpaTransactionObject
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.jpa.JpaTransactionManager.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Setting JPA transaction on EntityManager ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
3: aload 2
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
invokevirtual org.springframework.orm.jpa.EntityManagerHolder.getEntityManager:()Ljavax/persistence/EntityManager;
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.jpa.JpaTransactionManager$JpaTransactionObject
StackMap stack:
aload 2
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.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/jpa/JpaTransactionManager;
0 7 1 status Lorg/springframework/transaction/support/DefaultTransactionStatus;
1 7 2 txObject Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;
MethodParameters:
Name Flags
status
protected void doCleanupAfterCompletion(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
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.jpa.JpaTransactionManager$JpaTransactionObject
astore 2
start local 2 1: aload 2
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.isNewEntityManagerHolder:()Z
ifeq 3
2: aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.obtainEntityManagerFactory:()Ljavax/persistence/EntityManagerFactory;
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.unbindResourceIfPossible:(Ljava/lang/Object;)Ljava/lang/Object;
pop
3: StackMap locals: org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject
StackMap stack:
aload 2
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
invokevirtual org.springframework.orm.jpa.EntityManagerHolder.clear:()V
4: aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getDataSource:()Ljavax/sql/DataSource;
ifnull 14
aload 2
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.hasConnectionHolder:()Z
ifeq 14
5: aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getDataSource:()Ljavax/sql/DataSource;
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.unbindResource:(Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 2
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getConnectionHolder:()Lorg/springframework/jdbc/datasource/ConnectionHolder;
invokevirtual org.springframework.jdbc.datasource.ConnectionHolder.getConnectionHandle:()Lorg/springframework/jdbc/datasource/ConnectionHandle;
astore 3
start local 3 7: aload 3
ifnull 14
8: aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getJpaDialect:()Lorg/springframework/orm/jpa/JpaDialect;
aload 3
9: aload 2
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
invokevirtual org.springframework.orm.jpa.EntityManagerHolder.getEntityManager:()Ljavax/persistence/EntityManager;
10: invokeinterface org.springframework.orm.jpa.JpaDialect.releaseJdbcConnection:(Lorg/springframework/jdbc/datasource/ConnectionHandle;Ljavax/persistence/EntityManager;)V
11: goto 14
12: StackMap locals: org.springframework.orm.jpa.JpaTransactionManager java.lang.Object org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject org.springframework.jdbc.datasource.ConnectionHandle
StackMap stack: java.lang.Exception
astore 4
start local 4 13: aload 0
getfield org.springframework.orm.jpa.JpaTransactionManager.logger:Lorg/apache/commons/logging/Log;
ldc "Could not close JDBC connection after transaction"
aload 4
invokeinterface org.apache.commons.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 4 end local 3 14: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getJpaDialect:()Lorg/springframework/orm/jpa/JpaDialect;
aload 2
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getTransactionData:()Ljava/lang/Object;
invokeinterface org.springframework.orm.jpa.JpaDialect.cleanupTransaction:(Ljava/lang/Object;)V
15: aload 2
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.isNewEntityManagerHolder:()Z
ifeq 21
16: aload 2
invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
invokevirtual org.springframework.orm.jpa.EntityManagerHolder.getEntityManager:()Ljavax/persistence/EntityManager;
astore 3
start local 3 17: aload 0
getfield org.springframework.orm.jpa.JpaTransactionManager.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 19
18: aload 0
getfield org.springframework.orm.jpa.JpaTransactionManager.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Closing JPA EntityManager ["
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
19: StackMap locals: javax.persistence.EntityManager
StackMap stack:
aload 3
invokestatic org.springframework.orm.jpa.EntityManagerFactoryUtils.closeEntityManager:(Ljavax/persistence/EntityManager;)V
end local 3 20: goto 22
21: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.orm.jpa.JpaTransactionManager.logger:Lorg/apache/commons/logging/Log;
ldc "Not closing pre-bound JPA EntityManager after transaction"
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
22: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lorg/springframework/orm/jpa/JpaTransactionManager;
0 23 1 transaction Ljava/lang/Object;
1 23 2 txObject Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;
7 14 3 conHandle Lorg/springframework/jdbc/datasource/ConnectionHandle;
13 14 4 ex Ljava/lang/Exception;
17 20 3 em Ljavax/persistence/EntityManager;
Exception table:
from to target type
8 11 12 Class java.lang.Exception
MethodParameters:
Name Flags
transaction
}
SourceFile: "JpaTransactionManager.java"
NestMembers:
org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionDefinition org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject org.springframework.orm.jpa.JpaTransactionManager$SuspendedResourcesHolder
InnerClasses:
private JpaTransactionDefinition = org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionDefinition of org.springframework.orm.jpa.JpaTransactionManager
private JpaTransactionObject = org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject of org.springframework.orm.jpa.JpaTransactionManager
private final SuspendedResourcesHolder = org.springframework.orm.jpa.JpaTransactionManager$SuspendedResourcesHolder of org.springframework.orm.jpa.JpaTransactionManager