public abstract class org.apache.activemq.network.DemandForwardingBridgeSupport extends java.lang.Object implements org.apache.activemq.network.NetworkBridge, org.apache.activemq.broker.BrokerServiceAware
{
private static final org.slf4j.Logger LOG;
protected static final java.lang.String DURABLE_SUB_PREFIX;
protected final org.apache.activemq.transport.Transport localBroker;
protected final org.apache.activemq.transport.Transport remoteBroker;
protected org.apache.activemq.util.IdGenerator idGenerator;
protected final org.apache.activemq.util.LongSequenceGenerator consumerIdGenerator;
protected org.apache.activemq.command.ConnectionInfo localConnectionInfo;
protected org.apache.activemq.command.ConnectionInfo remoteConnectionInfo;
protected org.apache.activemq.command.SessionInfo localSessionInfo;
protected org.apache.activemq.command.ProducerInfo producerInfo;
protected java.lang.String remoteBrokerName;
protected java.lang.String localClientId;
protected org.apache.activemq.command.ConsumerInfo demandConsumerInfo;
protected int demandConsumerDispatched;
protected final java.util.concurrent.atomic.AtomicBoolean localBridgeStarted;
protected final java.util.concurrent.atomic.AtomicBoolean remoteBridgeStarted;
protected final java.util.concurrent.atomic.AtomicBoolean bridgeFailed;
protected final java.util.concurrent.atomic.AtomicBoolean disposed;
protected org.apache.activemq.command.BrokerId localBrokerId;
protected org.apache.activemq.command.ActiveMQDestination[] excludedDestinations;
protected org.apache.activemq.command.ActiveMQDestination[] dynamicallyIncludedDestinations;
protected org.apache.activemq.command.ActiveMQDestination[] staticallyIncludedDestinations;
protected org.apache.activemq.command.ActiveMQDestination[] durableDestinations;
protected final java.util.concurrent.ConcurrentMap subscriptionMapByLocalId;
protected final java.util.concurrent.ConcurrentMap subscriptionMapByRemoteId;
protected final java.util.Set forcedDurableRemoteId;
protected final org.apache.activemq.command.BrokerId[] localBrokerPath;
protected final java.util.concurrent.CountDownLatch startedLatch;
protected final java.util.concurrent.CountDownLatch localStartedLatch;
protected final java.util.concurrent.CountDownLatch staticDestinationsLatch;
protected final java.util.concurrent.atomic.AtomicBoolean lastConnectSucceeded;
protected org.apache.activemq.network.NetworkBridgeConfiguration configuration;
protected final org.apache.activemq.network.NetworkBridgeFilterFactory defaultFilterFactory;
protected final org.apache.activemq.command.BrokerId[] remoteBrokerPath;
protected org.apache.activemq.command.BrokerId remoteBrokerId;
protected final org.apache.activemq.network.NetworkBridgeStatistics networkBridgeStatistics;
private org.apache.activemq.network.NetworkBridgeListener networkBridgeListener;
private boolean createdByDuplex;
private org.apache.activemq.command.BrokerInfo localBrokerInfo;
private org.apache.activemq.command.BrokerInfo remoteBrokerInfo;
private final org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo futureRemoteBrokerInfo;
private final org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo futureLocalBrokerInfo;
private final java.util.concurrent.atomic.AtomicBoolean started;
private org.apache.activemq.broker.TransportConnection duplexInitiatingConnection;
private final java.util.concurrent.atomic.AtomicBoolean duplexInitiatingConnectionInfoReceived;
protected org.apache.activemq.broker.BrokerService brokerService;
private javax.management.ObjectName mbeanObjectName;
private final java.util.concurrent.ExecutorService serialExecutor;
private final java.util.concurrent.ExecutorService syncExecutor;
private org.apache.activemq.transport.Transport duplexInboundLocalBroker;
private org.apache.activemq.command.ProducerInfo duplexInboundLocalProducerInfo;
public void <init>(org.apache.activemq.network.NetworkBridgeConfiguration, org.apache.activemq.transport.Transport, org.apache.activemq.transport.Transport)
{
org.apache.activemq.network.DefaultNetworkBridgeFilterFactory v;
org.apache.activemq.network.NetworkBridgeStatistics v;
java.util.concurrent.ConcurrentHashMap v, v, v;
java.util.Set v;
org.apache.activemq.transport.Transport v, v;
java.util.concurrent.CountDownLatch v, v, v;
org.apache.activemq.util.LongSequenceGenerator v;
java.util.concurrent.atomic.AtomicBoolean v, v, v, v, v, v, v, v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.BrokerInfo v, v;
java.util.concurrent.ExecutorService v, v;
org.apache.activemq.network.NetworkBridgeConfiguration v;
org.apache.activemq.command.BrokerId[] v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo v, v;
org.apache.activemq.util.IdGenerator v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.network.NetworkBridgeConfiguration;
v := @parameter: org.apache.activemq.transport.Transport;
v := @parameter: org.apache.activemq.transport.Transport;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new org.apache.activemq.util.IdGenerator;
specialinvoke v.<org.apache.activemq.util.IdGenerator: void <init>()>();
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.util.IdGenerator idGenerator> = v;
v = new org.apache.activemq.util.LongSequenceGenerator;
specialinvoke v.<org.apache.activemq.util.LongSequenceGenerator: void <init>()>();
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.util.LongSequenceGenerator consumerIdGenerator> = v;
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String remoteBrokerName> = "Unknown";
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean localBridgeStarted> = v;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean remoteBridgeStarted> = v;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>()>();
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean bridgeFailed> = v;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>()>();
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean disposed> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.ConcurrentMap subscriptionMapByLocalId> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.ConcurrentMap subscriptionMapByRemoteId> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v = staticinvoke <java.util.Collections: java.util.Set newSetFromMap(java.util.Map)>(v);
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.Set forcedDurableRemoteId> = v;
v = newarray (org.apache.activemq.command.BrokerId)[1];
v[0] = null;
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerId[] localBrokerPath> = v;
v = new java.util.concurrent.CountDownLatch;
specialinvoke v.<java.util.concurrent.CountDownLatch: void <init>(int)>(2);
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.CountDownLatch startedLatch> = v;
v = new java.util.concurrent.CountDownLatch;
specialinvoke v.<java.util.concurrent.CountDownLatch: void <init>(int)>(1);
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.CountDownLatch localStartedLatch> = v;
v = new java.util.concurrent.CountDownLatch;
specialinvoke v.<java.util.concurrent.CountDownLatch: void <init>(int)>(1);
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.CountDownLatch staticDestinationsLatch> = v;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean lastConnectSucceeded> = v;
v = new org.apache.activemq.network.DefaultNetworkBridgeFilterFactory;
specialinvoke v.<org.apache.activemq.network.DefaultNetworkBridgeFilterFactory: void <init>()>();
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeFilterFactory defaultFilterFactory> = v;
v = newarray (org.apache.activemq.command.BrokerId)[1];
v[0] = null;
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerId[] remoteBrokerPath> = v;
v = new org.apache.activemq.network.NetworkBridgeStatistics;
specialinvoke v.<org.apache.activemq.network.NetworkBridgeStatistics: void <init>()>();
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeStatistics networkBridgeStatistics> = v;
v = new org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo remoteBrokerInfo>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean disposed>;
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo: void <init>(org.apache.activemq.command.BrokerInfo,java.util.concurrent.atomic.AtomicBoolean)>(v, v);
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo futureRemoteBrokerInfo> = v;
v = new org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo localBrokerInfo>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean disposed>;
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo: void <init>(org.apache.activemq.command.BrokerInfo,java.util.concurrent.atomic.AtomicBoolean)>(v, v);
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo futureLocalBrokerInfo> = v;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>()>();
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean started> = v;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>()>();
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean duplexInitiatingConnectionInfoReceived> = v;
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService> = null;
v = staticinvoke <java.util.concurrent.Executors: java.util.concurrent.ExecutorService newSingleThreadExecutor()>();
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.ExecutorService serialExecutor> = v;
v = staticinvoke <java.util.concurrent.Executors: java.util.concurrent.ExecutorService newSingleThreadExecutor()>();
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.ExecutorService syncExecutor> = v;
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport duplexInboundLocalBroker> = null;
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration> = v;
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker> = v;
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker> = v;
return;
}
public void duplexStart(org.apache.activemq.broker.TransportConnection, org.apache.activemq.command.BrokerInfo, org.apache.activemq.command.BrokerInfo) throws java.lang.Exception
{
org.apache.activemq.broker.TransportConnection v;
org.apache.activemq.command.BrokerInfo v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.broker.TransportConnection;
v := @parameter: org.apache.activemq.command.BrokerInfo;
v := @parameter: org.apache.activemq.command.BrokerInfo;
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo localBrokerInfo> = v;
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo remoteBrokerInfo> = v;
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.TransportConnection duplexInitiatingConnection> = v;
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void start()>();
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void serviceRemoteCommand(org.apache.activemq.command.Command)>(v);
return;
}
public void start() throws java.lang.Exception
{
org.apache.activemq.network.DemandForwardingBridgeSupport$3 v;
org.apache.activemq.network.DemandForwardingBridgeSupport$2 v;
org.apache.activemq.network.DemandForwardingBridgeSupport$1 v;
java.util.concurrent.atomic.AtomicBoolean v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.broker.Broker v;
java.lang.String v;
java.net.URI v;
boolean v, v, v, v;
org.apache.activemq.broker.BrokerService v, v, v;
org.apache.activemq.network.NetworkBridgeStatistics v;
org.slf4j.Logger v, v;
java.io.IOException v;
org.apache.activemq.transport.Transport v, v, v, v, v, v, v;
java.lang.IllegalArgumentException v;
org.apache.activemq.transport.TransportDisposedIOException v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean started>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(0, 1);
if v == 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.network.DemandForwardingBridgeSupport)>(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[])>("BrokerService is null on \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeStatistics networkBridgeStatistics>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: boolean isEnableStatistics()>();
virtualinvoke v.<org.apache.activemq.network.NetworkBridgeStatistics: void setEnabled(boolean)>(v);
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean isDuplex()>();
if v == 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: org.apache.activemq.broker.Broker getBroker()>();
v = interfaceinvoke v.<org.apache.activemq.broker.Broker: java.net.URI getVmConnectorURI()>();
v = staticinvoke <org.apache.activemq.network.NetworkBridgeFactory: org.apache.activemq.transport.Transport createLocalAsyncTransport(java.net.URI)>(v);
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport duplexInboundLocalBroker> = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport duplexInboundLocalBroker>;
v = new org.apache.activemq.network.DemandForwardingBridgeSupport$1;
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport$1: void <init>(org.apache.activemq.network.DemandForwardingBridgeSupport)>(v);
interfaceinvoke v.<org.apache.activemq.transport.Transport: void setTransportListener(org.apache.activemq.transport.TransportListener)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport duplexInboundLocalBroker>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void start()>();
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
v = new org.apache.activemq.network.DemandForwardingBridgeSupport$2;
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport$2: void <init>(org.apache.activemq.network.DemandForwardingBridgeSupport)>(v);
interfaceinvoke v.<org.apache.activemq.transport.Transport: void setTransportListener(org.apache.activemq.transport.TransportListener)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
v = new org.apache.activemq.network.DemandForwardingBridgeSupport$3;
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport$3: void <init>(org.apache.activemq.network.DemandForwardingBridgeSupport)>(v);
interfaceinvoke v.<org.apache.activemq.transport.Transport: void setTransportListener(org.apache.activemq.transport.TransportListener)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void start()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void start()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean disposed>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v != 0 goto label;
label:
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void triggerStartAsyncNetworkBridgeCreation()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Caught exception from remote start", v);
goto label;
label:
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>("Bridge was disposed before the start() method was fully executed.");
v = new org.apache.activemq.transport.TransportDisposedIOException;
specialinvoke v.<org.apache.activemq.transport.TransportDisposedIOException: void <init>()>();
throw v;
label:
return;
catch java.io.IOException from label to label with label;
}
public void stop() throws java.lang.Exception
{
org.apache.activemq.util.ServiceStopper v, v;
byte v;
boolean v, v, v;
org.apache.activemq.broker.BrokerService v, v, v;
org.apache.activemq.transport.Transport v, v, v, v, v, v, v, v;
java.util.concurrent.CountDownLatch v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.thread.TaskRunnerFactory v;
java.lang.Throwable v;
java.lang.Object[] v;
java.util.concurrent.atomic.AtomicBoolean v, v, v;
long v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.broker.Broker v, v;
org.apache.activemq.network.NetworkBridgeListener v;
org.apache.activemq.command.BrokerInfo v, v;
java.lang.String v, v, v, v, v, v;
org.apache.activemq.network.NetworkBridgeConfiguration v, v, v;
org.slf4j.Logger v, v, v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo v, v;
java.util.concurrent.TimeUnit v;
org.apache.activemq.network.DemandForwardingBridgeSupport$4 v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean started>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(1, 0);
if v == 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean disposed>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(0, 1);
if v == 0 goto label;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String remoteBrokerName>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>(" stopping {} bridge to {}", v, v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo futureRemoteBrokerInfo>;
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo: boolean cancel(boolean)>(1);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo futureLocalBrokerInfo>;
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo: boolean cancel(boolean)>(1);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeListener networkBridgeListener>;
if v == null goto label;
interfaceinvoke v.<org.apache.activemq.network.NetworkBridgeListener: void onStop(org.apache.activemq.network.NetworkBridge)>(v);
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.CountDownLatch startedLatch>;
v = virtualinvoke v.<java.util.concurrent.CountDownLatch: long getCount()>();
v = v cmp 2L;
if v >= 0 goto label;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v[0] = v;
v[1] = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String remoteBrokerName>;
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("{} unregister bridge ({}) to {}", v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: org.apache.activemq.broker.Broker getBroker()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo remoteBrokerInfo>;
interfaceinvoke v.<org.apache.activemq.broker.Broker: void removeBroker(org.apache.activemq.broker.Connection,org.apache.activemq.command.BrokerInfo)>(null, v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: org.apache.activemq.broker.Broker getBroker()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo remoteBrokerInfo>;
interfaceinvoke v.<org.apache.activemq.broker.Broker: void networkBridgeStopped(org.apache.activemq.command.BrokerInfo)>(v);
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean remoteBridgeStarted>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(0);
v = new java.util.concurrent.CountDownLatch;
specialinvoke v.<java.util.concurrent.CountDownLatch: void <init>(int)>(1);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: org.apache.activemq.thread.TaskRunnerFactory getTaskRunnerFactory()>();
v = new org.apache.activemq.network.DemandForwardingBridgeSupport$4;
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport$4: void <init>(org.apache.activemq.network.DemandForwardingBridgeSupport,java.util.concurrent.CountDownLatch)>(v, v);
virtualinvoke v.<org.apache.activemq.thread.TaskRunnerFactory: void execute(java.lang.Runnable,java.lang.String)>(v, "ActiveMQ ForwardingBridge StopTask");
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
v = virtualinvoke v.<java.util.concurrent.CountDownLatch: boolean await(long,java.util.concurrent.TimeUnit)>(10L, v);
if v != 0 goto label;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Network Could not shutdown in a timely manner");
label:
v = new org.apache.activemq.util.ServiceStopper;
specialinvoke v.<org.apache.activemq.util.ServiceStopper: void <init>()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void stopFailoverTransport(org.apache.activemq.transport.Transport)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
virtualinvoke v.<org.apache.activemq.util.ServiceStopper: void stop(org.apache.activemq.Service)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
virtualinvoke v.<org.apache.activemq.util.ServiceStopper: void stop(org.apache.activemq.Service)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport duplexInboundLocalBroker>;
virtualinvoke v.<org.apache.activemq.util.ServiceStopper: void stop(org.apache.activemq.Service)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.CountDownLatch startedLatch>;
virtualinvoke v.<java.util.concurrent.CountDownLatch: void countDown()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.CountDownLatch startedLatch>;
virtualinvoke v.<java.util.concurrent.CountDownLatch: void countDown()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.CountDownLatch localStartedLatch>;
virtualinvoke v.<java.util.concurrent.CountDownLatch: void countDown()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.CountDownLatch staticDestinationsLatch>;
virtualinvoke v.<java.util.concurrent.CountDownLatch: void countDown()>();
virtualinvoke v.<org.apache.activemq.util.ServiceStopper: void throwFirstException()>();
goto label;
label:
v := @caughtexception;
v = new org.apache.activemq.util.ServiceStopper;
specialinvoke v.<org.apache.activemq.util.ServiceStopper: void <init>()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void stopFailoverTransport(org.apache.activemq.transport.Transport)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
virtualinvoke v.<org.apache.activemq.util.ServiceStopper: void stop(org.apache.activemq.Service)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
virtualinvoke v.<org.apache.activemq.util.ServiceStopper: void stop(org.apache.activemq.Service)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport duplexInboundLocalBroker>;
virtualinvoke v.<org.apache.activemq.util.ServiceStopper: void stop(org.apache.activemq.Service)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.CountDownLatch startedLatch>;
virtualinvoke v.<java.util.concurrent.CountDownLatch: void countDown()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.CountDownLatch startedLatch>;
virtualinvoke v.<java.util.concurrent.CountDownLatch: void countDown()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.CountDownLatch localStartedLatch>;
virtualinvoke v.<java.util.concurrent.CountDownLatch: void countDown()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.CountDownLatch staticDestinationsLatch>;
virtualinvoke v.<java.util.concurrent.CountDownLatch: void countDown()>();
virtualinvoke v.<org.apache.activemq.util.ServiceStopper: void throwFirstException()>();
throw v;
label:
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String remoteBrokerName>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("{} bridge to {} stopped", v, v);
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void stopFailoverTransport(org.apache.activemq.transport.Transport)
{
java.lang.InterruptedException v;
java.io.IOException v;
java.lang.Object v;
org.apache.activemq.transport.Transport v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.transport.Transport;
v = interfaceinvoke v.<org.apache.activemq.transport.Transport: java.lang.Object narrow(java.lang.Class)>(class "Lorg/apache/activemq/transport/failover/FailoverTransport;");
if v == null goto label;
label:
v = new java.io.IOException;
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>("Bridge stopped");
virtualinvoke v.<org.apache.activemq.transport.failover.FailoverTransport: void handleTransportFailure(java.io.IOException)>(v);
label:
goto label;
label:
v := @caughtexception;
label:
return;
catch java.lang.InterruptedException from label to label with label;
}
protected void triggerStartAsyncNetworkBridgeCreation() throws java.io.IOException
{
org.apache.activemq.broker.BrokerService v;
org.apache.activemq.thread.TaskRunnerFactory v;
org.apache.activemq.network.DemandForwardingBridgeSupport$5 v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: org.apache.activemq.thread.TaskRunnerFactory getTaskRunnerFactory()>();
v = new org.apache.activemq.network.DemandForwardingBridgeSupport$5;
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport$5: void <init>(org.apache.activemq.network.DemandForwardingBridgeSupport)>(v);
virtualinvoke v.<org.apache.activemq.thread.TaskRunnerFactory: void execute(java.lang.Runnable)>(v);
return;
}
private void collectBrokerInfos()
{
boolean v, v;
org.apache.activemq.broker.BrokerService v;
org.apache.activemq.transport.Transport v, v, v;
java.lang.Exception v;
java.lang.Throwable v, v, v;
java.lang.Object[] v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.BrokerInfo v, v, v, v, v, v;
int v;
java.lang.String v, v, v, v, v, v;
org.apache.activemq.network.NetworkBridgeConfiguration v, v;
org.slf4j.Logger v;
org.apache.activemq.command.BrokerId[] v;
org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo v, v;
java.util.concurrent.TimeUnit v, v;
org.apache.activemq.command.BrokerId v, v, v, v, v;
java.lang.Object v;
org.apache.activemq.util.IdGenerator v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = 30000;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
v = interfaceinvoke v.<org.apache.activemq.transport.Transport: java.lang.Object narrow(java.lang.Class)>(class "Lorg/apache/activemq/transport/tcp/TcpTransport;");
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.transport.tcp.TcpTransport: int getConnectionTimeout()>();
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo futureRemoteBrokerInfo>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo: org.apache.activemq.command.BrokerInfo get(long,java.util.concurrent.TimeUnit)>(v, v);
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo remoteBrokerInfo> = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo remoteBrokerInfo>;
if v != null goto label;
v = new java.lang.Throwable;
specialinvoke v.<java.lang.Throwable: void <init>(java.lang.String)>("remoteBrokerInfo is null");
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void serviceLocalException(java.lang.Throwable)>(v);
label:
return;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void serviceRemoteException(java.lang.Throwable)>(v);
return;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo futureLocalBrokerInfo>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo: org.apache.activemq.command.BrokerInfo get(long,java.util.concurrent.TimeUnit)>(v, v);
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo localBrokerInfo> = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo localBrokerInfo>;
if v != null goto label;
v = new java.lang.Throwable;
specialinvoke v.<java.lang.Throwable: void <init>(java.lang.String)>("localBrokerInfo is null");
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void serviceLocalException(java.lang.Throwable)>(v);
label:
return;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo remoteBrokerInfo>;
v = virtualinvoke v.<org.apache.activemq.command.BrokerInfo: org.apache.activemq.command.BrokerId getBrokerId()>();
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerId remoteBrokerId> = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerId localBrokerId>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerId remoteBrokerId>;
v = virtualinvoke v.<org.apache.activemq.command.BrokerId: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v[0] = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String remoteBrokerName>;
v[1] = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerId remoteBrokerId>;
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("{} disconnecting remote loop back connector for: {}, with id: {}", v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
staticinvoke <org.apache.activemq.util.ServiceSupport: void dispose(org.apache.activemq.Service)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
staticinvoke <org.apache.activemq.util.ServiceSupport: void dispose(org.apache.activemq.Service)>(v);
label:
return;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerId[] remoteBrokerPath>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerId remoteBrokerId>;
v[0] = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo remoteBrokerInfo>;
v = virtualinvoke v.<org.apache.activemq.command.BrokerInfo: java.lang.String getBrokerName()>();
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String remoteBrokerName> = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: boolean isUseBrokerNamesAsIdSeed()>();
if v == 0 goto label;
v = new org.apache.activemq.util.IdGenerator;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: java.lang.String getBrokerName()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String remoteBrokerName>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001->\u0001");
specialinvoke v.<org.apache.activemq.util.IdGenerator: void <init>(java.lang.String)>(v);
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.util.IdGenerator idGenerator> = v;
label:
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void serviceLocalException(java.lang.Throwable)>(v);
label:
return;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private void doStartLocalAndRemoteBridges()
{
boolean v, v, v;
java.util.concurrent.CountDownLatch v;
java.util.List v, v, v, v, v, v, v, v, v;
org.apache.activemq.command.ActiveMQDestination[] v, v, v;
java.lang.Throwable v, v, v, v;
java.lang.Object[] v, v, v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.BrokerInfo v;
int v, v, v;
java.lang.String v;
org.apache.activemq.network.NetworkBridgeConfiguration v, v, v, v, v, v, v, v, v, v;
java.util.Properties v;
org.slf4j.Logger v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean disposed>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v == 0 goto label;
return;
label:
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean isCreatedByDuplex()>();
if v == 0 goto label;
v = null;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo remoteBrokerInfo>;
v = virtualinvoke v.<org.apache.activemq.command.BrokerInfo: java.lang.String getNetworkProperties()>();
v = staticinvoke <org.apache.activemq.util.MarshallingSupport: java.util.Properties stringToProperties(java.lang.String)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
staticinvoke <org.apache.activemq.util.IntrospectionSupport: boolean getProperties(java.lang.Object,java.util.Map,java.lang.String)>(v, v, null);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.util.List getExcludedDestinations()>();
if v == null goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.util.List getExcludedDestinations()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.util.List getExcludedDestinations()>();
v = interfaceinvoke v.<java.util.List: int size()>();
v = newarray (org.apache.activemq.command.ActiveMQDestination)[v];
v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray(java.lang.Object[])>(v);
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ActiveMQDestination[] excludedDestinations> = v;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.util.List getStaticallyIncludedDestinations()>();
if v == null goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.util.List getStaticallyIncludedDestinations()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.util.List getStaticallyIncludedDestinations()>();
v = interfaceinvoke v.<java.util.List: int size()>();
v = newarray (org.apache.activemq.command.ActiveMQDestination)[v];
v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray(java.lang.Object[])>(v);
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ActiveMQDestination[] staticallyIncludedDestinations> = v;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.util.List getDynamicallyIncludedDestinations()>();
if v == null goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.util.List getDynamicallyIncludedDestinations()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.util.List getDynamicallyIncludedDestinations()>();
v = interfaceinvoke v.<java.util.List: int size()>();
v = newarray (org.apache.activemq.command.ActiveMQDestination)[v];
v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray(java.lang.Object[])>(v);
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ActiveMQDestination[] dynamicallyIncludedDestinations> = v;
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object)>("Error mapping remote configuration: {}", v, v);
label:
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void startLocalBridge()>();
label:
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void serviceLocalException(java.lang.Throwable)>(v);
return;
label:
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void startRemoteBridge()>();
label:
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void serviceRemoteException(java.lang.Throwable)>(v);
return;
label:
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean safeWaitUntilStarted()>();
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void setupStaticDestinations()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.CountDownLatch staticDestinationsLatch>;
virtualinvoke v.<java.util.concurrent.CountDownLatch: void countDown()>();
label:
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void serviceLocalException(java.lang.Throwable)>(v);
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private void startLocalBridge() throws java.lang.Throwable
{
org.apache.activemq.broker.BrokerService v, v;
java.util.concurrent.CountDownLatch v, v;
java.lang.Throwable v, v, v;
java.lang.Object[] v, v;
org.apache.activemq.broker.Broker v, v;
org.apache.activemq.command.ConnectionInfo v, v, v, v, v, v, v, v, v;
org.apache.activemq.network.NetworkBridgeListener v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.IllegalStateException v;
org.apache.activemq.command.SessionInfo v, v, v;
boolean v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.transport.Transport v, v, v, v, v, v, v, v, v, v, v, v;
java.security.cert.X509Certificate[] v, v;
java.util.concurrent.atomic.AtomicBoolean v, v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.BrokerInfo v, v, v, v, v;
org.apache.activemq.network.NetworkBridgeConfiguration v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.slf4j.Logger v, v, v, v;
org.apache.activemq.command.ConnectionId v, v;
org.apache.activemq.command.ProducerInfo v, v;
java.lang.Object v, v;
org.apache.activemq.util.IdGenerator v, v, v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean bridgeFailed>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v != 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean localBridgeStarted>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(0, 1);
if v == 0 goto label;
entermonitor v;
label:
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object,java.lang.Object)>("{} starting local Bridge, localBroker={}", v, v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean disposed>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v != 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.util.IdGenerator idGenerator>;
if v != null goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Id Generator cannot be null");
throw v;
label:
v = new org.apache.activemq.command.ConnectionInfo;
specialinvoke v.<org.apache.activemq.command.ConnectionInfo: void <init>()>();
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConnectionInfo localConnectionInfo> = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConnectionInfo localConnectionInfo>;
v = new org.apache.activemq.command.ConnectionId;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.util.IdGenerator idGenerator>;
v = virtualinvoke v.<org.apache.activemq.util.IdGenerator: java.lang.String generateId()>();
specialinvoke v.<org.apache.activemq.command.ConnectionId: void <init>(java.lang.String)>(v);
virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: void setConnectionId(org.apache.activemq.command.ConnectionId)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getName()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getClientIdToken()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String remoteBrokerName>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getClientIdToken()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getClientIdToken()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(v, v, v, v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001\u0001\u0001\u0001inbound\u0001\u0001");
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String localClientId> = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConnectionInfo localConnectionInfo>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String localClientId>;
virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: void setClientId(java.lang.String)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConnectionInfo localConnectionInfo>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getUserName()>();
virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: void setUserName(java.lang.String)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConnectionInfo localConnectionInfo>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getPassword()>();
virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: void setPassword(java.lang.String)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
label:
v = v instanceof org.apache.activemq.transport.TransportFilter;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.transport.TransportFilter: org.apache.activemq.transport.Transport getNext()>();
goto label;
label:
v = v instanceof org.apache.activemq.transport.tcp.TcpTransport;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.activemq.transport.Transport: java.security.cert.X509Certificate[] getPeerCertificates()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConnectionInfo localConnectionInfo>;
virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: void setTransportContext(java.lang.Object)>(v);
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConnectionInfo localConnectionInfo>;
v = interfaceinvoke v.<org.apache.activemq.transport.Transport: java.lang.Object request(java.lang.Object)>(v);
v = v instanceof org.apache.activemq.command.ExceptionResponse;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ExceptionResponse: java.lang.Throwable getException()>();
throw v;
label:
v = new org.apache.activemq.command.SessionInfo;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConnectionInfo localConnectionInfo>;
specialinvoke v.<org.apache.activemq.command.SessionInfo: void <init>(org.apache.activemq.command.ConnectionInfo,long)>(v, 1L);
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.SessionInfo localSessionInfo> = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.SessionInfo localSessionInfo>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: boolean isDuplex()>();
if v == 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo remoteBrokerInfo>;
virtualinvoke v.<org.apache.activemq.command.BrokerInfo: void setNetworkConnection(boolean)>(1);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport duplexInboundLocalBroker>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo remoteBrokerInfo>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
v = new org.apache.activemq.command.ConnectionInfo;
specialinvoke v.<org.apache.activemq.command.ConnectionInfo: void <init>()>();
v = new org.apache.activemq.command.ConnectionId;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.util.IdGenerator idGenerator>;
v = virtualinvoke v.<org.apache.activemq.util.IdGenerator: java.lang.String generateId()>();
specialinvoke v.<org.apache.activemq.command.ConnectionId: void <init>(java.lang.String)>(v);
virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: void setConnectionId(org.apache.activemq.command.ConnectionId)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getName()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getClientIdToken()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String remoteBrokerName>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getClientIdToken()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getClientIdToken()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getClientIdToken()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(v, v, v, v, v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001\u0001\u0001\u0001inbound\u0001duplex\u0001\u0001");
virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: void setClientId(java.lang.String)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getUserName()>();
virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: void setUserName(java.lang.String)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getPassword()>();
virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: void setPassword(java.lang.String)>(v);
v = v instanceof org.apache.activemq.transport.tcp.TcpTransport;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.activemq.transport.Transport: java.security.cert.X509Certificate[] getPeerCertificates()>();
virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: void setTransportContext(java.lang.Object)>(v);
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport duplexInboundLocalBroker>;
v = interfaceinvoke v.<org.apache.activemq.transport.Transport: java.lang.Object request(java.lang.Object)>(v);
v = v instanceof org.apache.activemq.command.ExceptionResponse;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ExceptionResponse: java.lang.Throwable getException()>();
throw v;
label:
v = new org.apache.activemq.command.SessionInfo;
specialinvoke v.<org.apache.activemq.command.SessionInfo: void <init>(org.apache.activemq.command.ConnectionInfo,long)>(v, 1L);
v = new org.apache.activemq.command.ProducerInfo;
specialinvoke v.<org.apache.activemq.command.ProducerInfo: void <init>(org.apache.activemq.command.SessionInfo,long)>(v, 1L);
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ProducerInfo duplexInboundLocalProducerInfo> = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport duplexInboundLocalBroker>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport duplexInboundLocalBroker>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ProducerInfo duplexInboundLocalProducerInfo>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: org.apache.activemq.broker.Broker getBroker()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo remoteBrokerInfo>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean createdByDuplex>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
interfaceinvoke v.<org.apache.activemq.broker.Broker: void networkBridgeStarted(org.apache.activemq.command.BrokerInfo,boolean,java.lang.String)>(v, v, v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeListener networkBridgeListener>;
if v == null goto label;
interfaceinvoke v.<org.apache.activemq.network.NetworkBridgeListener: void onStart(org.apache.activemq.network.NetworkBridge)>(v);
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo remoteBrokerInfo>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: org.apache.activemq.broker.Broker getBroker()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo remoteBrokerInfo>;
interfaceinvoke v.<org.apache.activemq.broker.Broker: void addBroker(org.apache.activemq.broker.Connection,org.apache.activemq.command.BrokerInfo)>(null, v);
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
v[0] = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
v[1] = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String remoteBrokerName>;
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object[])>("Network connection between {} and {} ({}) has been established.", v);
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v[0] = v;
v[1] = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String remoteBrokerName>;
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("{} register bridge ({}) to {}", v);
goto label;
label:
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>("Bridge was disposed before the startLocalBridge() method was fully executed.");
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.CountDownLatch startedLatch>;
virtualinvoke v.<java.util.concurrent.CountDownLatch: void countDown()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.CountDownLatch localStartedLatch>;
virtualinvoke v.<java.util.concurrent.CountDownLatch: void countDown()>();
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
protected void startRemoteBridge() throws java.lang.Exception
{
org.apache.activemq.broker.BrokerService v;
java.util.concurrent.CountDownLatch v;
java.lang.Throwable v;
org.apache.activemq.command.RemoveInfo v;
org.apache.activemq.command.ConnectionInfo v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.command.ConsumerInfo v, v, v, v, v;
java.util.Properties v;
org.apache.activemq.command.BrokerSubscriptionInfo v;
org.apache.activemq.command.SessionInfo v;
boolean v, v, v, v, v, v, v, v, v;
org.apache.activemq.wireformat.WireFormat v;
org.apache.activemq.transport.Transport v, v, v, v, v, v, v, v, v;
org.apache.activemq.command.ActiveMQTopic v, v;
java.util.List v, v, v, v;
java.util.concurrent.atomic.AtomicBoolean v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.BrokerInfo v;
int v;
org.apache.activemq.network.NetworkBridgeConfiguration v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.slf4j.Logger v;
org.apache.activemq.command.ConnectionId v;
org.apache.activemq.command.ProducerInfo v, v, v;
org.apache.activemq.command.BrokerId v;
org.apache.activemq.util.IdGenerator v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean bridgeFailed>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v != 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean remoteBridgeStarted>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(0, 1);
if v == 0 goto label;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object,java.lang.Object)>("{} starting remote Bridge, remoteBroker={}", v, v);
entermonitor v;
label:
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean isCreatedByDuplex()>();
if v != 0 goto label;
v = new org.apache.activemq.command.BrokerInfo;
specialinvoke v.<org.apache.activemq.command.BrokerInfo: void <init>()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
virtualinvoke v.<org.apache.activemq.command.BrokerInfo: void setBrokerName(java.lang.String)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerURL()>();
virtualinvoke v.<org.apache.activemq.command.BrokerInfo: void setBrokerURL(java.lang.String)>(v);
virtualinvoke v.<org.apache.activemq.command.BrokerInfo: void setNetworkConnection(boolean)>(1);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: boolean isDuplex()>();
virtualinvoke v.<org.apache.activemq.command.BrokerInfo: void setDuplexConnection(boolean)>(v);
v = new java.util.Properties;
specialinvoke v.<java.util.Properties: void <init>()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
staticinvoke <org.apache.activemq.util.IntrospectionSupport: boolean getProperties(java.lang.Object,java.util.Map,java.lang.String)>(v, v, null);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.util.List getDynamicallyIncludedDestinations()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.util.List getDynamicallyIncludedDestinations()>();
v = staticinvoke <org.apache.activemq.util.StringToListOfActiveMQDestinationConverter: java.lang.String convertFromActiveMQDestination(java.lang.Object,boolean)>(v, 1);
virtualinvoke v.<java.util.Properties: java.lang.Object put(java.lang.Object,java.lang.Object)>("dynamicallyIncludedDestinations", v);
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.util.List getStaticallyIncludedDestinations()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.util.List getStaticallyIncludedDestinations()>();
v = staticinvoke <org.apache.activemq.util.StringToListOfActiveMQDestinationConverter: java.lang.String convertFromActiveMQDestination(java.lang.Object,boolean)>(v, 1);
virtualinvoke v.<java.util.Properties: java.lang.Object put(java.lang.Object,java.lang.Object)>("staticallyIncludedDestinations", v);
label:
virtualinvoke v.<java.util.Properties: java.lang.Object remove(java.lang.Object)>("networkTTL");
v = staticinvoke <org.apache.activemq.util.MarshallingSupport: java.lang.String propertiesToString(java.util.Properties)>(v);
virtualinvoke v.<org.apache.activemq.command.BrokerInfo: void setNetworkProperties(java.lang.String)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerId localBrokerId>;
virtualinvoke v.<org.apache.activemq.command.BrokerInfo: void setBrokerId(org.apache.activemq.command.BrokerId)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: boolean isSyncDurableSubs()>();
if v == 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
v = interfaceinvoke v.<org.apache.activemq.transport.Transport: org.apache.activemq.wireformat.WireFormat getWireFormat()>();
v = interfaceinvoke v.<org.apache.activemq.wireformat.WireFormat: int getVersion()>();
if v < 12 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = staticinvoke <org.apache.activemq.util.NetworkBridgeUtils: org.apache.activemq.command.BrokerSubscriptionInfo getBrokerSubscriptionInfo(org.apache.activemq.broker.BrokerService,org.apache.activemq.network.NetworkBridgeConfiguration)>(v, v);
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConnectionInfo remoteConnectionInfo>;
if v == null goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConnectionInfo remoteConnectionInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: org.apache.activemq.command.RemoveInfo createRemoveCommand()>();
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
label:
v = new org.apache.activemq.command.ConnectionInfo;
specialinvoke v.<org.apache.activemq.command.ConnectionInfo: void <init>()>();
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConnectionInfo remoteConnectionInfo> = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConnectionInfo remoteConnectionInfo>;
v = new org.apache.activemq.command.ConnectionId;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.util.IdGenerator idGenerator>;
v = virtualinvoke v.<org.apache.activemq.util.IdGenerator: java.lang.String generateId()>();
specialinvoke v.<org.apache.activemq.command.ConnectionId: void <init>(java.lang.String)>(v);
virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: void setConnectionId(org.apache.activemq.command.ConnectionId)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConnectionInfo remoteConnectionInfo>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getName()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getClientIdToken()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getClientIdToken()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(v, v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001\u0001\u0001\u0001outbound");
virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: void setClientId(java.lang.String)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getRemoteUserName()>();
if v == null goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConnectionInfo remoteConnectionInfo>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getRemoteUserName()>();
virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: void setUserName(java.lang.String)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConnectionInfo remoteConnectionInfo>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getRemotePassword()>();
virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: void setPassword(java.lang.String)>(v);
goto label;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConnectionInfo remoteConnectionInfo>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getUserName()>();
virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: void setUserName(java.lang.String)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConnectionInfo remoteConnectionInfo>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getPassword()>();
virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: void setPassword(java.lang.String)>(v);
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConnectionInfo remoteConnectionInfo>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
v = new org.apache.activemq.command.SessionInfo;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConnectionInfo remoteConnectionInfo>;
specialinvoke v.<org.apache.activemq.command.SessionInfo: void <init>(org.apache.activemq.command.ConnectionInfo,long)>(v, 1L);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
v = new org.apache.activemq.command.ProducerInfo;
specialinvoke v.<org.apache.activemq.command.ProducerInfo: void <init>(org.apache.activemq.command.SessionInfo,long)>(v, 1L);
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ProducerInfo producerInfo> = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ProducerInfo producerInfo>;
virtualinvoke v.<org.apache.activemq.command.ProducerInfo: void setResponseRequired(boolean)>(0);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ProducerInfo producerInfo>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: boolean isStaticBridge()>();
if v != 0 goto label;
v = new org.apache.activemq.command.ConsumerInfo;
specialinvoke v.<org.apache.activemq.command.ConsumerInfo: void <init>(org.apache.activemq.command.SessionInfo,long)>(v, 1L);
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConsumerInfo demandConsumerInfo> = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConsumerInfo demandConsumerInfo>;
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setDispatchAsync(boolean)>(1);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getDestinationFilter()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: boolean isBridgeTempDestinations()>();
if v == 0 goto label;
v = <org.apache.activemq.advisory.AdvisorySupport: org.apache.activemq.command.ActiveMQTopic TEMP_DESTINATION_COMPOSITE_ADVISORY_TOPIC>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,org.apache.activemq.command.ActiveMQTopic)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u,\u0001");
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConsumerInfo demandConsumerInfo>;
v = new org.apache.activemq.command.ActiveMQTopic;
specialinvoke v.<org.apache.activemq.command.ActiveMQTopic: void <init>(java.lang.String)>(v);
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setDestination(org.apache.activemq.command.ActiveMQDestination)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConsumerInfo demandConsumerInfo>;
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void configureConsumerPrefetch(org.apache.activemq.command.ConsumerInfo)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConsumerInfo demandConsumerInfo>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.CountDownLatch startedLatch>;
virtualinvoke v.<java.util.concurrent.CountDownLatch: void countDown()>();
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void serviceRemoteException(java.lang.Throwable)
{
java.lang.Throwable v;
java.lang.Object[] v, v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
java.lang.String v, v;
boolean v, v, v;
org.apache.activemq.broker.BrokerService v;
org.slf4j.Logger v, v, v;
org.apache.activemq.transport.Transport v, v, v, v;
org.apache.activemq.thread.TaskRunnerFactory v;
org.apache.activemq.network.DemandForwardingBridgeSupport$6 v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: java.lang.Throwable;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean disposed>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v != 0 goto label;
v = v instanceof java.lang.SecurityException;
if v != 0 goto label;
v = v instanceof java.security.GeneralSecurityException;
if v == 0 goto label;
label:
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
v[0] = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
v[1] = v;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String toString()>();
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object[])>("Network connection between {} and {} shutdown due to a remote error: {}", v);
goto label;
label:
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
v[0] = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
v[1] = v;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String toString()>();
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object[])>("Network connection between {} and {} shutdown due to a remote error: {}", v);
label:
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("The remote Exception was: {}", v, v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: org.apache.activemq.thread.TaskRunnerFactory getTaskRunnerFactory()>();
v = new org.apache.activemq.network.DemandForwardingBridgeSupport$6;
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport$6: void <init>(org.apache.activemq.network.DemandForwardingBridgeSupport)>(v);
virtualinvoke v.<org.apache.activemq.thread.TaskRunnerFactory: void execute(java.lang.Runnable)>(v);
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void fireBridgeFailed(java.lang.Throwable)>(v);
label:
return;
}
protected boolean isDirectBridgeConsumer(org.apache.activemq.command.ConsumerInfo)
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
java.lang.String v, v, v, v, v;
org.apache.activemq.command.ConsumerInfo v;
boolean v, v, v;
org.apache.activemq.network.NetworkBridgeConfiguration v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.ConsumerInfo;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.lang.String getSubscriptionName()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.lang.String getSubscriptionName()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("NC-DS_");
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.lang.String getClientId()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.lang.String getClientId()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>(v);
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
protected boolean isProxyBridgeSubscription(java.lang.String, java.lang.String)
{
java.lang.String v, v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
boolean v, v;
org.apache.activemq.network.NetworkBridgeConfiguration v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
if v == null goto label;
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("NC-DS_");
if v == 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>(v);
if v != 0 goto label;
return 1;
label:
return 0;
}
protected void addProxyNetworkSubscriptionClientId(org.apache.activemq.network.DemandSubscription, java.lang.String, java.lang.String)
{
org.apache.activemq.command.SubscriptionInfo v;
org.slf4j.Logger v, v;
java.util.Set v;
org.apache.activemq.network.DemandSubscription v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
java.lang.String v, v, v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.network.DemandSubscription;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
if v == null goto label;
if v == null goto label;
if v == null goto label;
v = specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String getProxyBridgeClientId(java.lang.String)>(v);
v = new org.apache.activemq.command.SubscriptionInfo;
specialinvoke v.<org.apache.activemq.command.SubscriptionInfo: void <init>(java.lang.String,java.lang.String)>(v, v);
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: java.util.Set getDurableRemoteSubs()>();
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Adding proxy network subscription {} to demand subscription", v);
goto label;
label:
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Skipping addProxyNetworkSubscription");
label:
return;
}
protected void addProxyNetworkSubscriptionBrokerPath(org.apache.activemq.network.DemandSubscription, org.apache.activemq.command.BrokerId[], java.lang.String)
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
int v, v, v, v, v;
java.lang.String v, v, v, v, v, v;
org.apache.activemq.network.NetworkBridgeConfiguration v, v;
org.apache.activemq.command.SubscriptionInfo v;
org.apache.activemq.command.BrokerId[] v;
java.util.Set v;
org.apache.activemq.network.DemandSubscription v;
org.apache.activemq.command.BrokerId v, v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.network.DemandSubscription;
v := @parameter: org.apache.activemq.command.BrokerId[];
v := @parameter: java.lang.String;
if v == null goto label;
v = lengthof v;
if v <= 1 goto label;
if v == null goto label;
v = lengthof v;
v = v - 1;
v = v[v];
v = virtualinvoke v.<org.apache.activemq.command.BrokerId: java.lang.String toString()>();
v = lengthof v;
v = v - 2;
v = v[v];
v = virtualinvoke v.<org.apache.activemq.command.BrokerId: java.lang.String toString()>();
v = new org.apache.activemq.command.SubscriptionInfo;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getClientIdToken()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getClientIdToken()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(v, v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001\u0001inbound\u0001\u0001");
specialinvoke v.<org.apache.activemq.command.SubscriptionInfo: void <init>(java.lang.String,java.lang.String)>(v, v);
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: java.util.Set getDurableRemoteSubs()>();
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
label:
return;
}
private java.lang.String getProxyBridgeClientId(java.lang.String)
{
java.lang.String[] v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
int v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v;
org.apache.activemq.network.NetworkBridgeConfiguration v, v, v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: java.lang.String;
v = v;
if v == null goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getClientIdToken()>();
v = staticinvoke <java.util.regex.Pattern: java.lang.String quote(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String)>(v);
goto label;
label:
v = null;
label:
if v == null goto label;
v = lengthof v;
if v <= 2 goto label;
v = lengthof v;
v = v - 3;
v = v[v];
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getClientIdToken()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getClientIdToken()>();
v = lengthof v;
v = v - 1;
v = v[v];
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(v, v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001\u0001inbound\u0001\u0001");
label:
return v;
}
protected boolean isProxyNSConsumerBrokerPath(org.apache.activemq.command.ConsumerInfo)
{
org.apache.activemq.command.BrokerId[] v, v;
int v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ConsumerInfo v;
boolean v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.ConsumerInfo;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.BrokerId[] getBrokerPath()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.BrokerId[] getBrokerPath()>();
v = lengthof v;
if v <= 1 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
protected boolean isProxyNSConsumerClientId(java.lang.String)
{
java.lang.String[] v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
int v;
java.lang.String v, v, v;
boolean v;
org.apache.activemq.network.NetworkBridgeConfiguration v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: java.lang.String;
if v == null goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getClientIdToken()>();
v = staticinvoke <java.util.regex.Pattern: java.lang.String quote(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String)>(v);
v = lengthof v;
if v <= 3 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
protected void serviceRemoteCommand(org.apache.activemq.command.Command)
{
org.apache.activemq.command.ConsumerId v, v;
org.apache.activemq.command.Message v, v;
byte v, v, v;
org.apache.activemq.broker.BrokerService v;
java.util.concurrent.CountDownLatch v;
org.apache.activemq.command.DataStructure v, v;
java.lang.Throwable v, v, v;
java.lang.String v, v;
org.apache.activemq.command.ConsumerInfo v;
java.io.IOException v;
org.apache.activemq.command.ProducerId v;
org.apache.activemq.network.DemandForwardingBridgeSupport$7 v;
org.apache.activemq.network.DemandForwardingBridgeSupport$8 v;
org.apache.activemq.management.CountStatisticImpl v;
java.net.URI v;
java.lang.Byte v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.network.NetworkBridgeStatistics v;
org.apache.activemq.broker.TransportConnection v, v;
org.apache.activemq.transport.Transport v, v, v, v, v, v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.command.Response v;
java.util.concurrent.atomic.AtomicBoolean v, v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
java.util.concurrent.ConcurrentMap v;
int v;
java.util.concurrent.ExecutorService v;
org.apache.activemq.network.NetworkBridgeConfiguration v, v, v;
org.slf4j.Logger v, v, v, v, v, v, v;
org.apache.activemq.command.Command v;
org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo v;
org.apache.activemq.command.ProducerInfo v;
java.lang.Class v;
java.lang.Object v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.Command;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean disposed>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v != 0 goto label;
label:
v = interfaceinvoke v.<org.apache.activemq.command.Command: boolean isMessageDispatch()>();
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean safeWaitUntilStarted()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.DataStructure getDataStructure()>();
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void serviceRemoteConsumerAdvisory(org.apache.activemq.command.DataStructure)>(v);
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void ackAdvisory(org.apache.activemq.command.Message)>(v);
goto label;
label:
v = interfaceinvoke v.<org.apache.activemq.command.Command: boolean isBrokerInfo()>();
if v == 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo futureRemoteBrokerInfo>;
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo: void set(org.apache.activemq.command.BrokerInfo)>(v);
goto label;
label:
v = v instanceof org.apache.activemq.command.BrokerSubscriptionInfo;
if v == 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.ExecutorService syncExecutor>;
v = new org.apache.activemq.network.DemandForwardingBridgeSupport$7;
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport$7: void <init>(org.apache.activemq.network.DemandForwardingBridgeSupport,org.apache.activemq.command.BrokerSubscriptionInfo)>(v, v);
interfaceinvoke v.<java.util.concurrent.ExecutorService: void execute(java.lang.Runnable)>(v);
goto label;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
if v != class "Lorg/apache/activemq/command/ConnectionError;" goto label;
v = virtualinvoke v.<org.apache.activemq.command.ConnectionError: java.lang.Throwable getException()>();
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void serviceRemoteException(java.lang.Throwable)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean isDuplex()>();
if v == 0 goto label;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v = interfaceinvoke v.<org.apache.activemq.command.Command: byte getDataStructureType()>();
v = staticinvoke <java.lang.Byte: java.lang.Byte valueOf(byte)>(v);
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object,java.lang.Object)>("{} duplex command type: {}", v, v);
v = interfaceinvoke v.<org.apache.activemq.command.Command: boolean isMessage()>();
if v == 0 goto label;
v = staticinvoke <org.apache.activemq.command.NetworkBridgeFilter: boolean isAdvisoryInterpretedByNetworkBridge(org.apache.activemq.command.Message)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: org.apache.activemq.command.DataStructure getDataStructure()>();
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void serviceRemoteConsumerAdvisory(org.apache.activemq.command.DataStructure)>(v);
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void ackAdvisory(org.apache.activemq.command.Message)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean isPermissableDestination(org.apache.activemq.command.ActiveMQDestination,boolean)>(v, 1);
if v != 0 goto label;
label:
return;
label:
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean safeWaitUntilStarted()>();
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean canDuplexDispatch(org.apache.activemq.command.Message)>(v);
if v == 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ProducerInfo duplexInboundLocalProducerInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ProducerInfo: org.apache.activemq.command.ProducerId getProducerId()>();
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setProducerId(org.apache.activemq.command.ProducerId)>(v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: boolean isResponseRequired()>();
if v != 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: boolean isAlwaysSyncSend()>();
if v == 0 goto label;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport duplexInboundLocalBroker>;
v = new org.apache.activemq.network.DemandForwardingBridgeSupport$8;
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport$8: void <init>(org.apache.activemq.network.DemandForwardingBridgeSupport,org.apache.activemq.command.ActiveMQMessage)>(v, v);
interfaceinvoke v.<org.apache.activemq.transport.Transport: org.apache.activemq.transport.FutureResponse asyncRequest(java.lang.Object,org.apache.activemq.transport.ResponseCallback)>(v, v);
goto label;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport duplexInboundLocalBroker>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeStatistics networkBridgeStatistics>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeStatistics: org.apache.activemq.management.CountStatisticImpl getReceivedCount()>();
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: void increment()>();
label:
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void serviceInboundMessage(org.apache.activemq.command.Message)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: boolean isResponseRequired()>();
if v != 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: boolean isAlwaysSyncSend()>();
if v == 0 goto label;
label:
v = new org.apache.activemq.command.Response;
specialinvoke v.<org.apache.activemq.command.Response: void <init>()>();
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: int getCommandId()>();
virtualinvoke v.<org.apache.activemq.command.Response: void setCorrelationId(int)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
goto label;
label:
v = interfaceinvoke v.<org.apache.activemq.command.Command: byte getDataStructureType()>();
tableswitch(v)
{
case 3: goto label;
case 4: goto label;
case 5: goto label;
case 6: goto label;
case 7: goto label;
case 8: goto label;
case 9: goto label;
case 10: goto label;
case 11: goto label;
case 12: goto label;
case 13: goto label;
case 14: goto label;
case 15: goto label;
case 16: goto label;
case 17: goto label;
case 18: goto label;
case 19: goto label;
case 20: goto label;
case 21: goto label;
case 22: goto label;
default: goto label;
};
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.TransportConnection duplexInitiatingConnection>;
if v == null goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean duplexInitiatingConnectionInfoReceived>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(0, 1);
if v == 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.TransportConnection duplexInitiatingConnection>;
virtualinvoke v.<org.apache.activemq.broker.TransportConnection: org.apache.activemq.command.Response processAddConnection(org.apache.activemq.command.ConnectionInfo)>(v);
goto label;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
goto label;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
goto label;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.ConcurrentMap subscriptionMapByRemoteId>;
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getLocalInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setConsumerId(org.apache.activemq.command.ConsumerId)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
goto label;
label:
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Matching local subscription not found for ack: {}", v);
goto label;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.CountDownLatch localStartedLatch>;
virtualinvoke v.<java.util.concurrent.CountDownLatch: void await()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean started>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v == 0 goto label;
v = specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean isDuplicateSuppressionOff(org.apache.activemq.command.ConsumerInfo)>(v);
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void addConsumerInfo(org.apache.activemq.command.ConsumerInfo)>(v);
goto label;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: java.net.URI getVmConnectorURI()>();
entermonitor v;
label:
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void addConsumerInfo(org.apache.activemq.command.ConsumerInfo)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Stopping - ignoring ConsumerInfo: {}", v);
goto label;
label:
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Stopping network bridge on shutdown of remote broker");
v = new java.io.IOException;
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void serviceRemoteException(java.lang.Throwable)>(v);
goto label;
label:
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Ignoring remote command: {}", v);
goto label;
label:
v = interfaceinvoke v.<org.apache.activemq.command.Command: byte getDataStructureType()>();
lookupswitch(v)
{
case 1: goto label;
case 10: goto label;
case 11: goto label;
default: goto label;
};
label:
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Unexpected remote command: {}", v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Exception processing remote command: {}", v, v);
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void serviceRemoteException(java.lang.Throwable)>(v);
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private void ackAdvisory(org.apache.activemq.command.Message) throws java.io.IOException
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.command.Message v;
byte v;
int v, v, v, v, v, v;
org.apache.activemq.command.ConsumerInfo v, v;
org.apache.activemq.network.NetworkBridgeConfiguration v;
org.apache.activemq.broker.BrokerService v;
org.apache.activemq.command.MessageAck v;
org.apache.activemq.thread.TaskRunnerFactory v;
float v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport$9 v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.Message;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: int demandConsumerDispatched>;
v = v + 1;
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: int demandConsumerDispatched> = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: int demandConsumerDispatched>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConsumerInfo demandConsumerInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: int getPrefetchSize()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: int getAdvisoryAckPercentage()>();
v = v / 100.0F;
v = v * v;
v = v cmpl v;
if v <= 0 goto label;
v = new org.apache.activemq.command.MessageAck;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: int demandConsumerDispatched>;
specialinvoke v.<org.apache.activemq.command.MessageAck: void <init>(org.apache.activemq.command.Message,byte,int)>(v, 2, v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConsumerInfo demandConsumerInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setConsumerId(org.apache.activemq.command.ConsumerId)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: org.apache.activemq.thread.TaskRunnerFactory getTaskRunnerFactory()>();
v = new org.apache.activemq.network.DemandForwardingBridgeSupport$9;
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport$9: void <init>(org.apache.activemq.network.DemandForwardingBridgeSupport,org.apache.activemq.command.MessageAck)>(v, v);
virtualinvoke v.<org.apache.activemq.thread.TaskRunnerFactory: void execute(java.lang.Runnable)>(v);
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: int demandConsumerDispatched> = 0;
label:
return;
}
private void serviceRemoteConsumerAdvisory(org.apache.activemq.command.DataStructure) throws java.io.IOException
{
java.lang.Integer v, v;
org.apache.activemq.broker.BrokerService v;
org.apache.activemq.command.SessionId v;
java.util.Set v, v, v, v;
org.apache.activemq.command.DataStructure v, v;
java.lang.Throwable v;
java.lang.Object[] v, v, v, v, v;
org.apache.activemq.command.ConnectionInfo v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.command.SubscriptionInfo v;
org.apache.activemq.command.BrokerId[] v, v, v, v, v, v, v, v;
org.apache.activemq.command.SessionInfo v;
java.net.URI v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.Collection v, v;
org.apache.activemq.transport.Transport v, v;
org.apache.activemq.command.ActiveMQDestination v, v, v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport$10 v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
java.util.concurrent.ConcurrentMap v, v;
int v, v, v, v, v;
java.util.concurrent.ExecutorService v;
org.apache.activemq.network.NetworkBridgeConfiguration v, v, v, v, v, v, v, v;
org.slf4j.Logger v, v, v, v, v, v, v;
java.util.Iterator v, v;
org.apache.activemq.command.ConnectionId v;
org.apache.activemq.command.BrokerId v, v;
java.lang.Class v, v, v, v;
java.lang.Object v, v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.DataStructure;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: int getConsumerTTL()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
if v != class "Lorg/apache/activemq/command/ConsumerInfo;" goto label;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.BrokerId[] getBrokerPath()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: boolean isBrowser()>();
if v == 0 goto label;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String remoteBrokerName>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("{} Ignoring sub from {}, browsers explicitly suppressed", v, v);
return;
label:
if v == null goto label;
v = (int) -1;
if v <= v goto label;
v = lengthof v;
if v < v goto label;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[4];
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v[0] = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String remoteBrokerName>;
v[1] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[2] = v;
v[3] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("{} Ignoring sub from {}, restricted to {} network hops only: {}", v);
return;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerId[] localBrokerPath>;
v = v[0];
v = staticinvoke <org.apache.activemq.network.DemandForwardingBridgeSupport: boolean contains(org.apache.activemq.command.BrokerId[],org.apache.activemq.command.BrokerId)>(v, v);
if v == 0 goto label;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v[0] = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String remoteBrokerName>;
v[1] = v;
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("{} Ignoring sub from {}, already routed through this broker once: {}", v);
return;
label:
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean isPermissableDestination(org.apache.activemq.command.ActiveMQDestination)>(v);
if v != 0 goto label;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[4];
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v[0] = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String remoteBrokerName>;
v[1] = v;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v[2] = v;
v[3] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("{} Ignoring sub from {}, destination {} is not permitted: {}", v);
return;
label:
v = specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean isDuplicateSuppressionOff(org.apache.activemq.command.ConsumerInfo)>(v);
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void addConsumerInfo(org.apache.activemq.command.ConsumerInfo)>(v);
goto label;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: java.net.URI getVmConnectorURI()>();
entermonitor v;
label:
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void addConsumerInfo(org.apache.activemq.command.ConsumerInfo)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
if v != class "Lorg/apache/activemq/command/DestinationInfo;" goto label;
v = virtualinvoke v.<org.apache.activemq.command.DestinationInfo: org.apache.activemq.command.BrokerId[] getBrokerPath()>();
if v == null goto label;
v = (int) -1;
if v <= v goto label;
v = lengthof v;
if v < v goto label;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v[0] = v;
v[1] = v;
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[])>("{} Ignoring destination {} restricted to {} network hops only", v);
return;
label:
v = virtualinvoke v.<org.apache.activemq.command.DestinationInfo: org.apache.activemq.command.BrokerId[] getBrokerPath()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerId[] localBrokerPath>;
v = v[0];
v = staticinvoke <org.apache.activemq.network.DemandForwardingBridgeSupport: boolean contains(org.apache.activemq.command.BrokerId[],org.apache.activemq.command.BrokerId)>(v, v);
if v == 0 goto label;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("{} Ignoring destination {} already routed through this broker once", v, v);
return;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConnectionInfo localConnectionInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: org.apache.activemq.command.ConnectionId getConnectionId()>();
virtualinvoke v.<org.apache.activemq.command.DestinationInfo: void setConnectionId(org.apache.activemq.command.ConnectionId)>(v);
v = virtualinvoke v.<org.apache.activemq.command.DestinationInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = v instanceof org.apache.activemq.command.ActiveMQTempDestination;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.DestinationInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.SessionInfo localSessionInfo>;
v = virtualinvoke v.<org.apache.activemq.command.SessionInfo: org.apache.activemq.command.SessionId getSessionId()>();
v = virtualinvoke v.<org.apache.activemq.command.SessionId: java.lang.String getConnectionId()>();
virtualinvoke v.<org.apache.activemq.command.ActiveMQTempDestination: void setConnectionId(java.lang.String)>(v);
label:
v = virtualinvoke v.<org.apache.activemq.command.DestinationInfo: org.apache.activemq.command.BrokerId[] getBrokerPath()>();
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerId[] getRemoteBrokerPath()>();
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerId[] appendToBrokerPath(org.apache.activemq.command.BrokerId[],org.apache.activemq.command.BrokerId[])>(v, v);
virtualinvoke v.<org.apache.activemq.command.DestinationInfo: void setBrokerPath(org.apache.activemq.command.BrokerId[])>(v);
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[5];
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v[0] = v;
v = virtualinvoke v.<org.apache.activemq.command.DestinationInfo: boolean isAddOperation()>();
if v == 0 goto label;
v = "add";
goto label;
label:
v = "remove";
label:
v[1] = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
v[2] = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String remoteBrokerName>;
v[3] = v;
v[4] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("{} bridging {} destination on {} from {}, destination: {}", v);
v = virtualinvoke v.<org.apache.activemq.command.DestinationInfo: boolean isRemoveOperation()>();
if v == 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.ExecutorService serialExecutor>;
v = new org.apache.activemq.network.DemandForwardingBridgeSupport$10;
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport$10: void <init>(org.apache.activemq.network.DemandForwardingBridgeSupport,org.apache.activemq.command.DestinationInfo)>(v, v);
interfaceinvoke v.<java.util.concurrent.ExecutorService: void execute(java.lang.Runnable)>(v);
goto label;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
if v != class "Lorg/apache/activemq/command/RemoveInfo;" goto label;
v = virtualinvoke v.<org.apache.activemq.command.RemoveInfo: org.apache.activemq.command.DataStructure getObjectId()>();
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void removeDemandSubscription(org.apache.activemq.command.ConsumerId)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.Set forcedDurableRemoteId>;
v = interfaceinvoke v.<java.util.Set: boolean remove(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.ConcurrentMap subscriptionMapByLocalId>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: 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 = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: boolean removeForcedDurableConsumer(org.apache.activemq.command.ConsumerId)>(v);
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void cleanupDurableSub(org.apache.activemq.network.DemandSubscription,java.util.Iterator)>(v, v);
goto label;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
if v != class "Lorg/apache/activemq/command/RemoveSubscriptionInfo;" goto label;
v = new org.apache.activemq.command.SubscriptionInfo;
v = virtualinvoke v.<org.apache.activemq.command.RemoveSubscriptionInfo: java.lang.String getClientId()>();
v = virtualinvoke v.<org.apache.activemq.command.RemoveSubscriptionInfo: java.lang.String getSubscriptionName()>();
specialinvoke v.<org.apache.activemq.command.SubscriptionInfo: void <init>(java.lang.String,java.lang.String)>(v, v);
v = virtualinvoke v.<org.apache.activemq.command.SubscriptionInfo: java.lang.String getClientId()>();
v = virtualinvoke v.<org.apache.activemq.command.SubscriptionInfo: java.lang.String getSubscriptionName()>();
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean isProxyBridgeSubscription(java.lang.String,java.lang.String)>(v, v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.ConcurrentMap subscriptionMapByLocalId>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: 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 = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: java.util.Set getDurableRemoteSubs()>();
v = interfaceinvoke v.<java.util.Set: boolean remove(java.lang.Object)>(v);
if v != 0 goto label;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.SubscriptionInfo: java.lang.String getClientId()>();
v = specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String getProxyBridgeClientId(java.lang.String)>(v);
virtualinvoke v.<org.apache.activemq.command.SubscriptionInfo: void setClientId(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: java.util.Set getDurableRemoteSubs()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: java.util.Set getDurableRemoteSubs()>();
interfaceinvoke v.<java.util.Set: boolean remove(java.lang.Object)>(v);
v = 1;
label:
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void cleanupDurableSub(org.apache.activemq.network.DemandSubscription,java.util.Iterator)>(v, v);
goto label;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void cleanupDurableSub(org.apache.activemq.network.DemandSubscription, java.util.Iterator) throws java.io.IOException
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ConsumerId v, v;
org.apache.activemq.command.RemoveInfo v;
java.util.concurrent.ConcurrentMap v;
org.apache.activemq.command.ConnectionInfo v;
int v;
java.lang.String v, v;
org.apache.activemq.command.ConsumerInfo v, v;
boolean v;
org.apache.activemq.command.SubscriptionInfo v, v;
org.apache.activemq.command.RemoveSubscriptionInfo v;
java.util.Iterator v;
org.apache.activemq.command.ConnectionId v;
java.util.Set v;
org.apache.activemq.network.DemandSubscription v;
org.apache.activemq.transport.Transport v, v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.network.DemandSubscription;
v := @parameter: java.util.Iterator;
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.SubscriptionInfo getLocalDurableSubscriber()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: java.util.Set getDurableRemoteSubs()>();
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: int getForcedDurableConsumersSize()>();
if v != 0 goto label;
v = new org.apache.activemq.command.RemoveInfo;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getLocalInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
specialinvoke v.<org.apache.activemq.command.RemoveInfo: void <init>(org.apache.activemq.command.DataStructure)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
v = new org.apache.activemq.command.RemoveSubscriptionInfo;
specialinvoke v.<org.apache.activemq.command.RemoveSubscriptionInfo: void <init>()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String localClientId>;
virtualinvoke v.<org.apache.activemq.command.RemoveSubscriptionInfo: void setClientId(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.SubscriptionInfo getLocalDurableSubscriber()>();
v = virtualinvoke v.<org.apache.activemq.command.SubscriptionInfo: java.lang.String getSubscriptionName()>();
virtualinvoke v.<org.apache.activemq.command.RemoveSubscriptionInfo: void setSubscriptionName(java.lang.String)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConnectionInfo localConnectionInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: org.apache.activemq.command.ConnectionId getConnectionId()>();
virtualinvoke v.<org.apache.activemq.command.RemoveSubscriptionInfo: void setConnectionId(org.apache.activemq.command.ConnectionId)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
interfaceinvoke v.<java.util.Iterator: void remove()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.ConcurrentMap subscriptionMapByRemoteId>;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getRemoteInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object remove(java.lang.Object)>(v);
label:
return;
}
public void serviceLocalException(java.lang.Throwable)
{
java.lang.Throwable v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: java.lang.Throwable;
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void serviceLocalException(org.apache.activemq.command.MessageDispatch,java.lang.Throwable)>(null, v);
return;
}
public void serviceLocalException(org.apache.activemq.command.MessageDispatch, java.lang.Throwable)
{
java.lang.Throwable v;
java.lang.Object[] v;
java.util.concurrent.atomic.AtomicBoolean v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.Message v;
org.apache.activemq.command.MessageDispatch v;
java.lang.Boolean v;
boolean v, v, v, v;
org.apache.activemq.broker.BrokerService v;
org.apache.activemq.command.MessageAck v;
org.slf4j.Logger v, v, v, v, v, v;
org.apache.activemq.command.MessageId v;
java.io.IOException v;
org.apache.activemq.transport.Transport v, v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport$11 v;
org.apache.activemq.thread.TaskRunnerFactory v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.MessageDispatch;
v := @parameter: java.lang.Throwable;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean disposed>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object,java.lang.Object)>("serviceLocalException: disposed {} ex", v, v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean disposed>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v != 0 goto label;
v = v instanceof org.apache.activemq.DestinationDoesNotExistException;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.DestinationDoesNotExistException: boolean isTemporary()>();
if v == 0 goto label;
if v == null goto label;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.MessageId getMessageId()>();
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("PoisonAck of {} on forwarding error: {}", v, v);
label:
v = new org.apache.activemq.command.MessageAck;
specialinvoke v.<org.apache.activemq.command.MessageAck: void <init>(org.apache.activemq.command.MessageDispatch,byte,int)>(v, 1, 1);
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setPoisonCause(java.lang.Throwable)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Failed to poison ack message following forward failure: ", v);
label:
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void fireFailedForwardAdvisory(org.apache.activemq.command.MessageDispatch,java.lang.Throwable)>(v, v);
goto label;
label:
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Ignoring exception on forwarding to non existent temp dest: ", v);
label:
return;
label:
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
v[0] = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
v[1] = v;
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object[])>("Network connection between {} and {} shutdown due to a local error: {}", v);
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("The local Exception was: {}", v, v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: org.apache.activemq.thread.TaskRunnerFactory getTaskRunnerFactory()>();
v = new org.apache.activemq.network.DemandForwardingBridgeSupport$11;
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport$11: void <init>(org.apache.activemq.network.DemandForwardingBridgeSupport)>(v);
virtualinvoke v.<org.apache.activemq.thread.TaskRunnerFactory: void execute(java.lang.Runnable)>(v);
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void fireBridgeFailed(java.lang.Throwable)>(v);
label:
return;
catch java.io.IOException from label to label with label;
}
private void fireFailedForwardAdvisory(org.apache.activemq.command.MessageDispatch, java.lang.Throwable)
{
java.lang.Throwable v;
org.apache.activemq.security.SecurityContext v;
org.apache.activemq.command.ActiveMQMessage v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.broker.Broker v, v, v;
org.apache.activemq.broker.ConnectionContext v;
org.apache.activemq.command.Message v;
org.apache.activemq.command.MessageDispatch v;
java.lang.String v;
boolean v;
org.apache.activemq.network.NetworkBridgeConfiguration v;
org.apache.activemq.broker.BrokerService v, v;
org.slf4j.Logger v, v;
java.lang.Exception v;
org.apache.activemq.command.ActiveMQTopic v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.MessageDispatch;
v := @parameter: java.lang.Throwable;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: boolean isAdvisoryForFailedForward()>();
if v == 0 goto label;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: org.apache.activemq.broker.Broker getBroker()>();
v = interfaceinvoke v.<org.apache.activemq.broker.Broker: org.apache.activemq.broker.Broker getAdaptor(java.lang.Class)>(class "Lorg/apache/activemq/advisory/AdvisoryBroker;");
if v == null goto label;
v = new org.apache.activemq.broker.ConnectionContext;
specialinvoke v.<org.apache.activemq.broker.ConnectionContext: void <init>()>();
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 = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
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 = new org.apache.activemq.command.ActiveMQMessage;
specialinvoke v.<org.apache.activemq.command.ActiveMQMessage: void <init>()>();
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getLocalizedMessage()>();
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setStringProperty(java.lang.String,java.lang.String)>("cause", v);
v = staticinvoke <org.apache.activemq.advisory.AdvisorySupport: org.apache.activemq.command.ActiveMQTopic getNetworkBridgeForwardFailureAdvisoryTopic()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
virtualinvoke v.<org.apache.activemq.advisory.AdvisoryBroker: void fireAdvisory(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.command.ActiveMQTopic,org.apache.activemq.command.Command,org.apache.activemq.command.ConsumerId,org.apache.activemq.command.ActiveMQMessage)>(v, v, v, null, v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("failed to fire forward failure advisory, cause: {}", v);
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("detail", v);
label:
return;
catch java.lang.Exception from label to label with label;
}
protected org.apache.activemq.Service getControllingService()
{
org.apache.activemq.Service v;
org.apache.activemq.broker.TransportConnection v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.TransportConnection duplexInitiatingConnection>;
if v == null goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.TransportConnection duplexInitiatingConnection>;
goto label;
label:
v = v;
label:
return v;
}
protected void addSubscription(org.apache.activemq.network.DemandSubscription) throws java.io.IOException
{
org.apache.activemq.network.DemandSubscription v;
org.apache.activemq.transport.Transport v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ConsumerInfo v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.network.DemandSubscription;
if v == null goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getLocalInfo()>();
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
label:
return;
}
protected void removeSubscription(org.apache.activemq.network.DemandSubscription) throws java.io.IOException
{
java.lang.Object[] v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ConsumerId v, v, v, v;
java.util.concurrent.ConcurrentMap v, v;
java.lang.String v;
java.util.concurrent.ExecutorService v;
org.apache.activemq.command.ConsumerInfo v, v, v, v;
org.apache.activemq.network.NetworkBridgeConfiguration v;
org.slf4j.Logger v;
org.apache.activemq.network.DemandSubscription v;
org.apache.activemq.network.DemandForwardingBridgeSupport$12 v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.network.DemandSubscription;
if v == null goto label;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v[0] = v;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getLocalInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
v[1] = v;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getRemoteInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("{} remove local subscription: {} for remote {}", v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.ConcurrentMap subscriptionMapByLocalId>;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getLocalInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object remove(java.lang.Object)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.ConcurrentMap subscriptionMapByRemoteId>;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getRemoteInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object remove(java.lang.Object)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.ExecutorService serialExecutor>;
v = new org.apache.activemq.network.DemandForwardingBridgeSupport$12;
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport$12: void <init>(org.apache.activemq.network.DemandForwardingBridgeSupport,org.apache.activemq.network.DemandSubscription)>(v, v);
interfaceinvoke v.<java.util.concurrent.ExecutorService: void execute(java.lang.Runnable)>(v);
label:
return;
}
protected org.apache.activemq.command.Message configureMessage(org.apache.activemq.command.MessageDispatch) throws java.io.IOException
{
org.apache.activemq.command.BrokerId[] v, v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.command.ProducerId v;
org.apache.activemq.command.Message v, v;
org.apache.activemq.command.MessageDispatch v;
org.apache.activemq.command.ProducerInfo v;
org.apache.activemq.command.TransactionId v, v;
boolean v;
org.apache.activemq.network.NetworkBridgeConfiguration v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.MessageDispatch;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.Message copy()>();
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.BrokerId[] getBrokerPath()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerId[] localBrokerPath>;
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerId[] appendToBrokerPath(org.apache.activemq.command.BrokerId[],org.apache.activemq.command.BrokerId[])>(v, v);
virtualinvoke v.<org.apache.activemq.command.Message: void setBrokerPath(org.apache.activemq.command.BrokerId[])>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ProducerInfo producerInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ProducerInfo: org.apache.activemq.command.ProducerId getProducerId()>();
virtualinvoke v.<org.apache.activemq.command.Message: void setProducerId(org.apache.activemq.command.ProducerId)>(v);
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.ActiveMQDestination getDestination()>();
virtualinvoke v.<org.apache.activemq.command.Message: void setDestination(org.apache.activemq.command.ActiveMQDestination)>(v);
virtualinvoke v.<org.apache.activemq.command.Message: void setMemoryUsage(org.apache.activemq.usage.MemoryUsage)>(null);
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.TransactionId getOriginalTransactionId()>();
if v != null goto label;
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.TransactionId getTransactionId()>();
virtualinvoke v.<org.apache.activemq.command.Message: void setOriginalTransactionId(org.apache.activemq.command.TransactionId)>(v);
label:
virtualinvoke v.<org.apache.activemq.command.Message: void setTransactionId(org.apache.activemq.command.TransactionId)>(null);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: boolean isUseCompression()>();
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.command.Message: void compress()>();
label:
return v;
}
protected void serviceLocalCommand(org.apache.activemq.command.Command)
{
org.apache.activemq.command.ConsumerId v, v, v;
org.apache.activemq.command.Message v, v, v, v, v;
byte v;
org.apache.activemq.command.DataStructure v;
java.lang.Throwable v, v, v, v, v;
java.lang.Object[] v, v;
java.lang.String v, v, v, v, v, v, v, v;
org.apache.activemq.command.BrokerId[] v, v;
org.apache.activemq.management.CountStatisticImpl v, v;
boolean v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.network.NetworkBridgeStatistics v, v;
org.apache.activemq.transport.Transport v, v, v, v, v;
org.apache.activemq.command.ActiveMQDestination v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport$13 v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
java.util.concurrent.ConcurrentMap v;
org.apache.activemq.network.NetworkBridgeConfiguration v, v, v, v, v;
org.apache.activemq.command.MessageAck v, v;
org.slf4j.Logger v, v, v, v, v, v, v;
org.apache.activemq.command.Command v;
org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo v;
java.lang.Class v;
java.lang.Object v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.Command;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean disposed>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v != 0 goto label;
label:
v = interfaceinvoke v.<org.apache.activemq.command.Command: boolean isMessageDispatch()>();
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean safeWaitUntilStarted()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeStatistics networkBridgeStatistics>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeStatistics: org.apache.activemq.management.CountStatisticImpl getEnqueues()>();
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: void increment()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.ConcurrentMap subscriptionMapByLocalId>;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: boolean incrementOutstandingResponses()>();
if v == 0 goto label;
v = specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean suppressMessageDispatch(org.apache.activemq.command.MessageDispatch,org.apache.activemq.network.DemandSubscription)>(v, v);
if v == 0 goto label;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[4];
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v[0] = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String remoteBrokerName>;
v[1] = v;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.BrokerId[] getBrokerPath()>();
v = staticinvoke <java.util.Arrays: java.lang.String toString(java.lang.Object[])>(v);
v[2] = v;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
v[3] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("{} message not forwarded to {} because message came from there or fails TTL, brokerPath: {}, message: {}", v);
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
v = new org.apache.activemq.command.MessageAck;
specialinvoke v.<org.apache.activemq.command.MessageAck: void <init>(org.apache.activemq.command.MessageDispatch,byte,int)>(v, 4, 1);
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
label:
virtualinvoke v.<org.apache.activemq.network.DemandSubscription: void decrementOutstandingResponses()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.activemq.network.DemandSubscription: void decrementOutstandingResponses()>();
throw v;
label:
return;
label:
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.Message configureMessage(org.apache.activemq.command.MessageDispatch)>(v);
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[6];
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v[0] = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String remoteBrokerName>;
v[1] = v;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.ConsumerId getConsumerId()>();
v[2] = v;
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v[3] = v;
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.BrokerId[] getBrokerPath()>();
v = staticinvoke <java.util.Arrays: java.lang.String toString(java.lang.Object[])>(v);
v[4] = v;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = v;
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.MessageId getMessageId()>();
label:
v[5] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("bridging ({} -> {}), consumer: {}, destination: {}, brokerPath: {}, message: {}", v);
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean isDuplex()>();
if v == 0 goto label;
v = staticinvoke <org.apache.activemq.command.NetworkBridgeFilter: boolean isAdvisoryInterpretedByNetworkBridge(org.apache.activemq.command.Message)>(v);
if v == 0 goto label;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
label:
virtualinvoke v.<org.apache.activemq.network.DemandSubscription: void decrementOutstandingResponses()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.activemq.network.DemandSubscription: void decrementOutstandingResponses()>();
throw v;
label:
return;
label:
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean isPermissableDestination(org.apache.activemq.command.ActiveMQDestination)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.Message: boolean isPersistent()>();
if v != 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: boolean isAlwaysSyncSend()>();
if v == 0 goto label;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
v = new org.apache.activemq.network.DemandForwardingBridgeSupport$13;
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport$13: void <init>(org.apache.activemq.network.DemandForwardingBridgeSupport,org.apache.activemq.command.MessageDispatch,org.apache.activemq.network.DemandSubscription)>(v, v, v);
interfaceinvoke v.<org.apache.activemq.transport.Transport: org.apache.activemq.transport.FutureResponse asyncRequest(java.lang.Object,org.apache.activemq.transport.ResponseCallback)>(v, v);
goto label;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
v = new org.apache.activemq.command.MessageAck;
specialinvoke v.<org.apache.activemq.command.MessageAck: void <init>(org.apache.activemq.command.MessageDispatch,byte,int)>(v, 4, 1);
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeStatistics networkBridgeStatistics>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeStatistics: org.apache.activemq.management.CountStatisticImpl getDequeues()>();
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: void increment()>();
label:
virtualinvoke v.<org.apache.activemq.network.DemandSubscription: void decrementOutstandingResponses()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.activemq.network.DemandSubscription: void decrementOutstandingResponses()>();
throw v;
label:
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void serviceOutbound(org.apache.activemq.command.Message)>(v);
goto label;
label:
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("No subscription registered with this network bridge for consumerId: {} for message: {}", v, v);
goto label;
label:
v = interfaceinvoke v.<org.apache.activemq.command.Command: boolean isBrokerInfo()>();
if v == 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo futureLocalBrokerInfo>;
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport$FutureBrokerInfo: void set(org.apache.activemq.command.BrokerInfo)>(v);
goto label;
label:
v = interfaceinvoke v.<org.apache.activemq.command.Command: boolean isShutdownInfo()>();
if v == 0 goto label;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getName()>();
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("{} Shutting down {}", v, v);
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void stop()>();
goto label;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
if v != class "Lorg/apache/activemq/command/ConnectionError;" goto label;
v = virtualinvoke v.<org.apache.activemq.command.ConnectionError: java.lang.Throwable getException()>();
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void serviceLocalException(java.lang.Throwable)>(v);
goto label;
label:
v = interfaceinvoke v.<org.apache.activemq.command.Command: byte getDataStructureType()>();
lookupswitch(v)
{
case 1: goto label;
case 92: goto label;
default: goto label;
};
label:
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Unexpected local command: {}", v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Caught an exception processing local command", v);
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void serviceLocalException(java.lang.Throwable)>(v);
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private boolean suppressMessageDispatch(org.apache.activemq.command.MessageDispatch, org.apache.activemq.network.DemandSubscription) throws java.lang.Exception
{
org.apache.activemq.filter.NonCachedMessageEvaluationContext v;
org.apache.activemq.network.DemandSubscription v;
org.apache.activemq.command.NetworkBridgeFilter v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.command.Message v;
org.apache.activemq.command.MessageDispatch v;
org.apache.activemq.command.ConsumerInfo v;
boolean v, v, v, v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.MessageDispatch;
v := @parameter: org.apache.activemq.network.DemandSubscription;
v = 0;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getLocalInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: boolean isDurable()>();
if v == 0 goto label;
v = new org.apache.activemq.filter.NonCachedMessageEvaluationContext;
specialinvoke v.<org.apache.activemq.filter.NonCachedMessageEvaluationContext: void <init>()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
virtualinvoke v.<org.apache.activemq.filter.NonCachedMessageEvaluationContext: void setMessageReference(org.apache.activemq.broker.region.MessageReference)>(v);
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.ActiveMQDestination getDestination()>();
virtualinvoke v.<org.apache.activemq.filter.NonCachedMessageEvaluationContext: void setDestination(org.apache.activemq.command.ActiveMQDestination)>(v);
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.NetworkBridgeFilter getNetworkBridgeFilter()>();
v = virtualinvoke v.<org.apache.activemq.command.NetworkBridgeFilter: boolean matches(org.apache.activemq.filter.MessageEvaluationContext)>(v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
label:
return v;
}
public static boolean contains(org.apache.activemq.command.BrokerId[], org.apache.activemq.command.BrokerId)
{
org.apache.activemq.command.BrokerId[] v;
org.apache.activemq.command.BrokerId v, v;
int v, v;
boolean v;
v := @parameter: org.apache.activemq.command.BrokerId[];
v := @parameter: org.apache.activemq.command.BrokerId;
if v == null goto label;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<org.apache.activemq.command.BrokerId: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return 1;
label:
v = v + 1;
goto label;
label:
return 0;
}
protected org.apache.activemq.command.BrokerId[] appendToBrokerPath(org.apache.activemq.command.BrokerId[], org.apache.activemq.command.BrokerId[])
{
org.apache.activemq.command.BrokerId[] v, v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
int v, v, v, v, v, v, v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.BrokerId[];
v := @parameter: org.apache.activemq.command.BrokerId[];
if v == null goto label;
v = lengthof v;
if v != 0 goto label;
label:
return v;
label:
v = lengthof v;
v = lengthof v;
v = v + v;
v = newarray (org.apache.activemq.command.BrokerId)[v];
v = lengthof v;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
v = lengthof v;
v = lengthof v;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, v, v);
return v;
}
protected org.apache.activemq.command.BrokerId[] appendToBrokerPath(org.apache.activemq.command.BrokerId[], org.apache.activemq.command.BrokerId)
{
org.apache.activemq.command.BrokerId[] v, v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.BrokerId v;
int v, v, v, v, v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.BrokerId[];
v := @parameter: org.apache.activemq.command.BrokerId;
if v == null goto label;
v = lengthof v;
if v != 0 goto label;
label:
v = newarray (org.apache.activemq.command.BrokerId)[1];
v[0] = v;
return v;
label:
v = lengthof v;
v = v + 1;
v = newarray (org.apache.activemq.command.BrokerId)[v];
v = lengthof v;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
v = lengthof v;
v[v] = v;
return v;
}
protected boolean isPermissableDestination(org.apache.activemq.command.ActiveMQDestination)
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
boolean v;
org.apache.activemq.command.ActiveMQDestination v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean isPermissableDestination(org.apache.activemq.command.ActiveMQDestination,boolean)>(v, 0);
return v;
}
protected boolean isPermissableDestination(org.apache.activemq.command.ActiveMQDestination, boolean)
{
byte v, v, v, v, v, v;
boolean v, v, v, v, v, v;
org.apache.activemq.command.ActiveMQDestination v, v, v, v;
org.apache.activemq.command.ActiveMQDestination[] v, v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
int v, v, v, v, v, v, v, v, v;
org.apache.activemq.network.NetworkBridgeConfiguration v;
org.apache.activemq.filter.DestinationFilter v, v, v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: boolean;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: boolean isTemporary()>();
if v == 0 goto label;
if v == 0 goto label;
return 1;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: boolean isBridgeTempDestinations()>();
return v;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ActiveMQDestination[] excludedDestinations>;
if v == null goto label;
v = lengthof v;
if v <= 0 goto label;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = staticinvoke <org.apache.activemq.filter.DestinationFilter: org.apache.activemq.filter.DestinationFilter parseFilter(org.apache.activemq.command.ActiveMQDestination)>(v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.filter.DestinationFilter: boolean matches(org.apache.activemq.command.ActiveMQDestination)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: byte getDestinationType()>();
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: byte getDestinationType()>();
if v != v goto label;
return 0;
label:
v = v + 1;
goto label;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ActiveMQDestination[] staticallyIncludedDestinations>;
if v == null goto label;
v = lengthof v;
if v <= 0 goto label;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = staticinvoke <org.apache.activemq.filter.DestinationFilter: org.apache.activemq.filter.DestinationFilter parseFilter(org.apache.activemq.command.ActiveMQDestination)>(v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.filter.DestinationFilter: boolean matches(org.apache.activemq.command.ActiveMQDestination)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: byte getDestinationType()>();
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: byte getDestinationType()>();
if v != v goto label;
return 1;
label:
v = v + 1;
goto label;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ActiveMQDestination[] dynamicallyIncludedDestinations>;
if v == null goto label;
v = lengthof v;
if v <= 0 goto label;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = staticinvoke <org.apache.activemq.filter.DestinationFilter: org.apache.activemq.filter.DestinationFilter parseFilter(org.apache.activemq.command.ActiveMQDestination)>(v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.filter.DestinationFilter: boolean matches(org.apache.activemq.command.ActiveMQDestination)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: byte getDestinationType()>();
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: byte getDestinationType()>();
if v != v goto label;
return 1;
label:
v = v + 1;
goto label;
label:
return 0;
label:
return 1;
}
protected void setupStaticDestinations()
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
int v, v;
java.lang.String v, v, v;
boolean v;
org.apache.activemq.network.NetworkBridgeConfiguration v, v, v;
org.slf4j.Logger v, v, v, v;
java.io.IOException v;
org.apache.activemq.network.DemandSubscription v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.command.ActiveMQDestination[] v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ActiveMQDestination[] staticallyIncludedDestinations>;
if v == null goto label;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean isPermissableDestination(org.apache.activemq.command.ActiveMQDestination)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.DemandSubscription createDemandSubscription(org.apache.activemq.command.ActiveMQDestination,java.lang.String)>(v, null);
if v == null goto label;
virtualinvoke v.<org.apache.activemq.network.DemandSubscription: void setStaticallyIncluded(boolean)>(1);
label:
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void addSubscription(org.apache.activemq.network.DemandSubscription)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object)>("Failed to add static destination {}", v, v);
label:
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object,java.lang.Object)>("{}, bridging messages for static destination: {}", v, v);
goto label;
label:
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("{}, static destination excluded: {}, demand already exists", v, v);
goto label;
label:
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("{}, static destination excluded: {}", v, v);
label:
v = v + 1;
goto label;
label:
return;
catch java.io.IOException from label to label with label;
}
protected void addConsumerInfo(org.apache.activemq.command.ConsumerInfo) throws java.io.IOException
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.command.ConsumerInfo v, v, v, v, v, v;
boolean v, v, v, v, v, v;
org.apache.activemq.network.NetworkBridgeConfiguration v;
org.apache.activemq.command.SubscriptionInfo v;
org.slf4j.Logger v;
org.apache.activemq.command.BrokerId[] v;
java.util.Set v;
org.apache.activemq.network.DemandSubscription v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.ConsumerInfo;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerInfo copy()>();
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void addRemoteBrokerToBrokerPath(org.apache.activemq.command.ConsumerInfo)>(v);
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.DemandSubscription createDemandSubscription(org.apache.activemq.command.ConsumerInfo)>(v);
if v == null goto label;
v = specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean duplicateSuppressionIsRequired(org.apache.activemq.network.DemandSubscription)>(v);
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void undoMapRegistration(org.apache.activemq.network.DemandSubscription)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: boolean isDurable()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getRemoteInfo()>();
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean isProxyNSConsumerBrokerPath(org.apache.activemq.command.ConsumerInfo)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.lang.String getSubscriptionName()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.lang.String getSubscriptionName()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("NC-DS_");
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.BrokerId[] getBrokerPath()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.lang.String getSubscriptionName()>();
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void addProxyNetworkSubscriptionBrokerPath(org.apache.activemq.network.DemandSubscription,org.apache.activemq.command.BrokerId[],java.lang.String)>(v, v, v);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getRemoteInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.lang.String getClientId()>();
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean isProxyNSConsumerClientId(java.lang.String)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.lang.String getClientId()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.lang.String getSubscriptionName()>();
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean isProxyBridgeSubscription(java.lang.String,java.lang.String)>(v, v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getRemoteInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.lang.String getClientId()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.lang.String getSubscriptionName()>();
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void addProxyNetworkSubscriptionClientId(org.apache.activemq.network.DemandSubscription,java.lang.String,java.lang.String)>(v, v, v);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: java.util.Set getDurableRemoteSubs()>();
v = new org.apache.activemq.command.SubscriptionInfo;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getRemoteInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.lang.String getClientId()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.lang.String getSubscriptionName()>();
specialinvoke v.<org.apache.activemq.command.SubscriptionInfo: void <init>(java.lang.String,java.lang.String)>(v, v);
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
label:
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void addSubscription(org.apache.activemq.network.DemandSubscription)>(v);
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("{} new demand subscription: {}", v, v);
label:
return;
}
private void undoMapRegistration(org.apache.activemq.network.DemandSubscription)
{
org.apache.activemq.network.DemandSubscription v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ConsumerId v, v;
java.util.concurrent.ConcurrentMap v, v;
org.apache.activemq.command.ConsumerInfo v, v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.network.DemandSubscription;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.ConcurrentMap subscriptionMapByLocalId>;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getLocalInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object remove(java.lang.Object)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.ConcurrentMap subscriptionMapByRemoteId>;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getRemoteInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object remove(java.lang.Object)>(v);
return;
}
private boolean duplicateSuppressionIsRequired(org.apache.activemq.network.DemandSubscription)
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ConsumerInfo v, v, v;
boolean v, v, v, v, v, v;
java.util.Iterator v;
java.util.Collection v;
org.apache.activemq.network.DemandSubscription v;
org.apache.activemq.command.ActiveMQDestination v;
java.util.List v, v;
java.lang.Object v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.network.DemandSubscription;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getRemoteInfo()>();
v = 0;
v = specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean isDuplicateSuppressionOff(org.apache.activemq.command.ConsumerInfo)>(v);
if v == 0 goto label;
return 0;
label:
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.util.List getNetworkConsumerIds()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.Collection getRegionSubscriptions(org.apache.activemq.command.ActiveMQDestination)>(v);
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: org.apache.activemq.command.ConsumerInfo getConsumerInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.util.List getNetworkConsumerIds()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean matchFound(java.util.List,java.util.List)>(v, v);
if v == 0 goto label;
v = specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean isInActiveDurableSub(org.apache.activemq.broker.region.Subscription)>(v);
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getLocalInfo()>();
v = specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean hasLowerPriority(org.apache.activemq.broker.region.Subscription,org.apache.activemq.command.ConsumerInfo)>(v, v);
label:
return v;
}
private boolean isDuplicateSuppressionOff(org.apache.activemq.command.ConsumerInfo)
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ActiveMQDestination v, v;
org.apache.activemq.command.ConsumerInfo v;
boolean v, v, v, v, v, v, v;
org.apache.activemq.network.NetworkBridgeConfiguration v, v, v, v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.ConsumerInfo;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: boolean isSuppressDuplicateQueueSubscriptions()>();
if v != 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: boolean isSuppressDuplicateTopicSubscriptions()>();
if v == 0 goto label;
label:
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: boolean isQueue()>();
if v == 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: boolean isSuppressDuplicateQueueSubscriptions()>();
if v == 0 goto label;
label:
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: boolean isTopic()>();
if v == 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: boolean isSuppressDuplicateTopicSubscriptions()>();
if v != 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private boolean isInActiveDurableSub(org.apache.activemq.broker.region.Subscription)
{
org.apache.activemq.broker.region.Subscription v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ConsumerInfo v;
boolean v, v, v, v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.broker.region.Subscription;
v = interfaceinvoke v.<org.apache.activemq.broker.region.Subscription: org.apache.activemq.command.ConsumerInfo getConsumerInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: boolean isDurable()>();
if v == 0 goto label;
v = v instanceof org.apache.activemq.broker.region.DurableTopicSubscription;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.DurableTopicSubscription: boolean isActive()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private boolean hasLowerPriority(org.apache.activemq.broker.region.Subscription, org.apache.activemq.command.ConsumerInfo)
{
java.lang.Object[] v, v;
org.apache.activemq.broker.region.Subscription v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
byte v, v;
java.lang.String v, v, v, v;
org.apache.activemq.command.ConsumerInfo v, v, v, v;
boolean v;
org.apache.activemq.network.NetworkBridgeConfiguration v, v;
org.slf4j.Logger v, v, v;
java.io.IOException v;
java.util.List v, v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.broker.region.Subscription;
v := @parameter: org.apache.activemq.command.ConsumerInfo;
v = 0;
v = interfaceinvoke v.<org.apache.activemq.broker.region.Subscription: org.apache.activemq.command.ConsumerInfo getConsumerInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: byte getPriority()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: byte getPriority()>();
if v < v goto label;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[5];
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v[0] = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String remoteBrokerName>;
v[1] = v;
v[2] = v;
v[3] = v;
v = interfaceinvoke v.<org.apache.activemq.broker.region.Subscription: org.apache.activemq.command.ConsumerInfo getConsumerInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.util.List getNetworkConsumerIds()>();
v[4] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("{} Ignoring duplicate subscription from {}, sub: {} is duplicate by network subscription with equal or higher network priority: {}, networkConsumerIds: {}", v);
v = 1;
goto label;
label:
specialinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void removeDuplicateSubscription(org.apache.activemq.broker.region.Subscription)>(v);
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[5];
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v[0] = v;
v = interfaceinvoke v.<org.apache.activemq.broker.region.Subscription: org.apache.activemq.command.ConsumerInfo getConsumerInfo()>();
v[1] = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String remoteBrokerName>;
v[2] = v;
v[3] = v;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.util.List getNetworkConsumerIds()>();
v[4] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("{} Replacing duplicate subscription {} with sub from {}, which has a higher priority, new sub: {}, networkConsumerIds: {}", v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object)>("Failed to remove duplicated sub as a result of sub with higher priority, sub: {}", v, v);
label:
return v;
catch java.io.IOException from label to label with label;
}
private void removeDuplicateSubscription(org.apache.activemq.broker.region.Subscription) throws java.io.IOException
{
org.apache.activemq.broker.BrokerService v;
java.util.Iterator v;
org.apache.activemq.broker.region.Subscription v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ConsumerId v;
java.util.List v;
java.lang.Object v;
org.apache.activemq.command.ConsumerInfo v;
boolean v, v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.broker.region.Subscription;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: java.util.List getNetworkConnectors()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<org.apache.activemq.broker.region.Subscription: org.apache.activemq.command.ConsumerInfo getConsumerInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = virtualinvoke v.<org.apache.activemq.network.NetworkConnector: boolean removeDemandSubscription(org.apache.activemq.command.ConsumerId)>(v);
if v == 0 goto label;
label:
return;
}
private boolean matchFound(java.util.List, java.util.List)
{
java.util.Iterator v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
java.util.List v, v;
java.lang.Object v;
boolean v, v, v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: java.util.List;
v := @parameter: java.util.List;
v = 0;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.List: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = 1;
label:
return v;
}
protected final java.util.Collection getRegionSubscriptions(org.apache.activemq.command.ActiveMQDestination)
{
org.apache.activemq.broker.BrokerService v;
java.util.Collection v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.broker.Broker v;
byte v;
java.util.Map v;
org.apache.activemq.broker.region.Region v;
boolean v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: org.apache.activemq.broker.Broker getRegionBroker()>();
v = null;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: byte getDestinationType()>();
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
case 5: goto label;
case 6: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<org.apache.activemq.broker.region.RegionBroker: org.apache.activemq.broker.region.Region getQueueRegion()>();
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.broker.region.RegionBroker: org.apache.activemq.broker.region.Region getTopicRegion()>();
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.broker.region.RegionBroker: org.apache.activemq.broker.region.Region getTempQueueRegion()>();
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.broker.region.RegionBroker: org.apache.activemq.broker.region.Region getTempTopicRegion()>();
label:
v = v instanceof org.apache.activemq.broker.region.AbstractRegion;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.AbstractRegion: java.util.Map getSubscriptions()>();
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
goto label;
label:
v = null;
label:
return v;
}
protected org.apache.activemq.network.DemandSubscription createDemandSubscription(org.apache.activemq.command.ConsumerInfo) throws java.io.IOException
{
org.apache.activemq.network.DemandSubscription v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.command.ConsumerInfo v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.ConsumerInfo;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void addNetworkConsumerId(org.apache.activemq.command.ConsumerId)>(v);
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.DemandSubscription doCreateDemandSubscription(org.apache.activemq.command.ConsumerInfo)>(v);
return v;
}
protected org.apache.activemq.network.DemandSubscription doCreateDemandSubscription(org.apache.activemq.command.ConsumerInfo) throws java.io.IOException
{
java.lang.Object[] v;
long v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.command.ConnectionInfo v;
org.apache.activemq.command.SessionInfo v;
int v, v, v;
java.lang.String v, v;
java.lang.Byte v;
org.apache.activemq.command.ConsumerInfo v, v, v, v;
boolean v, v;
org.apache.activemq.network.NetworkBridgeConfiguration v, v, v;
org.slf4j.Logger v;
org.apache.activemq.command.ConnectionId v;
org.apache.activemq.command.BrokerId[] v, v, v;
org.apache.activemq.command.SessionId v;
org.apache.activemq.network.DemandSubscription v;
org.apache.activemq.command.ActiveMQDestination v, v;
org.apache.activemq.util.LongSequenceGenerator v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.ConsumerInfo;
v = new org.apache.activemq.network.DemandSubscription;
specialinvoke v.<org.apache.activemq.network.DemandSubscription: void <init>(org.apache.activemq.command.ConsumerInfo)>(v);
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getLocalInfo()>();
v = new org.apache.activemq.command.ConsumerId;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.SessionInfo localSessionInfo>;
v = virtualinvoke v.<org.apache.activemq.command.SessionInfo: org.apache.activemq.command.SessionId getSessionId()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.util.LongSequenceGenerator consumerIdGenerator>;
v = virtualinvoke v.<org.apache.activemq.util.LongSequenceGenerator: long getNextSequenceId()>();
specialinvoke v.<org.apache.activemq.command.ConsumerId: void <init>(org.apache.activemq.command.SessionId,long)>(v, v);
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setConsumerId(org.apache.activemq.command.ConsumerId)>(v);
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: boolean isTemporary()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getLocalInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ConnectionInfo localConnectionInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: org.apache.activemq.command.ConnectionId getConnectionId()>();
v = virtualinvoke v.<org.apache.activemq.command.ConnectionId: java.lang.String toString()>();
virtualinvoke v.<org.apache.activemq.command.ActiveMQTempDestination: void setConnectionId(java.lang.String)>(v);
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: boolean isDecreaseNetworkConsumerPriority()>();
if v == 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: int getConsumerPriorityBase()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.BrokerId[] getBrokerPath()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.BrokerId[] getBrokerPath()>();
v = lengthof v;
if v <= 1 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.BrokerId[] getBrokerPath()>();
v = lengthof v;
label:
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getLocalInfo()>();
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setPriority(byte)>(v);
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v[0] = v;
v = staticinvoke <java.lang.Byte: java.lang.Byte valueOf(byte)>(v);
v[1] = v;
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("{} using priority: {} for subscription: {}", v);
label:
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void configureDemandSubscription(org.apache.activemq.command.ConsumerInfo,org.apache.activemq.network.DemandSubscription)>(v, v);
return v;
}
protected final org.apache.activemq.network.DemandSubscription createDemandSubscription(org.apache.activemq.command.ActiveMQDestination, java.lang.String)
{
org.slf4j.Logger v;
org.apache.activemq.command.BrokerId[] v;
org.apache.activemq.command.SessionId v;
java.io.IOException v;
long v;
org.apache.activemq.network.DemandSubscription v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.util.LongSequenceGenerator v;
org.apache.activemq.command.SessionInfo v;
org.apache.activemq.command.BrokerId v;
java.lang.String v;
org.apache.activemq.command.ConsumerInfo v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: java.lang.String;
v = new org.apache.activemq.command.ConsumerInfo;
specialinvoke v.<org.apache.activemq.command.ConsumerInfo: void <init>()>();
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setNetworkSubscription(boolean)>(1);
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setDestination(org.apache.activemq.command.ActiveMQDestination)>(v);
if v == null goto label;
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setSubscriptionName(java.lang.String)>(v);
label:
v = newarray (org.apache.activemq.command.BrokerId)[1];
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerId remoteBrokerId>;
v[0] = v;
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setBrokerPath(org.apache.activemq.command.BrokerId[])>(v);
v = new org.apache.activemq.command.ConsumerId;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.SessionInfo localSessionInfo>;
v = virtualinvoke v.<org.apache.activemq.command.SessionInfo: org.apache.activemq.command.SessionId getSessionId()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.util.LongSequenceGenerator consumerIdGenerator>;
v = virtualinvoke v.<org.apache.activemq.util.LongSequenceGenerator: long getNextSequenceId()>();
specialinvoke v.<org.apache.activemq.command.ConsumerId: void <init>(org.apache.activemq.command.SessionId,long)>(v, v);
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setConsumerId(org.apache.activemq.command.ConsumerId)>(v);
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.DemandSubscription createDemandSubscription(org.apache.activemq.command.ConsumerInfo)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Failed to create DemandSubscription ", v);
label:
return v;
catch java.io.IOException from label to label with label;
}
protected void configureDemandSubscription(org.apache.activemq.command.ConsumerInfo, org.apache.activemq.network.DemandSubscription) throws java.io.IOException
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ConsumerId v, v;
java.util.concurrent.ConcurrentMap v, v;
java.lang.String v, v;
org.apache.activemq.command.ConsumerInfo v, v, v, v, v, v, v;
boolean v, v, v, v;
org.apache.activemq.network.NetworkBridgeConfiguration v;
org.apache.activemq.command.SubscriptionInfo v;
org.apache.activemq.network.DemandSubscription v;
org.apache.activemq.command.NetworkBridgeFilter v, v;
org.apache.activemq.command.ActiveMQDestination v, v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.ConsumerInfo;
v := @parameter: org.apache.activemq.network.DemandSubscription;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = staticinvoke <org.apache.activemq.advisory.AdvisorySupport: boolean isConsumerAdvisoryTopic(org.apache.activemq.command.ActiveMQDestination)>(v);
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = staticinvoke <org.apache.activemq.advisory.AdvisorySupport: boolean isVirtualDestinationConsumerAdvisoryTopic(org.apache.activemq.command.ActiveMQDestination)>(v);
if v == 0 goto label;
label:
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getLocalInfo()>();
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setDispatchAsync(boolean)>(1);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getLocalInfo()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: boolean isDispatchAsync()>();
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setDispatchAsync(boolean)>(v);
label:
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getLocalInfo()>();
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void configureConsumerPrefetch(org.apache.activemq.command.ConsumerInfo)>(v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.ConcurrentMap subscriptionMapByLocalId>;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getLocalInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.ConcurrentMap subscriptionMapByRemoteId>;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getRemoteInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.NetworkBridgeFilter createNetworkBridgeFilter(org.apache.activemq.command.ConsumerInfo)>(v);
virtualinvoke v.<org.apache.activemq.network.DemandSubscription: void setNetworkBridgeFilter(org.apache.activemq.command.NetworkBridgeFilter)>(v);
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: boolean isDurable()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getLocalInfo()>();
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.NetworkBridgeFilter getNetworkBridgeFilter()>();
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setAdditionalPredicate(org.apache.activemq.filter.BooleanExpression)>(v);
goto label;
label:
v = new org.apache.activemq.command.SubscriptionInfo;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.lang.String getClientId()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: java.lang.String getSubscriptionName()>();
specialinvoke v.<org.apache.activemq.command.SubscriptionInfo: void <init>(java.lang.String,java.lang.String)>(v, v);
virtualinvoke v.<org.apache.activemq.network.DemandSubscription: void setLocalDurableSubscriber(org.apache.activemq.command.SubscriptionInfo)>(v);
label:
return;
}
protected void removeDemandSubscription(org.apache.activemq.command.ConsumerId) throws java.io.IOException
{
java.lang.Object[] v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ConsumerId v;
java.util.concurrent.ConcurrentMap v;
java.lang.String v, v, v, v;
org.apache.activemq.command.ConsumerInfo v;
org.apache.activemq.network.NetworkBridgeConfiguration v, v;
org.slf4j.Logger v, v;
org.apache.activemq.transport.Transport v, v;
java.lang.Object v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.ConsumerId;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.ConcurrentMap subscriptionMapByRemoteId>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object remove(java.lang.Object)>(v);
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[5];
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v[0] = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
v[1] = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String remoteBrokerName>;
v[2] = v;
v[3] = v;
v[4] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("{} remove request on {} from {}, consumer id: {}, matching sub: {}", v);
if v == null goto label;
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void removeSubscription(org.apache.activemq.network.DemandSubscription)>(v);
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[4];
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: java.lang.String getBrokerName()>();
v[0] = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
v[1] = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.lang.String remoteBrokerName>;
v[2] = v;
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getRemoteInfo()>();
v[3] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("{} removed sub on {} from {}: {}", v);
label:
return;
}
protected boolean removeDemandSubscriptionByLocalId(org.apache.activemq.command.ConsumerId)
{
org.slf4j.Logger v;
java.io.IOException v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ConsumerId v, v;
java.util.concurrent.ConcurrentMap v;
java.lang.Object v;
org.apache.activemq.command.ConsumerInfo v;
boolean v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.ConsumerId;
v = 0;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.ConcurrentMap subscriptionMapByLocalId>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
label:
v = virtualinvoke v.<org.apache.activemq.network.DemandSubscription: org.apache.activemq.command.ConsumerInfo getRemoteInfo()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: void removeDemandSubscription(org.apache.activemq.command.ConsumerId)>(v);
v = 1;
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("removeDemandSubscriptionByLocalId failed for localId: {}", v, v);
label:
return v;
catch java.io.IOException from label to label with label;
}
protected boolean safeWaitUntilStarted() throws java.lang.InterruptedException
{
java.util.concurrent.atomic.AtomicBoolean v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
java.util.concurrent.TimeUnit v;
java.util.concurrent.CountDownLatch v;
boolean v, v, v, v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean disposed>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v != 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.CountDownLatch startedLatch>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
v = virtualinvoke v.<java.util.concurrent.CountDownLatch: boolean await(long,java.util.concurrent.TimeUnit)>(1L, v);
if v == 0 goto label;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean disposed>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
protected org.apache.activemq.command.NetworkBridgeFilter createNetworkBridgeFilter(org.apache.activemq.command.ConsumerInfo) throws java.io.IOException
{
org.apache.activemq.broker.region.policy.PolicyMap v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.network.NetworkBridgeFilterFactory v, v;
int v, v;
org.apache.activemq.command.ConsumerInfo v;
org.apache.activemq.network.NetworkBridgeConfiguration v, v;
org.apache.activemq.broker.BrokerService v, v, v;
org.apache.activemq.command.BrokerId[] v;
org.apache.activemq.command.NetworkBridgeFilter v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.broker.region.policy.PolicyEntry v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.ConsumerInfo;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeFilterFactory defaultFilterFactory>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
if v == null goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: org.apache.activemq.broker.region.policy.PolicyMap getDestinationPolicy()>();
if v == null goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: org.apache.activemq.broker.region.policy.PolicyMap getDestinationPolicy()>();
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: 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;
v = virtualinvoke v.<org.apache.activemq.broker.region.policy.PolicyEntry: org.apache.activemq.network.NetworkBridgeFilterFactory getNetworkBridgeFilterFactory()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.policy.PolicyEntry: org.apache.activemq.network.NetworkBridgeFilterFactory getNetworkBridgeFilterFactory()>();
label:
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerId[] getRemoteBrokerPath()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: int getMessageTTL()>();
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: int getConsumerTTL()>();
v = interfaceinvoke v.<org.apache.activemq.network.NetworkBridgeFilterFactory: org.apache.activemq.command.NetworkBridgeFilter create(org.apache.activemq.command.ConsumerInfo,org.apache.activemq.command.BrokerId[],int,int)>(v, v, v, v);
return v;
}
protected void addRemoteBrokerToBrokerPath(org.apache.activemq.command.ConsumerInfo) throws java.io.IOException
{
org.apache.activemq.command.BrokerId[] v, v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ConsumerInfo v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.ConsumerInfo;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.BrokerId[] getBrokerPath()>();
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerId[] getRemoteBrokerPath()>();
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerId[] appendToBrokerPath(org.apache.activemq.command.BrokerId[],org.apache.activemq.command.BrokerId[])>(v, v);
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setBrokerPath(org.apache.activemq.command.BrokerId[])>(v);
return;
}
protected org.apache.activemq.command.BrokerId[] getRemoteBrokerPath()
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.BrokerId[] v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerId[] remoteBrokerPath>;
return v;
}
public void setNetworkBridgeListener(org.apache.activemq.network.NetworkBridgeListener)
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.network.NetworkBridgeListener v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.network.NetworkBridgeListener;
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeListener networkBridgeListener> = v;
return;
}
private void fireBridgeFailed(java.lang.Throwable)
{
java.lang.Throwable v;
org.slf4j.Logger v;
org.apache.activemq.network.NetworkBridgeListener v, v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
boolean v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: java.lang.Throwable;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeListener networkBridgeListener>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object,java.lang.Object)>("fire bridge failed, listener: {}", v, v);
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeListener networkBridgeListener>;
if v == null goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.atomic.AtomicBoolean bridgeFailed>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(0, 1);
if v == 0 goto label;
interfaceinvoke v.<org.apache.activemq.network.NetworkBridgeListener: void bridgeFailed()>();
label:
return;
}
public org.apache.activemq.command.ActiveMQDestination[] getDynamicallyIncludedDestinations()
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ActiveMQDestination[] v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ActiveMQDestination[] dynamicallyIncludedDestinations>;
return v;
}
public void setDynamicallyIncludedDestinations(org.apache.activemq.command.ActiveMQDestination[])
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ActiveMQDestination[] v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.ActiveMQDestination[];
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ActiveMQDestination[] dynamicallyIncludedDestinations> = v;
return;
}
public org.apache.activemq.command.ActiveMQDestination[] getExcludedDestinations()
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ActiveMQDestination[] v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ActiveMQDestination[] excludedDestinations>;
return v;
}
public void setExcludedDestinations(org.apache.activemq.command.ActiveMQDestination[])
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ActiveMQDestination[] v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.ActiveMQDestination[];
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ActiveMQDestination[] excludedDestinations> = v;
return;
}
public org.apache.activemq.command.ActiveMQDestination[] getStaticallyIncludedDestinations()
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ActiveMQDestination[] v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ActiveMQDestination[] staticallyIncludedDestinations>;
return v;
}
public void setStaticallyIncludedDestinations(org.apache.activemq.command.ActiveMQDestination[])
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ActiveMQDestination[] v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.ActiveMQDestination[];
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ActiveMQDestination[] staticallyIncludedDestinations> = v;
return;
}
public org.apache.activemq.command.ActiveMQDestination[] getDurableDestinations()
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ActiveMQDestination[] v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ActiveMQDestination[] durableDestinations>;
return v;
}
public void setDurableDestinations(org.apache.activemq.command.ActiveMQDestination[])
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ActiveMQDestination[] v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.ActiveMQDestination[];
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.ActiveMQDestination[] durableDestinations> = v;
return;
}
public org.apache.activemq.transport.Transport getLocalBroker()
{
org.apache.activemq.transport.Transport v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
return v;
}
public org.apache.activemq.transport.Transport getRemoteBroker()
{
org.apache.activemq.transport.Transport v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
return v;
}
public boolean isCreatedByDuplex()
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
boolean v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean createdByDuplex>;
return v;
}
public void setCreatedByDuplex(boolean)
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
boolean v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: boolean;
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean createdByDuplex> = v;
return;
}
public java.lang.String getRemoteAddress()
{
org.apache.activemq.transport.Transport v;
java.lang.String v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport remoteBroker>;
v = interfaceinvoke v.<org.apache.activemq.transport.Transport: java.lang.String getRemoteAddress()>();
return v;
}
public java.lang.String getLocalAddress()
{
org.apache.activemq.transport.Transport v;
java.lang.String v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.transport.Transport localBroker>;
v = interfaceinvoke v.<org.apache.activemq.transport.Transport: java.lang.String getRemoteAddress()>();
return v;
}
public java.lang.String getRemoteBrokerName()
{
org.apache.activemq.command.BrokerInfo v, v;
java.lang.String v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo remoteBrokerInfo>;
if v != null goto label;
v = null;
goto label;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo remoteBrokerInfo>;
v = virtualinvoke v.<org.apache.activemq.command.BrokerInfo: java.lang.String getBrokerName()>();
label:
return v;
}
public java.lang.String getRemoteBrokerId()
{
org.apache.activemq.command.BrokerInfo v, v, v;
org.apache.activemq.command.BrokerId v, v;
java.lang.String v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo remoteBrokerInfo>;
if v == null goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo remoteBrokerInfo>;
v = virtualinvoke v.<org.apache.activemq.command.BrokerInfo: org.apache.activemq.command.BrokerId getBrokerId()>();
if v != null goto label;
label:
v = null;
goto label;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo remoteBrokerInfo>;
v = virtualinvoke v.<org.apache.activemq.command.BrokerInfo: org.apache.activemq.command.BrokerId getBrokerId()>();
v = virtualinvoke v.<org.apache.activemq.command.BrokerId: java.lang.String toString()>();
label:
return v;
}
public java.lang.String getLocalBrokerName()
{
org.apache.activemq.command.BrokerInfo v, v;
java.lang.String v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo localBrokerInfo>;
if v != null goto label;
v = null;
goto label;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerInfo localBrokerInfo>;
v = virtualinvoke v.<org.apache.activemq.command.BrokerInfo: java.lang.String getBrokerName()>();
label:
return v;
}
public long getDequeueCounter()
{
org.apache.activemq.management.CountStatisticImpl v;
org.apache.activemq.network.NetworkBridgeStatistics v;
long v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeStatistics networkBridgeStatistics>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeStatistics: org.apache.activemq.management.CountStatisticImpl getDequeues()>();
v = virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: long getCount()>();
return v;
}
public long getEnqueueCounter()
{
org.apache.activemq.management.CountStatisticImpl v;
org.apache.activemq.network.NetworkBridgeStatistics v;
long v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeStatistics networkBridgeStatistics>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeStatistics: org.apache.activemq.management.CountStatisticImpl getEnqueues()>();
v = virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: long getCount()>();
return v;
}
public org.apache.activemq.network.NetworkBridgeStatistics getNetworkBridgeStatistics()
{
org.apache.activemq.network.NetworkBridgeStatistics v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeStatistics networkBridgeStatistics>;
return v;
}
protected boolean isDuplex()
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
boolean v, v, v;
org.apache.activemq.network.NetworkBridgeConfiguration v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: boolean isDuplex()>();
if v != 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: boolean createdByDuplex>;
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public java.util.concurrent.ConcurrentMap getLocalSubscriptionMap()
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
java.util.concurrent.ConcurrentMap v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: java.util.concurrent.ConcurrentMap subscriptionMapByRemoteId>;
return v;
}
public void setBrokerService(org.apache.activemq.broker.BrokerService)
{
org.apache.activemq.broker.BrokerService v;
org.apache.activemq.broker.Broker v;
org.apache.activemq.command.BrokerId[] v;
org.apache.activemq.command.BrokerId v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.broker.BrokerService;
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService> = v;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: org.apache.activemq.broker.Broker getRegionBroker()>();
v = interfaceinvoke v.<org.apache.activemq.broker.Broker: org.apache.activemq.command.BrokerId getBrokerId()>();
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerId localBrokerId> = v;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerId[] localBrokerPath>;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.command.BrokerId localBrokerId>;
v[0] = v;
return;
}
public void setMbeanObjectName(javax.management.ObjectName)
{
javax.management.ObjectName v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: javax.management.ObjectName;
v.<org.apache.activemq.network.DemandForwardingBridgeSupport: javax.management.ObjectName mbeanObjectName> = v;
return;
}
public javax.management.ObjectName getMbeanObjectName()
{
javax.management.ObjectName v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: javax.management.ObjectName mbeanObjectName>;
return v;
}
public void resetStats()
{
org.apache.activemq.network.NetworkBridgeStatistics v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeStatistics networkBridgeStatistics>;
virtualinvoke v.<org.apache.activemq.network.NetworkBridgeStatistics: void reset()>();
return;
}
protected void serviceOutbound(org.apache.activemq.command.Message)
{
org.apache.activemq.command.Message v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.network.NetworkBridgeListener v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.Message;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeListener networkBridgeListener>;
if v == null goto label;
interfaceinvoke v.<org.apache.activemq.network.NetworkBridgeListener: void onOutboundMessage(org.apache.activemq.network.NetworkBridge,org.apache.activemq.command.Message)>(v, v);
label:
return;
}
protected void serviceInboundMessage(org.apache.activemq.command.Message)
{
org.apache.activemq.command.Message v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.network.NetworkBridgeListener v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.Message;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeListener networkBridgeListener>;
if v == null goto label;
interfaceinvoke v.<org.apache.activemq.network.NetworkBridgeListener: void onInboundMessage(org.apache.activemq.network.NetworkBridge,org.apache.activemq.command.Message)>(v, v);
label:
return;
}
protected boolean canDuplexDispatch(org.apache.activemq.command.Message)
{
java.lang.Object[] v;
long v, v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.Message v;
byte v;
java.lang.Long v, v;
boolean v, v, v;
org.apache.activemq.network.NetworkBridgeConfiguration v;
org.slf4j.Logger v, v;
org.apache.activemq.command.MessageId v, v;
org.apache.activemq.command.DataStructure v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.Message;
v = 1;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: boolean isCheckDuplicateMessagesOnDuplex()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.MessageId getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageId: long getProducerSequenceId()>();
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.MessageId getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.network.DemandForwardingBridgeSupport: long getStoredSequenceIdForMessage(org.apache.activemq.command.MessageId)>(v);
v = v cmp v;
if v > 0 goto label;
v = 0;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = v;
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.MessageId getMessageId()>();
label:
v[0] = v;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[1] = v;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("suppressing duplicate message send [{}] from network producer with producerSequence [{}] less than last stored: {}", v);
label:
return v;
}
protected long getStoredSequenceIdForMessage(org.apache.activemq.command.MessageId)
{
org.apache.activemq.broker.BrokerService v;
org.slf4j.Logger v;
org.apache.activemq.command.MessageId v;
java.io.IOException v;
long v;
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ProducerId v;
org.apache.activemq.store.PersistenceAdapter v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.MessageId;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.broker.BrokerService brokerService>;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: org.apache.activemq.store.PersistenceAdapter getPersistenceAdapter()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageId: org.apache.activemq.command.ProducerId getProducerId()>();
v = interfaceinvoke v.<org.apache.activemq.store.PersistenceAdapter: long getLastProducerSequenceId(org.apache.activemq.command.ProducerId)>(v);
label:
return v;
label:
v := @caughtexception;
v = <org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Failed to determine last producer sequence id for: {}", v, v);
return -1L;
catch java.io.IOException from label to label with label;
}
protected void configureConsumerPrefetch(org.apache.activemq.command.ConsumerInfo)
{
org.apache.activemq.network.DemandForwardingBridgeSupport v;
org.apache.activemq.command.ActiveMQDestination v;
int v, v, v;
org.apache.activemq.command.ConsumerInfo v;
boolean v;
org.apache.activemq.network.NetworkBridgeConfiguration v, v, v;
v := @this: org.apache.activemq.network.DemandForwardingBridgeSupport;
v := @parameter: org.apache.activemq.command.ConsumerInfo;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
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.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: int getAdvisoryPrefetchSize()>();
if v <= 0 goto label;
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: int getAdvisoryPrefetchSize()>();
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setPrefetchSize(int)>(v);
goto label;
label:
v = v.<org.apache.activemq.network.DemandForwardingBridgeSupport: org.apache.activemq.network.NetworkBridgeConfiguration configuration>;
v = virtualinvoke v.<org.apache.activemq.network.NetworkBridgeConfiguration: int getPrefetchSize()>();
virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: void setPrefetchSize(int)>(v);
label:
return;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/activemq/network/DemandForwardingBridgeSupport;");
<org.apache.activemq.network.DemandForwardingBridgeSupport: org.slf4j.Logger LOG> = v;
return;
}
}