public class org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler extends org.springframework.messaging.simp.broker.AbstractBrokerMessageHandler
{
public static final java.lang.String SYSTEM_SESSION_ID;
private static final long HEARTBEAT_MULTIPLIER;
private static final int MAX_TIME_TO_CONNECTED_FRAME;
private static final byte[] EMPTY_PAYLOAD;
private static final org.springframework.util.concurrent.ListenableFutureTask EMPTY_TASK;
private static final org.springframework.messaging.Message HEARTBEAT_MESSAGE;
private java.lang.String relayHost;
private int relayPort;
private java.lang.String clientLogin;
private java.lang.String clientPasscode;
private java.lang.String systemLogin;
private java.lang.String systemPasscode;
private long systemHeartbeatSendInterval;
private long systemHeartbeatReceiveInterval;
private final java.util.Map systemSubscriptions;
private java.lang.String virtualHost;
private org.springframework.messaging.tcp.TcpOperations tcpClient;
private org.springframework.messaging.support.MessageHeaderInitializer headerInitializer;
private final org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$Stats stats;
private final java.util.Map connectionHandlers;
public void <init>(org.springframework.messaging.SubscribableChannel, org.springframework.messaging.MessageChannel, org.springframework.messaging.SubscribableChannel, java.util.Collection)
{
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$Stats v;
java.util.Collection v;
java.util.concurrent.ConcurrentHashMap v;
org.springframework.messaging.SubscribableChannel v, v;
java.util.HashMap v;
org.springframework.messaging.MessageChannel v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
int v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v := @parameter: org.springframework.messaging.SubscribableChannel;
v := @parameter: org.springframework.messaging.MessageChannel;
v := @parameter: org.springframework.messaging.SubscribableChannel;
v := @parameter: java.util.Collection;
specialinvoke v.<org.springframework.messaging.simp.broker.AbstractBrokerMessageHandler: void <init>(org.springframework.messaging.SubscribableChannel,org.springframework.messaging.MessageChannel,org.springframework.messaging.SubscribableChannel,java.util.Collection)>(v, v, v, v);
v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String relayHost> = "127.0.0.1";
v = (int) 61613;
v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: int relayPort> = v;
v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String clientLogin> = "guest";
v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String clientPasscode> = "guest";
v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String systemLogin> = "guest";
v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String systemPasscode> = "guest";
v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: long systemHeartbeatSendInterval> = 10000L;
v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: long systemHeartbeatReceiveInterval> = 10000L;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>(int)>(4);
v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.util.Map systemSubscriptions> = v;
v = new org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$Stats;
specialinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$Stats: void <init>(org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler)>(v);
v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$Stats stats> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.util.Map connectionHandlers> = v;
return;
}
public void setRelayHost(java.lang.String)
{
java.lang.String v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v := @parameter: java.lang.String;
staticinvoke <org.springframework.util.Assert: void hasText(java.lang.String,java.lang.String)>(v, "relayHost must not be empty");
v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String relayHost> = v;
return;
}
public java.lang.String getRelayHost()
{
java.lang.String v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String relayHost>;
return v;
}
public void setRelayPort(int)
{
int v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v := @parameter: int;
v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: int relayPort> = v;
return;
}
public int getRelayPort()
{
int v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: int relayPort>;
return v;
}
public void setClientLogin(java.lang.String)
{
java.lang.String v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v := @parameter: java.lang.String;
staticinvoke <org.springframework.util.Assert: void hasText(java.lang.String,java.lang.String)>(v, "clientLogin must not be empty");
v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String clientLogin> = v;
return;
}
public java.lang.String getClientLogin()
{
java.lang.String v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String clientLogin>;
return v;
}
public void setClientPasscode(java.lang.String)
{
java.lang.String v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v := @parameter: java.lang.String;
staticinvoke <org.springframework.util.Assert: void hasText(java.lang.String,java.lang.String)>(v, "clientPasscode must not be empty");
v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String clientPasscode> = v;
return;
}
public java.lang.String getClientPasscode()
{
java.lang.String v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String clientPasscode>;
return v;
}
public void setSystemLogin(java.lang.String)
{
java.lang.String v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v := @parameter: java.lang.String;
staticinvoke <org.springframework.util.Assert: void hasText(java.lang.String,java.lang.String)>(v, "systemLogin must not be empty");
v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String systemLogin> = v;
return;
}
public java.lang.String getSystemLogin()
{
java.lang.String v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String systemLogin>;
return v;
}
public void setSystemPasscode(java.lang.String)
{
java.lang.String v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v := @parameter: java.lang.String;
v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String systemPasscode> = v;
return;
}
public java.lang.String getSystemPasscode()
{
java.lang.String v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String systemPasscode>;
return v;
}
public void setSystemHeartbeatSendInterval(long)
{
long v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v := @parameter: long;
v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: long systemHeartbeatSendInterval> = v;
return;
}
public long getSystemHeartbeatSendInterval()
{
long v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: long systemHeartbeatSendInterval>;
return v;
}
public void setSystemHeartbeatReceiveInterval(long)
{
long v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v := @parameter: long;
v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: long systemHeartbeatReceiveInterval> = v;
return;
}
public long getSystemHeartbeatReceiveInterval()
{
long v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: long systemHeartbeatReceiveInterval>;
return v;
}
public void setSystemSubscriptions(java.util.Map)
{
java.util.Map v, v, v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v := @parameter: java.util.Map;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.util.Map systemSubscriptions>;
interfaceinvoke v.<java.util.Map: void clear()>();
if v == null goto label;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.util.Map systemSubscriptions>;
interfaceinvoke v.<java.util.Map: void putAll(java.util.Map)>(v);
label:
return;
}
public java.util.Map getSystemSubscriptions()
{
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
java.util.Map v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.util.Map systemSubscriptions>;
return v;
}
public void setVirtualHost(java.lang.String)
{
java.lang.String v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v := @parameter: java.lang.String;
v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String virtualHost> = v;
return;
}
public java.lang.String getVirtualHost()
{
java.lang.String v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String virtualHost>;
return v;
}
public void setTcpClient(org.springframework.messaging.tcp.TcpOperations)
{
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
org.springframework.messaging.tcp.TcpOperations v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v := @parameter: org.springframework.messaging.tcp.TcpOperations;
v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.springframework.messaging.tcp.TcpOperations tcpClient> = v;
return;
}
public org.springframework.messaging.tcp.TcpOperations getTcpClient()
{
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
org.springframework.messaging.tcp.TcpOperations v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.springframework.messaging.tcp.TcpOperations tcpClient>;
return v;
}
public void setHeaderInitializer(org.springframework.messaging.support.MessageHeaderInitializer)
{
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
org.springframework.messaging.support.MessageHeaderInitializer v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v := @parameter: org.springframework.messaging.support.MessageHeaderInitializer;
v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.springframework.messaging.support.MessageHeaderInitializer headerInitializer> = v;
return;
}
public org.springframework.messaging.support.MessageHeaderInitializer getHeaderInitializer()
{
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
org.springframework.messaging.support.MessageHeaderInitializer v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.springframework.messaging.support.MessageHeaderInitializer headerInitializer>;
return v;
}
public java.lang.String getStatsInfo()
{
java.lang.String v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$Stats v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$Stats stats>;
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$Stats: java.lang.String toString()>();
return v;
}
public int getConnectionCount()
{
int v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
java.util.Map v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.util.Map connectionHandlers>;
v = interfaceinvoke v.<java.util.Map: int size()>();
return v;
}
protected void startInternal()
{
byte[] v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$StompTcpClientFactory v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
java.util.Map v;
org.springframework.messaging.simp.stomp.StompCommand v;
boolean v, v;
org.springframework.messaging.simp.stomp.Reactor2StompCodec v;
org.springframework.messaging.tcp.FixedIntervalReconnectStrategy v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$SystemStompConnectionHandler v;
org.springframework.messaging.support.MessageHeaderInitializer v;
org.springframework.messaging.simp.stomp.StompDecoder v;
org.springframework.messaging.simp.stomp.StompHeaderAccessor v;
long v, v;
org.springframework.messaging.tcp.TcpOperations v, v, v;
int v, v;
java.lang.String v, v, v, v, v, v, v, v, v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$Stats v;
org.apache.commons.logging.Log v, v, v, v;
org.springframework.messaging.simp.stomp.StompEncoder v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.springframework.messaging.tcp.TcpOperations tcpClient>;
if v != null goto label;
v = new org.springframework.messaging.simp.stomp.StompDecoder;
specialinvoke v.<org.springframework.messaging.simp.stomp.StompDecoder: void <init>()>();
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.springframework.messaging.support.MessageHeaderInitializer getHeaderInitializer()>();
virtualinvoke v.<org.springframework.messaging.simp.stomp.StompDecoder: void setHeaderInitializer(org.springframework.messaging.support.MessageHeaderInitializer)>(v);
v = new org.springframework.messaging.simp.stomp.Reactor2StompCodec;
v = new org.springframework.messaging.simp.stomp.StompEncoder;
specialinvoke v.<org.springframework.messaging.simp.stomp.StompEncoder: void <init>()>();
specialinvoke v.<org.springframework.messaging.simp.stomp.Reactor2StompCodec: void <init>(org.springframework.messaging.simp.stomp.StompEncoder,org.springframework.messaging.simp.stomp.StompDecoder)>(v, v);
v = new org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$StompTcpClientFactory;
specialinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$StompTcpClientFactory: void <init>()>();
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String relayHost>;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: int relayPort>;
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$StompTcpClientFactory: org.springframework.messaging.tcp.TcpOperations create(java.lang.String,int,org.springframework.messaging.simp.stomp.Reactor2StompCodec)>(v, v, v);
v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.springframework.messaging.tcp.TcpOperations tcpClient> = v;
label:
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isInfoEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.apache.commons.logging.Log logger>;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String relayHost>;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: int relayPort>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(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[])>("Connecting \"system\" session to \u0001:\u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void info(java.lang.Object)>(v);
label:
v = <org.springframework.messaging.simp.stomp.StompCommand: org.springframework.messaging.simp.stomp.StompCommand CONNECT>;
v = staticinvoke <org.springframework.messaging.simp.stomp.StompHeaderAccessor: org.springframework.messaging.simp.stomp.StompHeaderAccessor create(org.springframework.messaging.simp.stomp.StompCommand)>(v);
virtualinvoke v.<org.springframework.messaging.simp.stomp.StompHeaderAccessor: void setAcceptVersion(java.lang.String)>("1.1,1.2");
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String systemLogin>;
virtualinvoke v.<org.springframework.messaging.simp.stomp.StompHeaderAccessor: void setLogin(java.lang.String)>(v);
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String systemPasscode>;
virtualinvoke v.<org.springframework.messaging.simp.stomp.StompHeaderAccessor: void setPasscode(java.lang.String)>(v);
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: long systemHeartbeatSendInterval>;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: long systemHeartbeatReceiveInterval>;
virtualinvoke v.<org.springframework.messaging.simp.stomp.StompHeaderAccessor: void setHeartbeat(long,long)>(v, v);
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String getVirtualHost()>();
virtualinvoke v.<org.springframework.messaging.simp.stomp.StompHeaderAccessor: void setHost(java.lang.String)>(v);
virtualinvoke v.<org.springframework.messaging.simp.stomp.StompHeaderAccessor: void setSessionId(java.lang.String)>("_system_");
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.apache.commons.logging.Log logger>;
v = <org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: byte[] EMPTY_PAYLOAD>;
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompHeaderAccessor: java.lang.String getShortLogMessage(java.lang.Object)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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[])>("Forwarding \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = new org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$SystemStompConnectionHandler;
specialinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$SystemStompConnectionHandler: void <init>(org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler,org.springframework.messaging.simp.stomp.StompHeaderAccessor)>(v, v);
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.util.Map connectionHandlers>;
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$SystemStompConnectionHandler: java.lang.String getSessionId()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$Stats stats>;
virtualinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$Stats: void incrementConnectCount()>();
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.springframework.messaging.tcp.TcpOperations tcpClient>;
v = new org.springframework.messaging.tcp.FixedIntervalReconnectStrategy;
specialinvoke v.<org.springframework.messaging.tcp.FixedIntervalReconnectStrategy: void <init>(long)>(5000L);
interfaceinvoke v.<org.springframework.messaging.tcp.TcpOperations: org.springframework.util.concurrent.ListenableFuture connect(org.springframework.messaging.tcp.TcpConnectionHandler,org.springframework.messaging.tcp.ReconnectStrategy)>(v, v);
return;
}
protected void stopInternal()
{
java.lang.Throwable v;
java.util.concurrent.TimeUnit v;
org.springframework.util.concurrent.ListenableFuture v;
org.apache.commons.logging.Log v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
org.springframework.messaging.tcp.TcpOperations v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
virtualinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: void publishBrokerUnavailableEvent()>();
label:
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.springframework.messaging.tcp.TcpOperations tcpClient>;
v = interfaceinvoke v.<org.springframework.messaging.tcp.TcpOperations: org.springframework.util.concurrent.ListenableFuture shutdown()>();
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
interfaceinvoke v.<org.springframework.util.concurrent.ListenableFuture: java.lang.Object get(long,java.util.concurrent.TimeUnit)>(5000L, v);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.apache.commons.logging.Log logger>;
interfaceinvoke v.<org.apache.commons.logging.Log: void error(java.lang.Object,java.lang.Throwable)>("Error in shutdown of TCP client", v);
label:
return;
catch java.lang.Throwable from label to label with label;
}
protected void handleMessageInternal(org.springframework.messaging.Message)
{
byte[] v, v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
java.util.Map v, v, v, v;
org.springframework.messaging.MessageChannel v;
org.springframework.messaging.tcp.TcpOperations v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$StompConnectionHandler v;
org.springframework.messaging.Message v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v;
org.springframework.messaging.support.MessageHeaderAccessor v;
org.springframework.messaging.MessageHeaders v, v, v;
org.springframework.messaging.MessageDeliveryException v;
java.lang.IllegalStateException v, v;
org.springframework.messaging.simp.stomp.StompCommand v, v, v, v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.springframework.messaging.simp.SimpMessageType v, v;
java.security.Principal v;
org.springframework.messaging.support.MessageHeaderInitializer v, v;
org.springframework.messaging.simp.stomp.StompHeaderAccessor v, v, v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$Stats v, v;
java.lang.Class v;
java.lang.Object v, v, v;
org.apache.commons.logging.Log v, v, v, v, v, v, v, v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v := @parameter: org.springframework.messaging.Message;
v = interfaceinvoke v.<org.springframework.messaging.Message: org.springframework.messaging.MessageHeaders getHeaders()>();
v = staticinvoke <org.springframework.messaging.simp.SimpMessageHeaderAccessor: java.lang.String getSessionId(java.util.Map)>(v);
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: boolean isBrokerAvailable()>();
if v != 0 goto label;
if v == null goto label;
v = "_system_";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = new org.springframework.messaging.MessageDeliveryException;
specialinvoke v.<org.springframework.messaging.MessageDeliveryException: void <init>(java.lang.String)>("Message broker not active. Consider subscribing to receive BrokerAvailabilityEvent\'s from an ApplicationListener Spring bean.");
throw v;
label:
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.util.Map connectionHandlers>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
specialinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$StompConnectionHandler: void sendStompErrorFrameToClient(java.lang.String)>("Broker not available.");
virtualinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$StompConnectionHandler: void clearConnection()>();
goto label;
label:
v = <org.springframework.messaging.simp.stomp.StompCommand: org.springframework.messaging.simp.stomp.StompCommand ERROR>;
v = staticinvoke <org.springframework.messaging.simp.stomp.StompHeaderAccessor: org.springframework.messaging.simp.stomp.StompHeaderAccessor create(org.springframework.messaging.simp.stomp.StompCommand)>(v);
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.springframework.messaging.support.MessageHeaderInitializer getHeaderInitializer()>();
if v == null goto label;
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.springframework.messaging.support.MessageHeaderInitializer getHeaderInitializer()>();
interfaceinvoke v.<org.springframework.messaging.support.MessageHeaderInitializer: void initHeaders(org.springframework.messaging.support.MessageHeaderAccessor)>(v);
label:
virtualinvoke v.<org.springframework.messaging.simp.stomp.StompHeaderAccessor: void setSessionId(java.lang.String)>(v);
v = interfaceinvoke v.<org.springframework.messaging.Message: org.springframework.messaging.MessageHeaders getHeaders()>();
v = staticinvoke <org.springframework.messaging.simp.SimpMessageHeaderAccessor: java.security.Principal getUser(java.util.Map)>(v);
virtualinvoke v.<org.springframework.messaging.simp.stomp.StompHeaderAccessor: void setUser(java.security.Principal)>(v);
virtualinvoke v.<org.springframework.messaging.simp.stomp.StompHeaderAccessor: void setMessage(java.lang.String)>("Broker not available.");
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompHeaderAccessor: org.springframework.messaging.MessageHeaders getMessageHeaders()>();
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.springframework.messaging.MessageChannel getClientOutboundChannel()>();
v = <org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: byte[] EMPTY_PAYLOAD>;
v = staticinvoke <org.springframework.messaging.support.MessageBuilder: org.springframework.messaging.Message createMessage(java.lang.Object,org.springframework.messaging.MessageHeaders)>(v, v);
interfaceinvoke v.<org.springframework.messaging.MessageChannel: boolean send(org.springframework.messaging.Message)>(v);
label:
return;
label:
v = staticinvoke <org.springframework.messaging.support.MessageHeaderAccessor: org.springframework.messaging.support.MessageHeaderAccessor getAccessor(org.springframework.messaging.Message,java.lang.Class)>(v, class "Lorg/springframework/messaging/support/MessageHeaderAccessor;");
if v != null goto label;
v = new java.lang.IllegalStateException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.springframework.messaging.Message)>(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[])>("No header accessor (not using the SimpMessagingTemplate?): \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v instanceof org.springframework.messaging.simp.stomp.StompHeaderAccessor;
if v == 0 goto label;
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompHeaderAccessor: org.springframework.messaging.simp.stomp.StompCommand getCommand()>();
goto label;
label:
v = v instanceof org.springframework.messaging.simp.SimpMessageHeaderAccessor;
if v == 0 goto label;
v = staticinvoke <org.springframework.messaging.simp.stomp.StompHeaderAccessor: org.springframework.messaging.simp.stomp.StompHeaderAccessor wrap(org.springframework.messaging.Message)>(v);
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompHeaderAccessor: org.springframework.messaging.simp.stomp.StompCommand getCommand()>();
if v != null goto label;
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompHeaderAccessor: org.springframework.messaging.simp.stomp.StompCommand updateStompCommandAsClientMessage()>();
goto label;
label:
v = new java.lang.IllegalStateException;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Class,org.springframework.messaging.Message)>(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[])>("Unexpected header accessor type \u in \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
if v != null goto label;
v = <org.springframework.messaging.simp.SimpMessageType: org.springframework.messaging.simp.SimpMessageType MESSAGE>;
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompHeaderAccessor: org.springframework.messaging.simp.SimpMessageType getMessageType()>();
v = virtualinvoke v.<org.springframework.messaging.simp.SimpMessageType: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isErrorEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.springframework.messaging.Message)>(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[])>("Only STOMP SEND supported from within the server side. Ignoring \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void error(java.lang.Object)>(v);
label:
return;
label:
v = "_system_";
virtualinvoke v.<org.springframework.messaging.simp.stomp.StompHeaderAccessor: void setSessionId(java.lang.String)>("_system_");
label:
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompHeaderAccessor: java.lang.String getDestination()>();
if v == null goto label;
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompCommand: boolean requiresDestination()>();
if v == 0 goto label;
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: boolean checkDestinationPrefix(java.lang.String)>(v);
if v != 0 goto label;
return;
label:
v = <org.springframework.messaging.simp.stomp.StompCommand: org.springframework.messaging.simp.stomp.StompCommand CONNECT>;
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompCommand: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.apache.commons.logging.Log logger>;
v = <org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: byte[] EMPTY_PAYLOAD>;
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompHeaderAccessor: java.lang.String getShortLogMessage(java.lang.Object)>(v);
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompHeaderAccessor: boolean isMutable()>();
if v == 0 goto label;
v = v;
goto label;
label:
v = staticinvoke <org.springframework.messaging.simp.stomp.StompHeaderAccessor: org.springframework.messaging.simp.stomp.StompHeaderAccessor wrap(org.springframework.messaging.Message)>(v);
label:
v = v;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String clientLogin>;
virtualinvoke v.<org.springframework.messaging.simp.stomp.StompHeaderAccessor: void setLogin(java.lang.String)>(v);
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String clientPasscode>;
virtualinvoke v.<org.springframework.messaging.simp.stomp.StompHeaderAccessor: void setPasscode(java.lang.String)>(v);
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String getVirtualHost()>();
if v == null goto label;
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String getVirtualHost()>();
virtualinvoke v.<org.springframework.messaging.simp.stomp.StompHeaderAccessor: void setHost(java.lang.String)>(v);
label:
v = new org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$StompConnectionHandler;
specialinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$StompConnectionHandler: void <init>(org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler,java.lang.String,org.springframework.messaging.simp.stomp.StompHeaderAccessor)>(v, v, v);
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.util.Map connectionHandlers>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$Stats stats>;
virtualinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$Stats: void incrementConnectCount()>();
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.springframework.messaging.tcp.TcpOperations tcpClient>;
interfaceinvoke v.<org.springframework.messaging.tcp.TcpOperations: org.springframework.util.concurrent.ListenableFuture connect(org.springframework.messaging.tcp.TcpConnectionHandler)>(v);
goto label;
label:
v = <org.springframework.messaging.simp.stomp.StompCommand: org.springframework.messaging.simp.stomp.StompCommand DISCONNECT>;
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompCommand: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.util.Map connectionHandlers>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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[])>("Ignoring DISCONNECT in session \u. Connection already cleaned up.");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
return;
label:
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$Stats stats>;
virtualinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$Stats: void incrementDisconnectCount()>();
virtualinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$StompConnectionHandler: org.springframework.util.concurrent.ListenableFuture forward(org.springframework.messaging.Message,org.springframework.messaging.simp.stomp.StompHeaderAccessor)>(v, v);
goto label;
label:
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.util.Map connectionHandlers>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,org.springframework.messaging.Message)>(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[])>("No TCP connection for session \u in \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
return;
label:
virtualinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$StompConnectionHandler: org.springframework.util.concurrent.ListenableFuture forward(org.springframework.messaging.Message,org.springframework.messaging.simp.stomp.StompHeaderAccessor)>(v, v);
label:
return;
}
public java.lang.String toString()
{
int v;
java.lang.String v, v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler v;
v := @this: org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: java.lang.String relayHost>;
v = v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: int relayPort>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(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[])>("StompBrokerRelay[\u0001:\u]");
return v;
}
static void <clinit>()
{
byte[] v, v;
org.springframework.messaging.simp.stomp.StompHeaderAccessor v;
org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$VoidCallable v;
org.springframework.messaging.MessageHeaders v;
org.springframework.util.concurrent.ListenableFutureTask v, v;
org.springframework.messaging.Message v;
v = newarray (byte)[0];
<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: byte[] EMPTY_PAYLOAD> = v;
v = new org.springframework.util.concurrent.ListenableFutureTask;
v = new org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$VoidCallable;
specialinvoke v.<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler$VoidCallable: void <init>()>();
specialinvoke v.<org.springframework.util.concurrent.ListenableFutureTask: void <init>(java.util.concurrent.Callable)>(v);
<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.springframework.util.concurrent.ListenableFutureTask EMPTY_TASK> = v;
v = <org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.springframework.util.concurrent.ListenableFutureTask EMPTY_TASK>;
virtualinvoke v.<org.springframework.util.concurrent.ListenableFutureTask: void run()>();
v = staticinvoke <org.springframework.messaging.simp.stomp.StompHeaderAccessor: org.springframework.messaging.simp.stomp.StompHeaderAccessor createForHeartbeat()>();
v = <org.springframework.messaging.simp.stomp.StompDecoder: byte[] HEARTBEAT_PAYLOAD>;
v = virtualinvoke v.<org.springframework.messaging.simp.stomp.StompHeaderAccessor: org.springframework.messaging.MessageHeaders getMessageHeaders()>();
v = staticinvoke <org.springframework.messaging.support.MessageBuilder: org.springframework.messaging.Message createMessage(java.lang.Object,org.springframework.messaging.MessageHeaders)>(v, v);
<org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler: org.springframework.messaging.Message HEARTBEAT_MESSAGE> = v;
return;
}
}