public class org.apache.activemq.jms.pool.PooledConnection extends java.lang.Object implements javax.jms.TopicConnection, javax.jms.QueueConnection, org.apache.activemq.jms.pool.PooledSessionEventListener
{
private static final transient org.slf4j.Logger LOG;
protected org.apache.activemq.jms.pool.ConnectionPool pool;
private volatile boolean stopped;
private final java.util.List connTempQueues;
private final java.util.List connTempTopics;
private final java.util.List loanedSessions;
public void <init>(org.apache.activemq.jms.pool.ConnectionPool)
{
org.apache.activemq.jms.pool.PooledConnection v;
org.apache.activemq.jms.pool.ConnectionPool v;
java.util.concurrent.CopyOnWriteArrayList v, v, v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v := @parameter: org.apache.activemq.jms.pool.ConnectionPool;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.CopyOnWriteArrayList;
specialinvoke v.<java.util.concurrent.CopyOnWriteArrayList: void <init>()>();
v.<org.apache.activemq.jms.pool.PooledConnection: java.util.List connTempQueues> = v;
v = new java.util.concurrent.CopyOnWriteArrayList;
specialinvoke v.<java.util.concurrent.CopyOnWriteArrayList: void <init>()>();
v.<org.apache.activemq.jms.pool.PooledConnection: java.util.List connTempTopics> = v;
v = new java.util.concurrent.CopyOnWriteArrayList;
specialinvoke v.<java.util.concurrent.CopyOnWriteArrayList: void <init>()>();
v.<org.apache.activemq.jms.pool.PooledConnection: java.util.List loanedSessions> = v;
v.<org.apache.activemq.jms.pool.PooledConnection: org.apache.activemq.jms.pool.ConnectionPool pool> = v;
return;
}
public org.apache.activemq.jms.pool.PooledConnection newInstance()
{
org.apache.activemq.jms.pool.PooledConnection v, v;
org.apache.activemq.jms.pool.ConnectionPool v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v = new org.apache.activemq.jms.pool.PooledConnection;
v = v.<org.apache.activemq.jms.pool.PooledConnection: org.apache.activemq.jms.pool.ConnectionPool pool>;
specialinvoke v.<org.apache.activemq.jms.pool.PooledConnection: void <init>(org.apache.activemq.jms.pool.ConnectionPool)>(v);
return v;
}
public void close() throws javax.jms.JMSException
{
org.apache.activemq.jms.pool.PooledConnection v;
org.apache.activemq.jms.pool.ConnectionPool v, v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
virtualinvoke v.<org.apache.activemq.jms.pool.PooledConnection: void cleanupAllLoanedSessions()>();
virtualinvoke v.<org.apache.activemq.jms.pool.PooledConnection: void cleanupConnectionTemporaryDestinations()>();
v = v.<org.apache.activemq.jms.pool.PooledConnection: org.apache.activemq.jms.pool.ConnectionPool pool>;
if v == null goto label;
v = v.<org.apache.activemq.jms.pool.PooledConnection: org.apache.activemq.jms.pool.ConnectionPool pool>;
virtualinvoke v.<org.apache.activemq.jms.pool.ConnectionPool: void decrementReferenceCount()>();
v.<org.apache.activemq.jms.pool.PooledConnection: org.apache.activemq.jms.pool.ConnectionPool pool> = null;
label:
return;
}
public void start() throws javax.jms.JMSException
{
org.apache.activemq.jms.pool.PooledConnection v;
org.apache.activemq.jms.pool.ConnectionPool v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
virtualinvoke v.<org.apache.activemq.jms.pool.PooledConnection: void assertNotClosed()>();
v = v.<org.apache.activemq.jms.pool.PooledConnection: org.apache.activemq.jms.pool.ConnectionPool pool>;
virtualinvoke v.<org.apache.activemq.jms.pool.ConnectionPool: void start()>();
return;
}
public void stop() throws javax.jms.JMSException
{
org.apache.activemq.jms.pool.PooledConnection v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v.<org.apache.activemq.jms.pool.PooledConnection: boolean stopped> = 1;
return;
}
public javax.jms.ConnectionConsumer createConnectionConsumer(javax.jms.Destination, java.lang.String, javax.jms.ServerSessionPool, int) throws javax.jms.JMSException
{
javax.jms.Connection v;
javax.jms.ConnectionConsumer v;
javax.jms.Destination v;
int v;
org.apache.activemq.jms.pool.PooledConnection v;
java.lang.String v;
javax.jms.ServerSessionPool v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v := @parameter: javax.jms.Destination;
v := @parameter: java.lang.String;
v := @parameter: javax.jms.ServerSessionPool;
v := @parameter: int;
v = virtualinvoke v.<org.apache.activemq.jms.pool.PooledConnection: javax.jms.Connection getConnection()>();
v = interfaceinvoke v.<javax.jms.Connection: javax.jms.ConnectionConsumer createConnectionConsumer(javax.jms.Destination,java.lang.String,javax.jms.ServerSessionPool,int)>(v, v, v, v);
return v;
}
public javax.jms.ConnectionConsumer createConnectionConsumer(javax.jms.Topic, java.lang.String, javax.jms.ServerSessionPool, int) throws javax.jms.JMSException
{
javax.jms.Connection v;
javax.jms.ConnectionConsumer v;
int v;
org.apache.activemq.jms.pool.PooledConnection v;
javax.jms.Topic v;
java.lang.String v;
javax.jms.ServerSessionPool v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v := @parameter: javax.jms.Topic;
v := @parameter: java.lang.String;
v := @parameter: javax.jms.ServerSessionPool;
v := @parameter: int;
v = virtualinvoke v.<org.apache.activemq.jms.pool.PooledConnection: javax.jms.Connection getConnection()>();
v = interfaceinvoke v.<javax.jms.Connection: javax.jms.ConnectionConsumer createConnectionConsumer(javax.jms.Destination,java.lang.String,javax.jms.ServerSessionPool,int)>(v, v, v, v);
return v;
}
public javax.jms.ConnectionConsumer createDurableConnectionConsumer(javax.jms.Topic, java.lang.String, java.lang.String, javax.jms.ServerSessionPool, int) throws javax.jms.JMSException
{
javax.jms.Connection v;
org.apache.activemq.jms.pool.PooledConnection v;
javax.jms.Topic v;
javax.jms.ServerSessionPool v;
javax.jms.ConnectionConsumer v;
int v;
java.lang.String v, v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v := @parameter: javax.jms.Topic;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: javax.jms.ServerSessionPool;
v := @parameter: int;
v = virtualinvoke v.<org.apache.activemq.jms.pool.PooledConnection: javax.jms.Connection getConnection()>();
v = interfaceinvoke v.<javax.jms.Connection: javax.jms.ConnectionConsumer createDurableConnectionConsumer(javax.jms.Topic,java.lang.String,java.lang.String,javax.jms.ServerSessionPool,int)>(v, v, v, v, v);
return v;
}
public java.lang.String getClientID() throws javax.jms.JMSException
{
org.apache.activemq.jms.pool.PooledConnection v;
javax.jms.Connection v;
java.lang.String v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v = virtualinvoke v.<org.apache.activemq.jms.pool.PooledConnection: javax.jms.Connection getConnection()>();
v = interfaceinvoke v.<javax.jms.Connection: java.lang.String getClientID()>();
return v;
}
public javax.jms.ExceptionListener getExceptionListener() throws javax.jms.JMSException
{
org.apache.activemq.jms.pool.PooledConnection v;
org.apache.activemq.jms.pool.ConnectionPool v;
javax.jms.ExceptionListener v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v = v.<org.apache.activemq.jms.pool.PooledConnection: org.apache.activemq.jms.pool.ConnectionPool pool>;
v = virtualinvoke v.<org.apache.activemq.jms.pool.ConnectionPool: javax.jms.ExceptionListener getParentExceptionListener()>();
return v;
}
public javax.jms.ConnectionMetaData getMetaData() throws javax.jms.JMSException
{
org.apache.activemq.jms.pool.PooledConnection v;
javax.jms.Connection v;
javax.jms.ConnectionMetaData v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v = virtualinvoke v.<org.apache.activemq.jms.pool.PooledConnection: javax.jms.Connection getConnection()>();
v = interfaceinvoke v.<javax.jms.Connection: javax.jms.ConnectionMetaData getMetaData()>();
return v;
}
public void setExceptionListener(javax.jms.ExceptionListener) throws javax.jms.JMSException
{
org.apache.activemq.jms.pool.PooledConnection v;
org.apache.activemq.jms.pool.ConnectionPool v;
javax.jms.ExceptionListener v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v := @parameter: javax.jms.ExceptionListener;
v = v.<org.apache.activemq.jms.pool.PooledConnection: org.apache.activemq.jms.pool.ConnectionPool pool>;
virtualinvoke v.<org.apache.activemq.jms.pool.ConnectionPool: void setParentExceptionListener(javax.jms.ExceptionListener)>(v);
return;
}
public void setClientID(java.lang.String) throws javax.jms.JMSException
{
javax.jms.Connection v, v;
org.apache.activemq.jms.pool.PooledConnection v;
java.lang.String v, v, v;
boolean v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.apache.activemq.jms.pool.PooledConnection: javax.jms.Connection getConnection()>();
v = interfaceinvoke v.<javax.jms.Connection: java.lang.String getClientID()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.jms.pool.PooledConnection: java.lang.String getClientID()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
label:
v = virtualinvoke v.<org.apache.activemq.jms.pool.PooledConnection: javax.jms.Connection getConnection()>();
interfaceinvoke v.<javax.jms.Connection: void setClientID(java.lang.String)>(v);
label:
return;
}
public javax.jms.ConnectionConsumer createConnectionConsumer(javax.jms.Queue, java.lang.String, javax.jms.ServerSessionPool, int) throws javax.jms.JMSException
{
javax.jms.Queue v;
javax.jms.Connection v;
javax.jms.ConnectionConsumer v;
int v;
org.apache.activemq.jms.pool.PooledConnection v;
java.lang.String v;
javax.jms.ServerSessionPool v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v := @parameter: javax.jms.Queue;
v := @parameter: java.lang.String;
v := @parameter: javax.jms.ServerSessionPool;
v := @parameter: int;
v = virtualinvoke v.<org.apache.activemq.jms.pool.PooledConnection: javax.jms.Connection getConnection()>();
v = interfaceinvoke v.<javax.jms.Connection: javax.jms.ConnectionConsumer createConnectionConsumer(javax.jms.Destination,java.lang.String,javax.jms.ServerSessionPool,int)>(v, v, v, v);
return v;
}
public javax.jms.QueueSession createQueueSession(boolean, int) throws javax.jms.JMSException
{
javax.jms.Session v;
int v;
org.apache.activemq.jms.pool.PooledConnection v;
boolean v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v := @parameter: boolean;
v := @parameter: int;
v = virtualinvoke v.<org.apache.activemq.jms.pool.PooledConnection: javax.jms.Session createSession(boolean,int)>(v, v);
return v;
}
public javax.jms.TopicSession createTopicSession(boolean, int) throws javax.jms.JMSException
{
javax.jms.Session v;
int v;
org.apache.activemq.jms.pool.PooledConnection v;
boolean v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v := @parameter: boolean;
v := @parameter: int;
v = virtualinvoke v.<org.apache.activemq.jms.pool.PooledConnection: javax.jms.Session createSession(boolean,int)>(v, v);
return v;
}
public javax.jms.Session createSession(boolean, int) throws javax.jms.JMSException
{
java.util.List v;
javax.jms.Session v;
int v;
org.apache.activemq.jms.pool.PooledConnection v;
org.apache.activemq.jms.pool.ConnectionPool v;
boolean v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v := @parameter: boolean;
v := @parameter: int;
v = v.<org.apache.activemq.jms.pool.PooledConnection: org.apache.activemq.jms.pool.ConnectionPool pool>;
v = virtualinvoke v.<org.apache.activemq.jms.pool.ConnectionPool: javax.jms.Session createSession(boolean,int)>(v, v);
v = v.<org.apache.activemq.jms.pool.PooledConnection: java.util.List loanedSessions>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
virtualinvoke v.<org.apache.activemq.jms.pool.PooledSession: void addSessionEventListener(org.apache.activemq.jms.pool.PooledSessionEventListener)>(v);
return v;
}
public void onTemporaryQueueCreate(javax.jms.TemporaryQueue)
{
org.apache.activemq.jms.pool.PooledConnection v;
java.util.List v;
javax.jms.TemporaryQueue v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v := @parameter: javax.jms.TemporaryQueue;
v = v.<org.apache.activemq.jms.pool.PooledConnection: java.util.List connTempQueues>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
return;
}
public void onTemporaryTopicCreate(javax.jms.TemporaryTopic)
{
org.apache.activemq.jms.pool.PooledConnection v;
java.util.List v;
javax.jms.TemporaryTopic v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v := @parameter: javax.jms.TemporaryTopic;
v = v.<org.apache.activemq.jms.pool.PooledConnection: java.util.List connTempTopics>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
return;
}
public void onSessionClosed(org.apache.activemq.jms.pool.PooledSession)
{
org.apache.activemq.jms.pool.PooledConnection v;
java.util.List v;
org.apache.activemq.jms.pool.PooledSession v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v := @parameter: org.apache.activemq.jms.pool.PooledSession;
if v == null goto label;
v = v.<org.apache.activemq.jms.pool.PooledConnection: java.util.List loanedSessions>;
interfaceinvoke v.<java.util.List: boolean remove(java.lang.Object)>(v);
label:
return;
}
public javax.jms.Connection getConnection() throws javax.jms.JMSException
{
org.apache.activemq.jms.pool.PooledConnection v;
javax.jms.Connection v;
org.apache.activemq.jms.pool.ConnectionPool v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
virtualinvoke v.<org.apache.activemq.jms.pool.PooledConnection: void assertNotClosed()>();
v = v.<org.apache.activemq.jms.pool.PooledConnection: org.apache.activemq.jms.pool.ConnectionPool pool>;
v = virtualinvoke v.<org.apache.activemq.jms.pool.ConnectionPool: javax.jms.Connection getConnection()>();
return v;
}
protected void assertNotClosed() throws javax.jms.IllegalStateException
{
org.apache.activemq.jms.pool.PooledConnection v;
org.apache.activemq.jms.pool.ConnectionPool v;
javax.jms.IllegalStateException v;
boolean v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v = v.<org.apache.activemq.jms.pool.PooledConnection: boolean stopped>;
if v != 0 goto label;
v = v.<org.apache.activemq.jms.pool.PooledConnection: org.apache.activemq.jms.pool.ConnectionPool pool>;
if v != null goto label;
label:
v = new javax.jms.IllegalStateException;
specialinvoke v.<javax.jms.IllegalStateException: void <init>(java.lang.String)>("Connection closed");
throw v;
label:
return;
}
protected javax.jms.Session createSession(org.apache.activemq.jms.pool.SessionKey) throws javax.jms.JMSException
{
javax.jms.Connection v;
javax.jms.Session v;
org.apache.activemq.jms.pool.SessionKey v;
int v;
org.apache.activemq.jms.pool.PooledConnection v;
boolean v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v := @parameter: org.apache.activemq.jms.pool.SessionKey;
v = virtualinvoke v.<org.apache.activemq.jms.pool.PooledConnection: javax.jms.Connection getConnection()>();
v = virtualinvoke v.<org.apache.activemq.jms.pool.SessionKey: boolean isTransacted()>();
v = virtualinvoke v.<org.apache.activemq.jms.pool.SessionKey: int getAckMode()>();
v = interfaceinvoke v.<javax.jms.Connection: javax.jms.Session createSession(boolean,int)>(v, v);
return v;
}
public java.lang.String toString()
{
org.apache.activemq.jms.pool.PooledConnection v;
org.apache.activemq.jms.pool.ConnectionPool v;
java.lang.String v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v = v.<org.apache.activemq.jms.pool.PooledConnection: org.apache.activemq.jms.pool.ConnectionPool pool>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.jms.pool.ConnectionPool)>(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[])>("PooledConnection { \u }");
return v;
}
protected void cleanupConnectionTemporaryDestinations()
{
java.lang.Throwable v, v;
org.apache.activemq.jms.pool.PooledConnection v;
java.lang.String v, v, v, v, v, v;
boolean v, v;
org.slf4j.Logger v, v;
java.util.Iterator v, v;
java.util.List v, v, v, v;
java.lang.Object v, v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v = v.<org.apache.activemq.jms.pool.PooledConnection: java.util.List connTempQueues>;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
label:
interfaceinvoke v.<javax.jms.TemporaryQueue: void delete()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.jms.pool.PooledConnection: org.slf4j.Logger LOG>;
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
v = virtualinvoke v.<javax.jms.JMSException: java.lang.String getMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("failed to delete Temporary Queue \"\u0001\" on closing pooled connection: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
goto label;
label:
v = v.<org.apache.activemq.jms.pool.PooledConnection: java.util.List connTempQueues>;
interfaceinvoke v.<java.util.List: void clear()>();
v = v.<org.apache.activemq.jms.pool.PooledConnection: java.util.List connTempTopics>;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
label:
interfaceinvoke v.<javax.jms.TemporaryTopic: void delete()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.jms.pool.PooledConnection: org.slf4j.Logger LOG>;
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
v = virtualinvoke v.<javax.jms.JMSException: java.lang.String getMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("failed to delete Temporary Topic \"\u0001\" on closing pooled connection: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
goto label;
label:
v = v.<org.apache.activemq.jms.pool.PooledConnection: java.util.List connTempTopics>;
interfaceinvoke v.<java.util.List: void clear()>();
return;
catch javax.jms.JMSException from label to label with label;
catch javax.jms.JMSException from label to label with label;
}
protected void cleanupAllLoanedSessions()
{
java.util.List v, v;
java.util.Iterator v;
org.apache.activemq.jms.pool.PooledConnection v;
java.lang.Object v;
boolean v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v = v.<org.apache.activemq.jms.pool.PooledConnection: java.util.List loanedSessions>;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
goto label;
label:
v = v.<org.apache.activemq.jms.pool.PooledConnection: java.util.List loanedSessions>;
interfaceinvoke v.<java.util.List: void clear()>();
return;
}
public int getNumSessions()
{
int v;
org.apache.activemq.jms.pool.PooledConnection v;
org.apache.activemq.jms.pool.ConnectionPool v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v = v.<org.apache.activemq.jms.pool.PooledConnection: org.apache.activemq.jms.pool.ConnectionPool pool>;
v = virtualinvoke v.<org.apache.activemq.jms.pool.ConnectionPool: int getNumSessions()>();
return v;
}
public int getNumActiveSessions()
{
int v;
org.apache.activemq.jms.pool.PooledConnection v;
org.apache.activemq.jms.pool.ConnectionPool v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v = v.<org.apache.activemq.jms.pool.PooledConnection: org.apache.activemq.jms.pool.ConnectionPool pool>;
v = virtualinvoke v.<org.apache.activemq.jms.pool.ConnectionPool: int getNumActiveSessions()>();
return v;
}
public int getNumtIdleSessions()
{
int v;
org.apache.activemq.jms.pool.PooledConnection v;
org.apache.activemq.jms.pool.ConnectionPool v;
v := @this: org.apache.activemq.jms.pool.PooledConnection;
v = v.<org.apache.activemq.jms.pool.PooledConnection: org.apache.activemq.jms.pool.ConnectionPool pool>;
v = virtualinvoke v.<org.apache.activemq.jms.pool.ConnectionPool: int getNumIdleSessions()>();
return v;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/activemq/jms/pool/PooledConnection;");
<org.apache.activemq.jms.pool.PooledConnection: org.slf4j.Logger LOG> = v;
return;
}
}