public class org.apache.activemq.broker.region.policy.StrictOrderDispatchPolicy extends java.lang.Object implements org.apache.activemq.broker.region.policy.DispatchPolicy
{
public void <init>()
{
org.apache.activemq.broker.region.policy.StrictOrderDispatchPolicy v;
v := @this: org.apache.activemq.broker.region.policy.StrictOrderDispatchPolicy;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public boolean dispatch(org.apache.activemq.broker.region.MessageReference, org.apache.activemq.filter.MessageEvaluationContext, java.util.List) throws java.lang.Exception
{
java.lang.Throwable v;
org.apache.activemq.broker.region.MessageReference v;
java.util.Iterator v;
org.apache.activemq.broker.region.policy.StrictOrderDispatchPolicy v;
java.util.List v;
org.apache.activemq.filter.MessageEvaluationContext v;
int v;
java.lang.Object v;
boolean v, v, v;
v := @this: org.apache.activemq.broker.region.policy.StrictOrderDispatchPolicy;
v := @parameter: org.apache.activemq.broker.region.MessageReference;
v := @parameter: org.apache.activemq.filter.MessageEvaluationContext;
v := @parameter: java.util.List;
entermonitor v;
label:
v = 0;
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.Subscription: boolean matches(org.apache.activemq.broker.region.MessageReference,org.apache.activemq.filter.MessageEvaluationContext)>(v, v);
if v != 0 goto label;
interfaceinvoke v.<org.apache.activemq.broker.region.Subscription: void unmatched(org.apache.activemq.broker.region.MessageReference)>(v);
goto label;
label:
interfaceinvoke v.<org.apache.activemq.broker.region.Subscription: void add(org.apache.activemq.broker.region.MessageReference)>(v);
v = v + 1;
goto label;
label:
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
}