public class org.springframework.transaction.jta.WebSphereUowTransactionManager extends org.springframework.transaction.jta.JtaTransactionManager implements org.springframework.transaction.support.CallbackPreferringPlatformTransactionManager
{
public static final java.lang.String DEFAULT_UOW_MANAGER_NAME;
private com.ibm.wsspi.uow.UOWManager uowManager;
private java.lang.String uowManagerName;
public void <init>()
{
org.springframework.transaction.jta.WebSphereUowTransactionManager v;
v := @this: org.springframework.transaction.jta.WebSphereUowTransactionManager;
specialinvoke v.<org.springframework.transaction.jta.JtaTransactionManager: void <init>()>();
virtualinvoke v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: void setAutodetectTransactionManager(boolean)>(0);
return;
}
public void <init>(com.ibm.wsspi.uow.UOWManager)
{
com.ibm.wsspi.uow.UOWManager v;
org.springframework.transaction.jta.WebSphereUowTransactionManager v;
v := @this: org.springframework.transaction.jta.WebSphereUowTransactionManager;
v := @parameter: com.ibm.wsspi.uow.UOWManager;
specialinvoke v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: void <init>()>();
v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: com.ibm.wsspi.uow.UOWManager uowManager> = v;
return;
}
public void setUowManager(com.ibm.wsspi.uow.UOWManager)
{
com.ibm.wsspi.uow.UOWManager v;
org.springframework.transaction.jta.WebSphereUowTransactionManager v;
v := @this: org.springframework.transaction.jta.WebSphereUowTransactionManager;
v := @parameter: com.ibm.wsspi.uow.UOWManager;
v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: com.ibm.wsspi.uow.UOWManager uowManager> = v;
return;
}
public void setUowManagerName(java.lang.String)
{
java.lang.String v;
org.springframework.transaction.jta.WebSphereUowTransactionManager v;
v := @this: org.springframework.transaction.jta.WebSphereUowTransactionManager;
v := @parameter: java.lang.String;
v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: java.lang.String uowManagerName> = v;
return;
}
public void afterPropertiesSet() throws org.springframework.transaction.TransactionSystemException
{
com.ibm.wsspi.uow.UOWManager v, v, v;
org.springframework.transaction.jta.WebSphereUowTransactionManager v;
java.lang.String v, v;
v := @this: org.springframework.transaction.jta.WebSphereUowTransactionManager;
virtualinvoke v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: void initUserTransactionAndTransactionManager()>();
v = v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: com.ibm.wsspi.uow.UOWManager uowManager>;
if v != null goto label;
v = v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: java.lang.String uowManagerName>;
if v == null goto label;
v = v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: java.lang.String uowManagerName>;
v = virtualinvoke v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: com.ibm.wsspi.uow.UOWManager lookupUowManager(java.lang.String)>(v);
v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: com.ibm.wsspi.uow.UOWManager uowManager> = v;
goto label;
label:
v = virtualinvoke v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: com.ibm.wsspi.uow.UOWManager lookupDefaultUowManager()>();
v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: com.ibm.wsspi.uow.UOWManager uowManager> = v;
label:
return;
}
protected com.ibm.wsspi.uow.UOWManager lookupUowManager(java.lang.String) throws org.springframework.transaction.TransactionSystemException
{
javax.naming.NamingException v;
org.springframework.jndi.JndiTemplate v;
org.springframework.transaction.TransactionSystemException v;
org.springframework.transaction.jta.WebSphereUowTransactionManager v;
java.lang.Object v;
org.apache.commons.logging.Log v, v;
java.lang.String v, v, v;
boolean v;
v := @this: org.springframework.transaction.jta.WebSphereUowTransactionManager;
v := @parameter: java.lang.String;
label:
v = v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: 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.WebSphereUowTransactionManager: 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 WebSphere UOWManager 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.WebSphereUowTransactionManager: org.springframework.jndi.JndiTemplate getJndiTemplate()>();
v = virtualinvoke v.<org.springframework.jndi.JndiTemplate: java.lang.Object lookup(java.lang.String,java.lang.Class)>(v, class "Lcom/ibm/wsspi/uow/UOWManager;");
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[])>("WebSphere UOWManager 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 com.ibm.wsspi.uow.UOWManager lookupDefaultUowManager() throws org.springframework.transaction.TransactionSystemException
{
com.ibm.wsspi.uow.UOWManager v;
org.springframework.transaction.jta.WebSphereUowTransactionManager v;
java.lang.Object v;
org.apache.commons.logging.Log v, v;
javax.naming.NamingException v;
org.springframework.jndi.JndiTemplate v;
v := @this: org.springframework.transaction.jta.WebSphereUowTransactionManager;
label:
v = v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: org.apache.commons.logging.Log logger>;
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>("Retrieving WebSphere UOWManager from default JNDI location [java:comp/websphere/UOWManager]");
v = virtualinvoke v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: org.springframework.jndi.JndiTemplate getJndiTemplate()>();
v = virtualinvoke v.<org.springframework.jndi.JndiTemplate: java.lang.Object lookup(java.lang.String,java.lang.Class)>("java:comp/websphere/UOWManager", class "Lcom/ibm/wsspi/uow/UOWManager;");
label:
return v;
label:
v := @caughtexception;
v = v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: org.apache.commons.logging.Log logger>;
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>("WebSphere UOWManager is not available at default JNDI location [java:comp/websphere/UOWManager] - falling back to UOWManagerFactory lookup");
v = staticinvoke <com.ibm.wsspi.uow.UOWManagerFactory: com.ibm.wsspi.uow.UOWManager getUOWManager()>();
return v;
catch javax.naming.NamingException from label to label with label;
}
protected void doRegisterAfterCompletionWithJtaTransaction(org.springframework.transaction.jta.JtaTransactionObject, java.util.List)
{
java.util.List v;
org.springframework.transaction.jta.JtaAfterCompletionSynchronization v;
com.ibm.wsspi.uow.UOWManager v;
org.springframework.transaction.jta.JtaTransactionObject v;
org.springframework.transaction.jta.WebSphereUowTransactionManager v;
v := @this: org.springframework.transaction.jta.WebSphereUowTransactionManager;
v := @parameter: org.springframework.transaction.jta.JtaTransactionObject;
v := @parameter: java.util.List;
v = v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: com.ibm.wsspi.uow.UOWManager uowManager>;
v = new org.springframework.transaction.jta.JtaAfterCompletionSynchronization;
specialinvoke v.<org.springframework.transaction.jta.JtaAfterCompletionSynchronization: void <init>(java.util.List)>(v);
interfaceinvoke v.<com.ibm.wsspi.uow.UOWManager: void registerInterposedSynchronization(javax.transaction.Synchronization)>(v);
return;
}
public boolean supportsResourceAdapterManagedTransactions()
{
org.springframework.transaction.jta.WebSphereUowTransactionManager v;
v := @this: org.springframework.transaction.jta.WebSphereUowTransactionManager;
return 1;
}
public java.lang.Object execute(org.springframework.transaction.TransactionDefinition, org.springframework.transaction.support.TransactionCallback) throws org.springframework.transaction.TransactionException
{
org.springframework.transaction.TransactionSystemException v, v;
byte v;
org.springframework.transaction.jta.WebSphereUowTransactionManager v;
org.springframework.transaction.support.DefaultTransactionDefinition v;
boolean v, v, v, v, v, v, v, v, v, v, v, v;
org.springframework.transaction.support.AbstractPlatformTransactionManager$SuspendedResourcesHolder v, v;
org.springframework.transaction.jta.WebSphereUowTransactionManager$UOWActionAdapter v, v;
org.springframework.transaction.support.TransactionCallback v;
java.lang.Throwable v, v, v, v, v;
com.ibm.wsspi.uow.UOWManager v, v, v, v;
org.springframework.transaction.TransactionDefinition v, v;
org.springframework.transaction.IllegalTransactionStateException v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v;
org.springframework.transaction.InvalidTimeoutException v;
org.springframework.transaction.NestedTransactionNotSupportedException v;
java.lang.Object v;
org.apache.commons.logging.Log v, v, v, v, v, v;
v := @this: org.springframework.transaction.jta.WebSphereUowTransactionManager;
v := @parameter: org.springframework.transaction.TransactionDefinition;
v := @parameter: org.springframework.transaction.support.TransactionCallback;
if v != null goto label;
v = new org.springframework.transaction.support.DefaultTransactionDefinition;
specialinvoke v.<org.springframework.transaction.support.DefaultTransactionDefinition: void <init>()>();
v = v;
label:
v = interfaceinvoke v.<org.springframework.transaction.TransactionDefinition: int getTimeout()>();
v = (int) -1;
if v >= v goto label;
v = new org.springframework.transaction.InvalidTimeoutException;
v = interfaceinvoke v.<org.springframework.transaction.TransactionDefinition: int getTimeout()>();
specialinvoke v.<org.springframework.transaction.InvalidTimeoutException: void <init>(java.lang.String,int)>("Invalid transaction timeout", v);
throw v;
label:
v = interfaceinvoke v.<org.springframework.transaction.TransactionDefinition: int getPropagationBehavior()>();
v = v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: com.ibm.wsspi.uow.UOWManager uowManager>;
v = interfaceinvoke v.<com.ibm.wsspi.uow.UOWManager: int getUOWStatus()>();
if v == 5 goto label;
v = v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: com.ibm.wsspi.uow.UOWManager uowManager>;
v = interfaceinvoke v.<com.ibm.wsspi.uow.UOWManager: int getUOWType()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = 1;
v = 0;
if v == 0 goto label;
if v != 5 goto label;
v = new org.springframework.transaction.IllegalTransactionStateException;
specialinvoke v.<org.springframework.transaction.IllegalTransactionStateException: void <init>(java.lang.String)>("Transaction propagation \'never\' but existing transaction found");
throw v;
label:
if v != 6 goto label;
v = new org.springframework.transaction.NestedTransactionNotSupportedException;
specialinvoke v.<org.springframework.transaction.NestedTransactionNotSupportedException: void <init>(java.lang.String)>("Transaction propagation \'nested\' not supported for WebSphere UOW transactions");
throw v;
label:
if v == 1 goto label;
if v == 0 goto label;
if v != 2 goto label;
label:
v = 1;
v = virtualinvoke v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: int getTransactionSynchronization()>();
if v == 2 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
goto label;
label:
if v != 4 goto label;
v = 0;
v = virtualinvoke v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: int getTransactionSynchronization()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
goto label;
label:
v = virtualinvoke v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: int getTransactionSynchronization()>();
if v == 2 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
goto label;
label:
if v != 2 goto label;
v = new org.springframework.transaction.IllegalTransactionStateException;
specialinvoke v.<org.springframework.transaction.IllegalTransactionStateException: void <init>(java.lang.String)>("Transaction propagation \'mandatory\' but no existing transaction found");
throw v;
label:
if v == 1 goto label;
if v == 4 goto label;
if v != 5 goto label;
label:
v = 0;
v = virtualinvoke v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: int getTransactionSynchronization()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
goto label;
label:
v = virtualinvoke v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: int getTransactionSynchronization()>();
if v == 2 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
label:
v = v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: 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.WebSphereUowTransactionManager: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.springframework.transaction.TransactionDefinition: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,org.springframework.transaction.TransactionDefinition)>(v, 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[])>("Creating new transaction with name [\u]: \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
if v != 0 goto label;
v = virtualinvoke v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: org.springframework.transaction.support.AbstractPlatformTransactionManager$SuspendedResourcesHolder suspend(java.lang.Object)>(null);
goto label;
label:
v = null;
label:
v = v;
v = null;
label:
if v != 1 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
if v == 0 goto label;
v = interfaceinvoke v.<org.springframework.transaction.TransactionDefinition: int getTimeout()>();
v = (int) -1;
if v <= v goto label;
v = v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: com.ibm.wsspi.uow.UOWManager uowManager>;
v = interfaceinvoke v.<org.springframework.transaction.TransactionDefinition: int getTimeout()>();
interfaceinvoke v.<com.ibm.wsspi.uow.UOWManager: void setUOWTimeout(int,int)>(v, v);
label:
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (byte,boolean)>(v, 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[])>("Invoking WebSphere UOW action: type=\u, join=\u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = new org.springframework.transaction.jta.WebSphereUowTransactionManager$UOWActionAdapter;
v = v;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
specialinvoke v.<org.springframework.transaction.jta.WebSphereUowTransactionManager$UOWActionAdapter: void <init>(org.springframework.transaction.jta.WebSphereUowTransactionManager,org.springframework.transaction.TransactionDefinition,org.springframework.transaction.support.TransactionCallback,boolean,boolean,boolean,boolean)>(v, v, v, v, v, v, v);
v = v;
v = v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: com.ibm.wsspi.uow.UOWManager uowManager>;
interfaceinvoke v.<com.ibm.wsspi.uow.UOWManager: void runUnderUOW(int,boolean,com.ibm.wsspi.uow.UOWAction)>(v, v, v);
if v == 0 goto label;
v = v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (byte,boolean)>(v, 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[])>("Returned from WebSphere UOW action: type=\u, join=\u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = virtualinvoke v.<org.springframework.transaction.jta.WebSphereUowTransactionManager$UOWActionAdapter: java.lang.Object getResult()>();
label:
if v == null goto label;
virtualinvoke v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: void resume(java.lang.Object,org.springframework.transaction.support.AbstractPlatformTransactionManager$SuspendedResourcesHolder)>(null, 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)>("UOWManager transaction processing failed", v);
v = virtualinvoke v.<org.springframework.transaction.jta.WebSphereUowTransactionManager$UOWActionAdapter: java.lang.Throwable getException()>();
if v == null goto label;
v = v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: org.apache.commons.logging.Log logger>;
interfaceinvoke v.<org.apache.commons.logging.Log: void error(java.lang.Object,java.lang.Throwable)>("Application exception overridden by rollback exception", v);
virtualinvoke v.<org.springframework.transaction.TransactionSystemException: void initApplicationException(java.lang.Throwable)>(v);
label:
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)>("UOWManager transaction processing failed", v);
v = virtualinvoke v.<org.springframework.transaction.jta.WebSphereUowTransactionManager$UOWActionAdapter: java.lang.Throwable getException()>();
if v == null goto label;
v = v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: org.apache.commons.logging.Log logger>;
interfaceinvoke v.<org.apache.commons.logging.Log: void error(java.lang.Object,java.lang.Throwable)>("Application exception overridden by rollback exception", v);
virtualinvoke v.<org.springframework.transaction.TransactionSystemException: void initApplicationException(java.lang.Throwable)>(v);
label:
throw v;
label:
v := @caughtexception;
if v == null goto label;
virtualinvoke v.<org.springframework.transaction.jta.WebSphereUowTransactionManager: void resume(java.lang.Object,org.springframework.transaction.support.AbstractPlatformTransactionManager$SuspendedResourcesHolder)>(null, v);
label:
throw v;
catch com.ibm.wsspi.uow.UOWException from label to label with label;
catch com.ibm.wsspi.uow.UOWActionException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
}