public abstract class org.apache.activemq.broker.region.PrefetchSubscription extends org.apache.activemq.broker.region.AbstractSubscription
{
private static final org.slf4j.Logger LOG;
protected final org.apache.activemq.thread.Scheduler scheduler;
protected org.apache.activemq.broker.region.cursors.PendingMessageCursor pending;
protected final java.util.List dispatched;
private int maxProducersToAudit;
private int maxAuditDepth;
protected final org.apache.activemq.usage.SystemUsage usageManager;
protected final java.lang.Object pendingLock;
protected final java.lang.Object dispatchLock;
private final java.util.concurrent.CountDownLatch okForAckAsDispatchDone;
public void <init>(org.apache.activemq.broker.Broker, org.apache.activemq.usage.SystemUsage, org.apache.activemq.broker.ConnectionContext, org.apache.activemq.command.ConsumerInfo, org.apache.activemq.broker.region.cursors.PendingMessageCursor) throws javax.jms.JMSException
{
org.apache.activemq.broker.region.PrefetchSubscription v;
javax.jms.JMSException v;
java.lang.Exception v;
java.util.ArrayList v;
java.util.concurrent.CountDownLatch v;
org.apache.activemq.broker.Broker v;
org.apache.activemq.broker.ConnectionContext v;
org.apache.activemq.thread.Scheduler v;
java.lang.Object v, v;
org.apache.activemq.usage.SystemUsage v;
java.lang.String v;
org.apache.activemq.broker.region.cursors.PendingMessageCursor v, v;
org.apache.activemq.command.ConsumerInfo v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: org.apache.activemq.broker.Broker;
v := @parameter: org.apache.activemq.usage.SystemUsage;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.command.ConsumerInfo;
v := @parameter: org.apache.activemq.broker.region.cursors.PendingMessageCursor;
specialinvoke v.<org.apache.activemq.broker.region.AbstractSubscription: void <init>(org.apache.activemq.broker.Broker,org.apache.activemq.broker.ConnectionContext,org.apache.activemq.command.ConsumerInfo)>(v, v, v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.List dispatched> = v;
v.<org.apache.activemq.broker.region.PrefetchSubscription: int maxProducersToAudit> = 32;
v.<org.apache.activemq.broker.region.PrefetchSubscription: int maxAuditDepth> = 2048;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.activemq.broker.region.PrefetchSubscription: java.lang.Object pendingLock> = v;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.activemq.broker.region.PrefetchSubscription: java.lang.Object dispatchLock> = v;
v = new java.util.concurrent.CountDownLatch;
specialinvoke v.<java.util.concurrent.CountDownLatch: void <init>(int)>(1);
v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.concurrent.CountDownLatch okForAckAsDispatchDone> = v;
v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.usage.SystemUsage usageManager> = v;
v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending> = v;
label:
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: void start()>();
label:
goto label;
label:
v := @caughtexception;
v = new javax.jms.JMSException;
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
specialinvoke v.<javax.jms.JMSException: void <init>(java.lang.String)>(v);
throw v;
label:
v = interfaceinvoke v.<org.apache.activemq.broker.Broker: org.apache.activemq.thread.Scheduler getScheduler()>();
v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.thread.Scheduler scheduler> = v;
return;
catch java.lang.Exception from label to label with label;
}
public void <init>(org.apache.activemq.broker.Broker, org.apache.activemq.usage.SystemUsage, org.apache.activemq.broker.ConnectionContext, org.apache.activemq.command.ConsumerInfo) throws javax.jms.JMSException
{
org.apache.activemq.broker.Broker v;
org.apache.activemq.broker.ConnectionContext v;
org.apache.activemq.usage.SystemUsage v;
org.apache.activemq.broker.region.PrefetchSubscription v;
org.apache.activemq.broker.region.cursors.VMPendingMessageCursor v;
org.apache.activemq.command.ConsumerInfo v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: org.apache.activemq.broker.Broker;
v := @parameter: org.apache.activemq.usage.SystemUsage;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.command.ConsumerInfo;
v = new org.apache.activemq.broker.region.cursors.VMPendingMessageCursor;
specialinvoke v.<org.apache.activemq.broker.region.cursors.VMPendingMessageCursor: void <init>(boolean)>(0);
specialinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void <init>(org.apache.activemq.broker.Broker,org.apache.activemq.usage.SystemUsage,org.apache.activemq.broker.ConnectionContext,org.apache.activemq.command.ConsumerInfo,org.apache.activemq.broker.region.cursors.PendingMessageCursor)>(v, v, v, v, v);
return;
}
public org.apache.activemq.command.Response pullMessage(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.command.MessagePull) throws java.lang.Exception
{
java.lang.Throwable v;
long v, v, v, v, v;
org.apache.activemq.broker.region.PrefetchSubscription v;
org.apache.activemq.command.MessagePull v;
org.apache.activemq.broker.ConnectionContext v;
org.apache.activemq.management.CountStatisticImpl v, v;
byte v, v, v;
java.util.concurrent.atomic.AtomicInteger v, v;
int v, v;
org.apache.activemq.broker.region.PrefetchSubscription$1 v;
org.apache.activemq.broker.region.QueueMessageReference v;
boolean v, v;
java.util.Iterator v;
org.apache.activemq.broker.region.SubscriptionStatistics v, v;
org.apache.activemq.thread.Scheduler v;
java.lang.Object v;
java.util.concurrent.CopyOnWriteArrayList v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.command.MessagePull;
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: int getPrefetchSize()>();
if v != 0 goto label;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.concurrent.atomic.AtomicInteger prefetchExtension>;
v = virtualinvoke v.<org.apache.activemq.command.MessagePull: int getQuantity()>();
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: void set(int)>(v);
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.SubscriptionStatistics getSubscriptionStatistics()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.SubscriptionStatistics: org.apache.activemq.management.CountStatisticImpl getDispatched()>();
v = virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: long getCount()>();
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.concurrent.CopyOnWriteArrayList destinations>;
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()>();
interfaceinvoke v.<org.apache.activemq.broker.region.Destination: boolean iterate()>();
goto label;
label:
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void dispatchPending()>();
entermonitor v;
label:
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.SubscriptionStatistics getSubscriptionStatistics()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.SubscriptionStatistics: org.apache.activemq.management.CountStatisticImpl getDispatched()>();
v = virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: long getCount()>();
v = v cmp v;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.MessagePull: boolean isAlwaysSignalDone()>();
if v == 0 goto label;
label:
v = virtualinvoke v.<org.apache.activemq.command.MessagePull: long getTimeout()>();
v = v cmp -1L;
if v != 0 goto label;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.concurrent.atomic.AtomicInteger prefetchExtension>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: void set(int)>(1);
v = <org.apache.activemq.broker.region.QueueMessageReference: org.apache.activemq.broker.region.QueueMessageReference NULL_MESSAGE>;
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void add(org.apache.activemq.broker.region.MessageReference)>(v);
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void dispatchPending()>();
label:
v = virtualinvoke v.<org.apache.activemq.command.MessagePull: long getTimeout()>();
v = v cmp 0L;
if v <= 0 goto label;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.thread.Scheduler scheduler>;
v = new org.apache.activemq.broker.region.PrefetchSubscription$1;
specialinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription$1: void <init>(org.apache.activemq.broker.region.PrefetchSubscription,long,org.apache.activemq.command.MessagePull)>(v, v, v);
v = virtualinvoke v.<org.apache.activemq.command.MessagePull: long getTimeout()>();
virtualinvoke v.<org.apache.activemq.thread.Scheduler: void executeAfterDelay(java.lang.Runnable,long)>(v, v);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return null;
catch java.lang.Throwable from label to label with label;
}
final void pullTimeout(long, boolean)
{
java.lang.Throwable v, v;
long v, v;
org.apache.activemq.broker.region.PrefetchSubscription v;
org.apache.activemq.broker.ConnectionContext v;
org.apache.activemq.management.CountStatisticImpl v;
byte v;
java.util.concurrent.atomic.AtomicInteger v, v, v, v;
org.apache.activemq.broker.Connection v;
org.apache.activemq.broker.region.QueueMessageReference v;
boolean v;
java.lang.Exception v;
org.apache.activemq.broker.region.SubscriptionStatistics v;
java.lang.Object v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: long;
v := @parameter: boolean;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.lang.Object pendingLock>;
entermonitor v;
label:
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.SubscriptionStatistics getSubscriptionStatistics()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.SubscriptionStatistics: org.apache.activemq.management.CountStatisticImpl getDispatched()>();
v = virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: long getCount()>();
v = v cmp v;
if v == 0 goto label;
if v == 0 goto label;
label:
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.concurrent.atomic.AtomicInteger prefetchExtension>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: void set(int)>(1);
v = <org.apache.activemq.broker.region.QueueMessageReference: org.apache.activemq.broker.region.QueueMessageReference NULL_MESSAGE>;
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void add(org.apache.activemq.broker.region.MessageReference)>(v);
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void dispatchPending()>();
label:
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.concurrent.atomic.AtomicInteger prefetchExtension>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: void set(int)>(0);
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.ConnectionContext context>;
v = virtualinvoke v.<org.apache.activemq.broker.ConnectionContext: org.apache.activemq.broker.Connection getConnection()>();
interfaceinvoke v.<org.apache.activemq.broker.Connection: void serviceException(java.lang.Throwable)>(v);
label:
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.concurrent.atomic.AtomicInteger prefetchExtension>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: void set(int)>(0);
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.concurrent.atomic.AtomicInteger prefetchExtension>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: void set(int)>(0);
throw v;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Exception 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;
}
public void add(org.apache.activemq.broker.region.MessageReference) throws java.lang.Exception
{
java.lang.Throwable v;
org.apache.activemq.broker.region.MessageReference v;
org.apache.activemq.command.Message$MessageDestination v;
org.apache.activemq.broker.region.PrefetchSubscription v;
org.apache.activemq.management.CountStatisticImpl v;
org.apache.activemq.broker.region.SubscriptionStatistics v;
java.lang.Object v;
org.apache.activemq.broker.region.cursors.PendingMessageCursor v;
org.apache.activemq.broker.region.QueueMessageReference v, v;
boolean v, v;
java.util.concurrent.CopyOnWriteArrayList v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: org.apache.activemq.broker.region.MessageReference;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.lang.Object pendingLock>;
entermonitor v;
label:
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.concurrent.CopyOnWriteArrayList destinations>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message$MessageDestination getRegionDestination()>();
v = virtualinvoke v.<java.util.concurrent.CopyOnWriteArrayList: boolean contains(java.lang.Object)>(v);
if v != 0 goto label;
v = <org.apache.activemq.broker.region.QueueMessageReference: org.apache.activemq.broker.region.QueueMessageReference NULL_MESSAGE>;
if v == v goto label;
exitmonitor v;
label:
return;
label:
v = <org.apache.activemq.broker.region.QueueMessageReference: org.apache.activemq.broker.region.QueueMessageReference NULL_MESSAGE>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.SubscriptionStatistics getSubscriptionStatistics()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.SubscriptionStatistics: org.apache.activemq.management.CountStatisticImpl getEnqueues()>();
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: void increment()>();
label:
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: boolean addMessageLast(org.apache.activemq.broker.region.MessageReference)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void dispatchPending()>();
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public void processMessageDispatchNotification(org.apache.activemq.command.MessageDispatchNotification) throws java.lang.Exception
{
java.lang.Throwable v, v, v;
org.apache.activemq.command.MessageDispatchNotification v;
org.apache.activemq.broker.region.PrefetchSubscription v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.command.Message v, v;
java.lang.String v, v;
boolean v, v;
org.apache.activemq.broker.region.MessageReference v;
org.apache.activemq.command.MessageId v, v, v;
javax.jms.JMSException v;
org.apache.activemq.command.ActiveMQDestination v;
java.util.List v;
java.lang.Object v, v;
org.apache.activemq.broker.region.cursors.PendingMessageCursor v, v, v, v, v, v, v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: org.apache.activemq.command.MessageDispatchNotification;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.lang.Object pendingLock>;
entermonitor v;
label:
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: void reset()>();
label:
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: boolean hasNext()>();
if v == 0 goto label;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: org.apache.activemq.broker.region.MessageReference next()>();
interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: int decrementReferenceCount()>();
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.MessageId getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatchNotification: 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.broker.region.PrefetchSubscription: java.lang.Object dispatchLock>;
entermonitor v;
label:
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: void remove()>();
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message getMessage()>();
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.command.MessageDispatch createMessageDispatch(org.apache.activemq.broker.region.MessageReference,org.apache.activemq.command.Message)>(v, v);
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.List dispatched>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message getMessage()>();
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void onDispatch(org.apache.activemq.broker.region.MessageReference,org.apache.activemq.command.Message)>(v, v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: void release()>();
exitmonitor v;
label:
return;
label:
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: void release()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: void release()>();
throw v;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = new javax.jms.JMSException;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatchNotification: org.apache.activemq.command.MessageId getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatchNotification: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatchNotification: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getPhysicalName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.MessageId,org.apache.activemq.command.ConsumerId,java.lang.String)>(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[])>("Slave broker out of sync with master: Dispatched message (\u) was not in the pending list for \u on \u0001");
specialinvoke v.<javax.jms.JMSException: void <init>(java.lang.String)>(v);
throw v;
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;
}
public final void acknowledge(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.command.MessageAck) throws java.lang.Exception
{
org.apache.activemq.broker.ConnectionContext v;
java.util.concurrent.CountDownLatch v;
java.lang.Throwable v, v;
java.util.ArrayList v, v;
org.apache.activemq.broker.Broker v;
java.lang.String v, v, v, v, v;
org.apache.activemq.management.CountStatisticImpl v, v, v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.command.MessageId v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
javax.jms.JMSException v, v, v, v, v;
java.util.List v, v, v, v, v, v, v, v, v;
org.apache.activemq.broker.region.cursors.PendingMessageCursor v;
org.apache.activemq.command.Message$MessageDestination v, v, v, v;
org.apache.activemq.broker.region.PrefetchSubscription v;
int v;
org.apache.activemq.command.MessageAck v;
org.slf4j.Logger v, v, v, v;
java.util.Iterator v, v, v, v, v, v, v, v;
java.util.concurrent.TimeUnit v;
org.apache.activemq.broker.region.SubscriptionStatistics v, v, v;
java.lang.Object v, v, v, v, v, v, v, v, v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.command.MessageAck;
v = 0;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.concurrent.CountDownLatch okForAckAsDispatchDone>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = virtualinvoke v.<java.util.concurrent.CountDownLatch: boolean await(long,java.util.concurrent.TimeUnit)>(0L, v);
if v != 0 goto label;
v = <org.apache.activemq.broker.region.PrefetchSubscription: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Ignoring ack received before dispatch; result of failover with an outstanding ack. Acked messages will be replayed if present on this broker. Ignored ack: {}", v);
return;
label:
v = <org.apache.activemq.broker.region.PrefetchSubscription: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("ack: {}", v);
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.lang.Object dispatchLock>;
entermonitor v;
label:
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: boolean isStandardAck()>();
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void assertAckMatchesDispatched(org.apache.activemq.command.MessageAck)>(v);
v = 0;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.List dispatched>;
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 = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.MessageId getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.MessageId getFirstMessageId()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.MessageId getFirstMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageId: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = 1;
label:
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.broker.ConnectionContext: boolean isInTransaction()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.SubscriptionStatistics getSubscriptionStatistics()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.SubscriptionStatistics: org.apache.activemq.management.CountStatisticImpl getDequeues()>();
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: void increment()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void contractPrefetchExtension(int)>(1);
goto label;
label:
specialinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void registerRemoveSync(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.MessageReference)>(v, v);
label:
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void acknowledge(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.command.MessageAck,org.apache.activemq.broker.region.MessageReference)>(v, v, v);
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.MessageId getLastMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageId: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message$MessageDestination getRegionDestination()>();
v = 1;
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.broker.region.PrefetchSubscription: java.util.List dispatched>;
interfaceinvoke v.<java.util.List: boolean remove(java.lang.Object)>(v);
specialinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void decrementPrefetchCounter(org.apache.activemq.broker.region.MessageReference)>(v);
goto label;
label:
if v != 0 goto label;
v = <org.apache.activemq.broker.region.PrefetchSubscription: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Could not correlate acknowledgment with dispatched message: {}", v);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: boolean isIndividualAck()>();
if v == 0 goto label;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.List dispatched>;
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 = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.MessageId getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.MessageId getLastMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageId: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.broker.ConnectionContext: boolean isInTransaction()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.SubscriptionStatistics getSubscriptionStatistics()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.SubscriptionStatistics: org.apache.activemq.management.CountStatisticImpl getDequeues()>();
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: void increment()>();
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.List dispatched>;
interfaceinvoke v.<java.util.List: boolean remove(java.lang.Object)>(v);
specialinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void decrementPrefetchCounter(org.apache.activemq.broker.region.MessageReference)>(v);
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void contractPrefetchExtension(int)>(1);
goto label;
label:
specialinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void registerRemoveSync(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.MessageReference)>(v, v);
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void expandPrefetchExtension(int)>(1);
label:
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void acknowledge(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.command.MessageAck,org.apache.activemq.broker.region.MessageReference)>(v, v, v);
interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message$MessageDestination getRegionDestination()>();
v = 1;
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: boolean isDeliveredAck()>();
if v == 0 goto label;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.List dispatched>;
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 = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message$MessageDestination getRegionDestination()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.MessageId getLastMessageId()>();
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: 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 = virtualinvoke v.<org.apache.activemq.command.MessageAck: int getMessageCount()>();
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void expandPrefetchExtension(int)>(v);
v = v;
v = 1;
label:
if v != 0 goto label;
v = new javax.jms.JMSException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.MessageAck)>(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[])>("Could not correlate acknowledgment with dispatched message: \u0001");
specialinvoke v.<javax.jms.JMSException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: boolean isExpiredAck()>();
if v == 0 goto label;
v = 0;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.List dispatched>;
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 = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message$MessageDestination getRegionDestination()>();
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.MessageId getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.MessageId getFirstMessageId()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.MessageId getFirstMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageId: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = 1;
label:
if v == 0 goto label;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.Broker broker>;
v = interfaceinvoke v.<org.apache.activemq.broker.Broker: boolean isExpired(org.apache.activemq.broker.region.MessageReference)>(v);
if v == 0 goto label;
interfaceinvoke v.<org.apache.activemq.broker.region.Destination: void messageExpired(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.Subscription,org.apache.activemq.broker.region.MessageReference)>(v, v, v);
label:
interfaceinvoke v.<java.util.Iterator: void remove()>();
specialinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void decrementPrefetchCounter(org.apache.activemq.broker.region.MessageReference)>(v);
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.MessageId getLastMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageId: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void contractPrefetchExtension(int)>(1);
interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message$MessageDestination getRegionDestination()>();
v = 1;
label:
if v != 0 goto label;
v = new javax.jms.JMSException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.MessageAck)>(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[])>("Could not correlate expiration acknowledgment with dispatched message: \u0001");
specialinvoke v.<javax.jms.JMSException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: boolean isRedeliveredAck()>();
if v == 0 goto label;
v = 0;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.List dispatched>;
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 = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.MessageId getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.MessageId getFirstMessageId()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.MessageId getFirstMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageId: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = 1;
label:
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.MessageId getLastMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageId: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message$MessageDestination getRegionDestination()>();
v = 1;
label:
if v != 0 goto label;
v = new javax.jms.JMSException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.MessageAck)>(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[])>("Could not correlate acknowledgment with dispatched message: \u0001");
specialinvoke v.<javax.jms.JMSException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: boolean isPoisonAck()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: boolean isInTransaction()>();
if v == 0 goto label;
v = new javax.jms.JMSException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.MessageAck)>(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[])>("Poison ack cannot be transacted: \u0001");
specialinvoke v.<javax.jms.JMSException: void <init>(java.lang.String)>(v);
throw v;
label:
v = 0;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.List dispatched>;
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 = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.MessageId getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.MessageId getFirstMessageId()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.MessageId getFirstMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageId: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = 1;
label:
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: java.lang.Throwable getPoisonCause()>();
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void sendToDLQ(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.MessageReference,java.lang.Throwable)>(v, v, v);
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message$MessageDestination getRegionDestination()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.SubscriptionStatistics getSubscriptionStatistics()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.SubscriptionStatistics: org.apache.activemq.management.CountStatisticImpl getDequeues()>();
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: void increment()>();
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void acknowledge(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.command.MessageAck,org.apache.activemq.broker.region.MessageReference)>(v, v, v);
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.MessageId getLastMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageId: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void contractPrefetchExtension(int)>(1);
v = v;
v = 1;
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.broker.region.PrefetchSubscription: java.util.List dispatched>;
interfaceinvoke v.<java.util.List: boolean remove(java.lang.Object)>(v);
specialinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void decrementPrefetchCounter(org.apache.activemq.broker.region.MessageReference)>(v);
goto label;
label:
if v != 0 goto label;
v = new javax.jms.JMSException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.MessageAck)>(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[])>("Could not correlate acknowledgment with dispatched message: \u0001");
specialinvoke v.<javax.jms.JMSException: void <init>(java.lang.String)>(v);
throw v;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v == 0 goto label;
if v == null goto label;
interfaceinvoke v.<org.apache.activemq.broker.region.Destination: void wakeup()>();
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void dispatchPending()>();
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: boolean isEmpty()>();
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void wakeupDestinationsForDispatch()>();
goto label;
label:
v = <org.apache.activemq.broker.region.PrefetchSubscription: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Acknowledgment out of sync (Normally occurs when failover connection reconnects): {}", v);
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void registerRemoveSync(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.broker.region.MessageReference)
{
org.apache.activemq.broker.ConnectionContext v;
org.apache.activemq.broker.region.MessageReference v;
org.apache.activemq.broker.region.PrefetchSubscription v;
org.apache.activemq.transaction.Transaction v;
org.apache.activemq.broker.region.PrefetchSubscription$2 v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.broker.region.MessageReference;
v = virtualinvoke v.<org.apache.activemq.broker.ConnectionContext: org.apache.activemq.transaction.Transaction getTransaction()>();
v = new org.apache.activemq.broker.region.PrefetchSubscription$2;
specialinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription$2: void <init>(org.apache.activemq.broker.region.PrefetchSubscription,org.apache.activemq.broker.region.MessageReference)>(v, v);
virtualinvoke v.<org.apache.activemq.transaction.Transaction: void addSynchronization(org.apache.activemq.transaction.Synchronization)>(v);
return;
}
protected void assertAckMatchesDispatched(org.apache.activemq.command.MessageAck) throws javax.jms.JMSException
{
org.apache.activemq.broker.region.PrefetchSubscription v;
int v, v, v;
java.lang.String v, v, v;
boolean v, v, v, v, v, v;
org.apache.activemq.command.MessageAck v;
java.util.Iterator v;
org.apache.activemq.command.MessageId v, v, v, v;
javax.jms.JMSException v, v, v;
java.util.List v;
java.lang.Object v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: org.apache.activemq.command.MessageAck;
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.MessageId getFirstMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.MessageId getLastMessageId()>();
v = 0;
v = 0;
v = 0;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.List dispatched>;
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()>();
if v != null goto label;
v = 1;
goto label;
label:
if v != 0 goto label;
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: 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 = 1;
label:
if v == 0 goto label;
v = v + 1;
label:
if v == null goto label;
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: 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 = 1;
label:
if v != 0 goto label;
if v == null goto label;
v = new javax.jms.JMSException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.MessageAck,org.apache.activemq.command.MessageId)>(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[])>("Unmatched acknowledge: \u; Could not find Message-ID \u in dispatched-list (start of ack)");
specialinvoke v.<javax.jms.JMSException: void <init>(java.lang.String)>(v);
throw v;
label:
if v != 0 goto label;
if v == null goto label;
v = new javax.jms.JMSException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.MessageAck,org.apache.activemq.command.MessageId)>(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[])>("Unmatched acknowledge: \u; Could not find Message-ID \u in dispatched-list (end of ack)");
specialinvoke v.<javax.jms.JMSException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: int getMessageCount()>();
if v == v goto label;
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: boolean isInTransaction()>();
if v != 0 goto label;
v = new javax.jms.JMSException;
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: int getMessageCount()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.MessageAck,int,int)>(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[])>("Unmatched acknowledge: \u; Expected message count (\u) differs from count in dispatched-list (\u)");
specialinvoke v.<javax.jms.JMSException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
protected void sendToDLQ(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.broker.region.MessageReference, java.lang.Throwable) throws java.io.IOException, java.lang.Exception
{
java.lang.Throwable v;
org.apache.activemq.broker.Broker v, v;
org.apache.activemq.broker.ConnectionContext v;
org.apache.activemq.broker.region.MessageReference v;
org.apache.activemq.broker.region.PrefetchSubscription v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.broker.region.MessageReference;
v := @parameter: java.lang.Throwable;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.Broker broker>;
v = interfaceinvoke v.<org.apache.activemq.broker.Broker: org.apache.activemq.broker.Broker getRoot()>();
interfaceinvoke v.<org.apache.activemq.broker.Broker: boolean sendToDeadLetterQueue(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.MessageReference,org.apache.activemq.broker.region.Subscription,java.lang.Throwable)>(v, v, v, v);
return;
}
public int getInFlightSize()
{
int v;
java.util.List v;
org.apache.activemq.broker.region.PrefetchSubscription v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.List dispatched>;
v = interfaceinvoke v.<java.util.List: int size()>();
return v;
}
public boolean isFull()
{
org.apache.activemq.broker.region.PrefetchSubscription v;
java.util.List v;
java.util.concurrent.atomic.AtomicInteger v, v;
int v, v, v, v, v, v;
org.apache.activemq.command.ConsumerInfo v;
boolean v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: int getPrefetchSize()>();
if v != 0 goto label;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.concurrent.atomic.AtomicInteger prefetchExtension>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
goto label;
label:
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.List dispatched>;
v = interfaceinvoke v.<java.util.List: int size()>();
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.concurrent.atomic.AtomicInteger prefetchExtension>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
v = v - v;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: int getPrefetchSize()>();
if v < v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean isLowWaterMark()
{
org.apache.activemq.broker.region.PrefetchSubscription v;
java.util.List v;
byte v;
java.util.concurrent.atomic.AtomicInteger v;
int v, v, v, v;
org.apache.activemq.command.ConsumerInfo v;
boolean v;
double v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.List dispatched>;
v = interfaceinvoke v.<java.util.List: int size()>();
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.concurrent.atomic.AtomicInteger prefetchExtension>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
v = v - v;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: int getPrefetchSize()>();
v = v * 0.4;
v = v cmpg v;
if v > 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean isHighWaterMark()
{
org.apache.activemq.broker.region.PrefetchSubscription v;
java.util.List v;
byte v;
java.util.concurrent.atomic.AtomicInteger v;
int v, v, v, v;
org.apache.activemq.command.ConsumerInfo v;
boolean v;
double v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.List dispatched>;
v = interfaceinvoke v.<java.util.List: int size()>();
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.concurrent.atomic.AtomicInteger prefetchExtension>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
v = v - v;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: int getPrefetchSize()>();
v = v * 0.9;
v = v cmpl v;
if v < 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public int countBeforeFull()
{
org.apache.activemq.broker.region.PrefetchSubscription v;
java.util.List v;
java.util.concurrent.atomic.AtomicInteger v, v;
int v, v, v, v, v, v;
org.apache.activemq.command.ConsumerInfo v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: int getPrefetchSize()>();
if v != 0 goto label;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.concurrent.atomic.AtomicInteger prefetchExtension>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
goto label;
label:
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: int getPrefetchSize()>();
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.concurrent.atomic.AtomicInteger prefetchExtension>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
v = v + v;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.List dispatched>;
v = interfaceinvoke v.<java.util.List: int size()>();
v = v - v;
label:
return v;
}
public int getPendingQueueSize()
{
int v;
org.apache.activemq.broker.region.cursors.PendingMessageCursor v;
org.apache.activemq.broker.region.PrefetchSubscription v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: int size()>();
return v;
}
public long getPendingMessageSize()
{
long v;
org.apache.activemq.broker.region.cursors.PendingMessageCursor v;
org.apache.activemq.broker.region.PrefetchSubscription v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: long messageSize()>();
return v;
}
public int getDispatchedQueueSize()
{
int v;
java.util.List v;
org.apache.activemq.broker.region.PrefetchSubscription v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.List dispatched>;
v = interfaceinvoke v.<java.util.List: int size()>();
return v;
}
public long getDequeueCounter()
{
org.apache.activemq.management.CountStatisticImpl v;
org.apache.activemq.broker.region.SubscriptionStatistics v;
long v;
org.apache.activemq.broker.region.PrefetchSubscription v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.SubscriptionStatistics getSubscriptionStatistics()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.SubscriptionStatistics: org.apache.activemq.management.CountStatisticImpl getDequeues()>();
v = virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: long getCount()>();
return v;
}
public long getDispatchedCounter()
{
org.apache.activemq.management.CountStatisticImpl v;
org.apache.activemq.broker.region.SubscriptionStatistics v;
long v;
org.apache.activemq.broker.region.PrefetchSubscription v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.SubscriptionStatistics getSubscriptionStatistics()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.SubscriptionStatistics: org.apache.activemq.management.CountStatisticImpl getDispatched()>();
v = virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: long getCount()>();
return v;
}
public long getEnqueueCounter()
{
org.apache.activemq.management.CountStatisticImpl v;
org.apache.activemq.broker.region.SubscriptionStatistics v;
long v;
org.apache.activemq.broker.region.PrefetchSubscription v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.SubscriptionStatistics getSubscriptionStatistics()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.SubscriptionStatistics: org.apache.activemq.management.CountStatisticImpl getEnqueues()>();
v = virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: long getCount()>();
return v;
}
public boolean isRecoveryRequired()
{
org.apache.activemq.broker.region.cursors.PendingMessageCursor v;
org.apache.activemq.broker.region.PrefetchSubscription v;
boolean v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: boolean isRecoveryRequired()>();
return v;
}
public org.apache.activemq.broker.region.cursors.PendingMessageCursor getPending()
{
org.apache.activemq.broker.region.cursors.PendingMessageCursor v;
org.apache.activemq.broker.region.PrefetchSubscription v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
return v;
}
public void setPending(org.apache.activemq.broker.region.cursors.PendingMessageCursor)
{
int v;
org.apache.activemq.usage.SystemUsage v;
org.apache.activemq.broker.region.cursors.PendingMessageCursor v, v, v, v;
org.apache.activemq.broker.region.PrefetchSubscription v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: org.apache.activemq.broker.region.cursors.PendingMessageCursor;
v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending> = v;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
if v == null goto label;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.usage.SystemUsage usageManager>;
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: void setSystemUsage(org.apache.activemq.usage.SystemUsage)>(v);
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: int getCursorMemoryHighWaterMark()>();
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: void setMemoryUsageHighWaterMark(int)>(v);
label:
return;
}
public void add(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.broker.region.Destination) throws java.lang.Exception
{
java.lang.Throwable v;
org.apache.activemq.broker.ConnectionContext v;
java.lang.Object v;
org.apache.activemq.broker.region.cursors.PendingMessageCursor v;
org.apache.activemq.broker.region.PrefetchSubscription v;
org.apache.activemq.broker.region.Destination v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.broker.region.Destination;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.lang.Object pendingLock>;
entermonitor v;
label:
specialinvoke v.<org.apache.activemq.broker.region.AbstractSubscription: void add(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.Destination)>(v, v);
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: void add(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.Destination)>(v, 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 java.util.List remove(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.broker.region.Destination) throws java.lang.Exception
{
java.util.List v, v;
org.apache.activemq.broker.ConnectionContext v;
org.apache.activemq.broker.region.PrefetchSubscription v;
org.apache.activemq.broker.region.Destination v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.broker.region.Destination;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.List dispatched>;
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.List remove(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.Destination,java.util.List)>(v, v, v);
return v;
}
public java.util.List remove(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.broker.region.Destination, java.util.List) throws java.lang.Exception
{
java.lang.Throwable v, v;
org.apache.activemq.broker.region.PrefetchSubscription v;
java.util.List v, v, v;
org.apache.activemq.broker.ConnectionContext v;
java.lang.Object v, v;
org.apache.activemq.broker.region.cursors.PendingMessageCursor v;
java.util.LinkedList v;
org.apache.activemq.broker.region.Destination v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.broker.region.Destination;
v := @parameter: java.util.List;
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.lang.Object pendingLock>;
entermonitor v;
label:
specialinvoke v.<org.apache.activemq.broker.region.AbstractSubscription: java.util.List remove(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.Destination)>(v, v);
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: java.util.List remove(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.Destination)>(v, v);
virtualinvoke v.<java.util.LinkedList: boolean addAll(java.util.Collection)>(v);
if v != null goto label;
exitmonitor v;
label:
return v;
label:
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.List dispatched>;
if v != v goto label;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.lang.Object dispatchLock>;
entermonitor v;
label:
specialinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void addReferencesAndUpdateRedispatch(java.util.LinkedList,org.apache.activemq.broker.region.Destination,java.util.List)>(v, v, v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
specialinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void addReferencesAndUpdateRedispatch(java.util.LinkedList,org.apache.activemq.broker.region.Destination,java.util.List)>(v, v, v);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return v;
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 addReferencesAndUpdateRedispatch(java.util.LinkedList, org.apache.activemq.broker.region.Destination, java.util.List)
{
org.apache.activemq.command.Message$MessageDestination v;
org.apache.activemq.broker.region.PrefetchSubscription v;
java.util.ArrayList v;
org.apache.activemq.management.CountStatisticImpl v;
int v, v, v;
java.util.LinkedList v;
boolean v;
java.util.Iterator v;
org.apache.activemq.management.SizeStatisticImpl v;
java.util.List v;
org.apache.activemq.broker.region.SubscriptionStatistics v;
java.lang.Object v;
org.apache.activemq.broker.region.DestinationStatistics v;
org.apache.activemq.broker.region.Destination v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: java.util.LinkedList;
v := @parameter: org.apache.activemq.broker.region.Destination;
v := @parameter: java.util.List;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
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 = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message$MessageDestination getRegionDestination()>();
if v != v goto label;
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.SubscriptionStatistics getSubscriptionStatistics()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.SubscriptionStatistics: org.apache.activemq.management.SizeStatisticImpl getInflightMessageSize()>();
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: int getSize()>();
v = neg v;
virtualinvoke v.<org.apache.activemq.management.SizeStatisticImpl: void addSize(long)>(v);
goto label;
label:
virtualinvoke v.<java.util.LinkedList: boolean addAll(int,java.util.Collection)>(0, v);
v = interfaceinvoke v.<org.apache.activemq.broker.region.Destination: org.apache.activemq.broker.region.DestinationStatistics getDestinationStatistics()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.DestinationStatistics: org.apache.activemq.management.CountStatisticImpl getInflight()>();
v = virtualinvoke v.<java.util.ArrayList: int size()>();
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: void subtract(long)>(v);
interfaceinvoke v.<java.util.List: boolean removeAll(java.util.Collection)>(v);
return;
}
public void dispatchPending() throws java.io.IOException
{
org.apache.activemq.broker.ConnectionContext v, v;
boolean v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.broker.region.cursors.PendingMessageCursor v, v, v, v, v, v, v, v;
java.util.concurrent.CopyOnWriteArrayList v;
java.lang.Throwable v, v, v;
org.apache.activemq.command.Message$MessageDestination v;
org.apache.activemq.broker.region.PrefetchSubscription v;
org.apache.activemq.broker.Broker v;
int v, v;
org.apache.activemq.broker.region.QueueMessageReference v;
org.apache.activemq.broker.region.MessageReference v;
java.util.Iterator v;
java.lang.Object v, v, v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v = null;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.lang.Object pendingLock>;
entermonitor v;
label:
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: int countBeforeFull()>();
if v <= 0 goto label;
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void setSlowConsumer(boolean)>(0);
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void setPendingBatchSize(org.apache.activemq.broker.region.cursors.PendingMessageCursor,int)>(v, v);
v = 0;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: void reset()>();
label:
if v >= v goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: boolean isFull()>();
if v != 0 goto label;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: boolean hasNext()>();
if v == 0 goto label;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: org.apache.activemq.broker.region.MessageReference next()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: boolean trackedInPendingTransaction(org.apache.activemq.broker.region.MessageReference)>(v);
if v == 0 goto label;
interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: int decrementReferenceCount()>();
goto label;
label:
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.lang.Object dispatchLock>;
entermonitor v;
label:
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: void remove()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: boolean isDropped(org.apache.activemq.broker.region.MessageReference)>(v);
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: boolean canDispatch(org.apache.activemq.broker.region.MessageReference)>(v);
if v == 0 goto label;
v = <org.apache.activemq.broker.region.QueueMessageReference: org.apache.activemq.broker.region.QueueMessageReference NULL_MESSAGE>;
if v == v goto label;
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: boolean isExpired()>();
if v == 0 goto label;
v = v + 1;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.Broker broker>;
v = interfaceinvoke v.<org.apache.activemq.broker.Broker: boolean isExpired(org.apache.activemq.broker.region.MessageReference)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message$MessageDestination getRegionDestination()>();
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.ConnectionContext context>;
interfaceinvoke v.<org.apache.activemq.broker.region.Destination: void messageExpired(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.Subscription,org.apache.activemq.broker.region.MessageReference)>(v, v, v);
label:
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: boolean isBrowser()>();
if v != 0 goto label;
interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: int decrementReferenceCount()>();
exitmonitor v;
label:
goto label;
label:
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: boolean dispatch(org.apache.activemq.broker.region.MessageReference)>(v);
v = v + 1;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: int decrementReferenceCount()>();
goto label;
label:
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: boolean isEmpty()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: boolean isSlowConsumer()>();
if v != 0 goto label;
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void setSlowConsumer(boolean)>(1);
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.concurrent.CopyOnWriteArrayList destinations>;
label:
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: void release()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: void release()>();
throw v;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v == null 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.broker.region.PrefetchSubscription: org.apache.activemq.broker.ConnectionContext context>;
interfaceinvoke v.<org.apache.activemq.broker.region.Destination: void slowConsumer(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.Subscription)>(v, v);
goto label;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
protected boolean trackedInPendingTransaction(org.apache.activemq.broker.region.MessageReference)
{
org.apache.activemq.broker.region.MessageReference v;
org.apache.activemq.broker.region.PrefetchSubscription v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: org.apache.activemq.broker.region.MessageReference;
return 0;
}
protected void setPendingBatchSize(org.apache.activemq.broker.region.cursors.PendingMessageCursor, int)
{
int v;
org.apache.activemq.broker.region.cursors.PendingMessageCursor v;
org.apache.activemq.broker.region.PrefetchSubscription v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: org.apache.activemq.broker.region.cursors.PendingMessageCursor;
v := @parameter: int;
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: void setMaxBatchSize(int)>(v);
return;
}
protected boolean dispatch(org.apache.activemq.broker.region.MessageReference) throws java.io.IOException
{
org.apache.activemq.broker.region.PrefetchSubscription v;
org.apache.activemq.broker.ConnectionContext v, v;
org.apache.activemq.command.Message v;
org.apache.activemq.command.MessageDispatch v;
org.apache.activemq.management.CountStatisticImpl v;
java.util.concurrent.atomic.AtomicInteger v, v;
int v, v, v, v;
org.apache.activemq.broker.Connection v, v;
org.apache.activemq.broker.region.QueueMessageReference v;
org.apache.activemq.broker.region.PrefetchSubscription$3 v;
org.apache.activemq.command.ConsumerInfo v;
boolean v, v;
org.apache.activemq.broker.region.MessageReference v;
java.util.concurrent.CountDownLatch v;
java.util.List v;
org.apache.activemq.broker.region.SubscriptionStatistics v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: org.apache.activemq.broker.region.MessageReference;
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message getMessage()>();
if v != null goto label;
return 0;
label:
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.concurrent.CountDownLatch okForAckAsDispatchDone>;
virtualinvoke v.<java.util.concurrent.CountDownLatch: void countDown()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.command.MessageDispatch createMessageDispatch(org.apache.activemq.broker.region.MessageReference,org.apache.activemq.command.Message)>(v, v);
v = <org.apache.activemq.broker.region.QueueMessageReference: org.apache.activemq.broker.region.QueueMessageReference NULL_MESSAGE>;
if v == v goto label;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.List dispatched>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.SubscriptionStatistics getSubscriptionStatistics()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.SubscriptionStatistics: org.apache.activemq.management.CountStatisticImpl getDispatched()>();
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: void increment()>();
label:
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: int getPrefetchSize()>();
if v != 0 goto label;
label:
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.concurrent.atomic.AtomicInteger prefetchExtension>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
v = v - 1;
v = staticinvoke <java.lang.Math: int max(int,int)>(0, v);
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.concurrent.atomic.AtomicInteger prefetchExtension>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: boolean compareAndSet(int,int)>(v, v);
if v == 0 goto label;
label:
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: boolean isDispatchAsync()>();
if v == 0 goto label;
v = new org.apache.activemq.broker.region.PrefetchSubscription$3;
specialinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription$3: void <init>(org.apache.activemq.broker.region.PrefetchSubscription,org.apache.activemq.broker.region.MessageReference,org.apache.activemq.command.Message)>(v, v, v);
virtualinvoke v.<org.apache.activemq.command.MessageDispatch: void setTransmitCallback(org.apache.activemq.transport.TransmitCallback)>(v);
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.ConnectionContext context>;
v = virtualinvoke v.<org.apache.activemq.broker.ConnectionContext: org.apache.activemq.broker.Connection getConnection()>();
interfaceinvoke v.<org.apache.activemq.broker.Connection: void dispatchAsync(org.apache.activemq.command.Command)>(v);
goto label;
label:
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.ConnectionContext context>;
v = virtualinvoke v.<org.apache.activemq.broker.ConnectionContext: org.apache.activemq.broker.Connection getConnection()>();
interfaceinvoke v.<org.apache.activemq.broker.Connection: void dispatchSync(org.apache.activemq.command.Command)>(v);
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void onDispatch(org.apache.activemq.broker.region.MessageReference,org.apache.activemq.command.Message)>(v, v);
label:
return 1;
}
protected void onDispatch(org.apache.activemq.broker.region.MessageReference, org.apache.activemq.command.Message)
{
java.lang.Object[] v;
org.apache.activemq.command.Message$MessageDestination v;
long v;
org.apache.activemq.broker.region.PrefetchSubscription v;
java.lang.Integer v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.broker.ConnectionContext v;
org.apache.activemq.command.Message v;
org.apache.activemq.management.CountStatisticImpl v, v;
java.lang.Long v;
int v;
org.apache.activemq.broker.Connection v;
org.apache.activemq.broker.region.QueueMessageReference v;
org.apache.activemq.command.ConsumerInfo v, v;
boolean v;
org.apache.activemq.broker.region.MessageReference v;
org.slf4j.Logger v;
org.apache.activemq.command.MessageId v;
java.io.IOException v;
org.apache.activemq.command.ActiveMQDestination v;
java.util.List v;
org.apache.activemq.broker.region.SubscriptionStatistics v;
org.apache.activemq.broker.region.DestinationStatistics v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: org.apache.activemq.broker.region.MessageReference;
v := @parameter: org.apache.activemq.command.Message;
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message$MessageDestination getRegionDestination()>();
if v == null goto label;
v = <org.apache.activemq.broker.region.QueueMessageReference: org.apache.activemq.broker.region.QueueMessageReference NULL_MESSAGE>;
if v == v goto label;
v = interfaceinvoke v.<org.apache.activemq.broker.region.Destination: org.apache.activemq.broker.region.DestinationStatistics getDestinationStatistics()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.DestinationStatistics: org.apache.activemq.management.CountStatisticImpl getDispatched()>();
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: void increment()>();
specialinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void incrementPrefetchCounter(org.apache.activemq.broker.region.MessageReference)>(v);
v = <org.apache.activemq.broker.region.PrefetchSubscription: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[5];
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
v[0] = v;
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.MessageId getMessageId()>();
v[1] = v;
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v[2] = v;
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.SubscriptionStatistics getSubscriptionStatistics()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.SubscriptionStatistics: org.apache.activemq.management.CountStatisticImpl getDispatched()>();
v = virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: long getCount()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[3] = v;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: java.util.List dispatched>;
v = interfaceinvoke v.<java.util.List: int size()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[4] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("{} dispatched: {} - {}, dispatched: {}, inflight: {}", v);
label:
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: boolean isDispatchAsync()>();
if v == 0 goto label;
label:
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void dispatchPending()>();
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.ConnectionContext context>;
v = virtualinvoke v.<org.apache.activemq.broker.ConnectionContext: org.apache.activemq.broker.Connection getConnection()>();
interfaceinvoke v.<org.apache.activemq.broker.Connection: void serviceExceptionAsync(java.io.IOException)>(v);
label:
return;
catch java.io.IOException from label to label with label;
}
public void updateConsumerPrefetch(int)
{
org.apache.activemq.broker.region.PrefetchSubscription v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.broker.ConnectionContext v, v, v, v;
org.apache.activemq.command.ConsumerControl v;
int v;
org.apache.activemq.broker.Connection v, v, v;
org.apache.activemq.command.ConsumerInfo v;
boolean v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: int;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.ConnectionContext context>;
if v == null goto label;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.ConnectionContext context>;
v = virtualinvoke v.<org.apache.activemq.broker.ConnectionContext: org.apache.activemq.broker.Connection getConnection()>();
if v == null goto label;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.ConnectionContext context>;
v = virtualinvoke v.<org.apache.activemq.broker.ConnectionContext: org.apache.activemq.broker.Connection getConnection()>();
v = interfaceinvoke v.<org.apache.activemq.broker.Connection: boolean isManageable()>();
if v == 0 goto label;
v = new org.apache.activemq.command.ConsumerControl;
specialinvoke v.<org.apache.activemq.command.ConsumerControl: void <init>()>();
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
virtualinvoke v.<org.apache.activemq.command.ConsumerControl: void setConsumerId(org.apache.activemq.command.ConsumerId)>(v);
virtualinvoke v.<org.apache.activemq.command.ConsumerControl: void setPrefetch(int)>(v);
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.ConnectionContext context>;
v = virtualinvoke v.<org.apache.activemq.broker.ConnectionContext: org.apache.activemq.broker.Connection getConnection()>();
interfaceinvoke v.<org.apache.activemq.broker.Connection: void dispatchAsync(org.apache.activemq.command.Command)>(v);
label:
return;
}
protected org.apache.activemq.command.MessageDispatch createMessageDispatch(org.apache.activemq.broker.region.MessageReference, org.apache.activemq.command.Message)
{
org.apache.activemq.broker.region.MessageReference v;
org.apache.activemq.command.Message$MessageDestination v;
org.apache.activemq.broker.region.PrefetchSubscription v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.command.Message v;
org.apache.activemq.command.MessageDispatch v;
int v;
org.apache.activemq.broker.region.QueueMessageReference v;
org.apache.activemq.command.ConsumerInfo v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: org.apache.activemq.broker.region.MessageReference;
v := @parameter: org.apache.activemq.command.Message;
v = new org.apache.activemq.command.MessageDispatch;
specialinvoke v.<org.apache.activemq.command.MessageDispatch: void <init>()>();
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
virtualinvoke v.<org.apache.activemq.command.MessageDispatch: void setConsumerId(org.apache.activemq.command.ConsumerId)>(v);
v = <org.apache.activemq.broker.region.QueueMessageReference: org.apache.activemq.broker.region.QueueMessageReference NULL_MESSAGE>;
if v != v goto label;
virtualinvoke v.<org.apache.activemq.command.MessageDispatch: void setMessage(org.apache.activemq.command.Message)>(null);
virtualinvoke v.<org.apache.activemq.command.MessageDispatch: void setDestination(org.apache.activemq.command.ActiveMQDestination)>(null);
goto label;
label:
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message$MessageDestination getRegionDestination()>();
v = interfaceinvoke v.<org.apache.activemq.broker.region.Destination: org.apache.activemq.command.ActiveMQDestination getActiveMQDestination()>();
virtualinvoke v.<org.apache.activemq.command.MessageDispatch: void setDestination(org.apache.activemq.command.ActiveMQDestination)>(v);
virtualinvoke v.<org.apache.activemq.command.MessageDispatch: void setMessage(org.apache.activemq.command.Message)>(v);
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: int getRedeliveryCounter()>();
virtualinvoke v.<org.apache.activemq.command.MessageDispatch: void setRedeliveryCounter(int)>(v);
label:
return v;
}
protected abstract boolean canDispatch(org.apache.activemq.broker.region.MessageReference) throws java.io.IOException;
protected abstract boolean isDropped(org.apache.activemq.broker.region.MessageReference);
protected abstract void acknowledge(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.command.MessageAck, org.apache.activemq.broker.region.MessageReference) throws java.io.IOException;
public int getMaxProducersToAudit()
{
int v;
org.apache.activemq.broker.region.PrefetchSubscription v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: int maxProducersToAudit>;
return v;
}
public void setMaxProducersToAudit(int)
{
int v;
org.apache.activemq.broker.region.cursors.PendingMessageCursor v, v;
org.apache.activemq.broker.region.PrefetchSubscription v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: int;
v.<org.apache.activemq.broker.region.PrefetchSubscription: int maxProducersToAudit> = v;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
if v == null goto label;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: void setMaxProducersToAudit(int)>(v);
label:
return;
}
public int getMaxAuditDepth()
{
int v;
org.apache.activemq.broker.region.PrefetchSubscription v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: int maxAuditDepth>;
return v;
}
public void setMaxAuditDepth(int)
{
int v;
org.apache.activemq.broker.region.cursors.PendingMessageCursor v, v;
org.apache.activemq.broker.region.PrefetchSubscription v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: int;
v.<org.apache.activemq.broker.region.PrefetchSubscription: int maxAuditDepth> = v;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
if v == null goto label;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.cursors.PendingMessageCursor pending>;
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingMessageCursor: void setMaxAuditDepth(int)>(v);
label:
return;
}
public void setPrefetchSize(int)
{
org.slf4j.Logger v;
int v;
org.apache.activemq.broker.region.PrefetchSubscription v;
java.lang.Exception v;
org.apache.activemq.command.ConsumerInfo v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: int;
v = v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.command.ConsumerInfo info>;
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setPrefetchSize(int)>(v);
label:
virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: void dispatchPending()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.broker.region.PrefetchSubscription: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Throwable)>("Caught exception during dispatch after prefetch change.", v);
label:
return;
catch java.lang.Exception from label to label with label;
}
private void incrementPrefetchCounter(org.apache.activemq.broker.region.MessageReference)
{
org.apache.activemq.broker.region.MessageReference v;
org.apache.activemq.command.Message$MessageDestination v;
org.apache.activemq.management.SizeStatisticImpl v;
org.apache.activemq.broker.region.PrefetchSubscription v;
org.apache.activemq.management.CountStatisticImpl v;
org.apache.activemq.broker.region.SubscriptionStatistics v;
int v;
org.apache.activemq.broker.region.DestinationStatistics v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: org.apache.activemq.broker.region.MessageReference;
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message$MessageDestination getRegionDestination()>();
v = interfaceinvoke v.<org.apache.activemq.broker.region.Destination: org.apache.activemq.broker.region.DestinationStatistics getDestinationStatistics()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.DestinationStatistics: org.apache.activemq.management.CountStatisticImpl getInflight()>();
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: void increment()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.SubscriptionStatistics getSubscriptionStatistics()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.SubscriptionStatistics: org.apache.activemq.management.SizeStatisticImpl getInflightMessageSize()>();
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: int getSize()>();
virtualinvoke v.<org.apache.activemq.management.SizeStatisticImpl: void addSize(long)>(v);
return;
}
private void decrementPrefetchCounter(org.apache.activemq.broker.region.MessageReference)
{
org.apache.activemq.broker.region.MessageReference v;
org.apache.activemq.command.Message$MessageDestination v;
org.apache.activemq.management.SizeStatisticImpl v;
org.apache.activemq.broker.region.PrefetchSubscription v;
org.apache.activemq.management.CountStatisticImpl v;
org.apache.activemq.broker.region.SubscriptionStatistics v;
int v, v;
org.apache.activemq.broker.region.DestinationStatistics v;
v := @this: org.apache.activemq.broker.region.PrefetchSubscription;
v := @parameter: org.apache.activemq.broker.region.MessageReference;
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message$MessageDestination getRegionDestination()>();
v = interfaceinvoke v.<org.apache.activemq.broker.region.Destination: org.apache.activemq.broker.region.DestinationStatistics getDestinationStatistics()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.DestinationStatistics: org.apache.activemq.management.CountStatisticImpl getInflight()>();
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: void decrement()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.PrefetchSubscription: org.apache.activemq.broker.region.SubscriptionStatistics getSubscriptionStatistics()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.SubscriptionStatistics: org.apache.activemq.management.SizeStatisticImpl getInflightMessageSize()>();
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: int getSize()>();
v = neg v;
virtualinvoke v.<org.apache.activemq.management.SizeStatisticImpl: void addSize(long)>(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/broker/region/PrefetchSubscription;");
<org.apache.activemq.broker.region.PrefetchSubscription: org.slf4j.Logger LOG> = v;
return;
}
}