public abstract class org.apache.activemq.broker.region.AbstractRegion extends java.lang.Object implements org.apache.activemq.broker.region.Region
{
private static final org.slf4j.Logger LOG;
protected final java.util.Map destinations;
protected final org.apache.activemq.filter.DestinationMap destinationMap;
protected final java.util.Map subscriptions;
protected final org.apache.activemq.usage.SystemUsage usageManager;
protected final org.apache.activemq.broker.region.DestinationFactory destinationFactory;
protected final org.apache.activemq.broker.region.DestinationStatistics destinationStatistics;
protected final org.apache.activemq.broker.region.RegionStatistics regionStatistics;
protected final org.apache.activemq.broker.region.RegionBroker broker;
protected boolean autoCreateDestinations;
protected final org.apache.activemq.thread.TaskRunnerFactory taskRunnerFactory;
protected final java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock;
protected final java.util.Map consumerChangeMutexMap;
protected boolean started;
public void <init>(org.apache.activemq.broker.region.RegionBroker, org.apache.activemq.broker.region.DestinationStatistics, org.apache.activemq.usage.SystemUsage, org.apache.activemq.thread.TaskRunnerFactory, org.apache.activemq.broker.region.DestinationFactory)
{
org.apache.activemq.broker.region.RegionStatistics v;
java.util.concurrent.ConcurrentHashMap v, v;
java.util.HashMap v;
java.util.concurrent.locks.ReentrantReadWriteLock v;
java.lang.IllegalArgumentException v, v;
org.apache.activemq.thread.TaskRunnerFactory v;
org.apache.activemq.broker.region.AbstractRegion v;
org.apache.activemq.filter.DestinationMap v;
org.apache.activemq.usage.SystemUsage v;
org.apache.activemq.broker.region.DestinationFactory v;
org.apache.activemq.broker.region.DestinationStatistics v;
org.apache.activemq.broker.region.RegionBroker v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v := @parameter: org.apache.activemq.broker.region.RegionBroker;
v := @parameter: org.apache.activemq.broker.region.DestinationStatistics;
v := @parameter: org.apache.activemq.usage.SystemUsage;
v := @parameter: org.apache.activemq.thread.TaskRunnerFactory;
v := @parameter: org.apache.activemq.broker.region.DestinationFactory;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map destinations> = v;
v = new org.apache.activemq.filter.DestinationMap;
specialinvoke v.<org.apache.activemq.filter.DestinationMap: void <init>()>();
v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.filter.DestinationMap destinationMap> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map subscriptions> = v;
v = new org.apache.activemq.broker.region.RegionStatistics;
specialinvoke v.<org.apache.activemq.broker.region.RegionStatistics: void <init>()>();
v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.RegionStatistics regionStatistics> = v;
v.<org.apache.activemq.broker.region.AbstractRegion: boolean autoCreateDestinations> = 1;
v = new java.util.concurrent.locks.ReentrantReadWriteLock;
specialinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: void <init>()>();
v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock> = v;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map consumerChangeMutexMap> = v;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("null broker");
throw v;
label:
v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.RegionBroker broker> = v;
v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.DestinationStatistics destinationStatistics> = v;
v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.usage.SystemUsage usageManager> = v;
v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.thread.TaskRunnerFactory taskRunnerFactory> = v;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("null destinationFactory");
throw v;
label:
v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.DestinationFactory destinationFactory> = v;
return;
}
public final void start() throws java.lang.Exception
{
java.lang.Throwable v;
org.apache.activemq.security.SecurityContext v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
org.apache.activemq.broker.Broker v, v;
org.apache.activemq.broker.ConnectionContext v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v, v, v;
java.util.Map v;
boolean v, v;
org.apache.activemq.broker.BrokerService v;
java.util.Iterator v, v;
java.util.Collection v;
java.util.Set v;
org.apache.activemq.broker.region.AbstractRegion v;
java.lang.Object v, v;
org.apache.activemq.broker.region.RegionBroker v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v.<org.apache.activemq.broker.region.AbstractRegion: boolean started> = 1;
v = virtualinvoke v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Set getInactiveDestinations()>();
v = interfaceinvoke v.<java.util.Set: 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 = new org.apache.activemq.broker.ConnectionContext;
specialinvoke v.<org.apache.activemq.broker.ConnectionContext: void <init>()>();
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.RegionBroker broker>;
v = virtualinvoke v.<org.apache.activemq.broker.region.RegionBroker: org.apache.activemq.broker.BrokerService getBrokerService()>();
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: org.apache.activemq.broker.Broker getBroker()>();
virtualinvoke v.<org.apache.activemq.broker.ConnectionContext: void setBroker(org.apache.activemq.broker.Broker)>(v);
v = <org.apache.activemq.security.SecurityContext: org.apache.activemq.security.SecurityContext BROKER_SECURITY_CONTEXT>;
virtualinvoke v.<org.apache.activemq.broker.ConnectionContext: void setSecurityContext(org.apache.activemq.security.SecurityContext)>(v);
v = virtualinvoke v.<org.apache.activemq.broker.ConnectionContext: org.apache.activemq.broker.Broker getBroker()>();
interfaceinvoke v.<org.apache.activemq.broker.Broker: org.apache.activemq.broker.region.Destination addDestination(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.command.ActiveMQDestination,boolean)>(v, v, 0);
goto label;
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void lock()>();
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map destinations>;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
interfaceinvoke v.<org.apache.activemq.broker.region.Destination: void start()>();
goto label;
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void stop() throws java.lang.Exception
{
java.lang.Throwable v, v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v, v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
org.apache.activemq.management.CountStatisticImpl v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v, v, v;
java.util.Map v, v;
boolean v;
org.apache.activemq.broker.region.RegionStatistics v, v, v;
java.util.Iterator v;
java.util.Collection v;
org.apache.activemq.broker.region.AbstractRegion v;
java.lang.Object v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v.<org.apache.activemq.broker.region.AbstractRegion: boolean started> = 0;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void lock()>();
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map destinations>;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
interfaceinvoke v.<org.apache.activemq.broker.region.Destination: void stop()>();
goto label;
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
throw v;
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void lock()>();
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map destinations>;
interfaceinvoke v.<java.util.Map: void clear()>();
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.RegionStatistics regionStatistics>;
v = virtualinvoke v.<org.apache.activemq.broker.region.RegionStatistics: org.apache.activemq.management.CountStatisticImpl getAdvisoryDestinations()>();
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: void reset()>();
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.RegionStatistics regionStatistics>;
v = virtualinvoke v.<org.apache.activemq.broker.region.RegionStatistics: org.apache.activemq.management.CountStatisticImpl getDestinations()>();
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: void reset()>();
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.RegionStatistics regionStatistics>;
v = virtualinvoke v.<org.apache.activemq.broker.region.RegionStatistics: org.apache.activemq.management.CountStatisticImpl getAllDestinations()>();
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: void reset()>();
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public org.apache.activemq.broker.region.Destination addDestination(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.command.ActiveMQDestination, boolean) throws java.lang.Exception
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
org.apache.activemq.broker.ConnectionContext v;
java.util.Map v, v;
java.lang.String v, v;
org.apache.activemq.DestinationDoesNotExistException v;
boolean v, v;
org.slf4j.Logger v;
org.apache.activemq.broker.region.DestinationInterceptor v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.broker.region.AbstractRegion v;
org.apache.activemq.filter.DestinationMap v;
java.lang.Object v;
org.apache.activemq.broker.region.RegionBroker v, v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: boolean;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void lock()>();
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map destinations>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: boolean isTemporary()>();
if v == 0 goto label;
if v == 0 goto label;
label:
virtualinvoke v.<org.apache.activemq.broker.region.AbstractRegion: void validateMaxDestinations(org.apache.activemq.command.ActiveMQDestination)>(v);
v = <org.apache.activemq.broker.region.AbstractRegion: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.RegionBroker broker>;
v = virtualinvoke v.<org.apache.activemq.broker.region.RegionBroker: java.lang.String getBrokerName()>();
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("{} adding destination: {}", v, v);
v = virtualinvoke v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.Destination createDestination(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.command.ActiveMQDestination)>(v, v);
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.RegionBroker broker>;
v = virtualinvoke v.<org.apache.activemq.broker.region.RegionBroker: org.apache.activemq.broker.region.DestinationInterceptor getDestinationInterceptor()>();
if v == null goto label;
v = interfaceinvoke v.<org.apache.activemq.broker.region.DestinationInterceptor: org.apache.activemq.broker.region.Destination intercept(org.apache.activemq.broker.region.Destination)>(v);
label:
interfaceinvoke v.<org.apache.activemq.broker.region.Destination: void start()>();
virtualinvoke v.<org.apache.activemq.broker.region.AbstractRegion: java.util.List addSubscriptionsForDestination(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.Destination)>(v, v);
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map destinations>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
virtualinvoke v.<org.apache.activemq.broker.region.AbstractRegion: void updateRegionDestCounts(org.apache.activemq.command.ActiveMQDestination,int)>(v, 1);
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.filter.DestinationMap destinationMap>;
virtualinvoke v.<org.apache.activemq.filter.DestinationMap: void unsynchronizedPut(org.apache.activemq.command.ActiveMQDestination,java.lang.Object)>(v, v);
label:
if v != null goto label;
v = new org.apache.activemq.DestinationDoesNotExistException;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
specialinvoke v.<org.apache.activemq.DestinationDoesNotExistException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public java.util.Map getSubscriptions()
{
org.apache.activemq.broker.region.AbstractRegion v;
java.util.Map v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map subscriptions>;
return v;
}
protected void updateRegionDestCounts(org.apache.activemq.command.ActiveMQDestination, int)
{
org.apache.activemq.broker.region.RegionStatistics v, v, v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.management.CountStatisticImpl v, v, v;
int v;
org.apache.activemq.broker.region.AbstractRegion v;
boolean v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: int;
if v == null goto label;
v = staticinvoke <org.apache.activemq.advisory.AdvisorySupport: boolean isAdvisoryTopic(org.apache.activemq.command.ActiveMQDestination)>(v);
if v == 0 goto label;
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.RegionStatistics regionStatistics>;
v = virtualinvoke v.<org.apache.activemq.broker.region.RegionStatistics: org.apache.activemq.management.CountStatisticImpl getAdvisoryDestinations()>();
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: void add(long)>(v);
goto label;
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.RegionStatistics regionStatistics>;
v = virtualinvoke v.<org.apache.activemq.broker.region.RegionStatistics: org.apache.activemq.management.CountStatisticImpl getDestinations()>();
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: void add(long)>(v);
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.RegionStatistics regionStatistics>;
v = virtualinvoke v.<org.apache.activemq.broker.region.RegionStatistics: org.apache.activemq.management.CountStatisticImpl getAllDestinations()>();
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: void add(long)>(v);
label:
return;
}
protected void validateMaxDestinations(org.apache.activemq.command.ActiveMQDestination) throws java.lang.Exception
{
long v;
org.apache.activemq.broker.region.policy.PolicyMap v, v;
org.apache.activemq.management.CountStatisticImpl v;
int v, v, v, v;
java.lang.String v, v;
boolean v;
org.apache.activemq.broker.region.RegionStatistics v;
java.util.Set v;
javax.jms.IllegalStateException v, v;
org.apache.activemq.command.ActiveMQDestination v, v, v, v, v;
org.apache.activemq.broker.region.policy.PolicyEntry v;
org.apache.activemq.broker.region.AbstractRegion v;
org.apache.activemq.filter.DestinationMap v;
org.apache.activemq.broker.region.RegionBroker v, v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.RegionBroker broker>;
v = virtualinvoke v.<org.apache.activemq.broker.region.RegionBroker: org.apache.activemq.broker.region.policy.PolicyMap getDestinationPolicy()>();
if v == null goto label;
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.RegionBroker broker>;
v = virtualinvoke v.<org.apache.activemq.broker.region.RegionBroker: org.apache.activemq.broker.region.policy.PolicyMap getDestinationPolicy()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.policy.PolicyMap: org.apache.activemq.broker.region.policy.PolicyEntry getEntryFor(org.apache.activemq.command.ActiveMQDestination)>(v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.policy.PolicyEntry: int getMaxDestinations()>();
if v < 0 goto label;
v = staticinvoke <org.apache.activemq.advisory.AdvisorySupport: boolean isAdvisoryTopic(org.apache.activemq.command.ActiveMQDestination)>(v);
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.policy.PolicyEntry: org.apache.activemq.command.ActiveMQDestination getDestination()>();
if v == null goto label;
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.filter.DestinationMap destinationMap>;
v = virtualinvoke v.<org.apache.activemq.broker.region.policy.PolicyEntry: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.filter.DestinationMap: java.util.Set unsynchronizedGet(org.apache.activemq.command.ActiveMQDestination)>(v);
interfaceinvoke v.<java.util.Set: int size()>();
goto label;
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.RegionStatistics regionStatistics>;
v = virtualinvoke v.<org.apache.activemq.broker.region.RegionStatistics: org.apache.activemq.management.CountStatisticImpl getDestinations()>();
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: long getCount()>();
label:
v = virtualinvoke v.<org.apache.activemq.broker.region.policy.PolicyEntry: int getMaxDestinations()>();
if v < v goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.policy.PolicyEntry: org.apache.activemq.command.ActiveMQDestination getDestination()>();
if v == null goto label;
v = new javax.jms.IllegalStateException;
v = virtualinvoke v.<org.apache.activemq.broker.region.policy.PolicyEntry: int getMaxDestinations()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.policy.PolicyEntry: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,org.apache.activemq.command.ActiveMQDestination)>(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[])>("The maxmimum number of destinations allowed (\u) for the policy \u has already been reached.");
specialinvoke v.<javax.jms.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new javax.jms.IllegalStateException;
v = virtualinvoke v.<org.apache.activemq.broker.region.policy.PolicyEntry: int getMaxDestinations()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("The maxmimum number of destinations allowed (\u) has already been reached.");
specialinvoke v.<javax.jms.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
protected java.util.List addSubscriptionsForDestination(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.broker.region.Destination) throws java.lang.Exception
{
java.lang.Object[] v;
java.util.ArrayList v;
org.apache.activemq.broker.ConnectionContext v, v, v;
java.util.Map v;
java.lang.SecurityException v;
java.lang.String v;
boolean v, v, v;
org.slf4j.Logger v;
java.util.Iterator v;
java.util.Collection v;
org.apache.activemq.command.ActiveMQDestination v, v;
org.apache.activemq.broker.region.AbstractRegion v;
java.lang.Object v;
org.apache.activemq.broker.region.Destination v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.broker.region.Destination;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map subscriptions>;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<org.apache.activemq.broker.region.Destination: org.apache.activemq.command.ActiveMQDestination getActiveMQDestination()>();
v = interfaceinvoke v.<org.apache.activemq.broker.region.Subscription: boolean matches(org.apache.activemq.command.ActiveMQDestination)>(v);
if v == 0 goto label;
label:
v = interfaceinvoke v.<org.apache.activemq.broker.region.Subscription: org.apache.activemq.broker.ConnectionContext getContext()>();
if v == null goto label;
v = interfaceinvoke v.<org.apache.activemq.broker.region.Subscription: org.apache.activemq.broker.ConnectionContext getContext()>();
goto label;
label:
v = v;
label:
interfaceinvoke v.<org.apache.activemq.broker.region.Destination: void addSubscription(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.Subscription)>(v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = interfaceinvoke v.<org.apache.activemq.broker.region.Subscription: boolean isWildcard()>();
if v == 0 goto label;
v = <org.apache.activemq.broker.region.AbstractRegion: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v[0] = v;
v = interfaceinvoke v.<org.apache.activemq.broker.region.Destination: org.apache.activemq.command.ActiveMQDestination getActiveMQDestination()>();
v[1] = v;
v = virtualinvoke v.<java.lang.SecurityException: java.lang.String getMessage()>();
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("Subscription denied for {} to destination {}: {}", v);
goto label;
label:
throw v;
label:
return v;
catch java.lang.SecurityException from label to label with label;
}
public void removeDestination(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.command.ActiveMQDestination, long) throws java.lang.Exception
{
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
org.apache.activemq.broker.ConnectionContext v;
byte v, v;
java.util.Map v, v, v;
boolean v, v, v, v, v;
java.util.Collection v, v;
javax.jms.JMSException v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.broker.region.AbstractRegion v;
org.apache.activemq.filter.DestinationMap v;
org.apache.activemq.broker.region.Destination v;
java.lang.Throwable v;
long v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
int v;
java.lang.String v, v;
org.slf4j.Logger v, v;
java.util.Iterator v, v;
org.apache.activemq.broker.region.DestinationInterceptor v;
java.lang.Object v, v, v;
org.apache.activemq.broker.region.RegionBroker v, v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: long;
v = v cmp 0L;
if v != 0 goto label;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map subscriptions>;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<org.apache.activemq.broker.region.Subscription: boolean matches(org.apache.activemq.command.ActiveMQDestination)>(v);
if v == 0 goto label;
v = new javax.jms.JMSException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.ActiveMQDestination)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Destination still has an active subscription: \u0001");
specialinvoke v.<javax.jms.JMSException: void <init>(java.lang.String)>(v);
throw v;
label:
v = <org.apache.activemq.broker.region.AbstractRegion: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.RegionBroker broker>;
v = virtualinvoke v.<org.apache.activemq.broker.region.RegionBroker: java.lang.String getBrokerName()>();
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("{} removing destination: {}", v, v);
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void lock()>();
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map destinations>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
if v == null goto label;
v = (int) -1;
virtualinvoke v.<org.apache.activemq.broker.region.AbstractRegion: void updateRegionDestCounts(org.apache.activemq.command.ActiveMQDestination,int)>(v, v);
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map subscriptions>;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<org.apache.activemq.broker.region.Subscription: boolean matches(org.apache.activemq.command.ActiveMQDestination)>(v);
if v == 0 goto label;
interfaceinvoke v.<org.apache.activemq.broker.region.Destination: void removeSubscription(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.Subscription,long)>(v, v, 0L);
goto label;
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.filter.DestinationMap destinationMap>;
virtualinvoke v.<org.apache.activemq.filter.DestinationMap: void unsynchronizedRemove(org.apache.activemq.command.ActiveMQDestination,java.lang.Object)>(v, v);
v = v instanceof org.apache.activemq.broker.region.Queue;
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.broker.region.Queue: void purge()>();
label:
virtualinvoke v.<org.apache.activemq.broker.region.AbstractRegion: void dispose(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.Destination)>(v, v);
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.RegionBroker broker>;
v = virtualinvoke v.<org.apache.activemq.broker.region.RegionBroker: org.apache.activemq.broker.region.DestinationInterceptor getDestinationInterceptor()>();
if v == null goto label;
interfaceinvoke v.<org.apache.activemq.broker.region.DestinationInterceptor: void remove(org.apache.activemq.broker.region.Destination)>(v);
goto label;
label:
v = <org.apache.activemq.broker.region.AbstractRegion: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Cannot remove a destination that doesn\'t exist: {}", v);
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public java.util.Set getDestinations(org.apache.activemq.command.ActiveMQDestination)
{
java.lang.Throwable v;
java.util.Set v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
org.apache.activemq.command.ActiveMQDestination v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v, v, v;
org.apache.activemq.broker.region.AbstractRegion v;
org.apache.activemq.filter.DestinationMap v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void lock()>();
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.filter.DestinationMap destinationMap>;
v = virtualinvoke v.<org.apache.activemq.filter.DestinationMap: java.util.Set unsynchronizedGet(org.apache.activemq.command.ActiveMQDestination)>(v);
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public java.util.Map getDestinationMap()
{
org.apache.activemq.broker.region.AbstractRegion v;
java.util.Map v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map destinations>;
return v;
}
public org.apache.activemq.broker.region.Subscription addConsumer(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.command.ConsumerInfo) throws java.lang.Exception
{
org.apache.activemq.command.ConsumerId v, v, v, v, v, v;
org.apache.activemq.broker.ConnectionContext v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v, v, v;
java.util.Map v, v, v, v, v, v;
java.util.Set v;
java.lang.Exception v;
java.lang.Throwable v, v, v;
java.lang.Object[] v, v, v;
long v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
java.util.ArrayList v, v;
java.lang.String v, v, v;
org.apache.activemq.command.ConsumerInfo v;
java.lang.SecurityException v;
boolean v, v, v, v, v, v, v;
org.apache.activemq.command.ActiveMQDestination v, v, v, v, v;
org.apache.activemq.broker.region.AbstractRegion v;
org.apache.activemq.filter.DestinationMap v;
org.apache.activemq.broker.region.Subscription v;
org.slf4j.Logger v, v, v, v;
java.util.Iterator v, v, v;
java.lang.Object v, v, v, v, v, v, v;
org.apache.activemq.broker.region.RegionBroker v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.command.ConsumerInfo;
v = <org.apache.activemq.broker.region.AbstractRegion: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.RegionBroker broker>;
v = virtualinvoke v.<org.apache.activemq.broker.region.RegionBroker: java.lang.String getBrokerName()>();
v[0] = v;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
v[1] = v;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("{} adding consumer: {} for destination: {}", v);
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: boolean isPattern()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: boolean isComposite()>();
if v != 0 goto label;
virtualinvoke v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.Destination lookup(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.command.ActiveMQDestination,boolean)>(v, v, 1);
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map consumerChangeMutexMap>;
entermonitor v;
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map consumerChangeMutexMap>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
v = v;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map consumerChangeMutexMap>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v;
entermonitor v;
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map subscriptions>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = <org.apache.activemq.broker.region.AbstractRegion: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>("A duplicate subscription was detected. Clients may be misbehaving. Later warnings you may see about subscription removal are a consequence of this.");
exitmonitor v;
label:
return v;
label:
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
staticinvoke <org.apache.activemq.filter.DestinationFilter: org.apache.activemq.filter.DestinationFilter parseFilter(org.apache.activemq.command.ActiveMQDestination)>(v);
v = virtualinvoke v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.Subscription createSubscription(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.command.ConsumerInfo)>(v, v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void lock()>();
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.filter.DestinationMap destinationMap>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.filter.DestinationMap: java.util.Set unsynchronizedGet(org.apache.activemq.command.ActiveMQDestination)>(v);
v = interfaceinvoke v.<java.util.Set: 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.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map subscriptions>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
throw v;
label:
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()>();
label:
interfaceinvoke v.<org.apache.activemq.broker.region.Destination: void addSubscription(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.Subscription)>(v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = interfaceinvoke v.<org.apache.activemq.broker.region.Subscription: boolean isWildcard()>();
if v == 0 goto label;
v = <org.apache.activemq.broker.region.AbstractRegion: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v[0] = v;
v = interfaceinvoke v.<org.apache.activemq.broker.region.Destination: org.apache.activemq.command.ActiveMQDestination getActiveMQDestination()>();
v[1] = v;
v = virtualinvoke v.<java.lang.SecurityException: java.lang.String getMessage()>();
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("Subscription denied for {} to destination {}: {}", v);
goto label;
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()>();
label:
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: long getLastDeliveredSequenceId()>();
interfaceinvoke v.<org.apache.activemq.broker.region.Destination: void removeSubscription(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.Subscription,long)>(v, v, v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.broker.region.AbstractRegion: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[4];
v[0] = v;
v[1] = v;
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
v[2] = v;
v[3] = v;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object[])>("Error unsubscribing {} from {}: {}", v);
goto label;
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map subscriptions>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
interfaceinvoke v.<java.util.List: void clear()>();
throw v;
label:
interfaceinvoke v.<java.util.List: void clear()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: boolean isBrowser()>();
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.broker.region.QueueBrowserSubscription: void destinationsAdded()>();
label:
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.SecurityException from label to label with label;
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;
}
public java.util.Set getDurableDestinations()
{
java.util.Set v;
org.apache.activemq.broker.region.AbstractRegion v;
org.apache.activemq.broker.region.DestinationFactory v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.DestinationFactory destinationFactory>;
v = virtualinvoke v.<org.apache.activemq.broker.region.DestinationFactory: java.util.Set getDestinations()>();
return v;
}
protected java.util.Set getInactiveDestinations()
{
java.lang.Throwable v;
java.util.Set v, v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v, v, v;
java.util.Map v;
org.apache.activemq.broker.region.AbstractRegion v;
org.apache.activemq.broker.region.DestinationFactory v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.DestinationFactory destinationFactory>;
v = virtualinvoke v.<org.apache.activemq.broker.region.DestinationFactory: java.util.Set getDestinations()>();
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void lock()>();
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map destinations>;
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
interfaceinvoke v.<java.util.Set: boolean removeAll(java.util.Collection)>(v);
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
public void removeConsumer(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.command.ConsumerInfo) throws java.lang.Exception
{
org.apache.activemq.command.ConsumerId v, v, v;
org.apache.activemq.broker.ConnectionContext v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v, v, v;
java.util.Map v, v, v;
boolean v, v;
java.util.Set v;
org.apache.activemq.command.ActiveMQDestination v, v;
org.apache.activemq.broker.region.AbstractRegion v;
org.apache.activemq.filter.DestinationMap v;
java.lang.Throwable v, v;
java.lang.Object[] v;
long v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
java.util.ArrayList v;
java.lang.String v;
org.apache.activemq.command.ConsumerInfo v;
org.slf4j.Logger v;
java.util.Iterator v, v;
java.lang.Object v, v, v;
org.apache.activemq.broker.region.RegionBroker v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.command.ConsumerInfo;
v = <org.apache.activemq.broker.region.AbstractRegion: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.RegionBroker broker>;
v = virtualinvoke v.<org.apache.activemq.broker.region.RegionBroker: java.lang.String getBrokerName()>();
v[0] = v;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
v[1] = v;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("{} removing consumer: {} for destination: {}", v);
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map subscriptions>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
if v == null goto label;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void lock()>();
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.filter.DestinationMap destinationMap>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.filter.DestinationMap: java.util.Set unsynchronizedGet(org.apache.activemq.command.ActiveMQDestination)>(v);
v = interfaceinvoke v.<java.util.Set: 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.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
throw v;
label:
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: long getLastDeliveredSequenceId()>();
interfaceinvoke v.<org.apache.activemq.broker.region.Destination: void removeSubscription(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.Subscription,long)>(v, v, v);
goto label;
label:
virtualinvoke v.<org.apache.activemq.broker.region.AbstractRegion: void destroySubscription(org.apache.activemq.broker.region.Subscription)>(v);
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map consumerChangeMutexMap>;
entermonitor v;
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map consumerChangeMutexMap>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
protected void destroySubscription(org.apache.activemq.broker.region.Subscription)
{
org.apache.activemq.broker.region.AbstractRegion v;
org.apache.activemq.broker.region.Subscription v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v := @parameter: org.apache.activemq.broker.region.Subscription;
interfaceinvoke v.<org.apache.activemq.broker.region.Subscription: void destroy()>();
return;
}
public void removeSubscription(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.command.RemoveSubscriptionInfo) throws java.lang.Exception
{
org.apache.activemq.broker.ConnectionContext v;
org.apache.activemq.command.RemoveSubscriptionInfo v;
org.apache.activemq.broker.region.AbstractRegion v;
javax.jms.JMSException v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.command.RemoveSubscriptionInfo;
v = new javax.jms.JMSException;
specialinvoke v.<javax.jms.JMSException: void <init>(java.lang.String)>("Invalid operation.");
throw v;
}
public void send(org.apache.activemq.broker.ProducerBrokerExchange, org.apache.activemq.command.Message) throws java.lang.Exception
{
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.broker.ConnectionContext v;
org.apache.activemq.command.Message v;
org.apache.activemq.state.ProducerState v, v, v;
org.apache.activemq.command.ProducerInfo v, v;
org.apache.activemq.broker.region.AbstractRegion v;
org.apache.activemq.broker.ProducerBrokerExchange v;
boolean v;
org.apache.activemq.broker.region.Destination v, v, v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v := @parameter: org.apache.activemq.broker.ProducerBrokerExchange;
v := @parameter: org.apache.activemq.command.Message;
v = virtualinvoke v.<org.apache.activemq.broker.ProducerBrokerExchange: org.apache.activemq.broker.ConnectionContext getConnectionContext()>();
v = virtualinvoke v.<org.apache.activemq.broker.ProducerBrokerExchange: boolean isMutable()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.broker.ProducerBrokerExchange: org.apache.activemq.broker.region.Destination getRegionDestination()>();
if v != null goto label;
label:
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.Destination lookup(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.command.ActiveMQDestination,boolean)>(v, v, 0);
virtualinvoke v.<org.apache.activemq.broker.ProducerBrokerExchange: void setRegionDestination(org.apache.activemq.broker.region.Destination)>(v);
label:
v = virtualinvoke v.<org.apache.activemq.broker.ProducerBrokerExchange: org.apache.activemq.broker.region.Destination getRegionDestination()>();
interfaceinvoke v.<org.apache.activemq.broker.region.Destination: void send(org.apache.activemq.broker.ProducerBrokerExchange,org.apache.activemq.command.Message)>(v, v);
v = virtualinvoke v.<org.apache.activemq.broker.ProducerBrokerExchange: org.apache.activemq.state.ProducerState getProducerState()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.broker.ProducerBrokerExchange: org.apache.activemq.state.ProducerState getProducerState()>();
v = virtualinvoke v.<org.apache.activemq.state.ProducerState: org.apache.activemq.command.ProducerInfo getInfo()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.broker.ProducerBrokerExchange: org.apache.activemq.state.ProducerState getProducerState()>();
v = virtualinvoke v.<org.apache.activemq.state.ProducerState: org.apache.activemq.command.ProducerInfo getInfo()>();
virtualinvoke v.<org.apache.activemq.command.ProducerInfo: void incrementSentCount()>();
label:
return;
}
public void acknowledge(org.apache.activemq.broker.ConsumerBrokerExchange, org.apache.activemq.command.MessageAck) throws java.lang.Exception
{
org.apache.activemq.command.MessageAck v;
org.slf4j.Logger v, v;
org.apache.activemq.broker.region.Subscription v;
org.apache.activemq.broker.ConsumerBrokerExchange v;
java.lang.IllegalArgumentException v;
org.apache.activemq.command.ConsumerId v, v;
org.apache.activemq.broker.ConnectionContext v, v;
java.util.Map v;
org.apache.activemq.broker.region.AbstractRegion v;
java.lang.Object v;
java.lang.String v;
boolean v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v := @parameter: org.apache.activemq.broker.ConsumerBrokerExchange;
v := @parameter: org.apache.activemq.command.MessageAck;
v = virtualinvoke v.<org.apache.activemq.broker.ConsumerBrokerExchange: org.apache.activemq.broker.region.Subscription getSubscription()>();
if v != null goto label;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map subscriptions>;
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = virtualinvoke v.<org.apache.activemq.broker.ConsumerBrokerExchange: org.apache.activemq.broker.ConnectionContext getConnectionContext()>();
v = virtualinvoke v.<org.apache.activemq.broker.ConnectionContext: boolean isInRecoveryMode()>();
if v != 0 goto label;
v = <org.apache.activemq.broker.region.AbstractRegion: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Ack for non existent subscription, ack: {}", v);
v = new java.lang.IllegalArgumentException;
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.ConsumerId)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The subscription does not exist: \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = <org.apache.activemq.broker.region.AbstractRegion: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Ack for non existent subscription in recovery, ack: {}", v);
return;
label:
virtualinvoke v.<org.apache.activemq.broker.ConsumerBrokerExchange: void setSubscription(org.apache.activemq.broker.region.Subscription)>(v);
label:
v = virtualinvoke v.<org.apache.activemq.broker.ConsumerBrokerExchange: org.apache.activemq.broker.ConnectionContext getConnectionContext()>();
interfaceinvoke v.<org.apache.activemq.broker.region.Subscription: void acknowledge(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.command.MessageAck)>(v, v);
return;
}
public org.apache.activemq.command.Response messagePull(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.command.MessagePull) throws java.lang.Exception
{
org.apache.activemq.command.Response v;
java.lang.IllegalArgumentException v;
org.apache.activemq.command.ConsumerId v, v;
org.apache.activemq.command.MessagePull v;
org.apache.activemq.broker.ConnectionContext v;
java.util.Map v;
org.apache.activemq.broker.region.AbstractRegion v;
java.lang.Object v;
java.lang.String v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.command.MessagePull;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map subscriptions>;
v = virtualinvoke v.<org.apache.activemq.command.MessagePull: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = new java.lang.IllegalArgumentException;
v = virtualinvoke v.<org.apache.activemq.command.MessagePull: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.ConsumerId)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The subscription does not exist: \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = interfaceinvoke v.<org.apache.activemq.broker.region.Subscription: org.apache.activemq.command.Response pullMessage(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.command.MessagePull)>(v, v);
return v;
}
protected org.apache.activemq.broker.region.Destination lookup(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.command.ActiveMQDestination, boolean) throws java.lang.Exception
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
org.apache.activemq.broker.Broker v;
org.apache.activemq.broker.ConnectionContext v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v, v, v;
java.util.Map v;
java.lang.String v;
boolean v, v;
javax.jms.JMSException v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.broker.region.AbstractRegion v;
java.lang.Object v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: boolean;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void lock()>();
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map destinations>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
throw v;
label:
if v != null goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.AbstractRegion: boolean isAutoCreateDestinations()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.broker.ConnectionContext: org.apache.activemq.broker.Broker getBroker()>();
v = interfaceinvoke v.<org.apache.activemq.broker.Broker: org.apache.activemq.broker.region.Destination addDestination(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.command.ActiveMQDestination,boolean)>(v, v, v);
label:
if v != null goto label;
v = new javax.jms.JMSException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.ActiveMQDestination)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The destination \u does not exist.");
specialinvoke v.<javax.jms.JMSException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
public void processDispatchNotification(org.apache.activemq.command.MessageDispatchNotification) throws java.lang.Exception
{
org.apache.activemq.command.MessageDispatchNotification v;
org.apache.activemq.command.MessageId v;
javax.jms.JMSException v;
org.apache.activemq.command.ConsumerId v, v;
org.apache.activemq.command.ActiveMQDestination v;
java.util.Map v;
org.apache.activemq.broker.region.AbstractRegion v;
java.lang.Object v;
java.lang.String v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v := @parameter: org.apache.activemq.command.MessageDispatchNotification;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map subscriptions>;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatchNotification: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
interfaceinvoke v.<org.apache.activemq.broker.region.Subscription: void processMessageDispatchNotification(org.apache.activemq.command.MessageDispatchNotification)>(v);
goto label;
label:
v = new javax.jms.JMSException;
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.MessageDispatchNotification: org.apache.activemq.command.MessageId getMessageId()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.ConsumerId,org.apache.activemq.command.ActiveMQDestination,org.apache.activemq.command.MessageId)>(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 - Subscription: \u on \u does not exist for dispatch of message: \u0001");
specialinvoke v.<javax.jms.JMSException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
protected void processDispatchNotificationViaDestination(org.apache.activemq.command.MessageDispatchNotification) throws java.lang.Exception
{
java.lang.Throwable v;
org.apache.activemq.command.MessageDispatchNotification v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
org.apache.activemq.command.ConsumerId v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v, v, v;
java.util.Map v;
java.lang.String v;
org.apache.activemq.command.MessageId v;
javax.jms.JMSException v;
org.apache.activemq.command.ActiveMQDestination v, v;
org.apache.activemq.broker.region.AbstractRegion v;
java.lang.Object v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v := @parameter: org.apache.activemq.command.MessageDispatchNotification;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void lock()>();
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map destinations>;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatchNotification: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
throw v;
label:
if v == null goto label;
interfaceinvoke v.<org.apache.activemq.broker.region.Destination: void processDispatchNotification(org.apache.activemq.command.MessageDispatchNotification)>(v);
goto label;
label:
v = new javax.jms.JMSException;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatchNotification: org.apache.activemq.command.ActiveMQDestination getDestination()>();
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.MessageId getMessageId()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.ActiveMQDestination,org.apache.activemq.command.ConsumerId,org.apache.activemq.command.MessageId)>(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 - Destination: \u does not exist for consumer \u with message: \u0001");
specialinvoke v.<javax.jms.JMSException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void gc()
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v, v, v;
java.util.Map v, v;
boolean v, v;
java.util.Iterator v, v;
java.util.Collection v, v;
org.apache.activemq.broker.region.AbstractRegion v;
java.lang.Object v, v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map subscriptions>;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
interfaceinvoke v.<org.apache.activemq.broker.region.Subscription: void gc()>();
goto label;
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void lock()>();
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map destinations>;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
interfaceinvoke v.<org.apache.activemq.broker.region.Destination: void gc()>();
goto label;
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
protected abstract org.apache.activemq.broker.region.Subscription createSubscription(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.command.ConsumerInfo) throws java.lang.Exception;
protected org.apache.activemq.broker.region.Destination createDestination(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.command.ActiveMQDestination) throws java.lang.Exception
{
org.apache.activemq.broker.ConnectionContext v;
org.apache.activemq.broker.region.AbstractRegion v;
org.apache.activemq.broker.region.DestinationFactory v;
org.apache.activemq.broker.region.DestinationStatistics v;
org.apache.activemq.broker.region.Destination v;
org.apache.activemq.command.ActiveMQDestination v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.DestinationFactory destinationFactory>;
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.DestinationStatistics destinationStatistics>;
v = virtualinvoke v.<org.apache.activemq.broker.region.DestinationFactory: org.apache.activemq.broker.region.Destination createDestination(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.command.ActiveMQDestination,org.apache.activemq.broker.region.DestinationStatistics)>(v, v, v);
return v;
}
public boolean isAutoCreateDestinations()
{
org.apache.activemq.broker.region.AbstractRegion v;
boolean v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v = v.<org.apache.activemq.broker.region.AbstractRegion: boolean autoCreateDestinations>;
return v;
}
public void setAutoCreateDestinations(boolean)
{
org.apache.activemq.broker.region.AbstractRegion v;
boolean v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v := @parameter: boolean;
v.<org.apache.activemq.broker.region.AbstractRegion: boolean autoCreateDestinations> = v;
return;
}
public void addProducer(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.command.ProducerInfo) throws java.lang.Exception
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
org.apache.activemq.broker.ConnectionContext v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v, v, v;
boolean v;
java.util.Iterator v;
java.util.Set v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.command.ProducerInfo v;
org.apache.activemq.broker.region.AbstractRegion v;
org.apache.activemq.filter.DestinationMap v;
java.lang.Object v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.command.ProducerInfo;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void lock()>();
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.filter.DestinationMap destinationMap>;
v = virtualinvoke v.<org.apache.activemq.command.ProducerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.filter.DestinationMap: java.util.Set unsynchronizedGet(org.apache.activemq.command.ActiveMQDestination)>(v);
v = interfaceinvoke v.<java.util.Set: 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: void addProducer(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.command.ProducerInfo)>(v, v);
goto label;
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void removeProducer(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.command.ProducerInfo) throws java.lang.Exception
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
org.apache.activemq.broker.ConnectionContext v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v, v, v;
boolean v;
java.util.Iterator v;
java.util.Set v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.command.ProducerInfo v;
org.apache.activemq.broker.region.AbstractRegion v;
org.apache.activemq.filter.DestinationMap v;
java.lang.Object v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.command.ProducerInfo;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void lock()>();
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.filter.DestinationMap destinationMap>;
v = virtualinvoke v.<org.apache.activemq.command.ProducerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.filter.DestinationMap: java.util.Set unsynchronizedGet(org.apache.activemq.command.ActiveMQDestination)>(v);
v = interfaceinvoke v.<java.util.Set: 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: void removeProducer(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.command.ProducerInfo)>(v, v);
goto label;
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
protected void dispose(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.broker.region.Destination) throws java.lang.Exception
{
org.apache.activemq.broker.ConnectionContext v;
org.apache.activemq.broker.region.AbstractRegion v;
org.apache.activemq.broker.region.DestinationFactory v;
org.apache.activemq.broker.region.Destination v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.broker.region.Destination;
interfaceinvoke v.<org.apache.activemq.broker.region.Destination: void dispose(org.apache.activemq.broker.ConnectionContext)>(v);
interfaceinvoke v.<org.apache.activemq.broker.region.Destination: void stop()>();
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.DestinationFactory destinationFactory>;
virtualinvoke v.<org.apache.activemq.broker.region.DestinationFactory: void removeDestination(org.apache.activemq.broker.region.Destination)>(v);
return;
}
public void processConsumerControl(org.apache.activemq.broker.ConsumerBrokerExchange, org.apache.activemq.command.ConsumerControl)
{
java.lang.Object[] v;
org.apache.activemq.broker.region.Subscription v;
org.apache.activemq.broker.region.policy.PolicyMap v, v;
java.lang.Integer v, v;
org.apache.activemq.command.ConsumerId v, v;
org.apache.activemq.broker.ConnectionContext v;
java.util.Map v;
int v, v, v;
org.apache.activemq.command.ConsumerInfo v;
boolean v;
org.slf4j.Logger v, v;
org.apache.activemq.broker.ConsumerBrokerExchange v;
java.lang.Exception v;
org.apache.activemq.command.ActiveMQDestination v, v, v;
org.apache.activemq.command.ConsumerControl v;
org.apache.activemq.broker.region.policy.PolicyEntry v;
org.apache.activemq.broker.region.AbstractRegion v;
java.lang.Object v;
org.apache.activemq.broker.region.RegionBroker v, v;
org.apache.activemq.broker.region.Destination v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v := @parameter: org.apache.activemq.broker.ConsumerBrokerExchange;
v := @parameter: org.apache.activemq.command.ConsumerControl;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map subscriptions>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerControl: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = v instanceof org.apache.activemq.broker.region.AbstractSubscription;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerControl: int getPrefetch()>();
virtualinvoke v.<org.apache.activemq.broker.region.AbstractSubscription: void setPrefetchSize(int)>(v);
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.RegionBroker broker>;
v = virtualinvoke v.<org.apache.activemq.broker.region.RegionBroker: org.apache.activemq.broker.region.policy.PolicyMap getDestinationPolicy()>();
if v == null goto label;
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.RegionBroker broker>;
v = virtualinvoke v.<org.apache.activemq.broker.region.RegionBroker: org.apache.activemq.broker.region.policy.PolicyMap getDestinationPolicy()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerControl: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.policy.PolicyMap: org.apache.activemq.broker.region.policy.PolicyEntry getEntryFor(org.apache.activemq.command.ActiveMQDestination)>(v);
if v == null goto label;
virtualinvoke v.<org.apache.activemq.broker.region.policy.PolicyEntry: void configurePrefetch(org.apache.activemq.broker.region.Subscription)>(v);
label:
v = <org.apache.activemq.broker.region.AbstractRegion: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = virtualinvoke v.<org.apache.activemq.command.ConsumerControl: int getPrefetch()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerControl: org.apache.activemq.command.ConsumerId getConsumerId()>();
v[1] = v;
v = interfaceinvoke v.<org.apache.activemq.broker.region.Subscription: org.apache.activemq.command.ConsumerInfo getConsumerInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: int getPrefetchSize()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("setting prefetch: {}, on subscription: {}; resulting value: {}", v);
label:
v = virtualinvoke v.<org.apache.activemq.broker.ConsumerBrokerExchange: org.apache.activemq.broker.ConnectionContext getConnectionContext()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerControl: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.Destination lookup(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.command.ActiveMQDestination,boolean)>(v, v, 0);
interfaceinvoke v.<org.apache.activemq.broker.region.Destination: void wakeup()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.broker.region.AbstractRegion: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerControl: org.apache.activemq.command.ActiveMQDestination getDestination()>();
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("failed to deliver post consumerControl dispatch-wakeup, to destination: {}", v, v);
label:
return;
catch java.lang.Exception from label to label with label;
}
public void reapplyInterceptor()
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
java.util.Map v, v, v;
boolean v, v;
java.util.Iterator v;
java.util.Set v;
org.apache.activemq.broker.region.DestinationInterceptor v;
org.apache.activemq.broker.region.AbstractRegion v;
java.lang.Object v, v, v;
org.apache.activemq.broker.region.RegionBroker v;
org.apache.activemq.broker.region.Destination v;
v := @this: org.apache.activemq.broker.region.AbstractRegion;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void lock()>();
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: org.apache.activemq.broker.region.RegionBroker broker>;
v = virtualinvoke v.<org.apache.activemq.broker.region.RegionBroker: org.apache.activemq.broker.region.DestinationInterceptor getDestinationInterceptor()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map getDestinationMap()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
v = interfaceinvoke v.<java.util.Set: 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.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = v instanceof org.apache.activemq.broker.region.virtual.CompositeDestinationFilter;
if v == 0 goto label;
v = v.<org.apache.activemq.broker.region.virtual.CompositeDestinationFilter: org.apache.activemq.broker.region.Destination next>;
label:
if v == null goto label;
v = interfaceinvoke v.<org.apache.activemq.broker.region.DestinationInterceptor: org.apache.activemq.broker.region.Destination intercept(org.apache.activemq.broker.region.Destination)>(v);
label:
v = virtualinvoke v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map getDestinationMap()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map destinations>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
if v != null goto label;
virtualinvoke v.<org.apache.activemq.broker.region.AbstractRegion: void updateRegionDestCounts(org.apache.activemq.command.ActiveMQDestination,int)>(v, 1);
goto label;
label:
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.broker.region.AbstractRegion: java.util.concurrent.locks.ReentrantReadWriteLock destinationsLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
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/AbstractRegion;");
<org.apache.activemq.broker.region.AbstractRegion: org.slf4j.Logger LOG> = v;
return;
}
}