public class org.springframework.transaction.jta.JtaTransactionManager extends org.springframework.transaction.support.AbstractPlatformTransactionManager implements org.springframework.transaction.jta.TransactionFactory, org.springframework.beans.factory.InitializingBean, java.io.Serializable
{
public static final java.lang.String DEFAULT_USER_TRANSACTION_NAME;
public static final java.lang.String[] FALLBACK_TRANSACTION_MANAGER_NAMES;
public static final java.lang.String DEFAULT_TRANSACTION_SYNCHRONIZATION_REGISTRY_NAME;
private transient org.springframework.jndi.JndiTemplate jndiTemplate;
private transient javax.transaction.UserTransaction userTransaction;
private java.lang.String userTransactionName;
private boolean autodetectUserTransaction;
private boolean cacheUserTransaction;
private boolean userTransactionObtainedFromJndi;
private transient javax.transaction.TransactionManager transactionManager;
private java.lang.String transactionManagerName;
private boolean autodetectTransactionManager;
private transient javax.transaction.TransactionSynchronizationRegistry transactionSynchronizationRegistry;
private java.lang.String transactionSynchronizationRegistryName;
private boolean autodetectTransactionSynchronizationRegistry;
private boolean allowCustomIsolationLevels;
public void <init>()
{
org.springframework.transaction.jta.JtaTransactionManager v;
org.springframework.jndi.JndiTemplate v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
specialinvoke v.<org.springframework.transaction.support.AbstractPlatformTransactionManager: void <init>()>();
v = new org.springframework.jndi.JndiTemplate;
specialinvoke v.<org.springframework.jndi.JndiTemplate: void <init>()>();
v.<org.springframework.transaction.jta.JtaTransactionManager: org.springframework.jndi.JndiTemplate jndiTemplate> = v;
v.<org.springframework.transaction.jta.JtaTransactionManager: boolean autodetectUserTransaction> = 1;
v.<org.springframework.transaction.jta.JtaTransactionManager: boolean cacheUserTransaction> = 1;
v.<org.springframework.transaction.jta.JtaTransactionManager: boolean userTransactionObtainedFromJndi> = 0;
v.<org.springframework.transaction.jta.JtaTransactionManager: boolean autodetectTransactionManager> = 1;
v.<org.springframework.transaction.jta.JtaTransactionManager: boolean autodetectTransactionSynchronizationRegistry> = 1;
v.<org.springframework.transaction.jta.JtaTransactionManager: boolean allowCustomIsolationLevels> = 0;
virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: void setNestedTransactionAllowed(boolean)>(1);
return;
}
public void <init>(javax.transaction.UserTransaction)
{
org.springframework.transaction.jta.JtaTransactionManager v;
javax.transaction.UserTransaction v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: javax.transaction.UserTransaction;
specialinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: void <init>()>();
staticinvoke <org.springframework.util.Assert: void notNull(java.lang.Object,java.lang.String)>(v, "UserTransaction must not be null");
v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.UserTransaction userTransaction> = v;
return;
}
public void <init>(javax.transaction.UserTransaction, javax.transaction.TransactionManager)
{
org.springframework.transaction.jta.JtaTransactionManager v;
javax.transaction.TransactionManager v;
javax.transaction.UserTransaction v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: javax.transaction.UserTransaction;
v := @parameter: javax.transaction.TransactionManager;
specialinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: void <init>()>();
staticinvoke <org.springframework.util.Assert: void notNull(java.lang.Object,java.lang.String)>(v, "UserTransaction must not be null");
staticinvoke <org.springframework.util.Assert: void notNull(java.lang.Object,java.lang.String)>(v, "TransactionManager must not be null");
v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.UserTransaction userTransaction> = v;
v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager transactionManager> = v;
return;
}
public void <init>(javax.transaction.TransactionManager)
{
org.springframework.transaction.jta.JtaTransactionManager v;
javax.transaction.TransactionManager v;
javax.transaction.UserTransaction v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: javax.transaction.TransactionManager;
specialinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: void <init>()>();
staticinvoke <org.springframework.util.Assert: void notNull(java.lang.Object,java.lang.String)>(v, "TransactionManager must not be null");
v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager transactionManager> = v;
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.UserTransaction buildUserTransaction(javax.transaction.TransactionManager)>(v);
v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.UserTransaction userTransaction> = v;
return;
}
public void setJndiTemplate(org.springframework.jndi.JndiTemplate)
{
org.springframework.transaction.jta.JtaTransactionManager v;
org.springframework.jndi.JndiTemplate v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: org.springframework.jndi.JndiTemplate;
staticinvoke <org.springframework.util.Assert: void notNull(java.lang.Object,java.lang.String)>(v, "JndiTemplate must not be null");
v.<org.springframework.transaction.jta.JtaTransactionManager: org.springframework.jndi.JndiTemplate jndiTemplate> = v;
return;
}
public org.springframework.jndi.JndiTemplate getJndiTemplate()
{
org.springframework.transaction.jta.JtaTransactionManager v;
org.springframework.jndi.JndiTemplate v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.springframework.jndi.JndiTemplate jndiTemplate>;
return v;
}
public void setJndiEnvironment(java.util.Properties)
{
org.springframework.transaction.jta.JtaTransactionManager v;
java.util.Properties v;
org.springframework.jndi.JndiTemplate v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: java.util.Properties;
v = new org.springframework.jndi.JndiTemplate;
specialinvoke v.<org.springframework.jndi.JndiTemplate: void <init>(java.util.Properties)>(v);
v.<org.springframework.transaction.jta.JtaTransactionManager: org.springframework.jndi.JndiTemplate jndiTemplate> = v;
return;
}
public java.util.Properties getJndiEnvironment()
{
org.springframework.transaction.jta.JtaTransactionManager v;
java.util.Properties v;
org.springframework.jndi.JndiTemplate v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.springframework.jndi.JndiTemplate jndiTemplate>;
v = virtualinvoke v.<org.springframework.jndi.JndiTemplate: java.util.Properties getEnvironment()>();
return v;
}
public void setUserTransaction(javax.transaction.UserTransaction)
{
org.springframework.transaction.jta.JtaTransactionManager v;
javax.transaction.UserTransaction v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: javax.transaction.UserTransaction;
v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.UserTransaction userTransaction> = v;
return;
}
public javax.transaction.UserTransaction getUserTransaction()
{
org.springframework.transaction.jta.JtaTransactionManager v;
javax.transaction.UserTransaction v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.UserTransaction userTransaction>;
return v;
}
public void setUserTransactionName(java.lang.String)
{
org.springframework.transaction.jta.JtaTransactionManager v;
java.lang.String v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: java.lang.String;
v.<org.springframework.transaction.jta.JtaTransactionManager: java.lang.String userTransactionName> = v;
return;
}
public void setAutodetectUserTransaction(boolean)
{
org.springframework.transaction.jta.JtaTransactionManager v;
boolean v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: boolean;
v.<org.springframework.transaction.jta.JtaTransactionManager: boolean autodetectUserTransaction> = v;
return;
}
public void setCacheUserTransaction(boolean)
{
org.springframework.transaction.jta.JtaTransactionManager v;
boolean v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: boolean;
v.<org.springframework.transaction.jta.JtaTransactionManager: boolean cacheUserTransaction> = v;
return;
}
public void setTransactionManager(javax.transaction.TransactionManager)
{
org.springframework.transaction.jta.JtaTransactionManager v;
javax.transaction.TransactionManager v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: javax.transaction.TransactionManager;
v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager transactionManager> = v;
return;
}
public javax.transaction.TransactionManager getTransactionManager()
{
org.springframework.transaction.jta.JtaTransactionManager v;
javax.transaction.TransactionManager v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager transactionManager>;
return v;
}
public void setTransactionManagerName(java.lang.String)
{
org.springframework.transaction.jta.JtaTransactionManager v;
java.lang.String v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: java.lang.String;
v.<org.springframework.transaction.jta.JtaTransactionManager: java.lang.String transactionManagerName> = v;
return;
}
public void setAutodetectTransactionManager(boolean)
{
org.springframework.transaction.jta.JtaTransactionManager v;
boolean v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: boolean;
v.<org.springframework.transaction.jta.JtaTransactionManager: boolean autodetectTransactionManager> = v;
return;
}
public void setTransactionSynchronizationRegistry(javax.transaction.TransactionSynchronizationRegistry)
{
javax.transaction.TransactionSynchronizationRegistry v;
org.springframework.transaction.jta.JtaTransactionManager v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: javax.transaction.TransactionSynchronizationRegistry;
v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionSynchronizationRegistry transactionSynchronizationRegistry> = v;
return;
}
public javax.transaction.TransactionSynchronizationRegistry getTransactionSynchronizationRegistry()
{
javax.transaction.TransactionSynchronizationRegistry v;
org.springframework.transaction.jta.JtaTransactionManager v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionSynchronizationRegistry transactionSynchronizationRegistry>;
return v;
}
public void setTransactionSynchronizationRegistryName(java.lang.String)
{
org.springframework.transaction.jta.JtaTransactionManager v;
java.lang.String v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: java.lang.String;
v.<org.springframework.transaction.jta.JtaTransactionManager: java.lang.String transactionSynchronizationRegistryName> = v;
return;
}
public void setAutodetectTransactionSynchronizationRegistry(boolean)
{
org.springframework.transaction.jta.JtaTransactionManager v;
boolean v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: boolean;
v.<org.springframework.transaction.jta.JtaTransactionManager: boolean autodetectTransactionSynchronizationRegistry> = v;
return;
}
public void setAllowCustomIsolationLevels(boolean)
{
org.springframework.transaction.jta.JtaTransactionManager v;
boolean v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: boolean;
v.<org.springframework.transaction.jta.JtaTransactionManager: boolean allowCustomIsolationLevels> = v;
return;
}
public void afterPropertiesSet() throws org.springframework.transaction.TransactionSystemException
{
org.springframework.transaction.jta.JtaTransactionManager v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: void initUserTransactionAndTransactionManager()>();
virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: void checkUserTransactionAndTransactionManager()>();
virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: void initTransactionSynchronizationRegistry()>();
return;
}
protected void initUserTransactionAndTransactionManager() throws org.springframework.transaction.TransactionSystemException
{
java.lang.String v, v, v, v;
boolean v, v, v, v;
javax.transaction.UserTransaction v, v, v, v, v, v, v, v;
org.springframework.transaction.jta.JtaTransactionManager v;
javax.transaction.TransactionManager v, v, v, v, v, v, v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.UserTransaction userTransaction>;
if v != null goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: java.lang.String userTransactionName>;
v = staticinvoke <org.springframework.util.StringUtils: boolean hasLength(java.lang.String)>(v);
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: java.lang.String userTransactionName>;
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.UserTransaction lookupUserTransaction(java.lang.String)>(v);
v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.UserTransaction userTransaction> = v;
v.<org.springframework.transaction.jta.JtaTransactionManager: boolean userTransactionObtainedFromJndi> = 1;
goto label;
label:
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.UserTransaction retrieveUserTransaction()>();
v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.UserTransaction userTransaction> = v;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.UserTransaction userTransaction>;
if v != null goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: boolean autodetectUserTransaction>;
if v == 0 goto label;
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.UserTransaction findUserTransaction()>();
v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.UserTransaction userTransaction> = v;
label:
v = v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager transactionManager>;
if v != null goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: java.lang.String transactionManagerName>;
v = staticinvoke <org.springframework.util.StringUtils: boolean hasLength(java.lang.String)>(v);
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: java.lang.String transactionManagerName>;
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager lookupTransactionManager(java.lang.String)>(v);
v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager transactionManager> = v;
goto label;
label:
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager retrieveTransactionManager()>();
v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager transactionManager> = v;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager transactionManager>;
if v != null goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: boolean autodetectTransactionManager>;
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.UserTransaction userTransaction>;
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager findTransactionManager(javax.transaction.UserTransaction)>(v);
v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager transactionManager> = v;
label:
v = v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.UserTransaction userTransaction>;
if v != null goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager transactionManager>;
if v == null goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager transactionManager>;
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.UserTransaction buildUserTransaction(javax.transaction.TransactionManager)>(v);
v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.UserTransaction userTransaction> = v;
label:
return;
}
protected void checkUserTransactionAndTransactionManager() throws java.lang.IllegalStateException
{
java.lang.IllegalStateException v;
javax.transaction.UserTransaction v, v;
org.apache.commons.logging.Log v, v, v, v, v;
org.springframework.transaction.jta.JtaTransactionManager v;
java.lang.String v, v;
javax.transaction.TransactionManager v, v;
boolean v, v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.UserTransaction userTransaction>;
if v == null goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isInfoEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.UserTransaction userTransaction>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (javax.transaction.UserTransaction)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Using JTA UserTransaction: \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void info(java.lang.Object)>(v);
goto label;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("No JTA UserTransaction available - specify either \'userTransaction\' or \'userTransactionName\' or \'transactionManager\' or \'transactionManagerName\'");
throw v;
label:
v = v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager transactionManager>;
if v == null goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isInfoEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager transactionManager>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (javax.transaction.TransactionManager)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Using JTA TransactionManager: \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void info(java.lang.Object)>(v);
goto label;
label:
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
interfaceinvoke v.<org.apache.commons.logging.Log: void warn(java.lang.Object)>("No JTA TransactionManager found: transaction suspension not available");
label:
return;
}
protected void initTransactionSynchronizationRegistry()
{
java.lang.String v, v, v;
boolean v, v, v;
javax.transaction.UserTransaction v;
javax.transaction.TransactionSynchronizationRegistry v, v, v, v, v, v, v;
org.apache.commons.logging.Log v, v;
org.springframework.transaction.jta.JtaTransactionManager v;
javax.transaction.TransactionManager v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionSynchronizationRegistry transactionSynchronizationRegistry>;
if v != null goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: java.lang.String transactionSynchronizationRegistryName>;
v = staticinvoke <org.springframework.util.StringUtils: boolean hasLength(java.lang.String)>(v);
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: java.lang.String transactionSynchronizationRegistryName>;
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionSynchronizationRegistry lookupTransactionSynchronizationRegistry(java.lang.String)>(v);
v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionSynchronizationRegistry transactionSynchronizationRegistry> = v;
goto label;
label:
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionSynchronizationRegistry retrieveTransactionSynchronizationRegistry()>();
v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionSynchronizationRegistry transactionSynchronizationRegistry> = v;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionSynchronizationRegistry transactionSynchronizationRegistry>;
if v != null goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: boolean autodetectTransactionSynchronizationRegistry>;
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.UserTransaction userTransaction>;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager transactionManager>;
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionSynchronizationRegistry findTransactionSynchronizationRegistry(javax.transaction.UserTransaction,javax.transaction.TransactionManager)>(v, v);
v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionSynchronizationRegistry transactionSynchronizationRegistry> = v;
label:
v = v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionSynchronizationRegistry transactionSynchronizationRegistry>;
if v == null goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isInfoEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionSynchronizationRegistry transactionSynchronizationRegistry>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (javax.transaction.TransactionSynchronizationRegistry)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Using JTA TransactionSynchronizationRegistry: \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void info(java.lang.Object)>(v);
label:
return;
}
protected javax.transaction.UserTransaction buildUserTransaction(javax.transaction.TransactionManager)
{
org.springframework.transaction.jta.JtaTransactionManager v;
javax.transaction.TransactionManager v;
org.springframework.transaction.jta.UserTransactionAdapter v;
boolean v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: javax.transaction.TransactionManager;
v = v instanceof javax.transaction.UserTransaction;
if v == 0 goto label;
return v;
label:
v = new org.springframework.transaction.jta.UserTransactionAdapter;
specialinvoke v.<org.springframework.transaction.jta.UserTransactionAdapter: void <init>(javax.transaction.TransactionManager)>(v);
return v;
}
protected javax.transaction.UserTransaction lookupUserTransaction(java.lang.String) throws org.springframework.transaction.TransactionSystemException
{
javax.naming.NamingException v;
org.springframework.jndi.JndiTemplate v;
org.springframework.transaction.TransactionSystemException v;
java.lang.Object v;
org.apache.commons.logging.Log v, v;
org.springframework.transaction.jta.JtaTransactionManager v;
java.lang.String v, v, v;
boolean v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: java.lang.String;
label:
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Retrieving JTA UserTransaction from JNDI location [\u]");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: org.springframework.jndi.JndiTemplate getJndiTemplate()>();
v = virtualinvoke v.<org.springframework.jndi.JndiTemplate: java.lang.Object lookup(java.lang.String,java.lang.Class)>(v, class "Ljavax/transaction/UserTransaction;");
label:
return v;
label:
v := @caughtexception;
v = new org.springframework.transaction.TransactionSystemException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("JTA UserTransaction is not available at JNDI location [\u]");
specialinvoke v.<org.springframework.transaction.TransactionSystemException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch javax.naming.NamingException from label to label with label;
}
protected javax.transaction.TransactionManager lookupTransactionManager(java.lang.String) throws org.springframework.transaction.TransactionSystemException
{
javax.naming.NamingException v;
org.springframework.jndi.JndiTemplate v;
org.springframework.transaction.TransactionSystemException v;
java.lang.Object v;
org.apache.commons.logging.Log v, v;
org.springframework.transaction.jta.JtaTransactionManager v;
java.lang.String v, v, v;
boolean v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: java.lang.String;
label:
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Retrieving JTA TransactionManager from JNDI location [\u]");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: org.springframework.jndi.JndiTemplate getJndiTemplate()>();
v = virtualinvoke v.<org.springframework.jndi.JndiTemplate: java.lang.Object lookup(java.lang.String,java.lang.Class)>(v, class "Ljavax/transaction/TransactionManager;");
label:
return v;
label:
v := @caughtexception;
v = new org.springframework.transaction.TransactionSystemException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("JTA TransactionManager is not available at JNDI location [\u]");
specialinvoke v.<org.springframework.transaction.TransactionSystemException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch javax.naming.NamingException from label to label with label;
}
protected javax.transaction.TransactionSynchronizationRegistry lookupTransactionSynchronizationRegistry(java.lang.String) throws org.springframework.transaction.TransactionSystemException
{
javax.naming.NamingException v;
org.springframework.jndi.JndiTemplate v;
org.springframework.transaction.TransactionSystemException v;
java.lang.Object v;
org.apache.commons.logging.Log v, v;
org.springframework.transaction.jta.JtaTransactionManager v;
java.lang.String v, v, v;
boolean v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: java.lang.String;
label:
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Retrieving JTA TransactionSynchronizationRegistry from JNDI location [\u]");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: org.springframework.jndi.JndiTemplate getJndiTemplate()>();
v = virtualinvoke v.<org.springframework.jndi.JndiTemplate: java.lang.Object lookup(java.lang.String,java.lang.Class)>(v, class "Ljavax/transaction/TransactionSynchronizationRegistry;");
label:
return v;
label:
v := @caughtexception;
v = new org.springframework.transaction.TransactionSystemException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("JTA TransactionSynchronizationRegistry is not available at JNDI location [\u]");
specialinvoke v.<org.springframework.transaction.TransactionSystemException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch javax.naming.NamingException from label to label with label;
}
protected javax.transaction.UserTransaction retrieveUserTransaction() throws org.springframework.transaction.TransactionSystemException
{
org.springframework.transaction.jta.JtaTransactionManager v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
return null;
}
protected javax.transaction.TransactionManager retrieveTransactionManager() throws org.springframework.transaction.TransactionSystemException
{
org.springframework.transaction.jta.JtaTransactionManager v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
return null;
}
protected javax.transaction.TransactionSynchronizationRegistry retrieveTransactionSynchronizationRegistry() throws org.springframework.transaction.TransactionSystemException
{
org.springframework.transaction.jta.JtaTransactionManager v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
return null;
}
protected javax.transaction.UserTransaction findUserTransaction()
{
javax.naming.NamingException v;
org.springframework.jndi.JndiTemplate v;
java.lang.Object v;
org.apache.commons.logging.Log v, v, v, v;
org.springframework.transaction.jta.JtaTransactionManager v;
java.lang.String v, v;
boolean v, v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
label:
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: org.springframework.jndi.JndiTemplate getJndiTemplate()>();
v = virtualinvoke v.<org.springframework.jndi.JndiTemplate: java.lang.Object lookup(java.lang.String,java.lang.Class)>("java:comp/UserTransaction", class "Ljavax/transaction/UserTransaction;");
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>("java:comp/UserTransaction") <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("JTA UserTransaction found at default JNDI location [\u]");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v.<org.springframework.transaction.jta.JtaTransactionManager: boolean userTransactionObtainedFromJndi> = 1;
label:
return v;
label:
v := @caughtexception;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>("java:comp/UserTransaction") <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("No JTA UserTransaction found at default JNDI location [\u]");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object,java.lang.Throwable)>(v, v);
label:
return null;
catch javax.naming.NamingException from label to label with label;
}
protected javax.transaction.TransactionManager findTransactionManager(javax.transaction.UserTransaction)
{
java.lang.String[] v;
javax.naming.NamingException v;
int v, v;
java.lang.String v, v, v, v;
boolean v, v, v, v;
javax.transaction.UserTransaction v;
org.springframework.jndi.JndiTemplate v;
java.lang.Object v;
org.apache.commons.logging.Log v, v, v, v, v, v;
org.springframework.transaction.jta.JtaTransactionManager v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: javax.transaction.UserTransaction;
v = v instanceof javax.transaction.TransactionManager;
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (javax.transaction.UserTransaction)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("JTA UserTransaction object [\u] implements TransactionManager");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
return v;
label:
v = <org.springframework.transaction.jta.JtaTransactionManager: java.lang.String[] FALLBACK_TRANSACTION_MANAGER_NAMES>;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
label:
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: org.springframework.jndi.JndiTemplate getJndiTemplate()>();
v = virtualinvoke v.<org.springframework.jndi.JndiTemplate: java.lang.Object lookup(java.lang.String,java.lang.Class)>(v, class "Ljavax/transaction/TransactionManager;");
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("JTA TransactionManager found at fallback JNDI location [\u]");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
return v;
label:
v := @caughtexception;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("No JTA TransactionManager found at fallback JNDI location [\u]");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object,java.lang.Throwable)>(v, v);
label:
v = v + 1;
goto label;
label:
return null;
catch javax.naming.NamingException from label to label with label;
}
protected javax.transaction.TransactionSynchronizationRegistry findTransactionSynchronizationRegistry(javax.transaction.UserTransaction, javax.transaction.TransactionManager) throws org.springframework.transaction.TransactionSystemException
{
javax.naming.NamingException v;
java.lang.String v, v;
boolean v, v, v, v, v;
javax.transaction.UserTransaction v;
org.springframework.jndi.JndiTemplate v;
java.lang.Object v;
org.apache.commons.logging.Log v, v, v, v;
org.springframework.transaction.jta.JtaTransactionManager v;
javax.transaction.TransactionManager v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: javax.transaction.UserTransaction;
v := @parameter: javax.transaction.TransactionManager;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: boolean userTransactionObtainedFromJndi>;
if v == 0 goto label;
label:
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: org.springframework.jndi.JndiTemplate getJndiTemplate()>();
v = virtualinvoke v.<org.springframework.jndi.JndiTemplate: java.lang.Object lookup(java.lang.String,java.lang.Class)>("java:comp/TransactionSynchronizationRegistry", class "Ljavax/transaction/TransactionSynchronizationRegistry;");
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>("java:comp/TransactionSynchronizationRegistry") <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("JTA TransactionSynchronizationRegistry found at default JNDI location [\u]");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
return v;
label:
v := @caughtexception;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>("java:comp/TransactionSynchronizationRegistry") <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("No JTA TransactionSynchronizationRegistry found at default JNDI location [\u]");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object,java.lang.Throwable)>(v, v);
label:
v = v instanceof javax.transaction.TransactionSynchronizationRegistry;
if v == 0 goto label;
return v;
label:
v = v instanceof javax.transaction.TransactionSynchronizationRegistry;
if v == 0 goto label;
return v;
label:
return null;
catch javax.naming.NamingException from label to label with label;
}
protected java.lang.Object doGetTransaction()
{
org.springframework.transaction.jta.JtaTransactionObject v;
javax.transaction.UserTransaction v;
org.springframework.transaction.jta.JtaTransactionManager v;
java.lang.String v, v;
org.springframework.transaction.CannotCreateTransactionException v;
boolean v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.UserTransaction getUserTransaction()>();
if v != null goto label;
v = new org.springframework.transaction.CannotCreateTransactionException;
specialinvoke v.<org.springframework.transaction.CannotCreateTransactionException: void <init>(java.lang.String)>("No JTA UserTransaction available - programmatic PlatformTransactionManager.getTransaction usage not supported");
throw v;
label:
v = v.<org.springframework.transaction.jta.JtaTransactionManager: boolean cacheUserTransaction>;
if v != 0 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: java.lang.String userTransactionName>;
if v == null goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: java.lang.String userTransactionName>;
goto label;
label:
v = "java:comp/UserTransaction";
label:
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.UserTransaction lookupUserTransaction(java.lang.String)>(v);
label:
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: org.springframework.transaction.jta.JtaTransactionObject doGetJtaTransaction(javax.transaction.UserTransaction)>(v);
return v;
}
protected org.springframework.transaction.jta.JtaTransactionObject doGetJtaTransaction(javax.transaction.UserTransaction)
{
org.springframework.transaction.jta.JtaTransactionManager v;
org.springframework.transaction.jta.JtaTransactionObject v;
javax.transaction.UserTransaction v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: javax.transaction.UserTransaction;
v = new org.springframework.transaction.jta.JtaTransactionObject;
specialinvoke v.<org.springframework.transaction.jta.JtaTransactionObject: void <init>(javax.transaction.UserTransaction)>(v);
return v;
}
protected boolean isExistingTransaction(java.lang.Object)
{
org.springframework.transaction.TransactionSystemException v;
javax.transaction.SystemException v;
javax.transaction.UserTransaction v;
int v;
java.lang.Object v;
org.springframework.transaction.jta.JtaTransactionManager v;
boolean v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: java.lang.Object;
label:
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionObject: javax.transaction.UserTransaction getUserTransaction()>();
v = interfaceinvoke v.<javax.transaction.UserTransaction: int getStatus()>();
if v == 6 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
v := @caughtexception;
v = new org.springframework.transaction.TransactionSystemException;
specialinvoke v.<org.springframework.transaction.TransactionSystemException: void <init>(java.lang.String,java.lang.Throwable)>("JTA failure on getStatus", v);
throw v;
catch javax.transaction.SystemException from label to label with label;
}
protected boolean useSavepointForNestedTransaction()
{
org.springframework.transaction.jta.JtaTransactionManager v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
return 0;
}
protected void doBegin(java.lang.Object, org.springframework.transaction.TransactionDefinition)
{
java.lang.UnsupportedOperationException v;
org.springframework.transaction.TransactionDefinition v;
javax.transaction.NotSupportedException v;
javax.transaction.SystemException v;
org.springframework.transaction.NestedTransactionNotSupportedException v, v;
java.lang.Object v;
org.springframework.transaction.jta.JtaTransactionManager v;
org.springframework.transaction.CannotCreateTransactionException v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: java.lang.Object;
v := @parameter: org.springframework.transaction.TransactionDefinition;
label:
virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: void doJtaBegin(org.springframework.transaction.jta.JtaTransactionObject,org.springframework.transaction.TransactionDefinition)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = new org.springframework.transaction.NestedTransactionNotSupportedException;
specialinvoke v.<org.springframework.transaction.NestedTransactionNotSupportedException: void <init>(java.lang.String,java.lang.Throwable)>("JTA implementation does not support nested transactions", v);
throw v;
label:
v := @caughtexception;
v = new org.springframework.transaction.NestedTransactionNotSupportedException;
specialinvoke v.<org.springframework.transaction.NestedTransactionNotSupportedException: void <init>(java.lang.String,java.lang.Throwable)>("JTA implementation does not support nested transactions", v);
throw v;
label:
v := @caughtexception;
v = new org.springframework.transaction.CannotCreateTransactionException;
specialinvoke v.<org.springframework.transaction.CannotCreateTransactionException: void <init>(java.lang.String,java.lang.Throwable)>("JTA failure on begin", v);
throw v;
label:
return;
catch javax.transaction.NotSupportedException from label to label with label;
catch java.lang.UnsupportedOperationException from label to label with label;
catch javax.transaction.SystemException from label to label with label;
}
protected void doJtaBegin(org.springframework.transaction.jta.JtaTransactionObject, org.springframework.transaction.TransactionDefinition) throws javax.transaction.NotSupportedException, javax.transaction.SystemException
{
org.springframework.transaction.TransactionDefinition v;
org.springframework.transaction.jta.JtaTransactionObject v;
javax.transaction.UserTransaction v;
int v, v;
org.springframework.transaction.jta.JtaTransactionManager v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: org.springframework.transaction.jta.JtaTransactionObject;
v := @parameter: org.springframework.transaction.TransactionDefinition;
v = interfaceinvoke v.<org.springframework.transaction.TransactionDefinition: int getIsolationLevel()>();
virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: void applyIsolationLevel(org.springframework.transaction.jta.JtaTransactionObject,int)>(v, v);
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: int determineTimeout(org.springframework.transaction.TransactionDefinition)>(v);
virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: void applyTimeout(org.springframework.transaction.jta.JtaTransactionObject,int)>(v, v);
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionObject: javax.transaction.UserTransaction getUserTransaction()>();
interfaceinvoke v.<javax.transaction.UserTransaction: void begin()>();
return;
}
protected void applyIsolationLevel(org.springframework.transaction.jta.JtaTransactionObject, int) throws org.springframework.transaction.InvalidIsolationLevelException, javax.transaction.SystemException
{
org.springframework.transaction.jta.JtaTransactionObject v;
int v, v;
org.springframework.transaction.jta.JtaTransactionManager v;
org.springframework.transaction.InvalidIsolationLevelException v;
boolean v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: org.springframework.transaction.jta.JtaTransactionObject;
v := @parameter: int;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: boolean allowCustomIsolationLevels>;
if v != 0 goto label;
v = (int) -1;
if v == v goto label;
v = new org.springframework.transaction.InvalidIsolationLevelException;
specialinvoke v.<org.springframework.transaction.InvalidIsolationLevelException: void <init>(java.lang.String)>("JtaTransactionManager does not support custom isolation levels by default - switch \'allowCustomIsolationLevels\' to \'true\'");
throw v;
label:
return;
}
protected void applyTimeout(org.springframework.transaction.jta.JtaTransactionObject, int) throws javax.transaction.SystemException
{
org.springframework.transaction.jta.JtaTransactionObject v;
javax.transaction.UserTransaction v;
int v, v;
org.springframework.transaction.jta.JtaTransactionManager v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: org.springframework.transaction.jta.JtaTransactionObject;
v := @parameter: int;
v = (int) -1;
if v <= v goto label;
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionObject: javax.transaction.UserTransaction getUserTransaction()>();
interfaceinvoke v.<javax.transaction.UserTransaction: void setTransactionTimeout(int)>(v);
if v <= 0 goto label;
v.<org.springframework.transaction.jta.JtaTransactionObject: boolean resetTransactionTimeout> = 1;
label:
return;
}
protected java.lang.Object doSuspend(java.lang.Object)
{
org.springframework.transaction.TransactionSystemException v;
javax.transaction.SystemException v;
java.lang.Object v, v;
org.springframework.transaction.jta.JtaTransactionManager v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: java.lang.Object;
label:
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: java.lang.Object doJtaSuspend(org.springframework.transaction.jta.JtaTransactionObject)>(v);
label:
return v;
label:
v := @caughtexception;
v = new org.springframework.transaction.TransactionSystemException;
specialinvoke v.<org.springframework.transaction.TransactionSystemException: void <init>(java.lang.String,java.lang.Throwable)>("JTA failure on suspend", v);
throw v;
catch javax.transaction.SystemException from label to label with label;
}
protected java.lang.Object doJtaSuspend(org.springframework.transaction.jta.JtaTransactionObject) throws javax.transaction.SystemException
{
javax.transaction.Transaction v;
org.springframework.transaction.TransactionSuspensionNotSupportedException v;
org.springframework.transaction.jta.JtaTransactionObject v;
org.springframework.transaction.jta.JtaTransactionManager v;
javax.transaction.TransactionManager v, v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: org.springframework.transaction.jta.JtaTransactionObject;
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager getTransactionManager()>();
if v != null goto label;
v = new org.springframework.transaction.TransactionSuspensionNotSupportedException;
specialinvoke v.<org.springframework.transaction.TransactionSuspensionNotSupportedException: void <init>(java.lang.String)>("JtaTransactionManager needs a JTA TransactionManager for suspending a transaction: specify the \'transactionManager\' or \'transactionManagerName\' property");
throw v;
label:
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager getTransactionManager()>();
v = interfaceinvoke v.<javax.transaction.TransactionManager: javax.transaction.Transaction suspend()>();
return v;
}
protected void doResume(java.lang.Object, java.lang.Object)
{
java.lang.IllegalStateException v;
javax.transaction.InvalidTransactionException v;
org.springframework.transaction.IllegalTransactionStateException v;
org.springframework.transaction.TransactionSystemException v, v;
javax.transaction.SystemException v;
java.lang.Object v, v;
org.springframework.transaction.jta.JtaTransactionManager v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
label:
virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: void doJtaResume(org.springframework.transaction.jta.JtaTransactionObject,java.lang.Object)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = new org.springframework.transaction.IllegalTransactionStateException;
specialinvoke v.<org.springframework.transaction.IllegalTransactionStateException: void <init>(java.lang.String,java.lang.Throwable)>("Tried to resume invalid JTA transaction", v);
throw v;
label:
v := @caughtexception;
v = new org.springframework.transaction.TransactionSystemException;
specialinvoke v.<org.springframework.transaction.TransactionSystemException: void <init>(java.lang.String,java.lang.Throwable)>("Unexpected internal transaction state", v);
throw v;
label:
v := @caughtexception;
v = new org.springframework.transaction.TransactionSystemException;
specialinvoke v.<org.springframework.transaction.TransactionSystemException: void <init>(java.lang.String,java.lang.Throwable)>("JTA failure on resume", v);
throw v;
label:
return;
catch javax.transaction.InvalidTransactionException from label to label with label;
catch java.lang.IllegalStateException from label to label with label;
catch javax.transaction.SystemException from label to label with label;
}
protected void doJtaResume(org.springframework.transaction.jta.JtaTransactionObject, java.lang.Object) throws javax.transaction.InvalidTransactionException, javax.transaction.SystemException
{
org.springframework.transaction.TransactionSuspensionNotSupportedException v;
org.springframework.transaction.jta.JtaTransactionObject v;
java.lang.Object v;
org.springframework.transaction.jta.JtaTransactionManager v;
javax.transaction.TransactionManager v, v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: org.springframework.transaction.jta.JtaTransactionObject;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager getTransactionManager()>();
if v != null goto label;
v = new org.springframework.transaction.TransactionSuspensionNotSupportedException;
specialinvoke v.<org.springframework.transaction.TransactionSuspensionNotSupportedException: void <init>(java.lang.String)>("JtaTransactionManager needs a JTA TransactionManager for suspending a transaction: specify the \'transactionManager\' or \'transactionManagerName\' property");
throw v;
label:
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager getTransactionManager()>();
interfaceinvoke v.<javax.transaction.TransactionManager: void resume(javax.transaction.Transaction)>(v);
return;
}
protected boolean shouldCommitOnGlobalRollbackOnly()
{
org.springframework.transaction.jta.JtaTransactionManager v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
return 1;
}
protected void doCommit(org.springframework.transaction.support.DefaultTransactionStatus)
{
java.lang.IllegalStateException v, v;
org.springframework.transaction.TransactionSystemException v, v;
javax.transaction.RollbackException v;
int v;
java.lang.String v;
org.springframework.transaction.support.DefaultTransactionStatus v;
boolean v;
org.springframework.transaction.HeuristicCompletionException v, v;
javax.transaction.HeuristicRollbackException v;
javax.transaction.UserTransaction v, v, v;
org.springframework.transaction.UnexpectedRollbackException v, v, v;
javax.transaction.SystemException v;
java.lang.Object v;
javax.transaction.HeuristicMixedException v;
org.apache.commons.logging.Log v, v;
org.springframework.transaction.jta.JtaTransactionManager v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: org.springframework.transaction.support.DefaultTransactionStatus;
v = virtualinvoke v.<org.springframework.transaction.support.DefaultTransactionStatus: java.lang.Object getTransaction()>();
label:
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionObject: javax.transaction.UserTransaction getUserTransaction()>();
v = interfaceinvoke v.<javax.transaction.UserTransaction: int getStatus()>();
if v != 6 goto label;
v = new org.springframework.transaction.UnexpectedRollbackException;
specialinvoke v.<org.springframework.transaction.UnexpectedRollbackException: void <init>(java.lang.String)>("JTA transaction already completed - probably rolled back");
throw v;
label:
if v != 4 goto label;
label:
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionObject: javax.transaction.UserTransaction getUserTransaction()>();
interfaceinvoke v.<javax.transaction.UserTransaction: void rollback()>();
label:
goto label;
label:
v := @caughtexception;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.IllegalStateException)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Rollback failure with transaction already marked as rolled back: \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = new org.springframework.transaction.UnexpectedRollbackException;
specialinvoke v.<org.springframework.transaction.UnexpectedRollbackException: void <init>(java.lang.String)>("JTA transaction already rolled back (probably due to a timeout)");
throw v;
label:
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionObject: javax.transaction.UserTransaction getUserTransaction()>();
interfaceinvoke v.<javax.transaction.UserTransaction: void commit()>();
label:
goto label;
label:
v := @caughtexception;
v = new org.springframework.transaction.UnexpectedRollbackException;
specialinvoke v.<org.springframework.transaction.UnexpectedRollbackException: void <init>(java.lang.String,java.lang.Throwable)>("JTA transaction unexpectedly rolled back (maybe due to a timeout)", v);
throw v;
label:
v := @caughtexception;
v = new org.springframework.transaction.HeuristicCompletionException;
specialinvoke v.<org.springframework.transaction.HeuristicCompletionException: void <init>(int,java.lang.Throwable)>(3, v);
throw v;
label:
v := @caughtexception;
v = new org.springframework.transaction.HeuristicCompletionException;
specialinvoke v.<org.springframework.transaction.HeuristicCompletionException: void <init>(int,java.lang.Throwable)>(2, v);
throw v;
label:
v := @caughtexception;
v = new org.springframework.transaction.TransactionSystemException;
specialinvoke v.<org.springframework.transaction.TransactionSystemException: void <init>(java.lang.String,java.lang.Throwable)>("Unexpected internal transaction state", v);
throw v;
label:
v := @caughtexception;
v = new org.springframework.transaction.TransactionSystemException;
specialinvoke v.<org.springframework.transaction.TransactionSystemException: void <init>(java.lang.String,java.lang.Throwable)>("JTA failure on commit", v);
throw v;
label:
return;
catch java.lang.IllegalStateException from label to label with label;
catch javax.transaction.RollbackException from label to label with label;
catch javax.transaction.HeuristicMixedException from label to label with label;
catch javax.transaction.HeuristicRollbackException from label to label with label;
catch java.lang.IllegalStateException from label to label with label;
catch javax.transaction.SystemException from label to label with label;
}
protected void doRollback(org.springframework.transaction.support.DefaultTransactionStatus)
{
java.lang.IllegalStateException v;
javax.transaction.UserTransaction v, v;
org.springframework.transaction.TransactionSystemException v, v;
javax.transaction.SystemException v;
int v;
java.lang.Object v;
org.apache.commons.logging.Log v, v;
org.springframework.transaction.jta.JtaTransactionManager v;
java.lang.String v;
org.springframework.transaction.support.DefaultTransactionStatus v;
boolean v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: org.springframework.transaction.support.DefaultTransactionStatus;
v = virtualinvoke v.<org.springframework.transaction.support.DefaultTransactionStatus: java.lang.Object getTransaction()>();
label:
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionObject: javax.transaction.UserTransaction getUserTransaction()>();
v = interfaceinvoke v.<javax.transaction.UserTransaction: int getStatus()>();
if v == 6 goto label;
label:
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionObject: javax.transaction.UserTransaction getUserTransaction()>();
interfaceinvoke v.<javax.transaction.UserTransaction: void rollback()>();
label:
goto label;
label:
v := @caughtexception;
if v != 4 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.IllegalStateException)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Rollback failure with transaction already marked as rolled back: \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
goto label;
label:
v = new org.springframework.transaction.TransactionSystemException;
specialinvoke v.<org.springframework.transaction.TransactionSystemException: void <init>(java.lang.String,java.lang.Throwable)>("Unexpected internal transaction state", v);
throw v;
label:
v := @caughtexception;
v = new org.springframework.transaction.TransactionSystemException;
specialinvoke v.<org.springframework.transaction.TransactionSystemException: void <init>(java.lang.String,java.lang.Throwable)>("JTA failure on rollback", v);
throw v;
label:
return;
catch java.lang.IllegalStateException from label to label with label;
catch javax.transaction.SystemException from label to label with label;
}
protected void doSetRollbackOnly(org.springframework.transaction.support.DefaultTransactionStatus)
{
java.lang.IllegalStateException v;
javax.transaction.UserTransaction v, v;
org.springframework.transaction.TransactionSystemException v, v;
javax.transaction.SystemException v;
int v;
java.lang.Object v;
org.apache.commons.logging.Log v;
org.springframework.transaction.jta.JtaTransactionManager v;
org.springframework.transaction.support.DefaultTransactionStatus v;
boolean v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: org.springframework.transaction.support.DefaultTransactionStatus;
v = virtualinvoke v.<org.springframework.transaction.support.DefaultTransactionStatus: java.lang.Object getTransaction()>();
v = virtualinvoke v.<org.springframework.transaction.support.DefaultTransactionStatus: boolean isDebug()>();
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>("Setting JTA transaction rollback-only");
label:
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionObject: javax.transaction.UserTransaction getUserTransaction()>();
v = interfaceinvoke v.<javax.transaction.UserTransaction: int getStatus()>();
if v == 6 goto label;
if v == 4 goto label;
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionObject: javax.transaction.UserTransaction getUserTransaction()>();
interfaceinvoke v.<javax.transaction.UserTransaction: void setRollbackOnly()>();
label:
goto label;
label:
v := @caughtexception;
v = new org.springframework.transaction.TransactionSystemException;
specialinvoke v.<org.springframework.transaction.TransactionSystemException: void <init>(java.lang.String,java.lang.Throwable)>("Unexpected internal transaction state", v);
throw v;
label:
v := @caughtexception;
v = new org.springframework.transaction.TransactionSystemException;
specialinvoke v.<org.springframework.transaction.TransactionSystemException: void <init>(java.lang.String,java.lang.Throwable)>("JTA failure on setRollbackOnly", v);
throw v;
label:
return;
catch java.lang.IllegalStateException from label to label with label;
catch javax.transaction.SystemException from label to label with label;
}
protected void registerAfterCompletionWithExistingTransaction(java.lang.Object, java.util.List)
{
java.lang.Throwable v;
java.lang.Exception v;
java.util.List v;
org.springframework.transaction.TransactionSystemException v;
javax.transaction.SystemException v;
java.lang.Object v;
org.apache.commons.logging.Log v, v, v;
org.springframework.transaction.jta.JtaTransactionManager v;
java.lang.String v, v;
boolean v, v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: java.lang.Object;
v := @parameter: java.util.List;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>("Registering after-completion synchronization with existing JTA transaction");
label:
virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: void doRegisterAfterCompletionWithJtaTransaction(org.springframework.transaction.jta.JtaTransactionObject,java.util.List)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = new org.springframework.transaction.TransactionSystemException;
specialinvoke v.<org.springframework.transaction.TransactionSystemException: void <init>(java.lang.String,java.lang.Throwable)>("JTA failure on registerSynchronization", v);
throw v;
label:
v := @caughtexception;
v = v instanceof javax.transaction.RollbackException;
if v != 0 goto label;
v = virtualinvoke v.<java.lang.Exception: java.lang.Throwable getCause()>();
v = v instanceof javax.transaction.RollbackException;
if v == 0 goto label;
label:
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Exception)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Participating in existing JTA transaction that has been marked for rollback: cannot register Spring after-completion callbacks with outer JTA transaction - immediately performing Spring after-completion callbacks with outcome status \'rollback\'. Original exception: \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: void invokeAfterCompletion(java.util.List,int)>(v, 1);
goto label;
label:
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Exception)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Participating in existing JTA transaction, but unexpected internal transaction state encountered: cannot register Spring after-completion callbacks with outer JTA transaction - processing Spring after-completion callbacks with outcome status \'unknown\'Original exception: \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: void invokeAfterCompletion(java.util.List,int)>(v, 2);
label:
return;
catch javax.transaction.SystemException from label to label with label;
catch java.lang.Exception from label to label with label;
}
protected void doRegisterAfterCompletionWithJtaTransaction(org.springframework.transaction.jta.JtaTransactionObject, java.util.List) throws javax.transaction.RollbackException, javax.transaction.SystemException
{
java.lang.IllegalStateException v;
org.springframework.transaction.jta.JtaAfterCompletionSynchronization v, v;
javax.transaction.RollbackException v, v;
org.springframework.transaction.jta.JtaTransactionObject v;
int v;
javax.transaction.Transaction v;
javax.transaction.UserTransaction v;
javax.transaction.TransactionSynchronizationRegistry v, v;
java.util.List v;
org.apache.commons.logging.Log v;
org.springframework.transaction.jta.JtaTransactionManager v;
javax.transaction.TransactionManager v, v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: org.springframework.transaction.jta.JtaTransactionObject;
v := @parameter: java.util.List;
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionObject: javax.transaction.UserTransaction getUserTransaction()>();
v = interfaceinvoke v.<javax.transaction.UserTransaction: int getStatus()>();
if v != 6 goto label;
v = new javax.transaction.RollbackException;
specialinvoke v.<javax.transaction.RollbackException: void <init>(java.lang.String)>("JTA transaction already completed - probably rolled back");
throw v;
label:
if v != 4 goto label;
v = new javax.transaction.RollbackException;
specialinvoke v.<javax.transaction.RollbackException: void <init>(java.lang.String)>("JTA transaction already rolled back (probably due to a timeout)");
throw v;
label:
v = v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionSynchronizationRegistry transactionSynchronizationRegistry>;
if v == null goto label;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionSynchronizationRegistry transactionSynchronizationRegistry>;
v = new org.springframework.transaction.jta.JtaAfterCompletionSynchronization;
specialinvoke v.<org.springframework.transaction.jta.JtaAfterCompletionSynchronization: void <init>(java.util.List)>(v);
interfaceinvoke v.<javax.transaction.TransactionSynchronizationRegistry: void registerInterposedSynchronization(javax.transaction.Synchronization)>(v);
goto label;
label:
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager getTransactionManager()>();
if v == null goto label;
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager getTransactionManager()>();
v = interfaceinvoke v.<javax.transaction.TransactionManager: javax.transaction.Transaction getTransaction()>();
if v != null goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("No JTA Transaction available");
throw v;
label:
v = new org.springframework.transaction.jta.JtaAfterCompletionSynchronization;
specialinvoke v.<org.springframework.transaction.jta.JtaAfterCompletionSynchronization: void <init>(java.util.List)>(v);
interfaceinvoke v.<javax.transaction.Transaction: void registerSynchronization(javax.transaction.Synchronization)>(v);
goto label;
label:
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
interfaceinvoke v.<org.apache.commons.logging.Log: void warn(java.lang.Object)>("Participating in existing JTA transaction, but no JTA TransactionManager available: cannot register Spring after-completion callbacks with outer JTA transaction - processing Spring after-completion callbacks with outcome status \'unknown\'");
virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: void invokeAfterCompletion(java.util.List,int)>(v, 2);
label:
return;
}
protected void doCleanupAfterCompletion(java.lang.Object)
{
javax.transaction.SystemException v;
javax.transaction.UserTransaction v;
java.lang.Object v;
org.apache.commons.logging.Log v;
org.springframework.transaction.jta.JtaTransactionManager v;
boolean v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: java.lang.Object;
v = v.<org.springframework.transaction.jta.JtaTransactionObject: boolean resetTransactionTimeout>;
if v == 0 goto label;
label:
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionObject: javax.transaction.UserTransaction getUserTransaction()>();
interfaceinvoke v.<javax.transaction.UserTransaction: void setTransactionTimeout(int)>(0);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.springframework.transaction.jta.JtaTransactionManager: org.apache.commons.logging.Log logger>;
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object,java.lang.Throwable)>("Failed to reset transaction timeout after JTA completion", v);
label:
return;
catch javax.transaction.SystemException from label to label with label;
}
public javax.transaction.Transaction createTransaction(java.lang.String, int) throws javax.transaction.NotSupportedException, javax.transaction.SystemException
{
org.springframework.transaction.jta.ManagedTransactionAdapter v;
int v;
org.springframework.transaction.jta.JtaTransactionManager v;
java.lang.String v;
javax.transaction.TransactionManager v;
boolean v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: java.lang.String;
v := @parameter: int;
v = virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: javax.transaction.TransactionManager getTransactionManager()>();
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <org.springframework.util.Assert: void state(boolean,java.lang.String)>(v, "No JTA TransactionManager available");
if v < 0 goto label;
interfaceinvoke v.<javax.transaction.TransactionManager: void setTransactionTimeout(int)>(v);
label:
interfaceinvoke v.<javax.transaction.TransactionManager: void begin()>();
v = new org.springframework.transaction.jta.ManagedTransactionAdapter;
specialinvoke v.<org.springframework.transaction.jta.ManagedTransactionAdapter: void <init>(javax.transaction.TransactionManager)>(v);
return v;
}
public boolean supportsResourceAdapterManagedTransactions()
{
org.springframework.transaction.jta.JtaTransactionManager v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
return 0;
}
private void readObject(java.io.ObjectInputStream) throws java.io.IOException, java.lang.ClassNotFoundException
{
java.io.ObjectInputStream v;
org.springframework.transaction.jta.JtaTransactionManager v;
org.springframework.jndi.JndiTemplate v;
v := @this: org.springframework.transaction.jta.JtaTransactionManager;
v := @parameter: java.io.ObjectInputStream;
virtualinvoke v.<java.io.ObjectInputStream: void defaultReadObject()>();
v = new org.springframework.jndi.JndiTemplate;
specialinvoke v.<org.springframework.jndi.JndiTemplate: void <init>()>();
v.<org.springframework.transaction.jta.JtaTransactionManager: org.springframework.jndi.JndiTemplate jndiTemplate> = v;
virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: void initUserTransactionAndTransactionManager()>();
virtualinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: void initTransactionSynchronizationRegistry()>();
return;
}
static void <clinit>()
{
java.lang.String[] v;
v = newarray (java.lang.String)[4];
v[0] = "java:comp/TransactionManager";
v[1] = "java:appserver/TransactionManager";
v[2] = "java:pm/TransactionManager";
v[3] = "java:/TransactionManager";
<org.springframework.transaction.jta.JtaTransactionManager: java.lang.String[] FALLBACK_TRANSACTION_MANAGER_NAMES> = v;
return;
}
}