public class org.apache.activemq.ActiveMQMessageConsumer extends java.lang.Object implements org.apache.activemq.MessageAvailableConsumer, org.apache.activemq.management.StatsCapable, org.apache.activemq.ActiveMQDispatcher
{
private static final org.slf4j.Logger LOG;
protected final org.apache.activemq.ActiveMQSession session;
protected final org.apache.activemq.command.ConsumerInfo info;
protected final org.apache.activemq.MessageDispatchChannel unconsumedMessages;
protected final java.util.LinkedList deliveredMessages;
private org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap previouslyDeliveredMessages;
private int deliveredCounter;
private int additionalWindowSize;
private long redeliveryDelay;
private int ackCounter;
private int dispatchedCount;
private final java.util.concurrent.atomic.AtomicReference messageListener;
private final org.apache.activemq.management.JMSConsumerStatsImpl stats;
private final java.lang.String selector;
private boolean synchronizationRegistered;
private final java.util.concurrent.atomic.AtomicBoolean started;
private org.apache.activemq.MessageAvailableListener availableListener;
private org.apache.activemq.RedeliveryPolicy redeliveryPolicy;
private boolean optimizeAcknowledge;
private final java.util.concurrent.atomic.AtomicBoolean deliveryingAcknowledgements;
private java.util.concurrent.ExecutorService executorService;
private org.apache.activemq.MessageTransformer transformer;
private volatile boolean clearDeliveredList;
java.util.concurrent.atomic.AtomicInteger inProgressClearRequiredFlag;
private org.apache.activemq.command.MessageAck pendingAck;
private long lastDeliveredSequenceId;
private java.io.IOException failureError;
private long optimizeAckTimestamp;
private long optimizeAcknowledgeTimeOut;
private long optimizedAckScheduledAckInterval;
private java.lang.Runnable optimizedAckTask;
private long failoverRedeliveryWaitPeriod;
private boolean transactedIndividualAck;
private boolean nonBlockingRedelivery;
private boolean consumerExpiryCheckEnabled;
public 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) throws javax.jms.JMSException
{
org.apache.activemq.FifoMessageDispatchChannel v;
org.apache.activemq.command.ConsumerId v;
java.util.Map v, v, v;
org.apache.activemq.broker.region.policy.RedeliveryPolicyMap v;
org.apache.activemq.management.JMSConsumerStatsImpl v;
org.apache.activemq.SimplePriorityMessageDispatchChannel v;
org.apache.activemq.ActiveMQSession v, v, v, v, v, v, v;
long v, v, v, v;
org.apache.activemq.command.ConnectionInfo v;
javax.jms.InvalidDestinationException v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.command.ConsumerInfo v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
javax.jms.MessageListener v;
java.util.concurrent.atomic.AtomicInteger v;
org.apache.activemq.management.JMSSessionStatsImpl v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.MessageTransformer v;
org.apache.activemq.ActiveMQConnection v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
javax.jms.JMSException v, v;
org.apache.activemq.command.ActiveMQDestination v;
java.util.concurrent.atomic.AtomicBoolean v, v;
java.util.HashMap v;
org.apache.activemq.RedeliveryPolicy v, v, v;
java.util.concurrent.atomic.AtomicReference v;
int v, v, v, v, v, v;
java.util.LinkedList v;
org.apache.activemq.ConfigurationException v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.slf4j.Logger v;
org.apache.activemq.command.ConnectionId v;
java.lang.IllegalArgumentException v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: org.apache.activemq.ActiveMQSession;
v := @parameter: org.apache.activemq.command.ConsumerId;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: int;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: javax.jms.MessageListener;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages> = v;
v = new java.util.concurrent.atomic.AtomicReference;
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>()>();
v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.atomic.AtomicReference messageListener> = v;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.atomic.AtomicBoolean started> = v;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>()>();
v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.atomic.AtomicBoolean deliveryingAcknowledgements> = v;
v = new java.util.concurrent.atomic.AtomicInteger;
specialinvoke v.<java.util.concurrent.atomic.AtomicInteger: void <init>(int)>(0);
v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.atomic.AtomicInteger inProgressClearRequiredFlag> = v;
v.<org.apache.activemq.ActiveMQMessageConsumer: long lastDeliveredSequenceId> = -1L;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v.<org.apache.activemq.ActiveMQMessageConsumer: long optimizeAckTimestamp> = v;
v.<org.apache.activemq.ActiveMQMessageConsumer: long optimizeAcknowledgeTimeOut> = 0L;
v.<org.apache.activemq.ActiveMQMessageConsumer: long optimizedAckScheduledAckInterval> = 0L;
v.<org.apache.activemq.ActiveMQMessageConsumer: long failoverRedeliveryWaitPeriod> = 0L;
v.<org.apache.activemq.ActiveMQMessageConsumer: boolean transactedIndividualAck> = 0;
v.<org.apache.activemq.ActiveMQMessageConsumer: boolean nonBlockingRedelivery> = 0;
v.<org.apache.activemq.ActiveMQMessageConsumer: boolean consumerExpiryCheckEnabled> = 1;
if v != null goto label;
v = new javax.jms.InvalidDestinationException;
specialinvoke v.<javax.jms.InvalidDestinationException: void <init>(java.lang.String)>("Don\'t understand null destinations");
throw v;
label:
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getPhysicalName()>();
if v != null goto label;
v = new javax.jms.InvalidDestinationException;
specialinvoke v.<javax.jms.InvalidDestinationException: void <init>(java.lang.String)>("The destination object was not given a physical name.");
throw v;
label:
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: boolean isTemporary()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getPhysicalName()>();
if v != null goto label;
v = new java.lang.IllegalArgumentException;
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[])>("Physical name of Destination should be valid: \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
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.command.ConnectionInfo: org.apache.activemq.command.ConnectionId getConnectionId()>();
v = virtualinvoke v.<org.apache.activemq.command.ConnectionId: java.lang.String getValue()>();
v = virtualinvoke v.<java.lang.String: int indexOf(java.lang.String)>(v);
if v >= 0 goto label;
v = new javax.jms.InvalidDestinationException;
specialinvoke v.<javax.jms.InvalidDestinationException: void <init>(java.lang.String)>("Cannot use a Temporary destination from another Connection");
throw v;
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;
specialinvoke v.<javax.jms.InvalidDestinationException: void <init>(java.lang.String)>("Cannot use a Temporary destination that has been deleted");
throw v;
label:
if v >= 0 goto label;
v = new javax.jms.JMSException;
specialinvoke v.<javax.jms.JMSException: void <init>(java.lang.String)>("Cannot have a prefetch size less than zero");
throw v;
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: boolean isMessagePrioritySupported()>();
if v == 0 goto label;
v = new org.apache.activemq.SimplePriorityMessageDispatchChannel;
specialinvoke v.<org.apache.activemq.SimplePriorityMessageDispatchChannel: void <init>()>();
v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages> = v;
goto label;
label:
v = new org.apache.activemq.FifoMessageDispatchChannel;
specialinvoke v.<org.apache.activemq.FifoMessageDispatchChannel: void <init>()>();
v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages> = v;
label:
v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session> = v;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: org.apache.activemq.broker.region.policy.RedeliveryPolicyMap getRedeliveryPolicyMap()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.policy.RedeliveryPolicyMap: org.apache.activemq.RedeliveryPolicy getEntryFor(org.apache.activemq.command.ActiveMQDestination)>(v);
v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.RedeliveryPolicy redeliveryPolicy> = v;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.RedeliveryPolicy redeliveryPolicy>;
if v != null goto label;
v = new org.apache.activemq.RedeliveryPolicy;
specialinvoke v.<org.apache.activemq.RedeliveryPolicy: void <init>()>();
v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.RedeliveryPolicy redeliveryPolicy> = v;
label:
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.MessageTransformer getTransformer()>();
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void setTransformer(org.apache.activemq.MessageTransformer)>(v);
v = new org.apache.activemq.command.ConsumerInfo;
specialinvoke v.<org.apache.activemq.command.ConsumerInfo: void <init>(org.apache.activemq.command.ConsumerId)>(v);
v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info> = v;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: boolean isExclusiveConsumer()>();
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setExclusive(boolean)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: java.lang.String getClientID()>();
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setClientId(java.lang.String)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setSubscriptionName(java.lang.String)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setPrefetchSize(int)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setCurrentPrefetchSize(int)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setMaximumPendingMessageLimit(int)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setNoLocal(boolean)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setDispatchAsync(boolean)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: boolean isUseRetroactiveConsumer()>();
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setRetroactive(boolean)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setSelector(java.lang.String)>(null);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.util.Map getOptions()>();
if v == null goto label;
v = new java.util.HashMap;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.util.Map getOptions()>();
specialinvoke v.<java.util.HashMap: void <init>(java.util.Map)>(v);
v = staticinvoke <org.apache.activemq.util.IntrospectionSupport: java.util.Map extractProperties(java.util.Map,java.lang.String)>(v, "consumer.");
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
staticinvoke <org.apache.activemq.util.IntrospectionSupport: boolean setProperties(java.lang.Object,java.util.Map)>(v, v);
v = interfaceinvoke v.<java.util.Map: int size()>();
if v <= 0 goto label;
v = interfaceinvoke v.<java.util.Map: int size()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,java.util.Map)>(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[])>("There are \u consumer options that couldn\'t be set on the consumer. Check the options are spelled correctly. Unknown parameters=[\u]. This consumer cannot be started.");
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
v = new org.apache.activemq.ConfigurationException;
specialinvoke v.<org.apache.activemq.ConfigurationException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setDestination(org.apache.activemq.command.ActiveMQDestination)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setBrowser(boolean)>(v);
if v == null goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = virtualinvoke v.<java.lang.String: int length()>();
if v == 0 goto label;
staticinvoke <org.apache.activemq.selector.SelectorParser: org.apache.activemq.filter.BooleanExpression parse(java.lang.String)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setSelector(java.lang.String)>(v);
v.<org.apache.activemq.ActiveMQMessageConsumer: java.lang.String selector> = v;
goto label;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.lang.String getSelector()>();
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.lang.String getSelector()>();
staticinvoke <org.apache.activemq.selector.SelectorParser: org.apache.activemq.filter.BooleanExpression parse(java.lang.String)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.lang.String getSelector()>();
v.<org.apache.activemq.ActiveMQMessageConsumer: java.lang.String selector> = v;
goto label;
label:
v.<org.apache.activemq.ActiveMQMessageConsumer: java.lang.String selector> = null;
label:
v = new org.apache.activemq.management.JMSConsumerStatsImpl;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.management.JMSSessionStatsImpl getSessionStats()>();
specialinvoke v.<org.apache.activemq.management.JMSConsumerStatsImpl: void <init>(org.apache.activemq.management.JMSSessionStatsImpl,javax.jms.Destination)>(v, v);
v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.management.JMSConsumerStatsImpl stats> = v;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: boolean isOptimizeAcknowledge()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isAutoAcknowledge()>();
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: boolean isBrowser()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v.<org.apache.activemq.ActiveMQMessageConsumer: boolean optimizeAcknowledge> = v;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: boolean optimizeAcknowledge>;
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: long getOptimizeAcknowledgeTimeOut()>();
v.<org.apache.activemq.ActiveMQMessageConsumer: long optimizeAcknowledgeTimeOut> = v;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: long getOptimizedAckScheduledAckInterval()>();
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void setOptimizedAckScheduledAckInterval(long)>(v);
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: boolean optimizeAcknowledge>;
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setOptimizedAcknowledge(boolean)>(v);
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: long getConsumerFailoverRedeliveryWaitPeriod()>();
v.<org.apache.activemq.ActiveMQMessageConsumer: long failoverRedeliveryWaitPeriod> = v;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: boolean isNonBlockingRedelivery()>();
v.<org.apache.activemq.ActiveMQMessageConsumer: boolean nonBlockingRedelivery> = v;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: boolean isTransactedIndividualAck()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: boolean nonBlockingRedelivery>;
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: boolean isMessagePrioritySupported()>();
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v.<org.apache.activemq.ActiveMQMessageConsumer: boolean transactedIndividualAck> = v;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: boolean isConsumerExpiryCheckEnabled()>();
v.<org.apache.activemq.ActiveMQMessageConsumer: boolean consumerExpiryCheckEnabled> = v;
if v == null goto label;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void setMessageListener(javax.jms.MessageListener)>(v);
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void addConsumer(org.apache.activemq.ActiveMQMessageConsumer)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.command.Response syncSendPacket(org.apache.activemq.command.Command)>(v);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void removeConsumer(org.apache.activemq.ActiveMQMessageConsumer)>(v);
throw v;
label:
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: boolean isStarted()>();
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void start()>();
label:
return;
catch javax.jms.JMSException from label to label with label;
}
private boolean isAutoAcknowledgeEach()
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.ActiveMQSession v, v;
boolean v, v, v, v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isAutoAcknowledge()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isDupsOkAcknowledge()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: boolean isQueue()>();
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private boolean isAutoAcknowledgeBatch()
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.ActiveMQSession v;
boolean v, v, v;
org.apache.activemq.command.ActiveMQDestination v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isDupsOkAcknowledge()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: boolean isQueue()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public org.apache.activemq.management.StatsImpl getStats()
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.management.JMSConsumerStatsImpl v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.management.JMSConsumerStatsImpl stats>;
return v;
}
public org.apache.activemq.management.JMSConsumerStatsImpl getConsumerStats()
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.management.JMSConsumerStatsImpl v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.management.JMSConsumerStatsImpl stats>;
return v;
}
public org.apache.activemq.RedeliveryPolicy getRedeliveryPolicy()
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.RedeliveryPolicy v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.RedeliveryPolicy redeliveryPolicy>;
return v;
}
public void setRedeliveryPolicy(org.apache.activemq.RedeliveryPolicy)
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.RedeliveryPolicy v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: org.apache.activemq.RedeliveryPolicy;
v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.RedeliveryPolicy redeliveryPolicy> = v;
return;
}
public org.apache.activemq.MessageTransformer getTransformer()
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.MessageTransformer v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageTransformer transformer>;
return v;
}
public void setTransformer(org.apache.activemq.MessageTransformer)
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.MessageTransformer v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: org.apache.activemq.MessageTransformer;
v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageTransformer transformer> = v;
return;
}
public org.apache.activemq.command.ConsumerId getConsumerId()
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.command.ConsumerInfo v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
return v;
}
public java.lang.String getConsumerName()
{
org.apache.activemq.ActiveMQMessageConsumer v;
java.lang.String v;
org.apache.activemq.command.ConsumerInfo v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.lang.String getSubscriptionName()>();
return v;
}
protected boolean isNoLocal()
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.command.ConsumerInfo v;
boolean v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: boolean isNoLocal()>();
return v;
}
protected boolean isBrowser()
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.command.ConsumerInfo v;
boolean v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: boolean isBrowser()>();
return v;
}
protected org.apache.activemq.command.ActiveMQDestination getDestination()
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.command.ConsumerInfo v;
org.apache.activemq.command.ActiveMQDestination v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
return v;
}
public int getPrefetchNumber()
{
int v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.command.ConsumerInfo v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: int getPrefetchSize()>();
return v;
}
public boolean isDurableSubscriber()
{
org.apache.activemq.ActiveMQMessageConsumer v;
java.lang.String v;
org.apache.activemq.command.ConsumerInfo v, v;
boolean v, v;
org.apache.activemq.command.ActiveMQDestination v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.lang.String getSubscriptionName()>();
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: boolean isTopic()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public java.lang.String getMessageSelector() throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQMessageConsumer v;
java.lang.String v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void checkClosed()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.lang.String selector>;
return v;
}
public javax.jms.MessageListener getMessageListener() throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQMessageConsumer v;
java.lang.Object v;
java.util.concurrent.atomic.AtomicReference v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void checkClosed()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.atomic.AtomicReference messageListener>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
return v;
}
public void setMessageListener(javax.jms.MessageListener) throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQMessageConsumer v;
javax.jms.MessageListener v;
java.util.concurrent.atomic.AtomicReference v, v;
javax.jms.JMSException v;
org.apache.activemq.MessageDispatchChannel v;
int v;
org.apache.activemq.ActiveMQSession v, v, v, v;
org.apache.activemq.command.ConsumerInfo v;
boolean v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: javax.jms.MessageListener;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void checkClosed()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: int getPrefetchSize()>();
if v != 0 goto label;
v = new javax.jms.JMSException;
specialinvoke v.<javax.jms.JMSException: void <init>(java.lang.String)>("Illegal prefetch size of zero. This setting is not supported for asynchronous consumers please set a value of at least 1");
throw v;
label:
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isRunning()>();
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void stop()>();
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.atomic.AtomicReference messageListener>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: void set(java.lang.Object)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void redispatch(org.apache.activemq.ActiveMQDispatcher,org.apache.activemq.MessageDispatchChannel)>(v, v);
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void start()>();
goto label;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.atomic.AtomicReference messageListener>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: void set(java.lang.Object)>(null);
label:
return;
}
public org.apache.activemq.MessageAvailableListener getAvailableListener()
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.MessageAvailableListener v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageAvailableListener availableListener>;
return v;
}
public void setAvailableListener(org.apache.activemq.MessageAvailableListener)
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.MessageAvailableListener v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: org.apache.activemq.MessageAvailableListener;
v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageAvailableListener availableListener> = v;
return;
}
private org.apache.activemq.command.MessageDispatch dequeue(long) throws javax.jms.JMSException
{
org.apache.activemq.command.ConsumerId v, v, v, v;
org.apache.activemq.command.Message v;
org.apache.activemq.command.MessageDispatch v;
byte v, v, v, v;
java.lang.Thread v;
boolean v, v, v, v;
javax.jms.JMSException v, v;
long v, v, v, v, v, v, v, v, v;
org.apache.activemq.RedeliveryPolicy v;
int v;
java.lang.String v, v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.slf4j.Logger v, v, v, v;
java.io.IOException v, v;
org.apache.activemq.MessageDispatchChannel v, v;
java.lang.InterruptedException v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: long;
label:
v = 0L;
v = v cmp 0L;
if v <= 0 goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v + v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
v = interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: org.apache.activemq.command.MessageDispatch dequeue(long)>(v);
if v != null goto label;
v = v cmp 0L;
if v <= 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
v = interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: boolean isClosed()>();
if v != 0 goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v - v;
v = staticinvoke <java.lang.Math: long max(long,long)>(v, 0L);
goto label;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.io.IOException failureError>;
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.io.IOException failureError>;
v = staticinvoke <org.apache.activemq.util.JMSExceptionSupport: javax.jms.JMSException create(java.lang.Exception)>(v);
throw v;
label:
return null;
label:
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
if v != null goto label;
label:
return null;
label:
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: boolean consumeExpiredMessage(org.apache.activemq.command.MessageDispatch)>(v);
if v == 0 goto label;
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerId getConsumerId()>();
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("{} received expired message: {}", v, v);
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void beforeMessageIsConsumed(org.apache.activemq.command.MessageDispatch)>(v);
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void afterMessageIsConsumed(org.apache.activemq.command.MessageDispatch,boolean)>(v, 1);
v = v cmp 0L;
if v <= 0 goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v - v;
v = staticinvoke <java.lang.Math: long max(long,long)>(v, 0L);
label:
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void sendPullCommand(long)>(v);
goto label;
label:
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: boolean redeliveryExceeded(org.apache.activemq.command.MessageDispatch)>(v);
if v == 0 goto label;
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerId getConsumerId()>();
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("{} received with excessive redelivered: {}", v, v);
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: int getRedeliveryCounter()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.RedeliveryPolicy redeliveryPolicy>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,org.apache.activemq.command.ConsumerId,org.apache.activemq.RedeliveryPolicy)>(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[])>("Dispatch[\u] to \u exceeds redelivery policy limit:\u0001");
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void poisonAck(org.apache.activemq.command.MessageDispatch,java.lang.String)>(v, v);
v = v cmp 0L;
if v <= 0 goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v - v;
v = staticinvoke <java.lang.Math: long max(long,long)>(v, 0L);
label:
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void sendPullCommand(long)>(v);
goto label;
label:
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.ConsumerId,org.apache.activemq.command.MessageDispatch)>(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 received message: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
label:
return v;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
v = staticinvoke <org.apache.activemq.util.JMSExceptionSupport: javax.jms.JMSException create(java.lang.Exception)>(v);
throw v;
catch java.lang.InterruptedException from label to label with label;
catch java.lang.InterruptedException from label to label with label;
catch java.lang.InterruptedException from label to label with label;
}
private boolean consumeExpiredMessage(org.apache.activemq.command.MessageDispatch)
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.command.Message v;
org.apache.activemq.command.MessageDispatch v;
boolean v, v, v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: org.apache.activemq.command.MessageDispatch;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: boolean isConsumerExpiryCheckEnabled()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
v = virtualinvoke v.<org.apache.activemq.command.Message: boolean isExpired()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private void poisonAck(org.apache.activemq.command.MessageDispatch, java.lang.String) throws javax.jms.JMSException
{
java.lang.Throwable v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.command.MessageAck v;
org.apache.activemq.command.MessageId v;
org.apache.activemq.command.Message v;
org.apache.activemq.command.MessageDispatch v;
java.lang.String v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: org.apache.activemq.command.MessageDispatch;
v := @parameter: java.lang.String;
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 = 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;
specialinvoke v.<java.lang.Throwable: void <init>(java.lang.String)>(v);
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setPoisonCause(java.lang.Throwable)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void sendAck(org.apache.activemq.command.MessageAck)>(v);
return;
}
private boolean redeliveryExceeded(org.apache.activemq.command.MessageDispatch)
{
org.apache.activemq.RedeliveryPolicy v, v, v, v;
org.apache.activemq.command.Message v;
org.apache.activemq.command.MessageDispatch v;
int v, v, v, v;
boolean v, v, v;
org.apache.activemq.ActiveMQMessageConsumer v;
java.lang.Exception v;
java.lang.Object v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: org.apache.activemq.command.MessageDispatch;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean getTransacted()>();
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.RedeliveryPolicy redeliveryPolicy>;
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.RedeliveryPolicy redeliveryPolicy>;
v = virtualinvoke v.<org.apache.activemq.RedeliveryPolicy: boolean isPreDispatchCheck()>();
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.RedeliveryPolicy redeliveryPolicy>;
v = virtualinvoke v.<org.apache.activemq.RedeliveryPolicy: int getMaximumRedeliveries()>();
v = (int) -1;
if v == v goto label;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: int getRedeliveryCounter()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.RedeliveryPolicy redeliveryPolicy>;
v = virtualinvoke v.<org.apache.activemq.RedeliveryPolicy: int getMaximumRedeliveries()>();
if v <= v goto label;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
v = virtualinvoke v.<org.apache.activemq.command.Message: java.lang.Object getProperty(java.lang.String)>("redeliveryDelay");
if v != null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
v := @caughtexception;
return 0;
catch java.lang.Exception from label to label with label;
}
public javax.jms.Message receive() throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.command.ActiveMQMessage v;
org.apache.activemq.command.MessageDispatch v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void checkClosed()>();
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void checkMessageListener()>();
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void sendPullCommand(long)>(0L);
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageDispatch dequeue(long)>(-1L);
if v != null goto label;
return null;
label:
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void beforeMessageIsConsumed(org.apache.activemq.command.MessageDispatch)>(v);
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void afterMessageIsConsumed(org.apache.activemq.command.MessageDispatch,boolean)>(v, 0);
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ActiveMQMessage createActiveMQMessage(org.apache.activemq.command.MessageDispatch)>(v);
return v;
}
private org.apache.activemq.command.ActiveMQMessage createActiveMQMessage(org.apache.activemq.command.MessageDispatch) throws javax.jms.JMSException
{
org.apache.activemq.command.ActiveMQMessage v;
org.apache.activemq.command.Message v, v;
org.apache.activemq.command.MessageDispatch v;
byte v, v;
org.apache.activemq.blob.BlobDownloader v;
javax.jms.Message v;
boolean v, v, v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.ActiveMQMessageConsumer$1 v;
org.apache.activemq.ActiveMQMessageConsumer$2 v;
org.apache.activemq.MessageTransformer v, v;
org.apache.activemq.ActiveMQConnection v, v, v;
java.util.List v;
org.apache.activemq.blob.BlobTransferPolicy v;
org.apache.activemq.ActiveMQSession v, v, v, v, v, v, v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: org.apache.activemq.command.MessageDispatch;
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 = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
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 = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
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 = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
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 = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageTransformer transformer>;
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageTransformer transformer>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = interfaceinvoke v.<org.apache.activemq.MessageTransformer: javax.jms.Message consumerTransform(javax.jms.Session,javax.jms.MessageConsumer,javax.jms.Message)>(v, v, v);
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
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);
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isClientAcknowledge()>();
if v == 0 goto label;
v = new org.apache.activemq.ActiveMQMessageConsumer$1;
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer$1: void <init>(org.apache.activemq.ActiveMQMessageConsumer)>(v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setAcknowledgeCallback(org.apache.activemq.util.Callback)>(v);
goto label;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isIndividualAcknowledge()>();
if v == 0 goto label;
v = new org.apache.activemq.ActiveMQMessageConsumer$2;
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer$2: void <init>(org.apache.activemq.ActiveMQMessageConsumer,org.apache.activemq.command.MessageDispatch)>(v, v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setAcknowledgeCallback(org.apache.activemq.util.Callback)>(v);
label:
return v;
}
public javax.jms.Message receive(long) throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.command.ActiveMQMessage v;
long v;
org.apache.activemq.command.MessageDispatch v;
byte v, v;
int v;
javax.jms.Message v;
org.apache.activemq.command.ConsumerInfo v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: long;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void checkClosed()>();
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void checkMessageListener()>();
v = v cmp 0L;
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: javax.jms.Message receive()>();
return v;
label:
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void sendPullCommand(long)>(v);
v = v cmp 0L;
if v <= 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: int getPrefetchSize()>();
if v != 0 goto label;
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageDispatch dequeue(long)>(-1L);
goto label;
label:
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageDispatch dequeue(long)>(v);
label:
if v != null goto label;
return null;
label:
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void beforeMessageIsConsumed(org.apache.activemq.command.MessageDispatch)>(v);
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void afterMessageIsConsumed(org.apache.activemq.command.MessageDispatch,boolean)>(v, 0);
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ActiveMQMessage createActiveMQMessage(org.apache.activemq.command.MessageDispatch)>(v);
return v;
label:
return null;
}
public javax.jms.Message receiveNoWait() throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.command.MessageDispatch v;
int v;
org.apache.activemq.command.ActiveMQMessage v;
org.apache.activemq.command.ConsumerInfo v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void checkClosed()>();
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void checkMessageListener()>();
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void sendPullCommand(long)>(-1L);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: int getPrefetchSize()>();
if v != 0 goto label;
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageDispatch dequeue(long)>(-1L);
goto label;
label:
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageDispatch dequeue(long)>(0L);
label:
if v != null goto label;
return null;
label:
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void beforeMessageIsConsumed(org.apache.activemq.command.MessageDispatch)>(v);
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void afterMessageIsConsumed(org.apache.activemq.command.MessageDispatch,boolean)>(v, 0);
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ActiveMQMessage createActiveMQMessage(org.apache.activemq.command.MessageDispatch)>(v);
return v;
}
public void close() throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.ActiveMQMessageConsumer$3 v;
org.apache.activemq.MessageDispatchChannel v;
java.util.LinkedList v;
org.apache.activemq.ActiveMQSession v, v;
boolean v, v, v;
org.apache.activemq.TransactionContext v, v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
v = interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: boolean isClosed()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext getTransactionContext()>();
v = virtualinvoke v.<org.apache.activemq.TransactionContext: boolean isInTransaction()>();
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext getTransactionContext()>();
v = new org.apache.activemq.ActiveMQMessageConsumer$3;
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer$3: void <init>(org.apache.activemq.ActiveMQMessageConsumer)>(v);
virtualinvoke v.<org.apache.activemq.TransactionContext: void addSynchronization(org.apache.activemq.transaction.Synchronization)>(v);
goto label;
label:
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void doClose()>();
label:
return;
}
void doClose() throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.slf4j.Logger v;
long v, v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.command.RemoveInfo v;
java.lang.Long v;
org.apache.activemq.ActiveMQSession v;
org.apache.activemq.command.ConsumerInfo v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void dispose()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.RemoveInfo createRemoveCommand()>();
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: long lastDeliveredSequenceId>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("remove: {}, lastDeliveredSequenceId: {}", v, v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: long lastDeliveredSequenceId>;
virtualinvoke v.<org.apache.activemq.command.RemoveInfo: void setLastDeliveredSequenceId(long)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void asyncSendPacket(org.apache.activemq.command.Command)>(v);
return;
}
void inProgressClearRequired()
{
org.apache.activemq.ActiveMQMessageConsumer v;
java.util.concurrent.atomic.AtomicInteger v;
java.util.LinkedList v;
org.apache.activemq.ActiveMQSession v, v;
boolean v, v;
org.apache.activemq.TransactionContext v, v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.atomic.AtomicInteger inProgressClearRequiredFlag>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int incrementAndGet()>();
v.<org.apache.activemq.ActiveMQMessageConsumer: boolean clearDeliveredList> = 1;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext getTransactionContext()>();
v = virtualinvoke v.<org.apache.activemq.TransactionContext: boolean isInTransaction()>();
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext getTransactionContext()>();
virtualinvoke v.<org.apache.activemq.TransactionContext: void setRollbackOnly(boolean)>(1);
label:
return;
}
void clearMessagesInProgress()
{
java.lang.Throwable v;
java.lang.Integer v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.command.Message v;
java.util.concurrent.atomic.AtomicInteger v, v, v;
int v, v, v;
org.apache.activemq.command.ConsumerInfo v;
boolean v, v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.slf4j.Logger v;
java.util.Iterator v;
org.apache.activemq.ActiveMQConnection v, v;
org.apache.activemq.MessageDispatchChannel v, v, v, v;
java.util.List v;
java.lang.Object v, v, v;
org.apache.activemq.ActiveMQSession v, v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.atomic.AtomicInteger inProgressClearRequiredFlag>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
if v <= 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
v = interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: java.lang.Object getMutex()>();
entermonitor v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.atomic.AtomicInteger inProgressClearRequiredFlag>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
if v <= 0 goto label;
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
v = interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: int size()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("{} clearing unconsumed list ({}) on transport interrupt", v, v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
v = interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: java.util.List removeAll()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: boolean isBrowser()>();
if v != 0 goto label;
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.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void rollbackDuplicate(org.apache.activemq.ActiveMQDispatcher,org.apache.activemq.command.Message)>(v, v);
goto label;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void transportInterruptionProcessingComplete()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.atomic.AtomicInteger inProgressClearRequiredFlag>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: void set(int)>(0);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
v = interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: java.lang.Object getMutex()>();
virtualinvoke v.<java.lang.Object: void notifyAll()>();
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void clearDeliveredList()>();
label:
return;
catch java.lang.Throwable from label to label with label;
}
void deliverAcks()
{
java.lang.Throwable v;
java.util.concurrent.atomic.AtomicBoolean v, v;
java.util.LinkedList v, v;
java.util.concurrent.ExecutorService v, v, v;
boolean v, v, v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.ActiveMQMessageConsumer$4 v;
org.apache.activemq.command.MessageAck v, v, v, v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = null;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.atomic.AtomicBoolean deliveryingAcknowledgements>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(0, 1);
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
entermonitor v;
label:
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: boolean isAutoAcknowledgeEach()>();
if v == 0 goto label;
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck makeAckForAllDeliveredMessages(byte)>(2);
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
virtualinvoke v.<java.util.LinkedList: void clear()>();
v.<org.apache.activemq.ActiveMQMessageConsumer: int ackCounter> = 0;
goto label;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck pendingAck>;
v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck pendingAck> = null;
goto label;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck pendingAck>;
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck pendingAck>;
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: boolean isStandardAck()>();
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck pendingAck>;
v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck pendingAck> = null;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v == null goto label;
v = v;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.ExecutorService executorService>;
if v != null goto label;
v = staticinvoke <java.util.concurrent.Executors: java.util.concurrent.ExecutorService newSingleThreadExecutor()>();
v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.ExecutorService executorService> = v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.ExecutorService executorService>;
v = new org.apache.activemq.ActiveMQMessageConsumer$4;
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer$4: void <init>(org.apache.activemq.ActiveMQMessageConsumer,org.apache.activemq.command.MessageAck)>(v, v);
interfaceinvoke v.<java.util.concurrent.ExecutorService: java.util.concurrent.Future submit(java.lang.Runnable)>(v);
goto label;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.atomic.AtomicBoolean deliveryingAcknowledgements>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(0);
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void dispose() throws javax.jms.JMSException
{
java.lang.Runnable v, v;
org.apache.activemq.command.Message v, v, v, v, v;
boolean v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.command.MessageId v;
java.util.Collection v;
org.apache.activemq.ActiveMQConnection v, v, v, v;
java.util.List v;
org.apache.activemq.ActiveMQSession v, v, v, v, v, v, v, v, v;
java.lang.Throwable v, v;
java.util.ArrayList v;
org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap v, v;
java.util.LinkedList v, v, v, v;
java.util.concurrent.ExecutorService v, v;
org.apache.activemq.command.ConsumerInfo v, v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.slf4j.Logger v;
java.util.Iterator v, v, v;
org.apache.activemq.MessageDispatchChannel v, v, v;
org.apache.activemq.thread.Scheduler v;
java.lang.Object v, v, v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
v = interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: boolean isClosed()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean getTransacted()>();
if v != 0 goto label;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void deliverAcks()>();
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: boolean isAutoAcknowledgeBatch()>();
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void acknowledge()>();
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.ExecutorService executorService>;
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.ExecutorService executorService>;
staticinvoke <org.apache.activemq.util.ThreadPoolUtils: void shutdownGraceful(java.util.concurrent.ExecutorService,long)>(v, 60000L);
v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.ExecutorService executorService> = null;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.lang.Runnable optimizedAckTask>;
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
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 = v.<org.apache.activemq.ActiveMQMessageConsumer: java.lang.Runnable optimizedAckTask>;
virtualinvoke v.<org.apache.activemq.thread.Scheduler: void cancel(java.lang.Runnable)>(v);
v.<org.apache.activemq.ActiveMQMessageConsumer: java.lang.Runnable optimizedAckTask> = null;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isClientAcknowledge()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isIndividualAcknowledge()>();
if v == 0 goto label;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: boolean isBrowser()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
entermonitor v;
label:
v = new java.util.ArrayList;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
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.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void rollbackDuplicate(org.apache.activemq.ActiveMQDispatcher,org.apache.activemq.command.Message)>(v, v);
goto label;
label:
interfaceinvoke v.<java.util.List: void clear()>();
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isTransacted()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
entermonitor v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
virtualinvoke v.<java.util.LinkedList: void clear()>();
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: void close()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void removeConsumer(org.apache.activemq.ActiveMQMessageConsumer)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
v = interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: java.util.List removeAll()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: boolean isBrowser()>();
if v != 0 goto label;
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 = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
if v == null goto label;
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
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()>();
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("on close, rollback duplicate: {}", v);
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void rollbackDuplicate(org.apache.activemq.ActiveMQDispatcher,org.apache.activemq.command.Message)>(v, v);
goto label;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap previouslyDeliveredMessages>;
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap previouslyDeliveredMessages>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: 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.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDelivered: org.apache.activemq.command.Message message>;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void rollbackDuplicate(org.apache.activemq.ActiveMQDispatcher,org.apache.activemq.command.Message)>(v, v);
goto label;
label:
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void clearPreviouslyDelivered()>();
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
protected void checkClosed() throws javax.jms.IllegalStateException
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.MessageDispatchChannel v;
javax.jms.IllegalStateException v;
boolean v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
v = interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: boolean isClosed()>();
if v == 0 goto label;
v = new javax.jms.IllegalStateException;
specialinvoke v.<javax.jms.IllegalStateException: void <init>(java.lang.String)>("The Consumer is closed");
throw v;
label:
return;
}
protected void sendPullCommand(long) throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQMessageConsumer v;
long v;
org.apache.activemq.command.MessagePull v;
org.apache.activemq.MessageDispatchChannel v;
int v;
org.apache.activemq.ActiveMQSession v;
org.apache.activemq.command.ConsumerInfo v, v;
boolean v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: long;
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void clearDeliveredList()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: int getCurrentPrefetchSize()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
v = interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: boolean isEmpty()>();
if v == 0 goto label;
v = new org.apache.activemq.command.MessagePull;
specialinvoke v.<org.apache.activemq.command.MessagePull: void <init>()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
virtualinvoke v.<org.apache.activemq.command.MessagePull: void configure(org.apache.activemq.command.ConsumerInfo)>(v);
virtualinvoke v.<org.apache.activemq.command.MessagePull: void setTimeout(long)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void asyncSendPacket(org.apache.activemq.command.Command)>(v);
label:
return;
}
protected void checkMessageListener() throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void checkMessageListener()>();
return;
}
protected void setOptimizeAcknowledge(boolean)
{
org.apache.activemq.ActiveMQMessageConsumer v;
boolean v, v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: boolean;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: boolean optimizeAcknowledge>;
if v == 0 goto label;
if v != 0 goto label;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void deliverAcks()>();
label:
v.<org.apache.activemq.ActiveMQMessageConsumer: boolean optimizeAcknowledge> = v;
return;
}
protected void setPrefetchSize(int)
{
int v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.command.ConsumerInfo v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: int;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void deliverAcks()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setCurrentPrefetchSize(int)>(v);
return;
}
private void beforeMessageIsConsumed(org.apache.activemq.command.MessageDispatch) throws javax.jms.JMSException
{
java.lang.Throwable v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.command.MessageId v;
long v, v;
org.apache.activemq.command.Message v;
org.apache.activemq.command.MessageDispatch v;
java.util.LinkedList v, v;
org.apache.activemq.ActiveMQSession v, v;
boolean v, v, v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: org.apache.activemq.command.MessageDispatch;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
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.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.MessageId getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageId: long getBrokerSequenceId()>();
v.<org.apache.activemq.ActiveMQMessageConsumer: long lastDeliveredSequenceId> = v;
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: boolean isAutoAcknowledgeBatch()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
entermonitor v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
virtualinvoke v.<java.util.LinkedList: void addFirst(java.lang.Object)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean getTransacted()>();
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: boolean transactedIndividualAck>;
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void immediateIndividualTransactedAck(org.apache.activemq.command.MessageDispatch)>(v);
goto label;
label:
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void ackLater(org.apache.activemq.command.MessageDispatch,byte)>(v, 0);
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void immediateIndividualTransactedAck(org.apache.activemq.command.MessageDispatch) throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.command.MessageDispatch v;
org.apache.activemq.command.MessageAck v;
org.apache.activemq.command.TransactionId v;
org.apache.activemq.ActiveMQSession v, v;
org.apache.activemq.TransactionContext v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: org.apache.activemq.command.MessageDispatch;
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void registerSync()>();
v = new org.apache.activemq.command.MessageAck;
specialinvoke v.<org.apache.activemq.command.MessageAck: void <init>(org.apache.activemq.command.MessageDispatch,byte,int)>(v, 4, 1);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
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 = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void sendAck(org.apache.activemq.command.MessageAck)>(v);
return;
}
private void afterMessageIsConsumed(org.apache.activemq.command.MessageDispatch, boolean) throws javax.jms.JMSException
{
org.apache.activemq.command.MessageDispatch v;
org.apache.activemq.management.CountStatisticImpl v;
byte v, v, v;
boolean v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.management.JMSConsumerStatsImpl v, v;
javax.jms.IllegalStateException v;
org.apache.activemq.ActiveMQSession v, v, v, v, v, v;
java.lang.Throwable v, v;
java.util.concurrent.atomic.AtomicBoolean v, v;
long v, v, v, v, v, v;
int v, v, v, v, v, v, v;
java.util.LinkedList v, v, v, v, v, v;
org.apache.activemq.command.ConsumerInfo v;
double v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.command.MessageAck v, v, v, v;
org.apache.activemq.MessageDispatchChannel v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: org.apache.activemq.command.MessageDispatch;
v := @parameter: boolean;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
v = interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: boolean isClosed()>();
if v == 0 goto label;
return;
label:
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void acknowledge(org.apache.activemq.command.MessageDispatch,byte)>(v, 6);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.management.JMSConsumerStatsImpl stats>;
v = virtualinvoke v.<org.apache.activemq.management.JMSConsumerStatsImpl: org.apache.activemq.management.CountStatisticImpl getExpiredMessageCount()>();
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: void increment()>();
goto label;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.management.JMSConsumerStatsImpl stats>;
virtualinvoke v.<org.apache.activemq.management.JMSConsumerStatsImpl: void onMessage()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean getTransacted()>();
if v != 0 goto label;
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: boolean isAutoAcknowledgeEach()>();
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.atomic.AtomicBoolean deliveryingAcknowledgements>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(0, 1);
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
entermonitor v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: boolean optimizeAcknowledge>;
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: int ackCounter>;
v = v + 1;
v.<org.apache.activemq.ActiveMQMessageConsumer: int ackCounter> = v;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: int ackCounter>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: int deliveredCounter>;
v = v + v;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: int getPrefetchSize()>();
v = v * 0.65;
v = v cmpl v;
if v >= 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: long optimizeAcknowledgeTimeOut>;
v = v cmp 0L;
if v <= 0 goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: long optimizeAckTimestamp>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: long optimizeAcknowledgeTimeOut>;
v = v + v;
v = v cmp v;
if v < 0 goto label;
label:
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck makeAckForAllDeliveredMessages(byte)>(2);
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
virtualinvoke v.<java.util.LinkedList: void clear()>();
v.<org.apache.activemq.ActiveMQMessageConsumer: int ackCounter> = 0;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void sendAck(org.apache.activemq.command.MessageAck)>(v);
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v.<org.apache.activemq.ActiveMQMessageConsumer: long optimizeAckTimestamp> = v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck pendingAck>;
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: int deliveredCounter>;
if v <= 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck pendingAck>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void sendAck(org.apache.activemq.command.MessageAck)>(v);
v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck pendingAck> = null;
v.<org.apache.activemq.ActiveMQMessageConsumer: int deliveredCounter> = 0;
goto label;
label:
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck makeAckForAllDeliveredMessages(byte)>(2);
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
virtualinvoke v.<java.util.LinkedList: void clear()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void sendAck(org.apache.activemq.command.MessageAck)>(v);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.atomic.AtomicBoolean deliveryingAcknowledgements>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(0);
goto label;
label:
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: boolean isAutoAcknowledgeBatch()>();
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void ackLater(org.apache.activemq.command.MessageDispatch,byte)>(v, 2);
goto label;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isClientAcknowledge()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isIndividualAcknowledge()>();
if v == 0 goto label;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
entermonitor v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: boolean contains(java.lang.Object)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void ackLater(org.apache.activemq.command.MessageDispatch,byte)>(v, 0);
goto label;
label:
v = new javax.jms.IllegalStateException;
specialinvoke v.<javax.jms.IllegalStateException: void <init>(java.lang.String)>("Invalid session state.");
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private org.apache.activemq.command.MessageAck makeAckForAllDeliveredMessages(byte)
{
java.lang.Throwable v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.command.MessageAck v;
org.apache.activemq.command.MessageId v;
org.apache.activemq.command.Message v;
byte v;
int v;
java.lang.Object v, v;
java.util.LinkedList v, v, v, v, v;
boolean v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: byte;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
entermonitor v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: boolean isEmpty()>();
if v == 0 goto label;
exitmonitor v;
label:
return null;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: java.lang.Object getFirst()>();
v = new org.apache.activemq.command.MessageAck;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: int size()>();
specialinvoke v.<org.apache.activemq.command.MessageAck: void <init>(org.apache.activemq.command.MessageDispatch,byte,int)>(v, v, v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: java.lang.Object getLast()>();
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);
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private void ackLater(org.apache.activemq.command.MessageDispatch, byte) throws javax.jms.JMSException
{
org.apache.activemq.command.MessageDispatch v;
byte v, v, v, v;
boolean v, v;
org.apache.activemq.command.MessageId v, v;
org.apache.activemq.ActiveMQSession v, v, v, v;
java.lang.Throwable v;
int v, v, v, v, v, v, v, v, v;
java.util.LinkedList v;
org.apache.activemq.command.TransactionId v;
org.apache.activemq.command.ConsumerInfo v;
double v;
org.apache.activemq.TransactionContext v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.command.MessageAck v, v, v, v, v, v, v, v, v, v, v;
org.slf4j.Logger v, v, v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: org.apache.activemq.command.MessageDispatch;
v := @parameter: byte;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean getTransacted()>();
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void registerSync()>();
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: int deliveredCounter>;
v = v + 1;
v.<org.apache.activemq.ActiveMQMessageConsumer: int deliveredCounter> = v;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
entermonitor v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck pendingAck>;
v = new org.apache.activemq.command.MessageAck;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: int deliveredCounter>;
specialinvoke v.<org.apache.activemq.command.MessageAck: void <init>(org.apache.activemq.command.MessageDispatch,byte,int)>(v, v, v);
v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck pendingAck> = v;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck pendingAck>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
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);
if v != null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck pendingAck>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck pendingAck>;
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.MessageId getLastMessageId()>();
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setFirstMessageId(org.apache.activemq.command.MessageId)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: byte getAckType()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck pendingAck>;
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: byte getAckType()>();
if v != v goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck pendingAck>;
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.MessageId getFirstMessageId()>();
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setFirstMessageId(org.apache.activemq.command.MessageId)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: boolean isDeliveredAck()>();
if v != 0 goto label;
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck pendingAck>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Sending old pending ack {}, new pending: {}", v, v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void sendAck(org.apache.activemq.command.MessageAck)>(v);
goto label;
label:
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck pendingAck>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("dropping old pending ack {}, new pending: {}", v, v);
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: int getPrefetchSize()>();
v = 0.5 * v;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: int deliveredCounter>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: int ackCounter>;
v = v + v;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: int additionalWindowSize>;
v = v - v;
v = v cmpg v;
if v > 0 goto label;
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck pendingAck>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("ackLater: sending: {}", v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck pendingAck>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void sendAck(org.apache.activemq.command.MessageAck)>(v);
v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck pendingAck> = null;
v.<org.apache.activemq.ActiveMQMessageConsumer: int deliveredCounter> = 0;
v.<org.apache.activemq.ActiveMQMessageConsumer: int additionalWindowSize> = 0;
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;
}
private void registerSync() throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.ActiveMQMessageConsumer$5 v;
org.apache.activemq.ActiveMQSession v, v;
boolean v;
org.apache.activemq.TransactionContext v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void doStartTransaction()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: boolean synchronizationRegistered>;
if v != 0 goto label;
v.<org.apache.activemq.ActiveMQMessageConsumer: boolean synchronizationRegistered> = 1;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext getTransactionContext()>();
v = new org.apache.activemq.ActiveMQMessageConsumer$5;
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer$5: void <init>(org.apache.activemq.ActiveMQMessageConsumer)>(v);
virtualinvoke v.<org.apache.activemq.TransactionContext: void addSynchronization(org.apache.activemq.transaction.Synchronization)>(v);
label:
return;
}
public void acknowledge() throws javax.jms.JMSException
{
java.lang.Throwable v;
int v, v, v, v, v, v, v, v;
java.util.LinkedList v, v, v, v;
org.apache.activemq.command.TransactionId v;
boolean v, v;
org.apache.activemq.TransactionContext v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.command.MessageAck v;
org.apache.activemq.ActiveMQSession v, v, v, v, v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void clearDeliveredList()>();
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void waitForRedeliveries()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
entermonitor v;
label:
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck makeAckForAllDeliveredMessages(byte)>(2);
if v != null goto label;
exitmonitor v;
label:
return;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean getTransacted()>();
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void rollbackOnFailedRecoveryRedelivery()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void doStartTransaction()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
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);
label:
v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck pendingAck> = null;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void sendAck(org.apache.activemq.command.MessageAck)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: int deliveredCounter>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: int size()>();
v = v - v;
v = staticinvoke <java.lang.Math: int max(int,int)>(0, v);
v.<org.apache.activemq.ActiveMQMessageConsumer: int deliveredCounter> = v;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: int additionalWindowSize>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: int size()>();
v = v - v;
v = staticinvoke <java.lang.Math: int max(int,int)>(0, v);
v.<org.apache.activemq.ActiveMQMessageConsumer: int additionalWindowSize> = v;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean getTransacted()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
virtualinvoke v.<java.util.LinkedList: void clear()>();
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;
catch java.lang.Throwable from label to label with label;
}
private void waitForRedeliveries()
{
java.lang.Throwable v;
java.lang.Object[] v;
long v, v, v, v, v, v, v, v, v;
java.lang.Integer v;
org.apache.activemq.command.ConsumerId v;
byte v, v;
int v;
org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap v, v, v, v;
java.util.LinkedList v;
org.apache.activemq.command.TransactionId v;
boolean v, v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.slf4j.Logger v;
java.util.Iterator v;
java.util.Collection v;
java.lang.InterruptedException v;
java.lang.Object v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: long failoverRedeliveryWaitPeriod>;
v = v cmp 0L;
if v <= 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap previouslyDeliveredMessages>;
if v == null goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: long failoverRedeliveryWaitPeriod>;
v = v + v;
label:
v = 0;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
entermonitor v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap previouslyDeliveredMessages>;
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap previouslyDeliveredMessages>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: 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.ActiveMQMessageConsumer$PreviouslyDelivered: boolean redelivered>;
if v != 0 goto label;
v = v + 1;
goto label;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v <= 0 goto label;
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerId getConsumerId()>();
v[1] = v;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap previouslyDeliveredMessages>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap: org.apache.activemq.command.TransactionId transactionId>;
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object[])>("waiting for redelivery of {} in transaction: {}, to consumer: {}", v);
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: long failoverRedeliveryWaitPeriod>;
v = v / 4L;
v = staticinvoke <java.lang.Math: long max(long,long)>(500L, v);
staticinvoke <java.lang.Thread: void sleep(long)>(v);
label:
goto label;
label:
v := @caughtexception;
goto label;
label:
if v <= 0 goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v - v;
v = v cmp 0L;
if v < 0 goto label;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.InterruptedException from label to label with label;
}
private void rollbackOnFailedRecoveryRedelivery() throws javax.jms.JMSException
{
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.command.Message v;
int v;
org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap v, v, v, v;
java.lang.String v;
org.apache.activemq.command.TransactionId v, v;
boolean v, v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.slf4j.Logger v, v;
java.util.Iterator v;
org.apache.activemq.command.MessageId v;
java.util.Collection v;
java.lang.Object v;
javax.jms.TransactionRolledBackException v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap previouslyDeliveredMessages>;
if v == null goto label;
v = 0;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap previouslyDeliveredMessages>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: 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.ActiveMQMessageConsumer$PreviouslyDelivered: boolean redelivered>;
if v != 0 goto label;
v = v + 1;
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap previouslyDeliveredMessages>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap: org.apache.activemq.command.TransactionId transactionId>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDelivered: org.apache.activemq.command.Message message>;
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.MessageId getMessageId()>();
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("previously delivered message has not been replayed in transaction: {}, messageId: {}", v, v);
goto label;
label:
if v <= 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap previouslyDeliveredMessages>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap: org.apache.activemq.command.TransactionId transactionId>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.TransactionId,int,org.apache.activemq.command.ConsumerId)>(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[])>("rolling back transaction (\u) post failover recovery. \u previously delivered message(s) not replayed to consumer: \u0001");
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
v = new javax.jms.TransactionRolledBackException;
specialinvoke v.<javax.jms.TransactionRolledBackException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
void acknowledge(org.apache.activemq.command.MessageDispatch) throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.command.MessageDispatch v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: org.apache.activemq.command.MessageDispatch;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void acknowledge(org.apache.activemq.command.MessageDispatch,byte)>(v, 4);
return;
}
void acknowledge(org.apache.activemq.command.MessageDispatch, byte) throws javax.jms.JMSException
{
java.lang.Throwable v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.command.MessageAck v;
org.apache.activemq.command.MessageId v;
org.apache.activemq.command.MessageDispatch v;
byte v;
java.util.LinkedList v, v;
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: org.apache.activemq.command.MessageDispatch;
v := @parameter: byte;
v = new org.apache.activemq.command.MessageAck;
specialinvoke v.<org.apache.activemq.command.MessageAck: void <init>(org.apache.activemq.command.MessageDispatch,byte,int)>(v, v, 1);
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: boolean isExpiredAck()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.MessageId getLastMessageId()>();
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setFirstMessageId(org.apache.activemq.command.MessageId)>(v);
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void sendAck(org.apache.activemq.command.MessageAck)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
entermonitor v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
virtualinvoke v.<java.util.LinkedList: boolean remove(java.lang.Object)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void commit() throws javax.jms.JMSException
{
java.lang.Throwable v;
org.apache.activemq.ActiveMQMessageConsumer v;
java.util.LinkedList v, v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
entermonitor v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
virtualinvoke v.<java.util.LinkedList: void clear()>();
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void clearPreviouslyDelivered()>();
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v.<org.apache.activemq.ActiveMQMessageConsumer: long redeliveryDelay> = 0L;
return;
catch java.lang.Throwable from label to label with label;
}
public void rollback() throws javax.jms.JMSException
{
org.apache.activemq.command.Message v, v, v, v, v, v, v, v;
byte v;
org.apache.activemq.ActiveMQSession v, v, v, v, v, v, v;
java.lang.Throwable v, v, v, v, v, v;
long v, v, v, v, v, v;
java.lang.String v;
org.apache.activemq.command.ConsumerInfo v;
org.apache.activemq.thread.Scheduler v, v;
boolean v, v, v, v, v, v, v, v;
org.apache.activemq.command.MessageId v;
org.apache.activemq.ActiveMQConnection v, v, v;
org.apache.activemq.RedeliveryPolicy v, v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.LinkedList v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.ActiveMQMessageConsumer$6 v;
org.apache.activemq.command.MessageAck v, v;
java.util.Iterator v, v;
org.apache.activemq.ActiveMQMessageConsumer$7 v;
org.apache.activemq.MessageDispatchChannel v, v, v, v;
java.lang.Object v, v, v, v, v, v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void clearDeliveredList()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
v = interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: java.lang.Object getMutex()>();
entermonitor v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: boolean optimizeAcknowledge>;
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: boolean isBrowser()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
entermonitor v;
label:
v = 0;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: int size()>();
if v >= v goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: int ackCounter>;
if v >= v goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: java.lang.Object removeLast()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void rollbackDuplicate(org.apache.activemq.ActiveMQDispatcher,org.apache.activemq.command.Message)>(v, v);
v = v + 1;
goto label;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
entermonitor v;
label:
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void rollbackPreviouslyDeliveredAndNotRedelivered()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: boolean isEmpty()>();
if v == 0 goto label;
exitmonitor v;
label:
exitmonitor v;
label:
return;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: java.lang.Object getFirst()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
v = virtualinvoke v.<org.apache.activemq.command.Message: int getRedeliveryCounter()>();
if v <= 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.RedeliveryPolicy redeliveryPolicy>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: long redeliveryDelay>;
v = virtualinvoke v.<org.apache.activemq.RedeliveryPolicy: long getNextRedeliveryDelay(long)>(v);
v.<org.apache.activemq.ActiveMQMessageConsumer: long redeliveryDelay> = v;
goto label;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.RedeliveryPolicy redeliveryPolicy>;
v = virtualinvoke v.<org.apache.activemq.RedeliveryPolicy: long getInitialRedeliveryDelay()>();
v.<org.apache.activemq.ActiveMQMessageConsumer: long redeliveryDelay> = v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: java.lang.Object getLast()>();
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()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: 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.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
virtualinvoke v.<org.apache.activemq.command.Message: void onMessageRolledBack()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void rollbackDuplicate(org.apache.activemq.ActiveMQDispatcher,org.apache.activemq.command.Message)>(v, v);
goto label;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.RedeliveryPolicy redeliveryPolicy>;
v = virtualinvoke v.<org.apache.activemq.RedeliveryPolicy: int getMaximumRedeliveries()>();
v = (int) -1;
if v == v goto label;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
v = virtualinvoke v.<org.apache.activemq.command.Message: int getRedeliveryCounter()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.RedeliveryPolicy redeliveryPolicy>;
v = virtualinvoke v.<org.apache.activemq.RedeliveryPolicy: int getMaximumRedeliveries()>();
if v <= v goto label;
v = new org.apache.activemq.command.MessageAck;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: int size()>();
specialinvoke v.<org.apache.activemq.command.MessageAck: void <init>(org.apache.activemq.command.MessageDispatch,byte,int)>(v, 1, v);
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setFirstMessageId(org.apache.activemq.command.MessageId)>(v);
v = new java.lang.Throwable;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
v = virtualinvoke v.<org.apache.activemq.command.Message: int getRedeliveryCounter()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.RedeliveryPolicy redeliveryPolicy>;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: java.lang.Throwable getRollbackCause()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,org.apache.activemq.RedeliveryPolicy,java.lang.Throwable)>(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[])>("Delivery[\u] exceeds redelivery policy limit:\u, cause:\u0001");
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: java.lang.Throwable getRollbackCause()>();
specialinvoke v.<java.lang.Throwable: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setPoisonCause(java.lang.Throwable)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void sendAck(org.apache.activemq.command.MessageAck,boolean)>(v, 1);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: int additionalWindowSize>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: int size()>();
v = v - v;
v = staticinvoke <java.lang.Math: int max(int,int)>(0, v);
v.<org.apache.activemq.ActiveMQMessageConsumer: int additionalWindowSize> = v;
v.<org.apache.activemq.ActiveMQMessageConsumer: long redeliveryDelay> = 0L;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: int deliveredCounter>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: int size()>();
v = v - v;
v.<org.apache.activemq.ActiveMQMessageConsumer: int deliveredCounter> = v;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
virtualinvoke v.<java.util.LinkedList: void clear()>();
goto label;
label:
if v <= 0 goto label;
v = new org.apache.activemq.command.MessageAck;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: int size()>();
specialinvoke v.<org.apache.activemq.command.MessageAck: void <init>(org.apache.activemq.command.MessageDispatch,byte,int)>(v, 3, v);
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setFirstMessageId(org.apache.activemq.command.MessageId)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void sendAck(org.apache.activemq.command.MessageAck,boolean)>(v, 1);
label:
v = new java.util.LinkedList;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
specialinvoke v.<java.util.LinkedList: void <init>(java.util.Collection)>(v);
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void captureDeliveredMessagesForDuplicateSuppressionWithRequireRedelivery(boolean)>(0);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: int deliveredCounter>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: int size()>();
v = v - v;
v.<org.apache.activemq.ActiveMQMessageConsumer: int deliveredCounter> = v;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
virtualinvoke v.<java.util.LinkedList: void clear()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
v = interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: boolean isClosed()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: boolean nonBlockingRedelivery>;
if v == 0 goto label;
staticinvoke <java.util.Collections: void reverse(java.util.List)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.thread.Scheduler getScheduler()>();
v = new org.apache.activemq.ActiveMQMessageConsumer$6;
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer$6: void <init>(org.apache.activemq.ActiveMQMessageConsumer,java.util.LinkedList)>(v, v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: long redeliveryDelay>;
virtualinvoke v.<org.apache.activemq.thread.Scheduler: void executeAfterDelay(java.lang.Runnable,long)>(v, v);
goto label;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: void stop()>();
v = new org.apache.activemq.ActiveMQMessageConsumer$7;
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer$7: void <init>(org.apache.activemq.ActiveMQMessageConsumer,java.util.LinkedList,org.apache.activemq.ActiveMQMessageConsumer)>(v, v, v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: long redeliveryDelay>;
v = v cmp 0L;
if v <= 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
v = interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: boolean isClosed()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.thread.Scheduler getScheduler()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: long redeliveryDelay>;
virtualinvoke v.<org.apache.activemq.thread.Scheduler: void executeAfterDelay(java.lang.Runnable,long)>(v, v);
goto label;
label:
interfaceinvoke v.<java.lang.Runnable: void run()>();
goto label;
label:
v = virtualinvoke v.<java.util.LinkedList: 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.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void rollbackDuplicate(org.apache.activemq.ActiveMQDispatcher,org.apache.activemq.command.Message)>(v, v);
goto label;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw 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;
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;
}
private void rollbackPreviouslyDeliveredAndNotRedelivered()
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.slf4j.Logger v;
java.util.Iterator v;
org.apache.activemq.command.MessageId v, v;
java.util.Collection v;
org.apache.activemq.command.Message v, v;
org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap v, v;
java.lang.Object v;
boolean v, v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap previouslyDeliveredMessages>;
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap previouslyDeliveredMessages>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: 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.ActiveMQMessageConsumer$PreviouslyDelivered: boolean redelivered>;
if v != 0 goto label;
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDelivered: org.apache.activemq.command.Message message>;
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.MessageId getMessageId()>();
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("rollback non redelivered: {}", v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDelivered: org.apache.activemq.command.Message message>;
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.MessageId getMessageId()>();
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void removeFromDeliveredMessages(org.apache.activemq.command.MessageId)>(v);
goto label;
label:
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void clearPreviouslyDelivered()>();
label:
return;
}
private void removeFromDeliveredMessages(org.apache.activemq.command.MessageId)
{
org.apache.activemq.ActiveMQMessageConsumer v;
java.util.Iterator v;
org.apache.activemq.command.MessageId v, v;
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.command.Message v, v;
java.lang.Object v;
java.util.LinkedList v;
org.apache.activemq.ActiveMQSession v;
boolean v, v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: org.apache.activemq.command.MessageId;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: 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.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.MessageId getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageId: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void rollbackDuplicate(org.apache.activemq.ActiveMQDispatcher,org.apache.activemq.command.Message)>(v, v);
interfaceinvoke v.<java.util.Iterator: void remove()>();
label:
return;
}
private void clearPreviouslyDelivered()
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap v, v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap previouslyDeliveredMessages>;
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap previouslyDeliveredMessages>;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap: void clear()>();
v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap previouslyDeliveredMessages> = null;
label:
return;
}
public void dispatch(org.apache.activemq.command.MessageDispatch)
{
org.apache.activemq.command.ConsumerId v, v, v, v, v, v, v;
org.apache.activemq.command.Message v, v, v, v, v, v;
byte v;
java.lang.Exception v;
org.apache.activemq.ActiveMQSession v, v, v, v, v;
java.lang.Throwable v;
java.lang.Object[] v, v;
long v;
java.lang.String v, v;
org.apache.activemq.command.ConsumerInfo v, v;
java.lang.RuntimeException v;
org.apache.activemq.command.ActiveMQMessage v;
org.apache.activemq.command.MessageDispatch v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.command.MessageId v;
org.apache.activemq.ActiveMQConnection v, v, v;
org.apache.activemq.RedeliveryPolicy v;
java.util.concurrent.atomic.AtomicReference v;
int v, v, v, v, v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.command.MessageAck v;
org.slf4j.Logger v, v, v, v;
org.apache.activemq.MessageDispatchChannel v, v, v, v, v, v;
org.apache.activemq.MessageAvailableListener v, v;
java.lang.Object v, v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: org.apache.activemq.command.MessageDispatch;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.atomic.AtomicReference messageListener>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
label:
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void clearMessagesInProgress()>();
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void clearDeliveredList()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
v = interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: java.lang.Object getMutex()>();
entermonitor v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
v = interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: boolean isClosed()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: boolean isBrowser()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: long getDeliverySequenceId()>();
v = v cmp 0L;
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
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;
label:
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
v = interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: boolean isRunning()>();
if v == 0 goto label;
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: boolean redeliveryExceeded(org.apache.activemq.command.MessageDispatch)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: int getRedeliveryCounter()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.RedeliveryPolicy redeliveryPolicy>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,org.apache.activemq.command.ConsumerId,org.apache.activemq.RedeliveryPolicy)>(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[])>("listener dispatch[\u] to \u exceeds redelivery policy limit:\u0001");
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void poisonAck(org.apache.activemq.command.MessageDispatch,java.lang.String)>(v, v);
exitmonitor v;
label:
return;
label:
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ActiveMQMessage createActiveMQMessage(org.apache.activemq.command.MessageDispatch)>(v);
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void beforeMessageIsConsumed(org.apache.activemq.command.MessageDispatch)>(v);
label:
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: boolean isConsumerExpiryCheckEnabled()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: boolean isExpired()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
if v != 0 goto label;
interfaceinvoke v.<javax.jms.MessageListener: void onMessage(javax.jms.Message)>(v);
label:
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void afterMessageIsConsumed(org.apache.activemq.command.MessageDispatch,boolean)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerId getConsumerId()>();
v[0] = 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()>();
v[1] = v;
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object[])>("{} Exception while processing message: {}", v);
virtualinvoke v.<org.apache.activemq.command.MessageDispatch: void setRollbackCause(java.lang.Throwable)>(v);
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: boolean isAutoAcknowledgeBatch()>();
if v != 0 goto label;
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: boolean isAutoAcknowledgeEach()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isIndividualAcknowledge()>();
if v == 0 goto label;
label:
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void rollback()>();
goto label;
label:
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void afterMessageIsConsumed(org.apache.activemq.command.MessageDispatch,boolean)>(v, 0);
goto label;
label:
virtualinvoke v.<org.apache.activemq.command.MessageDispatch: void setDeliverySequenceId(long)>(-1L);
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
if v != null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: void enqueue(org.apache.activemq.command.MessageDispatch)>(v);
goto label;
label:
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: boolean consumeExpiredMessage(org.apache.activemq.command.MessageDispatch)>(v);
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: void enqueue(org.apache.activemq.command.MessageDispatch)>(v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageAvailableListener availableListener>;
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageAvailableListener availableListener>;
interfaceinvoke v.<org.apache.activemq.MessageAvailableListener: void onMessageAvailable(javax.jms.MessageConsumer)>(v);
goto label;
label:
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void beforeMessageIsConsumed(org.apache.activemq.command.MessageDispatch)>(v);
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void afterMessageIsConsumed(org.apache.activemq.command.MessageDispatch,boolean)>(v, 1);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: int getCurrentPrefetchSize()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: void enqueue(org.apache.activemq.command.MessageDispatch)>(null);
goto label;
label:
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: boolean redeliveryExpectedInCurrentTransaction(org.apache.activemq.command.MessageDispatch,boolean)>(v, 1);
if v == 0 goto label;
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("{} tracking transacted redelivery {}", v, v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: boolean transactedIndividualAck>;
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void immediateIndividualTransactedAck(org.apache.activemq.command.MessageDispatch)>(v);
goto label;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = new org.apache.activemq.command.MessageAck;
specialinvoke v.<org.apache.activemq.command.MessageAck: void <init>(org.apache.activemq.command.MessageDispatch,byte,int)>(v, 0, 1);
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void sendAck(org.apache.activemq.command.MessageAck)>(v);
goto label;
label:
v = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerId redeliveryPendingInCompetingTransaction(org.apache.activemq.command.MessageDispatch)>(v);
if v == null goto label;
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerId getConsumerId()>();
v[0] = v;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
v[1] = v;
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object[])>("{} delivering duplicate {}, pending transaction completion on {} will rollback", v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection getConnection()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void rollbackDuplicate(org.apache.activemq.ActiveMQDispatcher,org.apache.activemq.command.Message)>(v, v);
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void dispatch(org.apache.activemq.command.MessageDispatch)>(v);
goto label;
label:
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerId getConsumerId()>();
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("{} suppressing duplicate delivery on connection, poison acking: {}", v, v);
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerId getConsumerId()>();
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[])>("Suppressing duplicate delivery on connection, consumer \u0001");
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void poisonAck(org.apache.activemq.command.MessageDispatch,java.lang.String)>(v, v);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: int dispatchedCount>;
v = v + 1;
v.<org.apache.activemq.ActiveMQMessageConsumer: int dispatchedCount> = v;
v = v % 1000;
if v != 0 goto label;
v.<org.apache.activemq.ActiveMQMessageConsumer: int dispatchedCount> = 0;
staticinvoke <java.lang.Thread: void yield()>();
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
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.RuntimeException 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.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
}
private boolean redeliveryExpectedInCurrentTransaction(org.apache.activemq.command.MessageDispatch, boolean)
{
java.lang.Throwable v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.command.MessageId v;
org.apache.activemq.command.Message v;
org.apache.activemq.command.MessageDispatch v;
org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap v, v;
java.lang.Object v;
java.util.LinkedList v;
org.apache.activemq.ActiveMQSession v;
boolean v, v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: org.apache.activemq.command.MessageDispatch;
v := @parameter: boolean;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isTransacted()>();
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
entermonitor v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap previouslyDeliveredMessages>;
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap previouslyDeliveredMessages>;
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()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
if v == 0 goto label;
v.<org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDelivered: boolean redelivered> = 1;
label:
exitmonitor v;
label:
return 1;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return 0;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private org.apache.activemq.command.ConsumerId redeliveryPendingInCompetingTransaction(org.apache.activemq.command.MessageDispatch)
{
org.apache.activemq.ActiveMQMessageConsumer v;
java.util.Iterator v, v;
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.command.MessageDispatch v;
java.lang.Object v, v;
org.apache.activemq.ActiveMQSession v;
boolean v, v, v;
java.util.concurrent.CopyOnWriteArrayList v, v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: org.apache.activemq.command.MessageDispatch;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: java.util.concurrent.CopyOnWriteArrayList getSessions()>();
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: 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 = specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: boolean redeliveryExpectedInCurrentTransaction(org.apache.activemq.command.MessageDispatch,boolean)>(v, 0);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerId getConsumerId()>();
return v;
label:
return null;
}
private void clearDeliveredList()
{
java.lang.Throwable v;
java.lang.Integer v, v;
org.apache.activemq.command.ConsumerId v, v;
org.apache.activemq.command.Message v;
int v, v;
java.util.LinkedList v, v, v, v, v, v;
org.apache.activemq.command.ConsumerInfo v;
boolean v, v, v, v, v, v, v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.slf4j.Logger v, v;
java.util.Iterator v;
org.apache.activemq.ActiveMQConnection v;
java.lang.Object v;
org.apache.activemq.ActiveMQSession v, v, v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: boolean clearDeliveredList>;
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
entermonitor v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: boolean clearDeliveredList>;
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isTransacted()>();
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void captureDeliveredMessagesForDuplicateSuppression()>();
goto label;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isClientAcknowledge()>();
if v == 0 goto label;
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: int size()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("{} rolling back delivered list ({}) on transport interrupt", v, v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: boolean isBrowser()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: 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.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void rollbackDuplicate(org.apache.activemq.ActiveMQDispatcher,org.apache.activemq.command.Message)>(v, v);
goto label;
label:
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: int size()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("{} clearing delivered list ({}) on transport interrupt", v, v);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
virtualinvoke v.<java.util.LinkedList: void clear()>();
v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.MessageAck pendingAck> = null;
label:
v.<org.apache.activemq.ActiveMQMessageConsumer: boolean clearDeliveredList> = 0;
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;
}
private void captureDeliveredMessagesForDuplicateSuppression()
{
org.apache.activemq.ActiveMQMessageConsumer v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void captureDeliveredMessagesForDuplicateSuppressionWithRequireRedelivery(boolean)>(1);
return;
}
private void captureDeliveredMessagesForDuplicateSuppressionWithRequireRedelivery(boolean)
{
java.lang.Object[] v;
java.lang.Integer v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.command.Message v;
int v;
org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap v, v, v, v;
java.util.LinkedList v, v;
org.apache.activemq.command.TransactionId v, v;
boolean v, v, v;
org.apache.activemq.TransactionContext v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.slf4j.Logger v;
java.util.Iterator v;
org.apache.activemq.command.MessageId v;
org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDelivered v;
java.lang.Object v;
org.apache.activemq.ActiveMQSession v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: boolean;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap previouslyDeliveredMessages>;
if v != null goto label;
v = new org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
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()>();
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap: void <init>(org.apache.activemq.ActiveMQMessageConsumer,org.apache.activemq.command.TransactionId)>(v, v);
v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap previouslyDeliveredMessages> = v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: 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.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap previouslyDeliveredMessages>;
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()>();
v = new org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDelivered;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDelivered: void <init>(org.apache.activemq.ActiveMQMessageConsumer,org.apache.activemq.command.MessageDispatch,boolean)>(v, v, v);
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerId getConsumerId()>();
v[0] = v;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap previouslyDeliveredMessages>;
v = v.<org.apache.activemq.ActiveMQMessageConsumer$PreviouslyDeliveredMap: org.apache.activemq.command.TransactionId transactionId>;
v[1] = v;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.LinkedList deliveredMessages>;
v = virtualinvoke v.<java.util.LinkedList: int size()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("{} tracking existing transacted {} delivered list({})", v);
return;
}
public int getMessageSize()
{
int v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.MessageDispatchChannel v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
v = interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: int size()>();
return v;
}
public void start() throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.ActiveMQSessionExecutor v;
org.apache.activemq.MessageDispatchChannel v, v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
v = interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: boolean isClosed()>();
if v == 0 goto label;
return;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.atomic.AtomicBoolean started>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(1);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: void start()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQSessionExecutor executor>;
virtualinvoke v.<org.apache.activemq.ActiveMQSessionExecutor: void wakeup()>();
return;
}
public void stop()
{
org.apache.activemq.ActiveMQMessageConsumer v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.MessageDispatchChannel v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.atomic.AtomicBoolean started>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(0);
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: void stop()>();
return;
}
public java.lang.String toString()
{
org.apache.activemq.ActiveMQMessageConsumer v;
java.util.concurrent.atomic.AtomicBoolean v;
java.lang.String v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.command.ConsumerInfo v;
boolean v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.atomic.AtomicBoolean started>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.ConsumerId,boolean)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("ActiveMQMessageConsumer { value=\u, started=\u }");
return v;
}
public boolean iterate()
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.MessageDispatchChannel v;
org.apache.activemq.command.MessageDispatch v;
java.lang.Object v;
java.util.concurrent.atomic.AtomicReference v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.atomic.AtomicReference messageListener>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
if v == null goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.MessageDispatchChannel unconsumedMessages>;
v = interfaceinvoke v.<org.apache.activemq.MessageDispatchChannel: org.apache.activemq.command.MessageDispatch dequeueNoWait()>();
if v == null goto label;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void dispatch(org.apache.activemq.command.MessageDispatch)>(v);
return 1;
label:
return 0;
}
public boolean isInUse(org.apache.activemq.command.ActiveMQTempDestination)
{
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.command.ActiveMQTempDestination v;
org.apache.activemq.command.ConsumerInfo v;
boolean v;
org.apache.activemq.command.ActiveMQDestination v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: org.apache.activemq.command.ActiveMQTempDestination;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: boolean equals(java.lang.Object)>(v);
return v;
}
public long getLastDeliveredSequenceId()
{
org.apache.activemq.ActiveMQMessageConsumer v;
long v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: long lastDeliveredSequenceId>;
return v;
}
public java.io.IOException getFailureError()
{
org.apache.activemq.ActiveMQMessageConsumer v;
java.io.IOException v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.io.IOException failureError>;
return v;
}
public void setFailureError(java.io.IOException)
{
org.apache.activemq.ActiveMQMessageConsumer v;
java.io.IOException v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: java.io.IOException;
v.<org.apache.activemq.ActiveMQMessageConsumer: java.io.IOException failureError> = v;
return;
}
public long getOptimizedAckScheduledAckInterval()
{
org.apache.activemq.ActiveMQMessageConsumer v;
long v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: long optimizedAckScheduledAckInterval>;
return v;
}
public void setOptimizedAckScheduledAckInterval(long) throws javax.jms.JMSException
{
long v, v;
java.lang.Runnable v, v, v;
byte v;
boolean v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.slf4j.Logger v, v;
org.apache.activemq.ActiveMQConnection v, v;
javax.jms.JMSException v, v;
org.apache.activemq.ActiveMQMessageConsumer$8 v;
org.apache.activemq.thread.Scheduler v, v;
org.apache.activemq.ActiveMQSession v, v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: long;
v.<org.apache.activemq.ActiveMQMessageConsumer: long optimizedAckScheduledAckInterval> = v;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.lang.Runnable optimizedAckTask>;
if v == null goto label;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
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 = v.<org.apache.activemq.ActiveMQMessageConsumer: java.lang.Runnable optimizedAckTask>;
virtualinvoke v.<org.apache.activemq.thread.Scheduler: void cancel(java.lang.Runnable)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("Caught exception while cancelling old optimized ack task", v);
throw v;
label:
v.<org.apache.activemq.ActiveMQMessageConsumer: java.lang.Runnable optimizedAckTask> = null;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: boolean optimizeAcknowledge>;
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: long optimizedAckScheduledAckInterval>;
v = v cmp 0L;
if v <= 0 goto label;
v = new org.apache.activemq.ActiveMQMessageConsumer$8;
specialinvoke v.<org.apache.activemq.ActiveMQMessageConsumer$8: void <init>(org.apache.activemq.ActiveMQMessageConsumer)>(v);
v.<org.apache.activemq.ActiveMQMessageConsumer: java.lang.Runnable optimizedAckTask> = v;
label:
v = v.<org.apache.activemq.ActiveMQMessageConsumer: org.apache.activemq.ActiveMQSession session>;
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 = v.<org.apache.activemq.ActiveMQMessageConsumer: java.lang.Runnable optimizedAckTask>;
virtualinvoke v.<org.apache.activemq.thread.Scheduler: void executePeriodically(java.lang.Runnable,long)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("Caught exception while scheduling new optimized ack task", v);
throw v;
label:
return;
catch javax.jms.JMSException from label to label with label;
catch javax.jms.JMSException from label to label with label;
}
public boolean hasMessageListener()
{
org.apache.activemq.ActiveMQMessageConsumer v;
java.lang.Object v;
java.util.concurrent.atomic.AtomicReference v;
boolean v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: java.util.concurrent.atomic.AtomicReference messageListener>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean isConsumerExpiryCheckEnabled()
{
org.apache.activemq.ActiveMQMessageConsumer v;
boolean v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v = v.<org.apache.activemq.ActiveMQMessageConsumer: boolean consumerExpiryCheckEnabled>;
return v;
}
public void setConsumerExpiryCheckEnabled(boolean)
{
org.apache.activemq.ActiveMQMessageConsumer v;
boolean v;
v := @this: org.apache.activemq.ActiveMQMessageConsumer;
v := @parameter: boolean;
v.<org.apache.activemq.ActiveMQMessageConsumer: boolean consumerExpiryCheckEnabled> = v;
return;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/activemq/ActiveMQMessageConsumer;");
<org.apache.activemq.ActiveMQMessageConsumer: org.slf4j.Logger LOG> = v;
return;
}
}