public class org.apache.activemq.ActiveMQSession extends java.lang.Object implements javax.jms.Session, javax.jms.QueueSession, javax.jms.TopicSession, org.apache.activemq.management.StatsCapable, org.apache.activemq.ActiveMQDispatcher
{
public static final int INDIVIDUAL_ACKNOWLEDGE;
public static final int MAX_ACK_CONSTANT;
private static final org.slf4j.Logger LOG;
private final java.util.concurrent.ThreadPoolExecutor connectionExecutor;
protected int acknowledgementMode;
protected final org.apache.activemq.ActiveMQConnection connection;
protected final org.apache.activemq.command.SessionInfo info;
protected final org.apache.activemq.util.LongSequenceGenerator consumerIdGenerator;
protected final org.apache.activemq.util.LongSequenceGenerator producerIdGenerator;
protected final org.apache.activemq.util.LongSequenceGenerator deliveryIdGenerator;
protected final org.apache.activemq.ActiveMQSessionExecutor executor;
protected final java.util.concurrent.atomic.AtomicBoolean started;
protected final java.util.concurrent.CopyOnWriteArrayList consumers;
protected final java.util.concurrent.CopyOnWriteArrayList producers;
protected boolean closed;
private volatile boolean synchronizationRegistered;
protected boolean asyncDispatch;
protected boolean sessionAsyncDispatch;
protected final boolean debug;
protected final java.lang.Object sendMutex;
protected final java.lang.Object redeliveryGuard;
private final java.util.concurrent.atomic.AtomicBoolean clearInProgress;
private javax.jms.MessageListener messageListener;
private final org.apache.activemq.management.JMSSessionStatsImpl stats;
private org.apache.activemq.TransactionContext transactionContext;
private org.apache.activemq.ActiveMQSession$DeliveryListener deliveryListener;
private org.apache.activemq.MessageTransformer transformer;
private org.apache.activemq.blob.BlobTransferPolicy blobTransferPolicy;
private long lastDeliveredSequenceId;
final java.util.concurrent.atomic.AtomicInteger clearRequestsCounter;
protected void <init>(org.apache.activemq.ActiveMQConnection, org.apache.activemq.command.SessionId, int, boolean, boolean) throws javax.jms.JMSException
{
java.util.concurrent.atomic.AtomicInteger v;
org.apache.activemq.command.SessionInfo v, v;
org.apache.activemq.management.JMSSessionStatsImpl v;
boolean v, v, v, v;
org.apache.activemq.command.SessionId v;
org.apache.activemq.MessageTransformer v;
org.apache.activemq.ActiveMQConnection v, v;
org.apache.activemq.util.LongSequenceGenerator v, v, v;
org.apache.activemq.blob.BlobTransferPolicy v;
org.apache.activemq.ActiveMQSession v;
java.util.concurrent.CopyOnWriteArrayList v, v, v, v;
java.util.concurrent.ThreadPoolExecutor v;
java.util.concurrent.atomic.AtomicBoolean v, v;
long v;
org.apache.activemq.command.ConnectionInfo v;
int v;
org.apache.activemq.TransactionContext v;
org.slf4j.Logger v;
org.apache.activemq.ActiveMQSessionExecutor v;
java.lang.Object v, v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: org.apache.activemq.ActiveMQConnection;
v := @parameter: org.apache.activemq.command.SessionId;
v := @parameter: int;
v := @parameter: boolean;
v := @parameter: boolean;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new org.apache.activemq.util.LongSequenceGenerator;
specialinvoke v.<org.apache.activemq.util.LongSequenceGenerator: void <init>()>();
v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.util.LongSequenceGenerator consumerIdGenerator> = v;
v = new org.apache.activemq.util.LongSequenceGenerator;
specialinvoke v.<org.apache.activemq.util.LongSequenceGenerator: void <init>()>();
v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.util.LongSequenceGenerator producerIdGenerator> = v;
v = new org.apache.activemq.util.LongSequenceGenerator;
specialinvoke v.<org.apache.activemq.util.LongSequenceGenerator: void <init>()>();
v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.util.LongSequenceGenerator deliveryIdGenerator> = v;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.atomic.AtomicBoolean started> = v;
v = new java.util.concurrent.CopyOnWriteArrayList;
specialinvoke v.<java.util.concurrent.CopyOnWriteArrayList: void <init>()>();
v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList consumers> = v;
v = new java.util.concurrent.CopyOnWriteArrayList;
specialinvoke v.<java.util.concurrent.CopyOnWriteArrayList: void <init>()>();
v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList producers> = v;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.activemq.ActiveMQSession: java.lang.Object sendMutex> = v;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.activemq.ActiveMQSession: java.lang.Object redeliveryGuard> = v;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>()>();
v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.atomic.AtomicBoolean clearInProgress> = v;
v.<org.apache.activemq.ActiveMQSession: long lastDeliveredSequenceId> = -2L;
v = new java.util.concurrent.atomic.AtomicInteger;
specialinvoke v.<java.util.concurrent.atomic.AtomicInteger: void <init>(int)>(0);
v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.atomic.AtomicInteger clearRequestsCounter> = v;
v = <org.apache.activemq.ActiveMQSession: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
v.<org.apache.activemq.ActiveMQSession: boolean debug> = v;
v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection> = v;
v.<org.apache.activemq.ActiveMQSession: int acknowledgementMode> = v;
v.<org.apache.activemq.ActiveMQSession: boolean asyncDispatch> = v;
v.<org.apache.activemq.ActiveMQSession: boolean sessionAsyncDispatch> = v;
v = new org.apache.activemq.command.SessionInfo;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: org.apache.activemq.command.ConnectionInfo getConnectionInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.SessionId: long getValue()>();
specialinvoke v.<org.apache.activemq.command.SessionInfo: void <init>(org.apache.activemq.command.ConnectionInfo,long)>(v, v);
v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.command.SessionInfo info> = v;
v = new org.apache.activemq.TransactionContext;
specialinvoke v.<org.apache.activemq.TransactionContext: void <init>(org.apache.activemq.ActiveMQConnection)>(v);
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void setTransactionContext(org.apache.activemq.TransactionContext)>(v);
v = new org.apache.activemq.management.JMSSessionStatsImpl;
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList producers>;
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList consumers>;
specialinvoke v.<org.apache.activemq.management.JMSSessionStatsImpl: void <init>(java.util.List,java.util.List)>(v, v);
v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.management.JMSSessionStatsImpl stats> = v;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.command.SessionInfo info>;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void asyncSendPacket(org.apache.activemq.command.Command)>(v);
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: org.apache.activemq.MessageTransformer getTransformer()>();
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void setTransformer(org.apache.activemq.MessageTransformer)>(v);
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: org.apache.activemq.blob.BlobTransferPolicy getBlobTransferPolicy()>();
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void setBlobTransferPolicy(org.apache.activemq.blob.BlobTransferPolicy)>(v);
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: java.util.concurrent.ThreadPoolExecutor getExecutor()>();
v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.ThreadPoolExecutor connectionExecutor> = v;
v = new org.apache.activemq.ActiveMQSessionExecutor;
specialinvoke v.<org.apache.activemq.ActiveMQSessionExecutor: void <init>(org.apache.activemq.ActiveMQSession)>(v);
v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQSessionExecutor executor> = v;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void addSession(org.apache.activemq.ActiveMQSession)>(v);
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: boolean isStarted()>();
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void start()>();
label:
return;
}
protected void <init>(org.apache.activemq.ActiveMQConnection, org.apache.activemq.command.SessionId, int, boolean) throws javax.jms.JMSException
{
org.apache.activemq.command.SessionId v;
int v;
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: org.apache.activemq.ActiveMQConnection;
v := @parameter: org.apache.activemq.command.SessionId;
v := @parameter: int;
v := @parameter: boolean;
specialinvoke v.<org.apache.activemq.ActiveMQSession: void <init>(org.apache.activemq.ActiveMQConnection,org.apache.activemq.command.SessionId,int,boolean,boolean)>(v, v, v, v, 1);
return;
}
public void setTransactionContext(org.apache.activemq.TransactionContext)
{
org.apache.activemq.ActiveMQSession v;
org.apache.activemq.TransactionContext v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: org.apache.activemq.TransactionContext;
v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext transactionContext> = v;
return;
}
public org.apache.activemq.TransactionContext getTransactionContext()
{
org.apache.activemq.ActiveMQSession v;
org.apache.activemq.TransactionContext v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext transactionContext>;
return v;
}
public org.apache.activemq.management.StatsImpl getStats()
{
org.apache.activemq.management.JMSSessionStatsImpl v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.management.JMSSessionStatsImpl stats>;
return v;
}
public org.apache.activemq.management.JMSSessionStatsImpl getSessionStats()
{
org.apache.activemq.management.JMSSessionStatsImpl v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.management.JMSSessionStatsImpl stats>;
return v;
}
public javax.jms.BytesMessage createBytesMessage() throws javax.jms.JMSException
{
org.apache.activemq.command.ActiveMQBytesMessage v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v = new org.apache.activemq.command.ActiveMQBytesMessage;
specialinvoke v.<org.apache.activemq.command.ActiveMQBytesMessage: void <init>()>();
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void configureMessage(org.apache.activemq.command.ActiveMQMessage)>(v);
return v;
}
public javax.jms.MapMessage createMapMessage() throws javax.jms.JMSException
{
org.apache.activemq.command.ActiveMQMapMessage v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v = new org.apache.activemq.command.ActiveMQMapMessage;
specialinvoke v.<org.apache.activemq.command.ActiveMQMapMessage: void <init>()>();
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void configureMessage(org.apache.activemq.command.ActiveMQMessage)>(v);
return v;
}
public javax.jms.Message createMessage() throws javax.jms.JMSException
{
org.apache.activemq.command.ActiveMQMessage v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v = new org.apache.activemq.command.ActiveMQMessage;
specialinvoke v.<org.apache.activemq.command.ActiveMQMessage: void <init>()>();
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void configureMessage(org.apache.activemq.command.ActiveMQMessage)>(v);
return v;
}
public javax.jms.ObjectMessage createObjectMessage() throws javax.jms.JMSException
{
org.apache.activemq.command.ActiveMQObjectMessage v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v = new org.apache.activemq.command.ActiveMQObjectMessage;
specialinvoke v.<org.apache.activemq.command.ActiveMQObjectMessage: void <init>()>();
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void configureMessage(org.apache.activemq.command.ActiveMQMessage)>(v);
return v;
}
public javax.jms.ObjectMessage createObjectMessage(java.io.Serializable) throws javax.jms.JMSException
{
org.apache.activemq.command.ActiveMQObjectMessage v;
org.apache.activemq.ActiveMQSession v;
java.io.Serializable v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: java.io.Serializable;
v = new org.apache.activemq.command.ActiveMQObjectMessage;
specialinvoke v.<org.apache.activemq.command.ActiveMQObjectMessage: void <init>()>();
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void configureMessage(org.apache.activemq.command.ActiveMQMessage)>(v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQObjectMessage: void setObject(java.io.Serializable)>(v);
return v;
}
public javax.jms.StreamMessage createStreamMessage() throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQSession v;
org.apache.activemq.command.ActiveMQStreamMessage v;
v := @this: org.apache.activemq.ActiveMQSession;
v = new org.apache.activemq.command.ActiveMQStreamMessage;
specialinvoke v.<org.apache.activemq.command.ActiveMQStreamMessage: void <init>()>();
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void configureMessage(org.apache.activemq.command.ActiveMQMessage)>(v);
return v;
}
public javax.jms.TextMessage createTextMessage() throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQSession v;
org.apache.activemq.command.ActiveMQTextMessage v;
v := @this: org.apache.activemq.ActiveMQSession;
v = new org.apache.activemq.command.ActiveMQTextMessage;
specialinvoke v.<org.apache.activemq.command.ActiveMQTextMessage: void <init>()>();
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void configureMessage(org.apache.activemq.command.ActiveMQMessage)>(v);
return v;
}
public javax.jms.TextMessage createTextMessage(java.lang.String) throws javax.jms.JMSException
{
java.lang.String v;
org.apache.activemq.ActiveMQSession v;
org.apache.activemq.command.ActiveMQTextMessage v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: java.lang.String;
v = new org.apache.activemq.command.ActiveMQTextMessage;
specialinvoke v.<org.apache.activemq.command.ActiveMQTextMessage: void <init>()>();
virtualinvoke v.<org.apache.activemq.command.ActiveMQTextMessage: void setText(java.lang.String)>(v);
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void configureMessage(org.apache.activemq.command.ActiveMQMessage)>(v);
return v;
}
public org.apache.activemq.BlobMessage createBlobMessage(java.net.URL) throws javax.jms.JMSException
{
org.apache.activemq.BlobMessage v;
java.net.URL v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: java.net.URL;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.BlobMessage createBlobMessage(java.net.URL,boolean)>(v, 0);
return v;
}
public org.apache.activemq.BlobMessage createBlobMessage(java.net.URL, boolean) throws javax.jms.JMSException
{
java.net.URL v;
org.apache.activemq.blob.BlobTransferPolicy v;
org.apache.activemq.blob.BlobDownloader v;
org.apache.activemq.ActiveMQSession v;
org.apache.activemq.command.ActiveMQBlobMessage v;
boolean v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: java.net.URL;
v := @parameter: boolean;
v = new org.apache.activemq.command.ActiveMQBlobMessage;
specialinvoke v.<org.apache.activemq.command.ActiveMQBlobMessage: void <init>()>();
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void configureMessage(org.apache.activemq.command.ActiveMQMessage)>(v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQBlobMessage: void setURL(java.net.URL)>(v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQBlobMessage: void setDeletedByBroker(boolean)>(v);
v = new org.apache.activemq.blob.BlobDownloader;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.blob.BlobTransferPolicy getBlobTransferPolicy()>();
specialinvoke v.<org.apache.activemq.blob.BlobDownloader: void <init>(org.apache.activemq.blob.BlobTransferPolicy)>(v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQBlobMessage: void setBlobDownloader(org.apache.activemq.blob.BlobDownloader)>(v);
return v;
}
public org.apache.activemq.BlobMessage createBlobMessage(java.io.File) throws javax.jms.JMSException
{
java.io.File v;
org.apache.activemq.command.ActiveMQBlobMessage v;
org.apache.activemq.blob.BlobTransferPolicy v, v;
org.apache.activemq.blob.BlobUploader v;
java.lang.String v;
org.apache.activemq.blob.BlobDownloader v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: java.io.File;
v = new org.apache.activemq.command.ActiveMQBlobMessage;
specialinvoke v.<org.apache.activemq.command.ActiveMQBlobMessage: void <init>()>();
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void configureMessage(org.apache.activemq.command.ActiveMQMessage)>(v);
v = new org.apache.activemq.blob.BlobUploader;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.blob.BlobTransferPolicy getBlobTransferPolicy()>();
specialinvoke v.<org.apache.activemq.blob.BlobUploader: void <init>(org.apache.activemq.blob.BlobTransferPolicy,java.io.File)>(v, v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQBlobMessage: void setBlobUploader(org.apache.activemq.blob.BlobUploader)>(v);
v = new org.apache.activemq.blob.BlobDownloader;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.blob.BlobTransferPolicy getBlobTransferPolicy()>();
specialinvoke v.<org.apache.activemq.blob.BlobDownloader: void <init>(org.apache.activemq.blob.BlobTransferPolicy)>(v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQBlobMessage: void setBlobDownloader(org.apache.activemq.blob.BlobDownloader)>(v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQBlobMessage: void setDeletedByBroker(boolean)>(1);
v = virtualinvoke v.<java.io.File: java.lang.String getName()>();
virtualinvoke v.<org.apache.activemq.command.ActiveMQBlobMessage: void setName(java.lang.String)>(v);
return v;
}
public org.apache.activemq.BlobMessage createBlobMessage(java.io.InputStream) throws javax.jms.JMSException
{
org.apache.activemq.blob.BlobTransferPolicy v, v;
org.apache.activemq.blob.BlobUploader v;
org.apache.activemq.blob.BlobDownloader v;
org.apache.activemq.ActiveMQSession v;
org.apache.activemq.command.ActiveMQBlobMessage v;
java.io.InputStream v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: java.io.InputStream;
v = new org.apache.activemq.command.ActiveMQBlobMessage;
specialinvoke v.<org.apache.activemq.command.ActiveMQBlobMessage: void <init>()>();
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void configureMessage(org.apache.activemq.command.ActiveMQMessage)>(v);
v = new org.apache.activemq.blob.BlobUploader;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.blob.BlobTransferPolicy getBlobTransferPolicy()>();
specialinvoke v.<org.apache.activemq.blob.BlobUploader: void <init>(org.apache.activemq.blob.BlobTransferPolicy,java.io.InputStream)>(v, v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQBlobMessage: void setBlobUploader(org.apache.activemq.blob.BlobUploader)>(v);
v = new org.apache.activemq.blob.BlobDownloader;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.blob.BlobTransferPolicy getBlobTransferPolicy()>();
specialinvoke v.<org.apache.activemq.blob.BlobDownloader: void <init>(org.apache.activemq.blob.BlobTransferPolicy)>(v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQBlobMessage: void setBlobDownloader(org.apache.activemq.blob.BlobDownloader)>(v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQBlobMessage: void setDeletedByBroker(boolean)>(1);
return v;
}
public boolean getTransacted() throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQSession;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isTransacted()>();
return v;
}
public int getAcknowledgeMode() throws javax.jms.JMSException
{
int v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = v.<org.apache.activemq.ActiveMQSession: int acknowledgementMode>;
return v;
}
public void commit() throws javax.jms.JMSException
{
org.slf4j.Logger v, v;
org.apache.activemq.command.SessionId v;
javax.jms.IllegalStateException v;
java.lang.String v;
org.apache.activemq.command.TransactionId v;
org.apache.activemq.ActiveMQSession v;
boolean v, v;
org.apache.activemq.TransactionContext v, v;
v := @this: org.apache.activemq.ActiveMQSession;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean getTransacted()>();
if v != 0 goto label;
v = new javax.jms.IllegalStateException;
specialinvoke v.<javax.jms.IllegalStateException: void <init>(java.lang.String)>("Not a transacted session");
throw v;
label:
v = <org.apache.activemq.ActiveMQSession: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.ActiveMQSession: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.command.SessionId getSessionId()>();
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext transactionContext>;
v = virtualinvoke v.<org.apache.activemq.TransactionContext: org.apache.activemq.command.TransactionId getTransactionId()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.SessionId,org.apache.activemq.command.TransactionId)>(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[])>("\u Transaction Commit :\u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext transactionContext>;
virtualinvoke v.<org.apache.activemq.TransactionContext: void commit()>();
return;
}
public void rollback() throws javax.jms.JMSException
{
org.slf4j.Logger v, v;
org.apache.activemq.command.SessionId v;
javax.jms.IllegalStateException v;
java.lang.String v;
org.apache.activemq.command.TransactionId v;
org.apache.activemq.ActiveMQSession v;
boolean v, v;
org.apache.activemq.TransactionContext v, v;
v := @this: org.apache.activemq.ActiveMQSession;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean getTransacted()>();
if v != 0 goto label;
v = new javax.jms.IllegalStateException;
specialinvoke v.<javax.jms.IllegalStateException: void <init>(java.lang.String)>("Not a transacted session");
throw v;
label:
v = <org.apache.activemq.ActiveMQSession: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.ActiveMQSession: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.command.SessionId getSessionId()>();
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext transactionContext>;
v = virtualinvoke v.<org.apache.activemq.TransactionContext: org.apache.activemq.command.TransactionId getTransactionId()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.SessionId,org.apache.activemq.command.TransactionId)>(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[])>("\u Transaction Rollback, txid:\u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext transactionContext>;
virtualinvoke v.<org.apache.activemq.TransactionContext: void rollback()>();
return;
}
public void close() throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQSession$1 v;
org.apache.activemq.ActiveMQSession v;
boolean v, v, v;
org.apache.activemq.TransactionContext v, v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: boolean closed>;
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext getTransactionContext()>();
v = virtualinvoke v.<org.apache.activemq.TransactionContext: boolean isInXATransaction()>();
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQSession: boolean synchronizationRegistered>;
if v != 0 goto label;
v.<org.apache.activemq.ActiveMQSession: boolean synchronizationRegistered> = 1;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext getTransactionContext()>();
v = new org.apache.activemq.ActiveMQSession$1;
specialinvoke v.<org.apache.activemq.ActiveMQSession$1: void <init>(org.apache.activemq.ActiveMQSession)>(v);
virtualinvoke v.<org.apache.activemq.TransactionContext: void addSynchronization(org.apache.activemq.transaction.Synchronization)>(v);
goto label;
label:
specialinvoke v.<org.apache.activemq.ActiveMQSession: void doClose()>();
label:
return;
}
private void doClose() throws javax.jms.JMSException
{
org.apache.activemq.command.SessionInfo v;
long v;
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.ActiveMQSession v;
org.apache.activemq.command.RemoveInfo v;
v := @this: org.apache.activemq.ActiveMQSession;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void dispose()>();
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.command.SessionInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.SessionInfo: org.apache.activemq.command.RemoveInfo createRemoveCommand()>();
v = v.<org.apache.activemq.ActiveMQSession: long lastDeliveredSequenceId>;
virtualinvoke v.<org.apache.activemq.command.RemoveInfo: void setLastDeliveredSequenceId(long)>(v);
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void asyncSendPacket(org.apache.activemq.command.Command)>(v);
return;
}
void clearMessagesInProgress(java.util.concurrent.atomic.AtomicInteger)
{
java.lang.Throwable v, v;
java.util.concurrent.atomic.AtomicBoolean v;
java.util.concurrent.atomic.AtomicInteger v, v;
boolean v, v, v;
java.util.Iterator v;
org.apache.activemq.ActiveMQSession$2 v;
org.apache.activemq.ActiveMQSession$3 v;
org.apache.activemq.ActiveMQConnection v, v, v, v;
org.apache.activemq.ActiveMQSessionExecutor v;
org.apache.activemq.thread.Scheduler v, v;
java.lang.Object v;
org.apache.activemq.ActiveMQSession v;
java.util.concurrent.CopyOnWriteArrayList v, v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: java.util.concurrent.atomic.AtomicInteger;
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.atomic.AtomicInteger clearRequestsCounter>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int incrementAndGet()>();
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQSessionExecutor executor>;
virtualinvoke v.<org.apache.activemq.ActiveMQSessionExecutor: void clearMessagesInProgress()>();
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList consumers>;
v = virtualinvoke v.<java.util.concurrent.CopyOnWriteArrayList: boolean isEmpty()>();
if v == 0 goto label;
return;
label:
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.atomic.AtomicBoolean clearInProgress>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(0, 1);
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList consumers>;
v = virtualinvoke v.<java.util.concurrent.CopyOnWriteArrayList: 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()>();
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void inProgressClearRequired()>();
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int incrementAndGet()>();
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: org.apache.activemq.thread.Scheduler getScheduler()>();
v = new org.apache.activemq.ActiveMQSession$2;
specialinvoke v.<org.apache.activemq.ActiveMQSession$2: void <init>(org.apache.activemq.ActiveMQSession,org.apache.activemq.ActiveMQMessageConsumer)>(v, v);
virtualinvoke v.<org.apache.activemq.thread.Scheduler: void executeAfterDelay(java.lang.Runnable,long)>(v, 0L);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void onClientInternalException(java.lang.Throwable)>(v);
goto label;
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: org.apache.activemq.thread.Scheduler getScheduler()>();
v = new org.apache.activemq.ActiveMQSession$3;
specialinvoke v.<org.apache.activemq.ActiveMQSession$3: void <init>(org.apache.activemq.ActiveMQSession)>(v);
virtualinvoke v.<org.apache.activemq.thread.Scheduler: void executeAfterDelay(java.lang.Runnable,long)>(v, 0L);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void onClientInternalException(java.lang.Throwable)>(v);
label:
return;
catch javax.jms.JMSException from label to label with label;
catch javax.jms.JMSException from label to label with label;
}
void deliverAcks()
{
java.util.Iterator v;
java.lang.Object v;
org.apache.activemq.ActiveMQSession v;
boolean v;
java.util.concurrent.CopyOnWriteArrayList v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList consumers>;
v = virtualinvoke v.<java.util.concurrent.CopyOnWriteArrayList: 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()>();
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void deliverAcks()>();
goto label;
label:
return;
}
public synchronized void dispose() throws javax.jms.JMSException
{
java.lang.Throwable v, v;
long v, v, v;
boolean v, v, v, v;
org.apache.activemq.TransactionContext v;
java.util.Iterator v, v;
java.io.IOException v;
org.apache.activemq.ActiveMQConnection v, v, v;
org.apache.activemq.ActiveMQSessionExecutor v;
java.lang.Object v, v;
org.apache.activemq.ActiveMQSession v;
java.util.concurrent.CopyOnWriteArrayList v, v, v, v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: boolean closed>;
if v != 0 goto label;
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQSessionExecutor executor>;
virtualinvoke v.<org.apache.activemq.ActiveMQSessionExecutor: void close()>();
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList consumers>;
v = virtualinvoke v.<java.util.concurrent.CopyOnWriteArrayList: 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()>();
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: java.io.IOException getFirstFailureError()>();
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void setFailureError(java.io.IOException)>(v);
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void dispose()>();
v = v.<org.apache.activemq.ActiveMQSession: long lastDeliveredSequenceId>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: long getLastDeliveredSequenceId()>();
v = staticinvoke <java.lang.Math: long max(long,long)>(v, v);
v.<org.apache.activemq.ActiveMQSession: long lastDeliveredSequenceId> = v;
goto label;
label:
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList consumers>;
virtualinvoke v.<java.util.concurrent.CopyOnWriteArrayList: void clear()>();
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList producers>;
v = virtualinvoke v.<java.util.concurrent.CopyOnWriteArrayList: 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()>();
virtualinvoke v.<org.apache.activemq.ActiveMQMessageProducer: void dispose()>();
goto label;
label:
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList producers>;
virtualinvoke v.<java.util.concurrent.CopyOnWriteArrayList: void clear()>();
label:
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext getTransactionContext()>();
v = virtualinvoke v.<org.apache.activemq.TransactionContext: boolean isInLocalTransaction()>();
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void rollback()>();
label:
goto label;
label:
v := @caughtexception;
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void removeSession(org.apache.activemq.ActiveMQSession)>(v);
v.<org.apache.activemq.ActiveMQSession: boolean closed> = 1;
v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext transactionContext> = null;
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void removeSession(org.apache.activemq.ActiveMQSession)>(v);
v.<org.apache.activemq.ActiveMQSession: boolean closed> = 1;
v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext transactionContext> = null;
throw v;
label:
return;
catch javax.jms.JMSException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
protected void configureMessage(org.apache.activemq.command.ActiveMQMessage) throws javax.jms.IllegalStateException
{
org.apache.activemq.command.ActiveMQMessage v;
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: org.apache.activemq.command.ActiveMQMessage;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setConnection(org.apache.activemq.ActiveMQConnection)>(v);
return;
}
protected void checkClosed() throws javax.jms.IllegalStateException
{
javax.jms.IllegalStateException v;
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: boolean closed>;
if v == 0 goto label;
v = new javax.jms.IllegalStateException;
specialinvoke v.<javax.jms.IllegalStateException: void <init>(java.lang.String)>("The Session is closed");
throw v;
label:
return;
}
public boolean isClosed()
{
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: boolean closed>;
return v;
}
public void recover() throws javax.jms.JMSException
{
java.util.Iterator v;
java.lang.Object v;
javax.jms.IllegalStateException v;
org.apache.activemq.ActiveMQSession v;
boolean v, v;
java.util.concurrent.CopyOnWriteArrayList v;
v := @this: org.apache.activemq.ActiveMQSession;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean getTransacted()>();
if v == 0 goto label;
v = new javax.jms.IllegalStateException;
specialinvoke v.<javax.jms.IllegalStateException: void <init>(java.lang.String)>("This session is transacted");
throw v;
label:
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList consumers>;
v = virtualinvoke v.<java.util.concurrent.CopyOnWriteArrayList: 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()>();
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void rollback()>();
goto label;
label:
return;
}
public javax.jms.MessageListener getMessageListener() throws javax.jms.JMSException
{
javax.jms.MessageListener v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = v.<org.apache.activemq.ActiveMQSession: javax.jms.MessageListener messageListener>;
return v;
}
public void setMessageListener(javax.jms.MessageListener) throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQSessionExecutor v;
javax.jms.MessageListener v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: javax.jms.MessageListener;
if v == null goto label;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
label:
v.<org.apache.activemq.ActiveMQSession: javax.jms.MessageListener messageListener> = v;
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQSessionExecutor executor>;
virtualinvoke v.<org.apache.activemq.ActiveMQSessionExecutor: void setDispatchedBySessionPool(boolean)>(1);
label:
return;
}
public void run()
{
org.apache.activemq.command.Message v, v, v, v;
byte v, v;
org.apache.activemq.blob.BlobTransferPolicy v;
org.apache.activemq.ActiveMQSession v;
java.lang.Throwable v, v, v, v, v, v, v, v, v, v;
java.lang.Object[] v;
long v, v;
org.apache.activemq.ActiveMQSession$DeliveryListener v, v, v, v;
java.lang.String v;
org.apache.activemq.blob.BlobDownloader v;
org.apache.activemq.command.TransactionId v, v, v, v, v;
org.apache.activemq.ActiveMQSession$4 v;
org.apache.activemq.ActiveMQSession$5 v;
java.lang.RuntimeException v;
org.apache.activemq.command.ActiveMQMessage v;
javax.jms.MessageListener v;
org.apache.activemq.command.MessageDispatch v;
boolean v, v, v, v, v, v, v;
org.apache.activemq.command.MessageId v, v, v, v, v, v, v;
org.apache.activemq.ActiveMQConnection v, v, v, v, v, v, v, v, v;
java.util.List v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.TransactionContext v, v, v, v, v, v;
org.apache.activemq.command.MessageAck v, v, v, v;
org.slf4j.Logger v, v, v, v, v, v;
org.apache.activemq.ActiveMQSessionExecutor v, v;
java.lang.InterruptedException v;
java.lang.Object v;
v := @this: org.apache.activemq.ActiveMQSession;
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQSessionExecutor executor>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSessionExecutor: org.apache.activemq.command.MessageDispatch dequeueNoWait()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.Message copy()>();
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: byte getDataStructureType()>();
if v != 29 goto label;
v = new org.apache.activemq.blob.BlobDownloader;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.blob.BlobTransferPolicy getBlobTransferPolicy()>();
specialinvoke v.<org.apache.activemq.blob.BlobDownloader: void <init>(org.apache.activemq.blob.BlobTransferPolicy)>(v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQBlobMessage: void setBlobDownloader(org.apache.activemq.blob.BlobDownloader)>(v);
label:
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: byte getDataStructureType()>();
if v != 26 goto label;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection getConnection()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: boolean isTrustAllPackages()>();
virtualinvoke v.<org.apache.activemq.command.ActiveMQObjectMessage: void setTrustAllPackages(boolean)>(v);
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection getConnection()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: java.util.List getTrustedPackages()>();
virtualinvoke v.<org.apache.activemq.command.ActiveMQObjectMessage: void setTrustedPackages(java.util.List)>(v);
label:
v = null;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: boolean isExpired()>();
if v == 0 goto label;
v = new org.apache.activemq.command.MessageAck;
specialinvoke v.<org.apache.activemq.command.MessageAck: void <init>(org.apache.activemq.command.MessageDispatch,byte,int)>(v, 6, 1);
v = v;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: org.apache.activemq.command.MessageId getMessageId()>();
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setFirstMessageId(org.apache.activemq.command.MessageId)>(v);
goto label;
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: boolean isDuplicate(org.apache.activemq.ActiveMQDispatcher,org.apache.activemq.command.Message)>(v, v);
if v == 0 goto label;
v = <org.apache.activemq.ActiveMQSession: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: org.apache.activemq.command.MessageId getMessageId()>();
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("{} got duplicate: {}", v, v);
v = new org.apache.activemq.command.MessageAck;
specialinvoke v.<org.apache.activemq.command.MessageAck: void <init>(org.apache.activemq.command.MessageDispatch,byte,int)>(v, 1, 1);
v = v;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.MessageId getMessageId()>();
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setFirstMessageId(org.apache.activemq.command.MessageId)>(v);
v = new java.lang.Throwable;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.ActiveMQSession)>(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[])>("Duplicate delivery to \u0001");
specialinvoke v.<java.lang.Throwable: void <init>(java.lang.String)>(v);
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setPoisonCause(java.lang.Throwable)>(v);
label:
if v == null goto label;
label:
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void asyncSendPacket(org.apache.activemq.command.Command)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.ActiveMQSession: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object)>("error dispatching ack: {} ", v, v);
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void onClientInternalException(java.lang.Throwable)>(v);
label:
goto label;
label:
v := @caughtexception;
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isClientAcknowledge()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isIndividualAcknowledge()>();
if v == 0 goto label;
label:
v = new org.apache.activemq.ActiveMQSession$4;
specialinvoke v.<org.apache.activemq.ActiveMQSession$4: void <init>(org.apache.activemq.ActiveMQSession)>(v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setAcknowledgeCallback(org.apache.activemq.util.Callback)>(v);
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQSession$DeliveryListener deliveryListener>;
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQSession$DeliveryListener deliveryListener>;
interfaceinvoke v.<org.apache.activemq.ActiveMQSession$DeliveryListener: void beforeDelivery(org.apache.activemq.ActiveMQSession,javax.jms.Message)>(v, v);
label:
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: long getNextDeliveryId()>();
virtualinvoke v.<org.apache.activemq.command.MessageDispatch: void setDeliverySequenceId(long)>(v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: org.apache.activemq.command.MessageId getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageId: long getBrokerSequenceId()>();
v.<org.apache.activemq.ActiveMQSession: long lastDeliveredSequenceId> = v;
v = new org.apache.activemq.command.MessageAck;
specialinvoke v.<org.apache.activemq.command.MessageAck: void <init>(org.apache.activemq.command.MessageDispatch,byte,int)>(v, 2, 1);
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v = v.<org.apache.activemq.ActiveMQSession: java.lang.Object redeliveryGuard>;
entermonitor v;
label:
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.MessageId getMessageId()>();
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setFirstMessageId(org.apache.activemq.command.MessageId)>(v);
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void doStartTransaction()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext getTransactionContext()>();
v = virtualinvoke v.<org.apache.activemq.TransactionContext: org.apache.activemq.command.TransactionId getTransactionId()>();
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setTransactionId(org.apache.activemq.command.TransactionId)>(v);
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.TransactionId getTransactionId()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext getTransactionContext()>();
v = new org.apache.activemq.ActiveMQSession$5;
specialinvoke v.<org.apache.activemq.ActiveMQSession$5: void <init>(org.apache.activemq.ActiveMQSession,org.apache.activemq.command.MessageAck,org.apache.activemq.command.MessageDispatch,java.util.concurrent.atomic.AtomicBoolean)>(v, v, v, v);
virtualinvoke v.<org.apache.activemq.TransactionContext: void addSynchronization(org.apache.activemq.transaction.Synchronization)>(v);
label:
v = <org.apache.activemq.ActiveMQSession: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: org.apache.activemq.command.MessageId getMessageId()>();
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object,java.lang.Object)>("{} onMessage({})", v, v);
v = v.<org.apache.activemq.ActiveMQSession: javax.jms.MessageListener messageListener>;
interfaceinvoke v.<javax.jms.MessageListener: void onMessage(javax.jms.Message)>(v);
label:
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.TransactionId getTransactionId()>();
if v != null goto label;
label:
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void asyncSendPacket(org.apache.activemq.command.Command)>(v);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void onClientInternalException(java.lang.Throwable)>(v);
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isClosed()>();
if v != 0 goto label;
v = <org.apache.activemq.ActiveMQSession: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v[0] = v;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: org.apache.activemq.command.MessageId getMessageId()>();
v[1] = v;
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object[])>("{} error dispatching message: {} ", v);
label:
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext getTransactionContext()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext getTransactionContext()>();
v = virtualinvoke v.<org.apache.activemq.TransactionContext: boolean isInXATransaction()>();
if v == 0 goto label;
v = <org.apache.activemq.ActiveMQSession: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext getTransactionContext()>();
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Marking transaction: {} rollbackOnly", v);
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext getTransactionContext()>();
virtualinvoke v.<org.apache.activemq.TransactionContext: void setRollbackOnly(boolean)>(1);
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void onClientInternalException(java.lang.Throwable)>(v);
label:
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.TransactionId getTransactionId()>();
if v != null goto label;
label:
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void asyncSendPacket(org.apache.activemq.command.Command)>(v);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void onClientInternalException(java.lang.Throwable)>(v);
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.TransactionId getTransactionId()>();
if v != null goto label;
label:
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void asyncSendPacket(org.apache.activemq.command.Command)>(v);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void onClientInternalException(java.lang.Throwable)>(v);
label:
throw v;
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQSession$DeliveryListener deliveryListener>;
if v == null goto label;
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQSession$DeliveryListener deliveryListener>;
interfaceinvoke v.<org.apache.activemq.ActiveMQSession$DeliveryListener: void afterDelivery(org.apache.activemq.ActiveMQSession,javax.jms.Message)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.ActiveMQSession: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("Unable to call after delivery", v);
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(1);
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQSessionExecutor executor>;
virtualinvoke v.<org.apache.activemq.ActiveMQSessionExecutor: void waitForQueueRestart()>();
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void onClientInternalException(java.lang.Throwable)>(v);
goto label;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.InterruptedException from label to label with label;
}
public javax.jms.MessageProducer createProducer(javax.jms.Destination) throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQMessageProducer v;
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.command.ProducerId v;
javax.jms.Destination v;
int v;
javax.jms.MessageProducer v;
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: javax.jms.Destination;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = v instanceof org.apache.activemq.CustomDestination;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.activemq.CustomDestination: javax.jms.MessageProducer createProducer(org.apache.activemq.ActiveMQSession)>(v);
return v;
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: int getSendTimeout()>();
v = new org.apache.activemq.ActiveMQMessageProducer;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.command.ProducerId getNextProducerId()>();
v = staticinvoke <org.apache.activemq.ActiveMQMessageTransformation: org.apache.activemq.command.ActiveMQDestination transformDestination(javax.jms.Destination)>(v);
specialinvoke v.<org.apache.activemq.ActiveMQMessageProducer: void <init>(org.apache.activemq.ActiveMQSession,org.apache.activemq.command.ProducerId,org.apache.activemq.command.ActiveMQDestination,int)>(v, v, v, v);
return v;
}
public javax.jms.MessageConsumer createConsumer(javax.jms.Destination) throws javax.jms.JMSException
{
javax.jms.MessageConsumer v;
javax.jms.Destination v;
java.lang.String v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: javax.jms.Destination;
v = null;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: javax.jms.MessageConsumer createConsumer(javax.jms.Destination,java.lang.String)>(v, v);
return v;
}
public javax.jms.MessageConsumer createConsumer(javax.jms.Destination, java.lang.String) throws javax.jms.JMSException
{
javax.jms.MessageConsumer v;
javax.jms.Destination v;
java.lang.String v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: javax.jms.Destination;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: javax.jms.MessageConsumer createConsumer(javax.jms.Destination,java.lang.String,boolean)>(v, v, 0);
return v;
}
public javax.jms.MessageConsumer createConsumer(javax.jms.Destination, javax.jms.MessageListener) throws javax.jms.JMSException
{
javax.jms.MessageConsumer v;
javax.jms.Destination v;
javax.jms.MessageListener v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: javax.jms.Destination;
v := @parameter: javax.jms.MessageListener;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: javax.jms.MessageConsumer createConsumer(javax.jms.Destination,java.lang.String,javax.jms.MessageListener)>(v, null, v);
return v;
}
public javax.jms.MessageConsumer createConsumer(javax.jms.Destination, java.lang.String, javax.jms.MessageListener) throws javax.jms.JMSException
{
javax.jms.MessageConsumer v;
javax.jms.Destination v;
java.lang.String v;
javax.jms.MessageListener v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: javax.jms.Destination;
v := @parameter: java.lang.String;
v := @parameter: javax.jms.MessageListener;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: javax.jms.MessageConsumer createConsumer(javax.jms.Destination,java.lang.String,boolean,javax.jms.MessageListener)>(v, v, 0, v);
return v;
}
public javax.jms.MessageConsumer createConsumer(javax.jms.Destination, java.lang.String, boolean) throws javax.jms.JMSException
{
javax.jms.MessageConsumer v;
javax.jms.Destination v;
java.lang.String v;
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: javax.jms.Destination;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: javax.jms.MessageConsumer createConsumer(javax.jms.Destination,java.lang.String,boolean,javax.jms.MessageListener)>(v, v, v, null);
return v;
}
public javax.jms.MessageConsumer createConsumer(javax.jms.Destination, java.lang.String, boolean, javax.jms.MessageListener) throws javax.jms.JMSException
{
javax.jms.MessageListener v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.ActiveMQPrefetchPolicy v;
int v, v;
java.lang.String v;
boolean v, v, v, v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.command.ActiveMQDestination v;
javax.jms.MessageConsumer v;
javax.jms.Destination v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: javax.jms.Destination;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v := @parameter: javax.jms.MessageListener;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = v instanceof org.apache.activemq.CustomDestination;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.activemq.CustomDestination: javax.jms.MessageConsumer createConsumer(org.apache.activemq.ActiveMQSession,java.lang.String,boolean)>(v, v, v);
return v;
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: org.apache.activemq.ActiveMQPrefetchPolicy getPrefetchPolicy()>();
v = v instanceof javax.jms.Topic;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.ActiveMQPrefetchPolicy: int getTopicPrefetch()>();
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.ActiveMQPrefetchPolicy: int getQueuePrefetch()>();
label:
v = staticinvoke <org.apache.activemq.ActiveMQMessageTransformation: org.apache.activemq.command.ActiveMQDestination transformDestination(javax.jms.Destination)>(v);
v = new org.apache.activemq.ActiveMQMessageConsumer;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.command.ConsumerId getNextConsumerId()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQPrefetchPolicy: int getMaximumPendingMessageLimit()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isAsyncDispatch()>();
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void <init>(org.apache.activemq.ActiveMQSession,org.apache.activemq.command.ConsumerId,org.apache.activemq.command.ActiveMQDestination,java.lang.String,java.lang.String,int,int,boolean,boolean,boolean,javax.jms.MessageListener)>(v, v, v, null, v, v, v, v, 0, v, v);
return v;
}
public javax.jms.Queue createQueue(java.lang.String) throws javax.jms.JMSException
{
org.apache.activemq.command.ActiveMQTempQueue v;
java.lang.String v;
org.apache.activemq.command.ActiveMQQueue v;
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: java.lang.String;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("ID:");
if v == 0 goto label;
v = new org.apache.activemq.command.ActiveMQTempQueue;
specialinvoke v.<org.apache.activemq.command.ActiveMQTempQueue: void <init>(java.lang.String)>(v);
return v;
label:
v = new org.apache.activemq.command.ActiveMQQueue;
specialinvoke v.<org.apache.activemq.command.ActiveMQQueue: void <init>(java.lang.String)>(v);
return v;
}
public javax.jms.Topic createTopic(java.lang.String) throws javax.jms.JMSException
{
org.apache.activemq.command.ActiveMQTopic v;
java.lang.String v;
org.apache.activemq.command.ActiveMQTempTopic v;
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: java.lang.String;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("ID:");
if v == 0 goto label;
v = new org.apache.activemq.command.ActiveMQTempTopic;
specialinvoke v.<org.apache.activemq.command.ActiveMQTempTopic: void <init>(java.lang.String)>(v);
return v;
label:
v = new org.apache.activemq.command.ActiveMQTopic;
specialinvoke v.<org.apache.activemq.command.ActiveMQTopic: void <init>(java.lang.String)>(v);
return v;
}
public javax.jms.TopicSubscriber createDurableSubscriber(javax.jms.Topic, java.lang.String) throws javax.jms.JMSException
{
javax.jms.Topic v;
java.lang.String v;
javax.jms.TopicSubscriber v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: javax.jms.Topic;
v := @parameter: java.lang.String;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: javax.jms.TopicSubscriber createDurableSubscriber(javax.jms.Topic,java.lang.String,java.lang.String,boolean)>(v, v, null, 0);
return v;
}
public javax.jms.TopicSubscriber createDurableSubscriber(javax.jms.Topic, java.lang.String, java.lang.String, boolean) throws javax.jms.JMSException
{
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.ActiveMQPrefetchPolicy v;
int v, v;
javax.jms.InvalidDestinationException v;
java.lang.String v, v;
javax.jms.TopicSubscriber v;
boolean v, v, v, v, v;
javax.jms.Topic v;
org.apache.activemq.ActiveMQConnection v, v, v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.ActiveMQTopicSubscriber v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: javax.jms.Topic;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: boolean;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
if v != null goto label;
v = new javax.jms.InvalidDestinationException;
specialinvoke v.<javax.jms.InvalidDestinationException: void <init>(java.lang.String)>("Topic cannot be null");
throw v;
label:
v = v instanceof org.apache.activemq.CustomDestination;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.activemq.CustomDestination: javax.jms.TopicSubscriber createDurableSubscriber(org.apache.activemq.ActiveMQSession,java.lang.String,java.lang.String,boolean)>(v, v, v, v);
return v;
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void checkClientIDWasManuallySpecified()>();
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: org.apache.activemq.ActiveMQPrefetchPolicy getPrefetchPolicy()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isAutoAcknowledge()>();
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: boolean isOptimizedMessageDispatch()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.ActiveMQPrefetchPolicy: int getOptimizeDurableTopicPrefetch()>();
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.ActiveMQPrefetchPolicy: int getDurableTopicPrefetch()>();
label:
v = virtualinvoke v.<org.apache.activemq.ActiveMQPrefetchPolicy: int getMaximumPendingMessageLimit()>();
v = new org.apache.activemq.ActiveMQTopicSubscriber;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.command.ConsumerId getNextConsumerId()>();
v = staticinvoke <org.apache.activemq.ActiveMQMessageTransformation: org.apache.activemq.command.ActiveMQDestination transformDestination(javax.jms.Destination)>(v);
v = v.<org.apache.activemq.ActiveMQSession: boolean asyncDispatch>;
specialinvoke v.<org.apache.activemq.ActiveMQTopicSubscriber: void <init>(org.apache.activemq.ActiveMQSession,org.apache.activemq.command.ConsumerId,org.apache.activemq.command.ActiveMQDestination,java.lang.String,java.lang.String,int,int,boolean,boolean,boolean)>(v, v, v, v, v, v, v, v, 0, v);
return v;
}
public javax.jms.QueueBrowser createBrowser(javax.jms.Queue) throws javax.jms.JMSException
{
javax.jms.Queue v;
javax.jms.QueueBrowser v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: javax.jms.Queue;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: javax.jms.QueueBrowser createBrowser(javax.jms.Queue,java.lang.String)>(v, null);
return v;
}
public javax.jms.QueueBrowser createBrowser(javax.jms.Queue, java.lang.String) throws javax.jms.JMSException
{
javax.jms.Queue v;
org.apache.activemq.ActiveMQQueueBrowser v;
java.lang.String v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.ActiveMQSession v;
boolean v;
org.apache.activemq.command.ActiveMQDestination v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: javax.jms.Queue;
v := @parameter: java.lang.String;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = new org.apache.activemq.ActiveMQQueueBrowser;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.command.ConsumerId getNextConsumerId()>();
v = staticinvoke <org.apache.activemq.ActiveMQMessageTransformation: org.apache.activemq.command.ActiveMQDestination transformDestination(javax.jms.Destination)>(v);
v = v.<org.apache.activemq.ActiveMQSession: boolean asyncDispatch>;
specialinvoke v.<org.apache.activemq.ActiveMQQueueBrowser: void <init>(org.apache.activemq.ActiveMQSession,org.apache.activemq.command.ConsumerId,org.apache.activemq.command.ActiveMQDestination,java.lang.String,boolean)>(v, v, v, v, v);
return v;
}
public javax.jms.TemporaryQueue createTemporaryQueue() throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.ActiveMQSession v;
org.apache.activemq.command.ActiveMQTempDestination v;
v := @this: org.apache.activemq.ActiveMQSession;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: org.apache.activemq.command.ActiveMQTempDestination createTempDestination(boolean)>(0);
return v;
}
public javax.jms.TemporaryTopic createTemporaryTopic() throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.ActiveMQSession v;
org.apache.activemq.command.ActiveMQTempDestination v;
v := @this: org.apache.activemq.ActiveMQSession;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: org.apache.activemq.command.ActiveMQTempDestination createTempDestination(boolean)>(1);
return v;
}
public javax.jms.QueueReceiver createReceiver(javax.jms.Queue) throws javax.jms.JMSException
{
javax.jms.Queue v;
javax.jms.QueueReceiver v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: javax.jms.Queue;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: javax.jms.QueueReceiver createReceiver(javax.jms.Queue,java.lang.String)>(v, null);
return v;
}
public javax.jms.QueueReceiver createReceiver(javax.jms.Queue, java.lang.String) throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.command.ActiveMQDestination v;
javax.jms.Queue v;
org.apache.activemq.ActiveMQQueueReceiver v;
org.apache.activemq.ActiveMQPrefetchPolicy v;
int v, v;
javax.jms.QueueReceiver v;
java.lang.String v;
org.apache.activemq.ActiveMQSession v;
boolean v, v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: javax.jms.Queue;
v := @parameter: java.lang.String;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = v instanceof org.apache.activemq.CustomDestination;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.activemq.CustomDestination: javax.jms.QueueReceiver createReceiver(org.apache.activemq.ActiveMQSession,java.lang.String)>(v, v);
return v;
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: org.apache.activemq.ActiveMQPrefetchPolicy getPrefetchPolicy()>();
v = new org.apache.activemq.ActiveMQQueueReceiver;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.command.ConsumerId getNextConsumerId()>();
v = staticinvoke <org.apache.activemq.ActiveMQMessageTransformation: org.apache.activemq.command.ActiveMQDestination transformDestination(javax.jms.Destination)>(v);
v = virtualinvoke v.<org.apache.activemq.ActiveMQPrefetchPolicy: int getQueuePrefetch()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQPrefetchPolicy: int getMaximumPendingMessageLimit()>();
v = v.<org.apache.activemq.ActiveMQSession: boolean asyncDispatch>;
specialinvoke v.<org.apache.activemq.ActiveMQQueueReceiver: void <init>(org.apache.activemq.ActiveMQSession,org.apache.activemq.command.ConsumerId,org.apache.activemq.command.ActiveMQDestination,java.lang.String,int,int,boolean)>(v, v, v, v, v, v, v);
return v;
}
public javax.jms.QueueSender createSender(javax.jms.Queue) throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQQueueSender v;
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.command.ActiveMQDestination v;
javax.jms.Queue v;
int v;
javax.jms.QueueSender v;
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: javax.jms.Queue;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = v instanceof org.apache.activemq.CustomDestination;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.activemq.CustomDestination: javax.jms.QueueSender createSender(org.apache.activemq.ActiveMQSession)>(v);
return v;
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: int getSendTimeout()>();
v = new org.apache.activemq.ActiveMQQueueSender;
v = staticinvoke <org.apache.activemq.ActiveMQMessageTransformation: org.apache.activemq.command.ActiveMQDestination transformDestination(javax.jms.Destination)>(v);
specialinvoke v.<org.apache.activemq.ActiveMQQueueSender: void <init>(org.apache.activemq.ActiveMQSession,org.apache.activemq.command.ActiveMQDestination,int)>(v, v, v);
return v;
}
public javax.jms.TopicSubscriber createSubscriber(javax.jms.Topic) throws javax.jms.JMSException
{
javax.jms.Topic v;
javax.jms.TopicSubscriber v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: javax.jms.Topic;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: javax.jms.TopicSubscriber createSubscriber(javax.jms.Topic,java.lang.String,boolean)>(v, null, 0);
return v;
}
public javax.jms.TopicSubscriber createSubscriber(javax.jms.Topic, java.lang.String, boolean) throws javax.jms.JMSException
{
javax.jms.Topic v;
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.ActiveMQTopicSubscriber v;
org.apache.activemq.ActiveMQPrefetchPolicy v;
int v, v;
java.lang.String v;
javax.jms.TopicSubscriber v;
org.apache.activemq.ActiveMQSession v;
boolean v, v, v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: javax.jms.Topic;
v := @parameter: java.lang.String;
v := @parameter: boolean;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = v instanceof org.apache.activemq.CustomDestination;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.activemq.CustomDestination: javax.jms.TopicSubscriber createSubscriber(org.apache.activemq.ActiveMQSession,java.lang.String,boolean)>(v, v, v);
return v;
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: org.apache.activemq.ActiveMQPrefetchPolicy getPrefetchPolicy()>();
v = new org.apache.activemq.ActiveMQTopicSubscriber;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.command.ConsumerId getNextConsumerId()>();
v = staticinvoke <org.apache.activemq.ActiveMQMessageTransformation: org.apache.activemq.command.ActiveMQDestination transformDestination(javax.jms.Destination)>(v);
v = virtualinvoke v.<org.apache.activemq.ActiveMQPrefetchPolicy: int getTopicPrefetch()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQPrefetchPolicy: int getMaximumPendingMessageLimit()>();
v = v.<org.apache.activemq.ActiveMQSession: boolean asyncDispatch>;
specialinvoke v.<org.apache.activemq.ActiveMQTopicSubscriber: void <init>(org.apache.activemq.ActiveMQSession,org.apache.activemq.command.ConsumerId,org.apache.activemq.command.ActiveMQDestination,java.lang.String,java.lang.String,int,int,boolean,boolean,boolean)>(v, v, v, null, v, v, v, v, 0, v);
return v;
}
public javax.jms.TopicPublisher createPublisher(javax.jms.Topic) throws javax.jms.JMSException
{
javax.jms.Topic v;
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.ActiveMQTopicPublisher v;
javax.jms.TopicPublisher v;
org.apache.activemq.command.ActiveMQDestination v;
int v;
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: javax.jms.Topic;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = v instanceof org.apache.activemq.CustomDestination;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.activemq.CustomDestination: javax.jms.TopicPublisher createPublisher(org.apache.activemq.ActiveMQSession)>(v);
return v;
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: int getSendTimeout()>();
v = new org.apache.activemq.ActiveMQTopicPublisher;
v = staticinvoke <org.apache.activemq.ActiveMQMessageTransformation: org.apache.activemq.command.ActiveMQDestination transformDestination(javax.jms.Destination)>(v);
specialinvoke v.<org.apache.activemq.ActiveMQTopicPublisher: void <init>(org.apache.activemq.ActiveMQSession,org.apache.activemq.command.ActiveMQDestination,int)>(v, v, v);
return v;
}
public void unsubscribe(java.lang.String) throws javax.jms.JMSException
{
java.lang.String v;
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: java.lang.String;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void unsubscribe(java.lang.String)>(v);
return;
}
public void dispatch(org.apache.activemq.command.MessageDispatch)
{
org.apache.activemq.ActiveMQSessionExecutor v;
org.apache.activemq.command.MessageDispatch v;
java.lang.InterruptedException v;
java.lang.Thread v;
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: org.apache.activemq.command.MessageDispatch;
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQSessionExecutor executor>;
virtualinvoke v.<org.apache.activemq.ActiveMQSessionExecutor: void execute(org.apache.activemq.command.MessageDispatch)>(v);
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void onClientInternalException(java.lang.Throwable)>(v);
label:
return;
catch java.lang.InterruptedException from label to label with label;
}
public void acknowledge() throws javax.jms.JMSException
{
java.util.Iterator v;
java.lang.Object v;
org.apache.activemq.ActiveMQSession v;
boolean v;
java.util.concurrent.CopyOnWriteArrayList v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList consumers>;
v = virtualinvoke v.<java.util.concurrent.CopyOnWriteArrayList: 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()>();
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void acknowledge()>();
goto label;
label:
return;
}
protected void addConsumer(org.apache.activemq.ActiveMQMessageConsumer) throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.management.JMSSessionStatsImpl v;
org.apache.activemq.ActiveMQSession v;
boolean v;
java.util.concurrent.CopyOnWriteArrayList v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList consumers>;
virtualinvoke v.<java.util.concurrent.CopyOnWriteArrayList: boolean add(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: boolean isDurableSubscriber()>();
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.management.JMSSessionStatsImpl stats>;
virtualinvoke v.<org.apache.activemq.management.JMSSessionStatsImpl: void onCreateDurableSubscriber()>();
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerId getConsumerId()>();
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void addDispatcher(org.apache.activemq.command.ConsumerId,org.apache.activemq.ActiveMQDispatcher)>(v, v);
return;
}
protected void removeConsumer(org.apache.activemq.ActiveMQMessageConsumer)
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.ActiveMQConnection v, v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.management.JMSSessionStatsImpl v;
org.apache.activemq.ActiveMQSession v;
boolean v;
java.util.concurrent.CopyOnWriteArrayList v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerId getConsumerId()>();
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void removeDispatcher(org.apache.activemq.command.ConsumerId)>(v);
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: boolean isDurableSubscriber()>();
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.management.JMSSessionStatsImpl stats>;
virtualinvoke v.<org.apache.activemq.management.JMSSessionStatsImpl: void onRemoveDurableSubscriber()>();
label:
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList consumers>;
virtualinvoke v.<java.util.concurrent.CopyOnWriteArrayList: boolean remove(java.lang.Object)>(v);
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void removeDispatcher(org.apache.activemq.ActiveMQDispatcher)>(v);
return;
}
protected void addProducer(org.apache.activemq.ActiveMQMessageProducer) throws javax.jms.JMSException
{
org.apache.activemq.command.ProducerId v;
org.apache.activemq.command.ProducerInfo v;
org.apache.activemq.ActiveMQMessageProducer v;
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.ActiveMQSession v;
java.util.concurrent.CopyOnWriteArrayList v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: org.apache.activemq.ActiveMQMessageProducer;
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList producers>;
virtualinvoke v.<java.util.concurrent.CopyOnWriteArrayList: boolean add(java.lang.Object)>(v);
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageProducer: org.apache.activemq.command.ProducerInfo getProducerInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ProducerInfo: org.apache.activemq.command.ProducerId getProducerId()>();
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void addProducer(org.apache.activemq.command.ProducerId,org.apache.activemq.ActiveMQMessageProducer)>(v, v);
return;
}
protected void removeProducer(org.apache.activemq.ActiveMQMessageProducer)
{
org.apache.activemq.command.ProducerId v;
org.apache.activemq.command.ProducerInfo v;
org.apache.activemq.ActiveMQMessageProducer v;
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.ActiveMQSession v;
java.util.concurrent.CopyOnWriteArrayList v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: org.apache.activemq.ActiveMQMessageProducer;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageProducer: org.apache.activemq.command.ProducerInfo getProducerInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ProducerInfo: org.apache.activemq.command.ProducerId getProducerId()>();
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void removeProducer(org.apache.activemq.command.ProducerId)>(v);
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList producers>;
virtualinvoke v.<java.util.concurrent.CopyOnWriteArrayList: boolean remove(java.lang.Object)>(v);
return;
}
protected void start() throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQSessionExecutor v;
java.util.Iterator v;
java.util.concurrent.atomic.AtomicBoolean v;
java.lang.Object v;
org.apache.activemq.ActiveMQSession v;
boolean v;
java.util.concurrent.CopyOnWriteArrayList v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.atomic.AtomicBoolean started>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(1);
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList consumers>;
v = virtualinvoke v.<java.util.concurrent.CopyOnWriteArrayList: 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()>();
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void start()>();
goto label;
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQSessionExecutor executor>;
virtualinvoke v.<org.apache.activemq.ActiveMQSessionExecutor: void start()>();
return;
}
protected void stop() throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQSessionExecutor v;
java.util.Iterator v;
java.util.concurrent.atomic.AtomicBoolean v;
java.lang.Object v;
org.apache.activemq.ActiveMQSession v;
boolean v;
java.util.concurrent.CopyOnWriteArrayList v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList consumers>;
v = virtualinvoke v.<java.util.concurrent.CopyOnWriteArrayList: 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()>();
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void stop()>();
goto label;
label:
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.atomic.AtomicBoolean started>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(0);
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQSessionExecutor executor>;
virtualinvoke v.<org.apache.activemq.ActiveMQSessionExecutor: void stop()>();
return;
}
protected org.apache.activemq.command.SessionId getSessionId()
{
org.apache.activemq.ActiveMQSession v;
org.apache.activemq.command.SessionId v;
org.apache.activemq.command.SessionInfo v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.command.SessionInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.SessionInfo: org.apache.activemq.command.SessionId getSessionId()>();
return v;
}
protected org.apache.activemq.command.ConsumerId getNextConsumerId()
{
org.apache.activemq.util.LongSequenceGenerator v;
org.apache.activemq.command.SessionId v;
org.apache.activemq.command.SessionInfo v;
long v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v = new org.apache.activemq.command.ConsumerId;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.command.SessionInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.SessionInfo: org.apache.activemq.command.SessionId getSessionId()>();
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.util.LongSequenceGenerator consumerIdGenerator>;
v = virtualinvoke v.<org.apache.activemq.util.LongSequenceGenerator: long getNextSequenceId()>();
specialinvoke v.<org.apache.activemq.command.ConsumerId: void <init>(org.apache.activemq.command.SessionId,long)>(v, v);
return v;
}
protected org.apache.activemq.command.ProducerId getNextProducerId()
{
org.apache.activemq.command.ProducerId v;
org.apache.activemq.util.LongSequenceGenerator v;
org.apache.activemq.command.SessionId v;
org.apache.activemq.command.SessionInfo v;
long v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v = new org.apache.activemq.command.ProducerId;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.command.SessionInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.SessionInfo: org.apache.activemq.command.SessionId getSessionId()>();
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.util.LongSequenceGenerator producerIdGenerator>;
v = virtualinvoke v.<org.apache.activemq.util.LongSequenceGenerator: long getNextSequenceId()>();
specialinvoke v.<org.apache.activemq.command.ProducerId: void <init>(org.apache.activemq.command.SessionId,long)>(v, v);
return v;
}
protected void send(org.apache.activemq.ActiveMQMessageProducer, org.apache.activemq.command.ActiveMQDestination, javax.jms.Message, int, int, long, org.apache.activemq.usage.MemoryUsage, int, org.apache.activemq.AsyncCallback) throws javax.jms.JMSException
{
org.apache.activemq.command.ActiveMQMessage v;
org.apache.activemq.command.Message v;
byte v;
org.apache.activemq.usage.MemoryUsage v;
boolean v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.command.MessageId v, v, v;
org.apache.activemq.command.SessionId v;
org.apache.activemq.AsyncCallback v;
javax.jms.IllegalStateException v;
org.apache.activemq.ActiveMQConnection v, v, v, v, v, v, v, v, v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.ActiveMQSession v;
java.lang.Throwable v;
org.apache.activemq.ActiveMQMessageProducer v;
long v, v, v, v;
int v, v, v, v;
javax.jms.InvalidDestinationException v;
java.lang.String v, v, v;
javax.jms.Message v;
org.apache.activemq.command.TransactionId v;
org.apache.activemq.TransactionContext v, v;
org.slf4j.Logger v, v;
org.apache.activemq.command.ProducerId v, v;
org.apache.activemq.command.ProducerInfo v;
java.lang.Object v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: org.apache.activemq.ActiveMQMessageProducer;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: javax.jms.Message;
v := @parameter: int;
v := @parameter: int;
v := @parameter: long;
v := @parameter: org.apache.activemq.usage.MemoryUsage;
v := @parameter: int;
v := @parameter: org.apache.activemq.AsyncCallback;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkClosed()>();
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: boolean isTemporary()>();
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: boolean isDeleted(org.apache.activemq.command.ActiveMQDestination)>(v);
if v == 0 goto label;
v = new javax.jms.InvalidDestinationException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.ActiveMQDestination)>(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[])>("Cannot publish to a deleted Destination: \u0001");
specialinvoke v.<javax.jms.InvalidDestinationException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.apache.activemq.ActiveMQSession: java.lang.Object sendMutex>;
entermonitor v;
label:
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void doStartTransaction()>();
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext transactionContext>;
v = virtualinvoke v.<org.apache.activemq.TransactionContext: boolean isRollbackOnly()>();
if v == 0 goto label;
v = new javax.jms.IllegalStateException;
specialinvoke v.<javax.jms.IllegalStateException: void <init>(java.lang.String)>("transaction marked rollback only");
throw v;
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext transactionContext>;
v = virtualinvoke v.<org.apache.activemq.TransactionContext: org.apache.activemq.command.TransactionId getTransactionId()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageProducer: long getMessageSequence()>();
interfaceinvoke v.<javax.jms.Message: void setJMSDeliveryMode(int)>(v);
v = 0L;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageProducer: boolean getDisableMessageTimestamp()>();
if v != 0 goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
interfaceinvoke v.<javax.jms.Message: void setJMSTimestamp(long)>(v);
v = v cmp 0L;
if v <= 0 goto label;
v = v + v;
label:
interfaceinvoke v.<javax.jms.Message: void setJMSExpiration(long)>(v);
interfaceinvoke v.<javax.jms.Message: void setJMSPriority(int)>(v);
interfaceinvoke v.<javax.jms.Message: void setJMSRedelivered(boolean)>(0);
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = staticinvoke <org.apache.activemq.ActiveMQMessageTransformation: org.apache.activemq.command.ActiveMQMessage transformMessage(javax.jms.Message,org.apache.activemq.ActiveMQConnection)>(v, v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setDestination(org.apache.activemq.command.ActiveMQDestination)>(v);
v = new org.apache.activemq.command.MessageId;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageProducer: org.apache.activemq.command.ProducerInfo getProducerInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ProducerInfo: org.apache.activemq.command.ProducerId getProducerId()>();
specialinvoke v.<org.apache.activemq.command.MessageId: void <init>(org.apache.activemq.command.ProducerId,long)>(v, v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setMessageId(org.apache.activemq.command.MessageId)>(v);
if v == v goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: org.apache.activemq.command.MessageId getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageId: java.lang.String toString()>();
interfaceinvoke v.<javax.jms.Message: void setJMSMessageID(java.lang.String)>(v);
interfaceinvoke v.<javax.jms.Message: void setJMSDestination(javax.jms.Destination)>(v);
label:
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setBrokerPath(org.apache.activemq.command.BrokerId[])>(null);
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setTransactionId(org.apache.activemq.command.TransactionId)>(v);
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: boolean isCopyMessageOnSend()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: org.apache.activemq.command.Message copy()>();
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setConnection(org.apache.activemq.ActiveMQConnection)>(v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void onSend()>();
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: org.apache.activemq.command.MessageId getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageId: org.apache.activemq.command.ProducerId getProducerId()>();
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setProducerId(org.apache.activemq.command.ProducerId)>(v);
v = <org.apache.activemq.ActiveMQSession: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.ActiveMQSession: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.command.SessionId getSessionId()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.SessionId,org.apache.activemq.command.ActiveMQMessage)>(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[])>("\u sending message: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
label:
if v != null goto label;
if v > 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: boolean isResponseRequired()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: boolean isAlwaysSyncSend()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: boolean isPersistent()>();
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: boolean isUseAsyncSend()>();
if v != 0 goto label;
if v == null goto label;
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void asyncSendPacket(org.apache.activemq.command.Command)>(v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: int getSize()>();
virtualinvoke v.<org.apache.activemq.usage.MemoryUsage: void increaseUsage(long)>(v);
goto label;
label:
if v <= 0 goto label;
if v != null goto label;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: org.apache.activemq.command.Response syncSendPacket(org.apache.activemq.command.Command,int)>(v, v);
goto label;
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void syncSendPacket(org.apache.activemq.command.Command,org.apache.activemq.AsyncCallback)>(v, v);
label:
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 void doStartTransaction() throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQSession v;
boolean v, v;
org.apache.activemq.TransactionContext v, v;
v := @this: org.apache.activemq.ActiveMQSession;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean getTransacted()>();
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext transactionContext>;
v = virtualinvoke v.<org.apache.activemq.TransactionContext: boolean isInXATransaction()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext transactionContext>;
virtualinvoke v.<org.apache.activemq.TransactionContext: void begin()>();
label:
return;
}
public boolean hasUncomsumedMessages()
{
org.apache.activemq.ActiveMQSessionExecutor v;
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQSessionExecutor executor>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSessionExecutor: boolean hasUncomsumedMessages()>();
return v;
}
public boolean isTransacted()
{
int v;
org.apache.activemq.ActiveMQSession v;
boolean v, v;
org.apache.activemq.TransactionContext v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: int acknowledgementMode>;
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext transactionContext>;
v = virtualinvoke v.<org.apache.activemq.TransactionContext: boolean isInXATransaction()>();
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
protected boolean isClientAcknowledge()
{
int v;
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: int acknowledgementMode>;
if v != 2 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean isAutoAcknowledge()
{
int v;
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: int acknowledgementMode>;
if v != 1 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean isDupsOkAcknowledge()
{
int v;
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: int acknowledgementMode>;
if v != 3 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean isIndividualAcknowledge()
{
int v;
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: int acknowledgementMode>;
if v != 4 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public org.apache.activemq.ActiveMQSession$DeliveryListener getDeliveryListener()
{
org.apache.activemq.ActiveMQSession$DeliveryListener v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQSession$DeliveryListener deliveryListener>;
return v;
}
public void setDeliveryListener(org.apache.activemq.ActiveMQSession$DeliveryListener)
{
org.apache.activemq.ActiveMQSession$DeliveryListener v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: org.apache.activemq.ActiveMQSession$DeliveryListener;
v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQSession$DeliveryListener deliveryListener> = v;
return;
}
protected org.apache.activemq.command.SessionInfo getSessionInfo() throws javax.jms.JMSException
{
org.apache.activemq.command.ConnectionInfo v;
org.apache.activemq.command.SessionId v;
org.apache.activemq.command.SessionInfo v;
long v;
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v = new org.apache.activemq.command.SessionInfo;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: org.apache.activemq.command.ConnectionInfo getConnectionInfo()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.command.SessionId getSessionId()>();
v = virtualinvoke v.<org.apache.activemq.command.SessionId: long getValue()>();
specialinvoke v.<org.apache.activemq.command.SessionInfo: void <init>(org.apache.activemq.command.ConnectionInfo,long)>(v, v);
return v;
}
public void asyncSendPacket(org.apache.activemq.command.Command) throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.command.Command v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: org.apache.activemq.command.Command;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void asyncSendPacket(org.apache.activemq.command.Command)>(v);
return;
}
public org.apache.activemq.command.Response syncSendPacket(org.apache.activemq.command.Command) throws javax.jms.JMSException
{
org.apache.activemq.command.Response v;
org.apache.activemq.command.Command v;
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: org.apache.activemq.command.Command;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: org.apache.activemq.command.Response syncSendPacket(org.apache.activemq.command.Command)>(v);
return v;
}
public long getNextDeliveryId()
{
long v;
org.apache.activemq.util.LongSequenceGenerator v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.util.LongSequenceGenerator deliveryIdGenerator>;
v = virtualinvoke v.<org.apache.activemq.util.LongSequenceGenerator: long getNextSequenceId()>();
return v;
}
public void redispatch(org.apache.activemq.ActiveMQDispatcher, org.apache.activemq.MessageDispatchChannel) throws javax.jms.JMSException
{
java.util.Iterator v;
org.apache.activemq.ActiveMQDispatcher v;
org.apache.activemq.ActiveMQSessionExecutor v;
org.apache.activemq.MessageDispatchChannel v;
java.util.List v;
java.lang.Object v;
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: org.apache.activemq.ActiveMQDispatcher;
v := @parameter: org.apache.activemq.MessageDispatchChannel;
v = interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: java.util.List removeAll()>();
staticinvoke <java.util.Collections: void reverse(java.util.List)>(v);
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()>();
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQSessionExecutor executor>;
virtualinvoke v.<org.apache.activemq.ActiveMQSessionExecutor: void executeFirst(org.apache.activemq.command.MessageDispatch)>(v);
goto label;
label:
return;
}
public boolean isRunning()
{
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.atomic.AtomicBoolean started>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
return v;
}
public boolean isAsyncDispatch()
{
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: boolean asyncDispatch>;
return v;
}
public void setAsyncDispatch(boolean)
{
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: boolean;
v.<org.apache.activemq.ActiveMQSession: boolean asyncDispatch> = v;
return;
}
public boolean isSessionAsyncDispatch()
{
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: boolean sessionAsyncDispatch>;
return v;
}
public void setSessionAsyncDispatch(boolean)
{
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: boolean;
v.<org.apache.activemq.ActiveMQSession: boolean sessionAsyncDispatch> = v;
return;
}
public org.apache.activemq.MessageTransformer getTransformer()
{
org.apache.activemq.MessageTransformer v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.MessageTransformer transformer>;
return v;
}
public org.apache.activemq.ActiveMQConnection getConnection()
{
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
return v;
}
public void setTransformer(org.apache.activemq.MessageTransformer)
{
org.apache.activemq.MessageTransformer v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: org.apache.activemq.MessageTransformer;
v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.MessageTransformer transformer> = v;
return;
}
public org.apache.activemq.blob.BlobTransferPolicy getBlobTransferPolicy()
{
org.apache.activemq.blob.BlobTransferPolicy v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.blob.BlobTransferPolicy blobTransferPolicy>;
return v;
}
public void setBlobTransferPolicy(org.apache.activemq.blob.BlobTransferPolicy)
{
org.apache.activemq.blob.BlobTransferPolicy v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: org.apache.activemq.blob.BlobTransferPolicy;
v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.blob.BlobTransferPolicy blobTransferPolicy> = v;
return;
}
public java.util.List getUnconsumedMessages()
{
org.apache.activemq.ActiveMQSessionExecutor v;
java.util.List v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQSessionExecutor executor>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSessionExecutor: java.util.List getUnconsumedMessages()>();
return v;
}
public java.lang.String toString()
{
org.apache.activemq.command.SessionId v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.command.SessionInfo v;
java.lang.Object v;
java.lang.String v;
org.apache.activemq.ActiveMQSession v;
boolean v, v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.command.SessionInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.SessionInfo: org.apache.activemq.command.SessionId getSessionId()>();
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.atomic.AtomicBoolean started>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
v = v.<org.apache.activemq.ActiveMQSession: boolean closed>;
v = v.<org.apache.activemq.ActiveMQSession: java.lang.Object sendMutex>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.SessionId,boolean,boolean,java.lang.Object)>(v, v, 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[])>("ActiveMQSession {id=\u,started=\u,closed=\u0001} \u0001");
return v;
}
public void checkMessageListener() throws javax.jms.JMSException
{
java.util.Iterator v;
javax.jms.IllegalStateException v, v;
javax.jms.MessageListener v;
java.lang.Object v;
org.apache.activemq.ActiveMQSession v;
boolean v, v;
java.util.concurrent.CopyOnWriteArrayList v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: javax.jms.MessageListener messageListener>;
if v == null goto label;
v = new javax.jms.IllegalStateException;
specialinvoke v.<javax.jms.IllegalStateException: void <init>(java.lang.String)>("Cannot synchronously receive a message when a MessageListener is set");
throw v;
label:
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList consumers>;
v = virtualinvoke v.<java.util.concurrent.CopyOnWriteArrayList: 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()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: boolean hasMessageListener()>();
if v == 0 goto label;
v = new javax.jms.IllegalStateException;
specialinvoke v.<javax.jms.IllegalStateException: void <init>(java.lang.String)>("Cannot synchronously receive a message when a MessageListener is set");
throw v;
label:
return;
}
protected void setOptimizeAcknowledge(boolean)
{
java.util.Iterator v;
java.lang.Object v;
org.apache.activemq.ActiveMQSession v;
boolean v, v;
java.util.concurrent.CopyOnWriteArrayList v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: boolean;
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList consumers>;
v = virtualinvoke v.<java.util.concurrent.CopyOnWriteArrayList: 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()>();
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void setOptimizeAcknowledge(boolean)>(v);
goto label;
label:
return;
}
protected void setPrefetchSize(org.apache.activemq.command.ConsumerId, int)
{
java.util.Iterator v;
org.apache.activemq.command.ConsumerId v, v;
int v;
java.lang.Object v;
org.apache.activemq.ActiveMQSession v;
boolean v, v;
java.util.concurrent.CopyOnWriteArrayList v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: org.apache.activemq.command.ConsumerId;
v := @parameter: int;
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList consumers>;
v = virtualinvoke v.<java.util.concurrent.CopyOnWriteArrayList: 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()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerId: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void setPrefetchSize(int)>(v);
label:
return;
}
protected void close(org.apache.activemq.command.ConsumerId)
{
org.slf4j.Logger v;
java.util.Iterator v;
org.apache.activemq.command.ConsumerId v, v;
java.lang.Object v;
java.lang.String v;
org.apache.activemq.ActiveMQSession v;
boolean v, v;
java.util.concurrent.CopyOnWriteArrayList v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: org.apache.activemq.command.ConsumerId;
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList consumers>;
v = virtualinvoke v.<java.util.concurrent.CopyOnWriteArrayList: 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()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerId: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = <org.apache.activemq.ActiveMQSession: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.ConsumerId)>(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[])>("Closed consumer on Command, \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
label:
return;
}
public boolean isInUse(org.apache.activemq.command.ActiveMQTempDestination)
{
java.util.Iterator v;
org.apache.activemq.command.ActiveMQTempDestination v;
java.lang.Object v;
org.apache.activemq.ActiveMQSession v;
boolean v, v;
java.util.concurrent.CopyOnWriteArrayList v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: org.apache.activemq.command.ActiveMQTempDestination;
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.CopyOnWriteArrayList consumers>;
v = virtualinvoke v.<java.util.concurrent.CopyOnWriteArrayList: 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()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: boolean isInUse(org.apache.activemq.command.ActiveMQTempDestination)>(v);
if v == 0 goto label;
return 1;
label:
return 0;
}
public long getLastDeliveredSequenceId()
{
long v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: long lastDeliveredSequenceId>;
return v;
}
protected void sendAck(org.apache.activemq.command.MessageAck) throws javax.jms.JMSException
{
org.apache.activemq.command.MessageAck v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: org.apache.activemq.command.MessageAck;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void sendAck(org.apache.activemq.command.MessageAck,boolean)>(v, 0);
return;
}
protected void sendAck(org.apache.activemq.command.MessageAck, boolean) throws javax.jms.JMSException
{
org.apache.activemq.command.MessageAck v;
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.ActiveMQSession v;
boolean v, v, v;
v := @this: org.apache.activemq.ActiveMQSession;
v := @parameter: org.apache.activemq.command.MessageAck;
v := @parameter: boolean;
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: boolean isSendAcksAsync()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean getTransacted()>();
if v == 0 goto label;
label:
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void asyncSendPacket(org.apache.activemq.command.Command)>(v);
goto label;
label:
virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.command.Response syncSendPacket(org.apache.activemq.command.Command)>(v);
label:
return;
}
protected org.apache.activemq.thread.Scheduler getScheduler() throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.ActiveMQSession v;
org.apache.activemq.thread.Scheduler v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: org.apache.activemq.thread.Scheduler getScheduler()>();
return v;
}
protected java.util.concurrent.ThreadPoolExecutor getConnectionExecutor()
{
java.util.concurrent.ThreadPoolExecutor v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQSession;
v = v.<org.apache.activemq.ActiveMQSession: java.util.concurrent.ThreadPoolExecutor connectionExecutor>;
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/ActiveMQSession;");
<org.apache.activemq.ActiveMQSession: org.slf4j.Logger LOG> = v;
return;
}
}