public class org.springframework.jca.cci.connection.CciLocalTransactionManager extends org.springframework.transaction.support.AbstractPlatformTransactionManager implements org.springframework.transaction.support.ResourceTransactionManager, org.springframework.beans.factory.InitializingBean
{
private javax.resource.cci.ConnectionFactory connectionFactory;
public void <init>()
{
org.springframework.jca.cci.connection.CciLocalTransactionManager v;
v := @this: org.springframework.jca.cci.connection.CciLocalTransactionManager;
specialinvoke v.<org.springframework.transaction.support.AbstractPlatformTransactionManager: void <init>()>();
return;
}
public void <init>(javax.resource.cci.ConnectionFactory)
{
org.springframework.jca.cci.connection.CciLocalTransactionManager v;
javax.resource.cci.ConnectionFactory v;
v := @this: org.springframework.jca.cci.connection.CciLocalTransactionManager;
v := @parameter: javax.resource.cci.ConnectionFactory;
specialinvoke v.<org.springframework.transaction.support.AbstractPlatformTransactionManager: void <init>()>();
virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager: void setConnectionFactory(javax.resource.cci.ConnectionFactory)>(v);
virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager: void afterPropertiesSet()>();
return;
}
public void setConnectionFactory(javax.resource.cci.ConnectionFactory)
{
org.springframework.jca.cci.connection.CciLocalTransactionManager v;
javax.resource.cci.ConnectionFactory v, v;
boolean v;
v := @this: org.springframework.jca.cci.connection.CciLocalTransactionManager;
v := @parameter: javax.resource.cci.ConnectionFactory;
v = v instanceof org.springframework.jca.cci.connection.TransactionAwareConnectionFactoryProxy;
if v == 0 goto label;
v = virtualinvoke v.<org.springframework.jca.cci.connection.TransactionAwareConnectionFactoryProxy: javax.resource.cci.ConnectionFactory getTargetConnectionFactory()>();
v.<org.springframework.jca.cci.connection.CciLocalTransactionManager: javax.resource.cci.ConnectionFactory connectionFactory> = v;
goto label;
label:
v.<org.springframework.jca.cci.connection.CciLocalTransactionManager: javax.resource.cci.ConnectionFactory connectionFactory> = v;
label:
return;
}
public javax.resource.cci.ConnectionFactory getConnectionFactory()
{
org.springframework.jca.cci.connection.CciLocalTransactionManager v;
javax.resource.cci.ConnectionFactory v;
v := @this: org.springframework.jca.cci.connection.CciLocalTransactionManager;
v = v.<org.springframework.jca.cci.connection.CciLocalTransactionManager: javax.resource.cci.ConnectionFactory connectionFactory>;
return v;
}
public void afterPropertiesSet()
{
org.springframework.jca.cci.connection.CciLocalTransactionManager v;
javax.resource.cci.ConnectionFactory v;
java.lang.IllegalArgumentException v;
v := @this: org.springframework.jca.cci.connection.CciLocalTransactionManager;
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager: javax.resource.cci.ConnectionFactory getConnectionFactory()>();
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Property \'connectionFactory\' is required");
throw v;
label:
return;
}
public java.lang.Object getResourceFactory()
{
org.springframework.jca.cci.connection.CciLocalTransactionManager v;
javax.resource.cci.ConnectionFactory v;
v := @this: org.springframework.jca.cci.connection.CciLocalTransactionManager;
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager: javax.resource.cci.ConnectionFactory getConnectionFactory()>();
return v;
}
protected java.lang.Object doGetTransaction()
{
org.springframework.jca.cci.connection.CciLocalTransactionManager v;
org.springframework.jca.cci.connection.CciLocalTransactionManager$CciLocalTransactionObject v;
java.lang.Object v;
javax.resource.cci.ConnectionFactory v;
v := @this: org.springframework.jca.cci.connection.CciLocalTransactionManager;
v = new org.springframework.jca.cci.connection.CciLocalTransactionManager$CciLocalTransactionObject;
specialinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager$CciLocalTransactionObject: void <init>()>();
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager: javax.resource.cci.ConnectionFactory getConnectionFactory()>();
v = staticinvoke <org.springframework.transaction.support.TransactionSynchronizationManager: java.lang.Object getResource(java.lang.Object)>(v);
virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager$CciLocalTransactionObject: void setConnectionHolder(org.springframework.jca.cci.connection.ConnectionHolder)>(v);
return v;
}
protected boolean isExistingTransaction(java.lang.Object)
{
org.springframework.jca.cci.connection.CciLocalTransactionManager v;
java.lang.Object v;
boolean v;
v := @this: org.springframework.jca.cci.connection.CciLocalTransactionManager;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager$CciLocalTransactionObject: boolean hasConnectionHolder()>();
return v;
}
protected void doBegin(java.lang.Object, org.springframework.transaction.TransactionDefinition)
{
java.lang.Throwable v, v, v;
org.springframework.transaction.TransactionDefinition v;
javax.resource.cci.ConnectionFactory v, v, v, v, v;
org.springframework.jca.cci.connection.CciLocalTransactionManager v;
org.springframework.jca.cci.connection.ConnectionHolder v, v, v, v;
org.springframework.transaction.TransactionSystemException v;
javax.resource.cci.LocalTransaction v;
int v, v;
java.lang.String v;
org.springframework.transaction.CannotCreateTransactionException v, v;
boolean v;
javax.resource.cci.Connection v;
java.lang.Object v;
org.apache.commons.logging.Log v, v;
v := @this: org.springframework.jca.cci.connection.CciLocalTransactionManager;
v := @parameter: java.lang.Object;
v := @parameter: org.springframework.transaction.TransactionDefinition;
v = null;
label:
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager: javax.resource.cci.ConnectionFactory getConnectionFactory()>();
v = interfaceinvoke v.<javax.resource.cci.ConnectionFactory: javax.resource.cci.Connection getConnection()>();
v = v.<org.springframework.jca.cci.connection.CciLocalTransactionManager: 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.jca.cci.connection.CciLocalTransactionManager: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (javax.resource.cci.Connection)>(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[])>("Acquired Connection [\u] for local CCI transaction");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = new org.springframework.jca.cci.connection.ConnectionHolder;
specialinvoke v.<org.springframework.jca.cci.connection.ConnectionHolder: void <init>(javax.resource.cci.Connection)>(v);
virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager$CciLocalTransactionObject: void setConnectionHolder(org.springframework.jca.cci.connection.ConnectionHolder)>(v);
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager$CciLocalTransactionObject: org.springframework.jca.cci.connection.ConnectionHolder getConnectionHolder()>();
virtualinvoke v.<org.springframework.jca.cci.connection.ConnectionHolder: void setSynchronizedWithTransaction(boolean)>(1);
v = interfaceinvoke v.<javax.resource.cci.Connection: javax.resource.cci.LocalTransaction getLocalTransaction()>();
interfaceinvoke v.<javax.resource.cci.LocalTransaction: void begin()>();
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager: int determineTimeout(org.springframework.transaction.TransactionDefinition)>(v);
v = (int) -1;
if v == v goto label;
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager$CciLocalTransactionObject: org.springframework.jca.cci.connection.ConnectionHolder getConnectionHolder()>();
virtualinvoke v.<org.springframework.jca.cci.connection.ConnectionHolder: void setTimeoutInSeconds(int)>(v);
label:
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager: javax.resource.cci.ConnectionFactory getConnectionFactory()>();
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager$CciLocalTransactionObject: org.springframework.jca.cci.connection.ConnectionHolder getConnectionHolder()>();
staticinvoke <org.springframework.transaction.support.TransactionSynchronizationManager: void bindResource(java.lang.Object,java.lang.Object)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager: javax.resource.cci.ConnectionFactory getConnectionFactory()>();
staticinvoke <org.springframework.jca.cci.connection.ConnectionFactoryUtils: void releaseConnection(javax.resource.cci.Connection,javax.resource.cci.ConnectionFactory)>(v, v);
v = new org.springframework.transaction.CannotCreateTransactionException;
specialinvoke v.<org.springframework.transaction.CannotCreateTransactionException: void <init>(java.lang.String,java.lang.Throwable)>("CCI Connection does not support local transactions", v);
throw v;
label:
v := @caughtexception;
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager: javax.resource.cci.ConnectionFactory getConnectionFactory()>();
staticinvoke <org.springframework.jca.cci.connection.ConnectionFactoryUtils: void releaseConnection(javax.resource.cci.Connection,javax.resource.cci.ConnectionFactory)>(v, v);
v = new org.springframework.transaction.CannotCreateTransactionException;
specialinvoke v.<org.springframework.transaction.CannotCreateTransactionException: void <init>(java.lang.String,java.lang.Throwable)>("Could not begin local CCI transaction", v);
throw v;
label:
v := @caughtexception;
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager: javax.resource.cci.ConnectionFactory getConnectionFactory()>();
staticinvoke <org.springframework.jca.cci.connection.ConnectionFactoryUtils: void releaseConnection(javax.resource.cci.Connection,javax.resource.cci.ConnectionFactory)>(v, v);
v = new org.springframework.transaction.TransactionSystemException;
specialinvoke v.<org.springframework.transaction.TransactionSystemException: void <init>(java.lang.String,java.lang.Throwable)>("Unexpected failure on begin of CCI local transaction", v);
throw v;
label:
return;
catch javax.resource.NotSupportedException from label to label with label;
catch javax.resource.spi.LocalTransactionException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
protected java.lang.Object doSuspend(java.lang.Object)
{
org.springframework.jca.cci.connection.CciLocalTransactionManager v;
java.lang.Object v, v;
javax.resource.cci.ConnectionFactory v;
v := @this: org.springframework.jca.cci.connection.CciLocalTransactionManager;
v := @parameter: java.lang.Object;
virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager$CciLocalTransactionObject: void setConnectionHolder(org.springframework.jca.cci.connection.ConnectionHolder)>(null);
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager: javax.resource.cci.ConnectionFactory getConnectionFactory()>();
v = staticinvoke <org.springframework.transaction.support.TransactionSynchronizationManager: java.lang.Object unbindResource(java.lang.Object)>(v);
return v;
}
protected void doResume(java.lang.Object, java.lang.Object)
{
org.springframework.jca.cci.connection.CciLocalTransactionManager v;
java.lang.Object v, v;
javax.resource.cci.ConnectionFactory v;
v := @this: org.springframework.jca.cci.connection.CciLocalTransactionManager;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager: javax.resource.cci.ConnectionFactory getConnectionFactory()>();
staticinvoke <org.springframework.transaction.support.TransactionSynchronizationManager: void bindResource(java.lang.Object,java.lang.Object)>(v, v);
return;
}
protected boolean isRollbackOnly(java.lang.Object) throws org.springframework.transaction.TransactionException
{
org.springframework.jca.cci.connection.CciLocalTransactionManager v;
org.springframework.jca.cci.connection.ConnectionHolder v;
java.lang.Object v;
boolean v;
v := @this: org.springframework.jca.cci.connection.CciLocalTransactionManager;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager$CciLocalTransactionObject: org.springframework.jca.cci.connection.ConnectionHolder getConnectionHolder()>();
v = virtualinvoke v.<org.springframework.jca.cci.connection.ConnectionHolder: boolean isRollbackOnly()>();
return v;
}
protected void doCommit(org.springframework.transaction.support.DefaultTransactionStatus)
{
java.lang.Throwable v, v;
javax.resource.cci.Connection v;
org.springframework.jca.cci.connection.CciLocalTransactionManager v;
org.springframework.jca.cci.connection.ConnectionHolder v;
org.springframework.transaction.TransactionSystemException v, v;
javax.resource.cci.LocalTransaction v;
java.lang.Object v;
org.apache.commons.logging.Log v;
java.lang.String v;
org.springframework.transaction.support.DefaultTransactionStatus v;
boolean v;
v := @this: org.springframework.jca.cci.connection.CciLocalTransactionManager;
v := @parameter: org.springframework.transaction.support.DefaultTransactionStatus;
v = virtualinvoke v.<org.springframework.transaction.support.DefaultTransactionStatus: java.lang.Object getTransaction()>();
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager$CciLocalTransactionObject: org.springframework.jca.cci.connection.ConnectionHolder getConnectionHolder()>();
v = virtualinvoke v.<org.springframework.jca.cci.connection.ConnectionHolder: javax.resource.cci.Connection getConnection()>();
v = virtualinvoke v.<org.springframework.transaction.support.DefaultTransactionStatus: boolean isDebug()>();
if v == 0 goto label;
v = v.<org.springframework.jca.cci.connection.CciLocalTransactionManager: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (javax.resource.cci.Connection)>(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[])>("Committing CCI local transaction on Connection [\u]");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = interfaceinvoke v.<javax.resource.cci.Connection: javax.resource.cci.LocalTransaction getLocalTransaction()>();
interfaceinvoke v.<javax.resource.cci.LocalTransaction: void commit()>();
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)>("Could not commit CCI local 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 failure on commit of CCI local transaction", v);
throw v;
label:
return;
catch javax.resource.spi.LocalTransactionException from label to label with label;
catch javax.resource.ResourceException from label to label with label;
}
protected void doRollback(org.springframework.transaction.support.DefaultTransactionStatus)
{
java.lang.Throwable v, v;
javax.resource.cci.Connection v;
org.springframework.jca.cci.connection.CciLocalTransactionManager v;
org.springframework.jca.cci.connection.ConnectionHolder v;
org.springframework.transaction.TransactionSystemException v, v;
javax.resource.cci.LocalTransaction v;
java.lang.Object v;
org.apache.commons.logging.Log v;
java.lang.String v;
org.springframework.transaction.support.DefaultTransactionStatus v;
boolean v;
v := @this: org.springframework.jca.cci.connection.CciLocalTransactionManager;
v := @parameter: org.springframework.transaction.support.DefaultTransactionStatus;
v = virtualinvoke v.<org.springframework.transaction.support.DefaultTransactionStatus: java.lang.Object getTransaction()>();
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager$CciLocalTransactionObject: org.springframework.jca.cci.connection.ConnectionHolder getConnectionHolder()>();
v = virtualinvoke v.<org.springframework.jca.cci.connection.ConnectionHolder: javax.resource.cci.Connection getConnection()>();
v = virtualinvoke v.<org.springframework.transaction.support.DefaultTransactionStatus: boolean isDebug()>();
if v == 0 goto label;
v = v.<org.springframework.jca.cci.connection.CciLocalTransactionManager: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (javax.resource.cci.Connection)>(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[])>("Rolling back CCI local transaction on Connection [\u]");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = interfaceinvoke v.<javax.resource.cci.Connection: javax.resource.cci.LocalTransaction getLocalTransaction()>();
interfaceinvoke v.<javax.resource.cci.LocalTransaction: void rollback()>();
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)>("Could not roll back CCI local 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 failure on rollback of CCI local transaction", v);
throw v;
label:
return;
catch javax.resource.spi.LocalTransactionException from label to label with label;
catch javax.resource.ResourceException from label to label with label;
}
protected void doSetRollbackOnly(org.springframework.transaction.support.DefaultTransactionStatus)
{
javax.resource.cci.Connection v;
org.springframework.jca.cci.connection.CciLocalTransactionManager v;
org.springframework.jca.cci.connection.ConnectionHolder v, v;
java.lang.Object v;
org.apache.commons.logging.Log v;
java.lang.String v;
org.springframework.transaction.support.DefaultTransactionStatus v;
boolean v;
v := @this: org.springframework.jca.cci.connection.CciLocalTransactionManager;
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.jca.cci.connection.CciLocalTransactionManager: org.apache.commons.logging.Log logger>;
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager$CciLocalTransactionObject: org.springframework.jca.cci.connection.ConnectionHolder getConnectionHolder()>();
v = virtualinvoke v.<org.springframework.jca.cci.connection.ConnectionHolder: javax.resource.cci.Connection getConnection()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (javax.resource.cci.Connection)>(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[])>("Setting CCI local transaction [\u] rollback-only");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager$CciLocalTransactionObject: org.springframework.jca.cci.connection.ConnectionHolder getConnectionHolder()>();
virtualinvoke v.<org.springframework.jca.cci.connection.ConnectionHolder: void setRollbackOnly()>();
return;
}
protected void doCleanupAfterCompletion(java.lang.Object)
{
javax.resource.cci.Connection v;
javax.resource.cci.ConnectionFactory v, v;
org.springframework.jca.cci.connection.CciLocalTransactionManager v;
org.springframework.jca.cci.connection.ConnectionHolder v, v;
java.lang.Object v;
org.apache.commons.logging.Log v, v;
java.lang.String v;
boolean v;
v := @this: org.springframework.jca.cci.connection.CciLocalTransactionManager;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager: javax.resource.cci.ConnectionFactory getConnectionFactory()>();
staticinvoke <org.springframework.transaction.support.TransactionSynchronizationManager: java.lang.Object unbindResource(java.lang.Object)>(v);
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager$CciLocalTransactionObject: org.springframework.jca.cci.connection.ConnectionHolder getConnectionHolder()>();
virtualinvoke v.<org.springframework.jca.cci.connection.ConnectionHolder: void clear()>();
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager$CciLocalTransactionObject: org.springframework.jca.cci.connection.ConnectionHolder getConnectionHolder()>();
v = virtualinvoke v.<org.springframework.jca.cci.connection.ConnectionHolder: javax.resource.cci.Connection getConnection()>();
v = v.<org.springframework.jca.cci.connection.CciLocalTransactionManager: 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.jca.cci.connection.CciLocalTransactionManager: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (javax.resource.cci.Connection)>(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[])>("Releasing CCI Connection [\u] after transaction");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = virtualinvoke v.<org.springframework.jca.cci.connection.CciLocalTransactionManager: javax.resource.cci.ConnectionFactory getConnectionFactory()>();
staticinvoke <org.springframework.jca.cci.connection.ConnectionFactoryUtils: void releaseConnection(javax.resource.cci.Connection,javax.resource.cci.ConnectionFactory)>(v, v);
return;
}
}