public class org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler extends org.springframework.messaging.simp.broker.AbstractBrokerMessageHandler
{
private static final byte[] EMPTY_PAYLOAD;
private org.springframework.util.PathMatcher pathMatcher;
private java.lang.Integer cacheLimit;
private java.lang.String selectorHeaderName;
private org.springframework.scheduling.TaskScheduler taskScheduler;
private long[] heartbeatValue;
private org.springframework.messaging.support.MessageHeaderInitializer headerInitializer;
private org.springframework.messaging.simp.broker.SubscriptionRegistry subscriptionRegistry;
private final java.util.Map sessions;
private java.util.concurrent.ScheduledFuture heartbeatFuture;
public void <init>(org.springframework.messaging.SubscribableChannel, org.springframework.messaging.MessageChannel, org.springframework.messaging.SubscribableChannel, java.util.Collection)
{
java.util.Collection v;
java.util.concurrent.ConcurrentHashMap v;
org.springframework.messaging.SubscribableChannel v, v;
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
org.springframework.messaging.MessageChannel v;
org.springframework.messaging.simp.broker.DefaultSubscriptionRegistry v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
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.broker.SimpleBrokerMessageHandler: java.lang.String selectorHeaderName> = "selector";
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: java.util.Map sessions> = v;
v = new org.springframework.messaging.simp.broker.DefaultSubscriptionRegistry;
specialinvoke v.<org.springframework.messaging.simp.broker.DefaultSubscriptionRegistry: void <init>()>();
v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.messaging.simp.broker.SubscriptionRegistry subscriptionRegistry> = v;
return;
}
public void setSubscriptionRegistry(org.springframework.messaging.simp.broker.SubscriptionRegistry)
{
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
org.springframework.messaging.simp.broker.SubscriptionRegistry v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
v := @parameter: org.springframework.messaging.simp.broker.SubscriptionRegistry;
staticinvoke <org.springframework.util.Assert: void notNull(java.lang.Object,java.lang.String)>(v, "SubscriptionRegistry must not be null");
v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.messaging.simp.broker.SubscriptionRegistry subscriptionRegistry> = v;
specialinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: void initPathMatcherToUse()>();
specialinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: void initCacheLimitToUse()>();
specialinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: void initSelectorHeaderNameToUse()>();
return;
}
public org.springframework.messaging.simp.broker.SubscriptionRegistry getSubscriptionRegistry()
{
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
org.springframework.messaging.simp.broker.SubscriptionRegistry v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.messaging.simp.broker.SubscriptionRegistry subscriptionRegistry>;
return v;
}
public void setSelectorHeaderName(java.lang.String)
{
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
java.lang.String v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
v := @parameter: java.lang.String;
v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: java.lang.String selectorHeaderName> = v;
specialinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: void initSelectorHeaderNameToUse()>();
return;
}
private void initSelectorHeaderNameToUse()
{
org.springframework.messaging.simp.broker.SubscriptionRegistry v, v;
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
java.lang.String v;
boolean v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.messaging.simp.broker.SubscriptionRegistry subscriptionRegistry>;
v = v instanceof org.springframework.messaging.simp.broker.DefaultSubscriptionRegistry;
if v == 0 goto label;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.messaging.simp.broker.SubscriptionRegistry subscriptionRegistry>;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: java.lang.String selectorHeaderName>;
virtualinvoke v.<org.springframework.messaging.simp.broker.DefaultSubscriptionRegistry: void setSelectorHeaderName(java.lang.String)>(v);
label:
return;
}
public void setPathMatcher(org.springframework.util.PathMatcher)
{
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
org.springframework.util.PathMatcher v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
v := @parameter: org.springframework.util.PathMatcher;
v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.util.PathMatcher pathMatcher> = v;
specialinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: void initPathMatcherToUse()>();
return;
}
private void initPathMatcherToUse()
{
org.springframework.messaging.simp.broker.SubscriptionRegistry v, v;
org.springframework.util.PathMatcher v, v;
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
boolean v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.util.PathMatcher pathMatcher>;
if v == null goto label;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.messaging.simp.broker.SubscriptionRegistry subscriptionRegistry>;
v = v instanceof org.springframework.messaging.simp.broker.DefaultSubscriptionRegistry;
if v == 0 goto label;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.messaging.simp.broker.SubscriptionRegistry subscriptionRegistry>;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.util.PathMatcher pathMatcher>;
virtualinvoke v.<org.springframework.messaging.simp.broker.DefaultSubscriptionRegistry: void setPathMatcher(org.springframework.util.PathMatcher)>(v);
label:
return;
}
public void setCacheLimit(java.lang.Integer)
{
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
java.lang.Integer v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
v := @parameter: java.lang.Integer;
v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: java.lang.Integer cacheLimit> = v;
specialinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: void initCacheLimitToUse()>();
return;
}
private void initCacheLimitToUse()
{
org.springframework.messaging.simp.broker.SubscriptionRegistry v, v;
int v;
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
java.lang.Integer v, v;
boolean v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: java.lang.Integer cacheLimit>;
if v == null goto label;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.messaging.simp.broker.SubscriptionRegistry subscriptionRegistry>;
v = v instanceof org.springframework.messaging.simp.broker.DefaultSubscriptionRegistry;
if v == 0 goto label;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.messaging.simp.broker.SubscriptionRegistry subscriptionRegistry>;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: java.lang.Integer cacheLimit>;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
virtualinvoke v.<org.springframework.messaging.simp.broker.DefaultSubscriptionRegistry: void setCacheLimit(int)>(v);
label:
return;
}
public void setTaskScheduler(org.springframework.scheduling.TaskScheduler)
{
long[] v, v;
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
org.springframework.scheduling.TaskScheduler v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
v := @parameter: org.springframework.scheduling.TaskScheduler;
staticinvoke <org.springframework.util.Assert: void notNull(java.lang.Object,java.lang.String)>(v, "TaskScheduler must not be null");
v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.scheduling.TaskScheduler taskScheduler> = v;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: long[] heartbeatValue>;
if v != null goto label;
v = newarray (long)[2];
v[0] = 10000L;
v[1] = 10000L;
v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: long[] heartbeatValue> = v;
label:
return;
}
public org.springframework.scheduling.TaskScheduler getTaskScheduler()
{
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
org.springframework.scheduling.TaskScheduler v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.scheduling.TaskScheduler taskScheduler>;
return v;
}
public void setHeartbeatValue(long[])
{
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
long v, v;
java.lang.IllegalArgumentException v;
long[] v;
byte v, v;
int v;
java.lang.String v, v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
v := @parameter: long[];
if v == null goto label;
v = lengthof v;
if v != 2 goto label;
v = v[0];
v = v cmp 0L;
if v < 0 goto label;
v = v[1];
v = v cmp 0L;
if v >= 0 goto label;
label:
v = new java.lang.IllegalArgumentException;
v = staticinvoke <java.util.Arrays: java.lang.String toString(long[])>(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[])>("Invalid heart-beat: \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: long[] heartbeatValue> = v;
return;
}
public long[] getHeartbeatValue()
{
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
long[] v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: long[] heartbeatValue>;
return v;
}
public void setHeaderInitializer(org.springframework.messaging.support.MessageHeaderInitializer)
{
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
org.springframework.messaging.support.MessageHeaderInitializer v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
v := @parameter: org.springframework.messaging.support.MessageHeaderInitializer;
v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.messaging.support.MessageHeaderInitializer headerInitializer> = v;
return;
}
public org.springframework.messaging.support.MessageHeaderInitializer getHeaderInitializer()
{
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
org.springframework.messaging.support.MessageHeaderInitializer v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.messaging.support.MessageHeaderInitializer headerInitializer>;
return v;
}
public void startInternal()
{
java.util.concurrent.ScheduledFuture v;
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
org.springframework.scheduling.TaskScheduler v, v;
long v, v, v;
long[] v, v, v;
byte v, v, v;
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler$HeartbeatTask v;
boolean v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: void publishBrokerAvailableEvent()>();
v = virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.scheduling.TaskScheduler getTaskScheduler()>();
if v == null goto label;
v = specialinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: long initHeartbeatTaskDelay()>();
v = v cmp 0L;
if v <= 0 goto label;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.scheduling.TaskScheduler taskScheduler>;
v = new org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler$HeartbeatTask;
specialinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler$HeartbeatTask: void <init>(org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler)>(v);
v = interfaceinvoke v.<org.springframework.scheduling.TaskScheduler: java.util.concurrent.ScheduledFuture scheduleWithFixedDelay(java.lang.Runnable,long)>(v, v);
v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: java.util.concurrent.ScheduledFuture heartbeatFuture> = v;
goto label;
label:
v = virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: long[] getHeartbeatValue()>();
if v == null goto label;
v = virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: long[] getHeartbeatValue()>();
v = v[0];
v = v cmp 0L;
if v != 0 goto label;
v = virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: long[] getHeartbeatValue()>();
v = v[1];
v = v cmp 0L;
if v != 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <org.springframework.util.Assert: void isTrue(boolean,java.lang.String)>(v, "Heartbeat values configured but no TaskScheduler provided");
label:
return;
}
private long initHeartbeatTaskDelay()
{
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
long v, v, v, v, v, v, v;
long[] v, v, v, v, v, v, v, v;
byte v, v, v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
v = virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: long[] getHeartbeatValue()>();
if v != null goto label;
return 0L;
label:
v = virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: long[] getHeartbeatValue()>();
v = v[0];
v = v cmp 0L;
if v <= 0 goto label;
v = virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: long[] getHeartbeatValue()>();
v = v[1];
v = v cmp 0L;
if v <= 0 goto label;
v = virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: long[] getHeartbeatValue()>();
v = v[0];
v = virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: long[] getHeartbeatValue()>();
v = v[1];
v = staticinvoke <java.lang.Math: long min(long,long)>(v, v);
return v;
label:
v = virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: long[] getHeartbeatValue()>();
v = v[0];
v = v cmp 0L;
if v <= 0 goto label;
v = virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: long[] getHeartbeatValue()>();
v = v[0];
goto label;
label:
v = virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: long[] getHeartbeatValue()>();
v = v[1];
label:
return v;
}
public void stopInternal()
{
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
java.util.concurrent.ScheduledFuture v, v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: void publishBrokerUnavailableEvent()>();
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: java.util.concurrent.ScheduledFuture heartbeatFuture>;
if v == null goto label;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: java.util.concurrent.ScheduledFuture heartbeatFuture>;
interfaceinvoke v.<java.util.concurrent.ScheduledFuture: boolean cancel(boolean)>(1);
label:
return;
}
protected void handleMessageInternal(org.springframework.messaging.Message)
{
byte[] v;
org.springframework.messaging.simp.SimpMessageHeaderAccessor v;
java.util.Map v;
boolean v, v, v, v, v, v;
org.springframework.messaging.simp.SimpMessageType v, v, v, v, v, v, v;
org.springframework.messaging.MessageChannel v;
java.security.Principal v, v, v;
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler$SessionInfo v;
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
long[] v, v;
org.springframework.messaging.Message v, v;
java.lang.String v, v;
org.springframework.messaging.simp.broker.SubscriptionRegistry v, v;
org.springframework.messaging.MessageHeaders v, v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
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: org.springframework.messaging.simp.SimpMessageType getMessageType(java.util.Map)>(v);
v = staticinvoke <org.springframework.messaging.simp.SimpMessageHeaderAccessor: java.lang.String getDestination(java.util.Map)>(v);
v = staticinvoke <org.springframework.messaging.simp.SimpMessageHeaderAccessor: java.lang.String getSessionId(java.util.Map)>(v);
specialinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: void updateSessionReadTime(java.lang.String)>(v);
v = virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: boolean checkDestinationPrefix(java.lang.String)>(v);
if v != 0 goto label;
return;
label:
v = <org.springframework.messaging.simp.SimpMessageType: org.springframework.messaging.simp.SimpMessageType MESSAGE>;
v = virtualinvoke v.<org.springframework.messaging.simp.SimpMessageType: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
specialinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: void logMessage(org.springframework.messaging.Message)>(v);
virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: void sendMessageToSubscribers(java.lang.String,org.springframework.messaging.Message)>(v, v);
goto label;
label:
v = <org.springframework.messaging.simp.SimpMessageType: org.springframework.messaging.simp.SimpMessageType CONNECT>;
v = virtualinvoke v.<org.springframework.messaging.simp.SimpMessageType: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
specialinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: void logMessage(org.springframework.messaging.Message)>(v);
v = staticinvoke <org.springframework.messaging.simp.SimpMessageHeaderAccessor: long[] getHeartbeat(java.util.Map)>(v);
v = virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: long[] getHeartbeatValue()>();
v = staticinvoke <org.springframework.messaging.simp.SimpMessageHeaderAccessor: java.security.Principal getUser(java.util.Map)>(v);
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: java.util.Map sessions>;
v = new org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler$SessionInfo;
specialinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler$SessionInfo: void <init>(java.lang.String,java.security.Principal,long[],long[])>(v, v, v, v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = <org.springframework.messaging.simp.SimpMessageType: org.springframework.messaging.simp.SimpMessageType CONNECT_ACK>;
v = staticinvoke <org.springframework.messaging.simp.SimpMessageHeaderAccessor: org.springframework.messaging.simp.SimpMessageHeaderAccessor create(org.springframework.messaging.simp.SimpMessageType)>(v);
specialinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: void initHeaders(org.springframework.messaging.simp.SimpMessageHeaderAccessor)>(v);
virtualinvoke v.<org.springframework.messaging.simp.SimpMessageHeaderAccessor: void setSessionId(java.lang.String)>(v);
v = staticinvoke <org.springframework.messaging.simp.SimpMessageHeaderAccessor: java.security.Principal getUser(java.util.Map)>(v);
virtualinvoke v.<org.springframework.messaging.simp.SimpMessageHeaderAccessor: void setUser(java.security.Principal)>(v);
virtualinvoke v.<org.springframework.messaging.simp.SimpMessageHeaderAccessor: void setHeader(java.lang.String,java.lang.Object)>("simpConnectMessage", v);
virtualinvoke v.<org.springframework.messaging.simp.SimpMessageHeaderAccessor: void setHeader(java.lang.String,java.lang.Object)>("simpHeartbeat", v);
v = <org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: byte[] EMPTY_PAYLOAD>;
v = virtualinvoke v.<org.springframework.messaging.simp.SimpMessageHeaderAccessor: 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);
v = virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.messaging.MessageChannel getClientOutboundChannel()>();
interfaceinvoke v.<org.springframework.messaging.MessageChannel: boolean send(org.springframework.messaging.Message)>(v);
goto label;
label:
v = <org.springframework.messaging.simp.SimpMessageType: org.springframework.messaging.simp.SimpMessageType DISCONNECT>;
v = virtualinvoke v.<org.springframework.messaging.simp.SimpMessageType: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
specialinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: void logMessage(org.springframework.messaging.Message)>(v);
v = staticinvoke <org.springframework.messaging.simp.SimpMessageHeaderAccessor: java.security.Principal getUser(java.util.Map)>(v);
specialinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: void handleDisconnect(java.lang.String,java.security.Principal,org.springframework.messaging.Message)>(v, v, v);
goto label;
label:
v = <org.springframework.messaging.simp.SimpMessageType: org.springframework.messaging.simp.SimpMessageType SUBSCRIBE>;
v = virtualinvoke v.<org.springframework.messaging.simp.SimpMessageType: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
specialinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: void logMessage(org.springframework.messaging.Message)>(v);
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.messaging.simp.broker.SubscriptionRegistry subscriptionRegistry>;
interfaceinvoke v.<org.springframework.messaging.simp.broker.SubscriptionRegistry: void registerSubscription(org.springframework.messaging.Message)>(v);
goto label;
label:
v = <org.springframework.messaging.simp.SimpMessageType: org.springframework.messaging.simp.SimpMessageType UNSUBSCRIBE>;
v = virtualinvoke v.<org.springframework.messaging.simp.SimpMessageType: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
specialinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: void logMessage(org.springframework.messaging.Message)>(v);
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.messaging.simp.broker.SubscriptionRegistry subscriptionRegistry>;
interfaceinvoke v.<org.springframework.messaging.simp.broker.SubscriptionRegistry: void unregisterSubscription(org.springframework.messaging.Message)>(v);
label:
return;
}
private void updateSessionReadTime(java.lang.String)
{
java.util.Map v;
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
java.lang.Object v;
long v;
java.lang.String v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
v := @parameter: java.lang.String;
if v == null goto label;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: java.util.Map sessions>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler$SessionInfo: void setLastReadTime(long)>(v);
label:
return;
}
private void logMessage(org.springframework.messaging.Message)
{
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
org.springframework.messaging.simp.SimpMessageHeaderAccessor v;
java.lang.Object v;
org.apache.commons.logging.Log v, v;
org.springframework.messaging.Message v;
java.lang.String v, v;
boolean v;
org.springframework.messaging.support.MessageHeaderAccessor v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
v := @parameter: org.springframework.messaging.Message;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto 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/simp/SimpMessageHeaderAccessor;");
if v == null goto label;
v = v;
goto label;
label:
v = staticinvoke <org.springframework.messaging.simp.SimpMessageHeaderAccessor: org.springframework.messaging.simp.SimpMessageHeaderAccessor wrap(org.springframework.messaging.Message)>(v);
label:
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.springframework.messaging.Message: java.lang.Object getPayload()>();
v = virtualinvoke v.<org.springframework.messaging.simp.SimpMessageHeaderAccessor: 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[])>("Processing \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
return;
}
private void initHeaders(org.springframework.messaging.simp.SimpMessageHeaderAccessor)
{
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
org.springframework.messaging.simp.SimpMessageHeaderAccessor v;
org.springframework.messaging.support.MessageHeaderInitializer v, v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
v := @parameter: org.springframework.messaging.simp.SimpMessageHeaderAccessor;
v = virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.messaging.support.MessageHeaderInitializer getHeaderInitializer()>();
if v == null goto label;
v = virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.messaging.support.MessageHeaderInitializer getHeaderInitializer()>();
interfaceinvoke v.<org.springframework.messaging.support.MessageHeaderInitializer: void initHeaders(org.springframework.messaging.support.MessageHeaderAccessor)>(v);
label:
return;
}
private void handleDisconnect(java.lang.String, java.security.Principal, org.springframework.messaging.Message)
{
byte[] v;
org.springframework.messaging.simp.broker.SubscriptionRegistry v;
org.springframework.messaging.simp.SimpMessageType v;
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
org.springframework.messaging.MessageChannel v;
org.springframework.messaging.MessageHeaders v;
org.springframework.messaging.simp.SimpMessageHeaderAccessor v;
java.security.Principal v;
java.util.Map v;
org.springframework.messaging.Message v, v;
java.lang.String v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
v := @parameter: java.lang.String;
v := @parameter: java.security.Principal;
v := @parameter: org.springframework.messaging.Message;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: java.util.Map sessions>;
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.messaging.simp.broker.SubscriptionRegistry subscriptionRegistry>;
interfaceinvoke v.<org.springframework.messaging.simp.broker.SubscriptionRegistry: void unregisterAllSubscriptions(java.lang.String)>(v);
v = <org.springframework.messaging.simp.SimpMessageType: org.springframework.messaging.simp.SimpMessageType DISCONNECT_ACK>;
v = staticinvoke <org.springframework.messaging.simp.SimpMessageHeaderAccessor: org.springframework.messaging.simp.SimpMessageHeaderAccessor create(org.springframework.messaging.simp.SimpMessageType)>(v);
virtualinvoke v.<org.springframework.messaging.simp.SimpMessageHeaderAccessor: void setSessionId(java.lang.String)>(v);
virtualinvoke v.<org.springframework.messaging.simp.SimpMessageHeaderAccessor: void setUser(java.security.Principal)>(v);
if v == null goto label;
virtualinvoke v.<org.springframework.messaging.simp.SimpMessageHeaderAccessor: void setHeader(java.lang.String,java.lang.Object)>("simpDisconnectMessage", v);
label:
specialinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: void initHeaders(org.springframework.messaging.simp.SimpMessageHeaderAccessor)>(v);
v = <org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: byte[] EMPTY_PAYLOAD>;
v = virtualinvoke v.<org.springframework.messaging.simp.SimpMessageHeaderAccessor: 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);
v = virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.messaging.MessageChannel getClientOutboundChannel()>();
interfaceinvoke v.<org.springframework.messaging.MessageChannel: boolean send(org.springframework.messaging.Message)>(v);
return;
}
protected void sendMessageToSubscribers(java.lang.String, org.springframework.messaging.Message)
{
org.springframework.messaging.simp.SimpMessageHeaderAccessor v;
java.util.Map v, v, v;
boolean v, v, v, v, v;
org.springframework.messaging.simp.SimpMessageType v;
java.util.Set v;
org.springframework.messaging.MessageChannel v;
java.lang.Throwable v, v;
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
long v;
int v;
org.springframework.messaging.Message v, v;
java.lang.String v, v, v;
java.util.Iterator v, v;
org.springframework.messaging.simp.broker.SubscriptionRegistry v;
org.springframework.util.MultiValueMap v;
org.springframework.messaging.MessageHeaders v, v;
java.lang.Object v, v, v, v, v, v, v, v, v, v, v;
org.apache.commons.logging.Log v, v, v, v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
v := @parameter: java.lang.String;
v := @parameter: org.springframework.messaging.Message;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.messaging.simp.broker.SubscriptionRegistry subscriptionRegistry>;
v = interfaceinvoke v.<org.springframework.messaging.simp.broker.SubscriptionRegistry: org.springframework.util.MultiValueMap findSubscriptions(org.springframework.messaging.Message)>(v);
v = interfaceinvoke v.<org.springframework.util.MultiValueMap: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: 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.broker.SimpleBrokerMessageHandler: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.springframework.util.MultiValueMap: int size()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Broadcasting to \u sessions.");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = interfaceinvoke v.<org.springframework.util.MultiValueMap: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
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 = <org.springframework.messaging.simp.SimpMessageType: org.springframework.messaging.simp.SimpMessageType MESSAGE>;
v = staticinvoke <org.springframework.messaging.simp.SimpMessageHeaderAccessor: org.springframework.messaging.simp.SimpMessageHeaderAccessor create(org.springframework.messaging.simp.SimpMessageType)>(v);
specialinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: void initHeaders(org.springframework.messaging.simp.SimpMessageHeaderAccessor)>(v);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
virtualinvoke v.<org.springframework.messaging.simp.SimpMessageHeaderAccessor: void setSessionId(java.lang.String)>(v);
virtualinvoke v.<org.springframework.messaging.simp.SimpMessageHeaderAccessor: void setSubscriptionId(java.lang.String)>(v);
v = interfaceinvoke v.<org.springframework.messaging.Message: org.springframework.messaging.MessageHeaders getHeaders()>();
virtualinvoke v.<org.springframework.messaging.simp.SimpMessageHeaderAccessor: void copyHeadersIfAbsent(java.util.Map)>(v);
v = interfaceinvoke v.<org.springframework.messaging.Message: java.lang.Object getPayload()>();
v = virtualinvoke v.<org.springframework.messaging.simp.SimpMessageHeaderAccessor: 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);
label:
v = virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.messaging.MessageChannel getClientOutboundChannel()>();
interfaceinvoke v.<org.springframework.messaging.MessageChannel: boolean send(org.springframework.messaging.Message)>(v);
label:
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: java.util.Map sessions>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler$SessionInfo: void setLastWriteTime(long)>(v);
goto label;
label:
v := @caughtexception;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: 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.broker.SimpleBrokerMessageHandler: 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[])>("Failed to send \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void error(java.lang.Object,java.lang.Throwable)>(v, v);
label:
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: java.util.Map sessions>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler$SessionInfo: void setLastWriteTime(long)>(v);
goto label;
label:
v := @caughtexception;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: java.util.Map sessions>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
virtualinvoke v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler$SessionInfo: void setLastWriteTime(long)>(v);
label:
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public java.lang.String toString()
{
org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler v;
java.lang.String v;
org.springframework.messaging.simp.broker.SubscriptionRegistry v;
v := @this: org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler;
v = v.<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: org.springframework.messaging.simp.broker.SubscriptionRegistry subscriptionRegistry>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.springframework.messaging.simp.broker.SubscriptionRegistry)>(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[])>("SimpleBrokerMessageHandler [\u]");
return v;
}
static void <clinit>()
{
byte[] v;
v = newarray (byte)[0];
<org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler: byte[] EMPTY_PAYLOAD> = v;
return;
}
}