public class org.springframework.jca.cci.connection.SingleConnectionFactory extends org.springframework.jca.cci.connection.DelegatingConnectionFactory implements org.springframework.beans.factory.DisposableBean
{
protected final org.apache.commons.logging.Log logger;
private javax.resource.cci.Connection target;
private javax.resource.cci.Connection connection;
private final java.lang.Object connectionMonitor;
public void <init>()
{
org.springframework.jca.cci.connection.SingleConnectionFactory v;
java.lang.Class v;
java.lang.Object v;
org.apache.commons.logging.Log v;
v := @this: org.springframework.jca.cci.connection.SingleConnectionFactory;
specialinvoke v.<org.springframework.jca.cci.connection.DelegatingConnectionFactory: void <init>()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.commons.logging.LogFactory: org.apache.commons.logging.Log getLog(java.lang.Class)>(v);
v.<org.springframework.jca.cci.connection.SingleConnectionFactory: org.apache.commons.logging.Log logger> = v;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.springframework.jca.cci.connection.SingleConnectionFactory: java.lang.Object connectionMonitor> = v;
return;
}
public void <init>(javax.resource.cci.Connection)
{
org.springframework.jca.cci.connection.SingleConnectionFactory v;
java.lang.Class v;
java.lang.Object v;
javax.resource.cci.Connection v, v;
org.apache.commons.logging.Log v;
v := @this: org.springframework.jca.cci.connection.SingleConnectionFactory;
v := @parameter: javax.resource.cci.Connection;
specialinvoke v.<org.springframework.jca.cci.connection.DelegatingConnectionFactory: void <init>()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.commons.logging.LogFactory: org.apache.commons.logging.Log getLog(java.lang.Class)>(v);
v.<org.springframework.jca.cci.connection.SingleConnectionFactory: org.apache.commons.logging.Log logger> = v;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.springframework.jca.cci.connection.SingleConnectionFactory: java.lang.Object connectionMonitor> = v;
staticinvoke <org.springframework.util.Assert: void notNull(java.lang.Object,java.lang.String)>(v, "Target Connection must not be null");
v.<org.springframework.jca.cci.connection.SingleConnectionFactory: javax.resource.cci.Connection target> = v;
v = virtualinvoke v.<org.springframework.jca.cci.connection.SingleConnectionFactory: javax.resource.cci.Connection getCloseSuppressingConnectionProxy(javax.resource.cci.Connection)>(v);
v.<org.springframework.jca.cci.connection.SingleConnectionFactory: javax.resource.cci.Connection connection> = v;
return;
}
public void <init>(javax.resource.cci.ConnectionFactory)
{
org.springframework.jca.cci.connection.SingleConnectionFactory v;
java.lang.Class v;
java.lang.Object v;
javax.resource.cci.ConnectionFactory v;
org.apache.commons.logging.Log v;
v := @this: org.springframework.jca.cci.connection.SingleConnectionFactory;
v := @parameter: javax.resource.cci.ConnectionFactory;
specialinvoke v.<org.springframework.jca.cci.connection.DelegatingConnectionFactory: void <init>()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.commons.logging.LogFactory: org.apache.commons.logging.Log getLog(java.lang.Class)>(v);
v.<org.springframework.jca.cci.connection.SingleConnectionFactory: org.apache.commons.logging.Log logger> = v;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.springframework.jca.cci.connection.SingleConnectionFactory: java.lang.Object connectionMonitor> = v;
staticinvoke <org.springframework.util.Assert: void notNull(java.lang.Object,java.lang.String)>(v, "Target ConnectionFactory must not be null");
virtualinvoke v.<org.springframework.jca.cci.connection.SingleConnectionFactory: void setTargetConnectionFactory(javax.resource.cci.ConnectionFactory)>(v);
return;
}
public void afterPropertiesSet()
{
org.springframework.jca.cci.connection.SingleConnectionFactory v;
javax.resource.cci.Connection v;
javax.resource.cci.ConnectionFactory v;
java.lang.IllegalArgumentException v;
v := @this: org.springframework.jca.cci.connection.SingleConnectionFactory;
v = v.<org.springframework.jca.cci.connection.SingleConnectionFactory: javax.resource.cci.Connection connection>;
if v != null goto label;
v = virtualinvoke v.<org.springframework.jca.cci.connection.SingleConnectionFactory: javax.resource.cci.ConnectionFactory getTargetConnectionFactory()>();
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Connection or \'targetConnectionFactory\' is required");
throw v;
label:
return;
}
public javax.resource.cci.Connection getConnection() throws javax.resource.ResourceException
{
java.lang.Throwable v;
org.springframework.jca.cci.connection.SingleConnectionFactory v;
java.lang.Object v;
javax.resource.cci.Connection v, v;
v := @this: org.springframework.jca.cci.connection.SingleConnectionFactory;
v = v.<org.springframework.jca.cci.connection.SingleConnectionFactory: java.lang.Object connectionMonitor>;
entermonitor v;
label:
v = v.<org.springframework.jca.cci.connection.SingleConnectionFactory: javax.resource.cci.Connection connection>;
if v != null goto label;
virtualinvoke v.<org.springframework.jca.cci.connection.SingleConnectionFactory: void initConnection()>();
label:
v = v.<org.springframework.jca.cci.connection.SingleConnectionFactory: javax.resource.cci.Connection connection>;
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
public javax.resource.cci.Connection getConnection(javax.resource.cci.ConnectionSpec) throws javax.resource.ResourceException
{
org.springframework.jca.cci.connection.SingleConnectionFactory v;
javax.resource.cci.ConnectionSpec v;
javax.resource.NotSupportedException v;
v := @this: org.springframework.jca.cci.connection.SingleConnectionFactory;
v := @parameter: javax.resource.cci.ConnectionSpec;
v = new javax.resource.NotSupportedException;
specialinvoke v.<javax.resource.NotSupportedException: void <init>(java.lang.String)>("SingleConnectionFactory does not support custom ConnectionSpec");
throw v;
}
public void destroy()
{
org.springframework.jca.cci.connection.SingleConnectionFactory v;
v := @this: org.springframework.jca.cci.connection.SingleConnectionFactory;
virtualinvoke v.<org.springframework.jca.cci.connection.SingleConnectionFactory: void resetConnection()>();
return;
}
public void initConnection() throws javax.resource.ResourceException
{
java.lang.Throwable v;
java.lang.IllegalStateException v;
javax.resource.cci.ConnectionFactory v;
java.lang.String v;
boolean v;
javax.resource.cci.Connection v, v, v, v, v, v, v;
org.springframework.jca.cci.connection.SingleConnectionFactory v;
java.lang.Object v;
org.apache.commons.logging.Log v, v;
v := @this: org.springframework.jca.cci.connection.SingleConnectionFactory;
v = virtualinvoke v.<org.springframework.jca.cci.connection.SingleConnectionFactory: javax.resource.cci.ConnectionFactory getTargetConnectionFactory()>();
if v != null goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("\'targetConnectionFactory\' is required for lazily initializing a Connection");
throw v;
label:
v = v.<org.springframework.jca.cci.connection.SingleConnectionFactory: java.lang.Object connectionMonitor>;
entermonitor v;
label:
v = v.<org.springframework.jca.cci.connection.SingleConnectionFactory: javax.resource.cci.Connection target>;
if v == null goto label;
v = v.<org.springframework.jca.cci.connection.SingleConnectionFactory: javax.resource.cci.Connection target>;
virtualinvoke v.<org.springframework.jca.cci.connection.SingleConnectionFactory: void closeConnection(javax.resource.cci.Connection)>(v);
label:
v = virtualinvoke v.<org.springframework.jca.cci.connection.SingleConnectionFactory: javax.resource.cci.Connection doCreateConnection()>();
v.<org.springframework.jca.cci.connection.SingleConnectionFactory: javax.resource.cci.Connection target> = v;
v = v.<org.springframework.jca.cci.connection.SingleConnectionFactory: javax.resource.cci.Connection target>;
virtualinvoke v.<org.springframework.jca.cci.connection.SingleConnectionFactory: void prepareConnection(javax.resource.cci.Connection)>(v);
v = v.<org.springframework.jca.cci.connection.SingleConnectionFactory: 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.jca.cci.connection.SingleConnectionFactory: org.apache.commons.logging.Log logger>;
v = v.<org.springframework.jca.cci.connection.SingleConnectionFactory: javax.resource.cci.Connection target>;
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[])>("Established shared CCI Connection: \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void info(java.lang.Object)>(v);
label:
v = v.<org.springframework.jca.cci.connection.SingleConnectionFactory: javax.resource.cci.Connection target>;
v = virtualinvoke v.<org.springframework.jca.cci.connection.SingleConnectionFactory: javax.resource.cci.Connection getCloseSuppressingConnectionProxy(javax.resource.cci.Connection)>(v);
v.<org.springframework.jca.cci.connection.SingleConnectionFactory: javax.resource.cci.Connection connection> = v;
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void resetConnection()
{
java.lang.Throwable v;
org.springframework.jca.cci.connection.SingleConnectionFactory v;
java.lang.Object v;
javax.resource.cci.Connection v, v;
v := @this: org.springframework.jca.cci.connection.SingleConnectionFactory;
v = v.<org.springframework.jca.cci.connection.SingleConnectionFactory: java.lang.Object connectionMonitor>;
entermonitor v;
label:
v = v.<org.springframework.jca.cci.connection.SingleConnectionFactory: javax.resource.cci.Connection target>;
if v == null goto label;
v = v.<org.springframework.jca.cci.connection.SingleConnectionFactory: javax.resource.cci.Connection target>;
virtualinvoke v.<org.springframework.jca.cci.connection.SingleConnectionFactory: void closeConnection(javax.resource.cci.Connection)>(v);
label:
v.<org.springframework.jca.cci.connection.SingleConnectionFactory: javax.resource.cci.Connection target> = null;
v.<org.springframework.jca.cci.connection.SingleConnectionFactory: javax.resource.cci.Connection connection> = null;
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
protected javax.resource.cci.Connection doCreateConnection() throws javax.resource.ResourceException
{
org.springframework.jca.cci.connection.SingleConnectionFactory v;
javax.resource.cci.Connection v;
javax.resource.cci.ConnectionFactory v;
v := @this: org.springframework.jca.cci.connection.SingleConnectionFactory;
v = virtualinvoke v.<org.springframework.jca.cci.connection.SingleConnectionFactory: javax.resource.cci.ConnectionFactory getTargetConnectionFactory()>();
v = interfaceinvoke v.<javax.resource.cci.ConnectionFactory: javax.resource.cci.Connection getConnection()>();
return v;
}
protected void prepareConnection(javax.resource.cci.Connection) throws javax.resource.ResourceException
{
org.springframework.jca.cci.connection.SingleConnectionFactory v;
javax.resource.cci.Connection v;
v := @this: org.springframework.jca.cci.connection.SingleConnectionFactory;
v := @parameter: javax.resource.cci.Connection;
return;
}
protected void closeConnection(javax.resource.cci.Connection)
{
org.springframework.jca.cci.connection.SingleConnectionFactory v;
javax.resource.cci.Connection v;
v := @this: org.springframework.jca.cci.connection.SingleConnectionFactory;
v := @parameter: javax.resource.cci.Connection;
return;
}
protected javax.resource.cci.Connection getCloseSuppressingConnectionProxy(javax.resource.cci.Connection)
{
org.springframework.jca.cci.connection.SingleConnectionFactory v;
java.lang.Class[] v;
java.lang.Class v;
java.lang.Object v;
javax.resource.cci.Connection v;
java.lang.ClassLoader v;
org.springframework.jca.cci.connection.SingleConnectionFactory$CloseSuppressingInvocationHandler v;
v := @this: org.springframework.jca.cci.connection.SingleConnectionFactory;
v := @parameter: javax.resource.cci.Connection;
v = class "Ljavax/resource/cci/Connection;";
v = virtualinvoke v.<java.lang.Class: java.lang.ClassLoader getClassLoader()>();
v = newarray (java.lang.Class)[1];
v[0] = class "Ljavax/resource/cci/Connection;";
v = new org.springframework.jca.cci.connection.SingleConnectionFactory$CloseSuppressingInvocationHandler;
specialinvoke v.<org.springframework.jca.cci.connection.SingleConnectionFactory$CloseSuppressingInvocationHandler: void <init>(javax.resource.cci.Connection)>(v);
v = staticinvoke <java.lang.reflect.Proxy: java.lang.Object newProxyInstance(java.lang.ClassLoader,java.lang.Class[],java.lang.reflect.InvocationHandler)>(v, v, v);
return v;
}
}