public class org.apache.activemq.transport.mqtt.MQTTProtocolConverter extends java.lang.Object
{
private static final org.slf4j.Logger LOG;
public static final java.lang.String QOS_PROPERTY_NAME;
public static final int V3_1;
public static final int V3_1_1;
public static final java.lang.String SINGLE_LEVEL_WILDCARD;
public static final java.lang.String MULTI_LEVEL_WILDCARD;
private static final org.apache.activemq.util.IdGenerator CONNECTION_ID_GENERATOR;
private static final org.fusesource.mqtt.codec.MQTTFrame PING_RESP_FRAME;
private static final double MQTT_KEEP_ALIVE_GRACE_PERIOD;
static final int DEFAULT_CACHE_SIZE;
private final org.apache.activemq.command.ConnectionId connectionId;
private final org.apache.activemq.command.SessionId sessionId;
private final org.apache.activemq.command.ProducerId producerId;
private final org.apache.activemq.util.LongSequenceGenerator publisherIdGenerator;
private final java.util.concurrent.ConcurrentMap resposeHandlers;
private final java.util.Map activeMQDestinationMap;
private final java.util.Map mqttTopicMap;
private final java.util.Map consumerAcks;
private final java.util.Map publisherRecs;
private final org.apache.activemq.transport.mqtt.MQTTTransport mqttTransport;
private final org.apache.activemq.broker.BrokerService brokerService;
private final java.lang.Object commnadIdMutex;
private int lastCommandId;
private final java.util.concurrent.atomic.AtomicBoolean connected;
private final org.apache.activemq.command.ConnectionInfo connectionInfo;
private org.fusesource.mqtt.codec.CONNECT connect;
private java.lang.String clientId;
private long defaultKeepAlive;
private int activeMQSubscriptionPrefetch;
private final org.apache.activemq.transport.mqtt.MQTTPacketIdGenerator packetIdGenerator;
private boolean publishDollarTopics;
public int version;
private final org.apache.activemq.util.FactoryFinder STRATAGY_FINDER;
private java.lang.String subscriptionStrategyName;
private org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy subsciptionStrategy;
java.util.concurrent.atomic.AtomicBoolean transportErrorHandled;
public void <init>(org.apache.activemq.transport.mqtt.MQTTTransport, org.apache.activemq.broker.BrokerService)
{
java.util.concurrent.atomic.AtomicBoolean v, v;
org.apache.activemq.command.ConnectionInfo v;
int v;
org.apache.activemq.util.FactoryFinder v;
java.lang.String v;
org.apache.activemq.transport.mqtt.MQTTPacketIdGenerator v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
org.apache.activemq.util.LRUCache v, v, v, v;
org.apache.activemq.broker.BrokerService v;
org.apache.activemq.command.ConnectionId v, v;
org.apache.activemq.command.SessionId v, v;
java.util.concurrent.ConcurrentHashMap v;
org.apache.activemq.command.ProducerId v;
org.apache.activemq.transport.mqtt.MQTTTransport v;
org.apache.activemq.util.LongSequenceGenerator v;
java.lang.Object v;
org.apache.activemq.util.IdGenerator v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: org.apache.activemq.transport.mqtt.MQTTTransport;
v := @parameter: org.apache.activemq.broker.BrokerService;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new org.apache.activemq.command.ConnectionId;
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.util.IdGenerator CONNECTION_ID_GENERATOR>;
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);
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionId connectionId> = v;
v = new org.apache.activemq.command.SessionId;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionId connectionId>;
specialinvoke v.<org.apache.activemq.command.SessionId: void <init>(org.apache.activemq.command.ConnectionId,long)>(v, -1L);
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.SessionId sessionId> = v;
v = new org.apache.activemq.command.ProducerId;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.SessionId sessionId>;
specialinvoke v.<org.apache.activemq.command.ProducerId: void <init>(org.apache.activemq.command.SessionId,long)>(v, 1L);
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ProducerId producerId> = v;
v = new org.apache.activemq.util.LongSequenceGenerator;
specialinvoke v.<org.apache.activemq.util.LongSequenceGenerator: void <init>()>();
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.util.LongSequenceGenerator publisherIdGenerator> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.concurrent.ConcurrentMap resposeHandlers> = v;
v = new org.apache.activemq.util.LRUCache;
specialinvoke v.<org.apache.activemq.util.LRUCache: void <init>(int)>(5000);
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.Map activeMQDestinationMap> = v;
v = new org.apache.activemq.util.LRUCache;
specialinvoke v.<org.apache.activemq.util.LRUCache: void <init>(int)>(5000);
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.Map mqttTopicMap> = v;
v = new org.apache.activemq.util.LRUCache;
specialinvoke v.<org.apache.activemq.util.LRUCache: void <init>(int)>(5000);
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.Map consumerAcks> = v;
v = new org.apache.activemq.util.LRUCache;
specialinvoke v.<org.apache.activemq.util.LRUCache: void <init>(int)>(5000);
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.Map publisherRecs> = v;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.Object commnadIdMutex> = v;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.concurrent.atomic.AtomicBoolean connected> = v;
v = new org.apache.activemq.command.ConnectionInfo;
specialinvoke v.<org.apache.activemq.command.ConnectionInfo: void <init>()>();
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionInfo connectionInfo> = v;
v = (int) -1;
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: int activeMQSubscriptionPrefetch> = v;
v = new org.apache.activemq.util.FactoryFinder;
specialinvoke v.<org.apache.activemq.util.FactoryFinder: void <init>(java.lang.String)>("META-INF/services/org/apache/activemq/transport/strategies/");
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.util.FactoryFinder STRATAGY_FINDER> = v;
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String subscriptionStrategyName> = "mqtt-default-subscriptions";
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.concurrent.atomic.AtomicBoolean transportErrorHandled> = v;
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTTransport mqttTransport> = v;
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.broker.BrokerService brokerService> = v;
v = staticinvoke <org.apache.activemq.transport.mqtt.MQTTPacketIdGenerator: org.apache.activemq.transport.mqtt.MQTTPacketIdGenerator getMQTTPacketIdGenerator(org.apache.activemq.broker.BrokerService)>(v);
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTPacketIdGenerator packetIdGenerator> = v;
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: long defaultKeepAlive> = 0L;
return;
}
int generateCommandId()
{
java.lang.Throwable v;
int v, v;
java.lang.Object v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.Object commnadIdMutex>;
entermonitor v;
label:
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: int lastCommandId>;
v = v + 1;
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: int lastCommandId> = v;
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
public void sendToActiveMQ(org.apache.activemq.command.Command, org.apache.activemq.transport.mqtt.ResponseHandler)
{
org.apache.activemq.command.Response v;
java.lang.Integer v;
java.util.concurrent.ConcurrentMap v;
int v, v;
java.lang.String v, v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
boolean v, v, v;
org.slf4j.Logger v, v;
org.apache.activemq.command.Command v;
java.io.IOException v, v;
org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.transport.mqtt.MQTTTransport v;
org.apache.activemq.transport.mqtt.ResponseHandler v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: org.apache.activemq.command.Command;
v := @parameter: org.apache.activemq.transport.mqtt.ResponseHandler;
v = v instanceof org.apache.activemq.command.ActiveMQMessage;
if v == 0 goto label;
label:
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: boolean getPublishDollarTopics()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy findSubscriptionStrategy()>();
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = interfaceinvoke v.<org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy: boolean isControlTopic(org.apache.activemq.command.ActiveMQDestination)>(v);
if v == 0 goto label;
if v == null goto label;
label:
v = new org.apache.activemq.command.Response;
specialinvoke v.<org.apache.activemq.command.Response: void <init>()>();
interfaceinvoke v.<org.apache.activemq.transport.mqtt.ResponseHandler: void onResponse(org.apache.activemq.transport.mqtt.MQTTProtocolConverter,org.apache.activemq.command.Response)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.Command)>(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 command \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>(v, v);
label:
return;
label:
v := @caughtexception;
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.Command)>(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 command \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>(v, v);
label:
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: int generateCommandId()>();
interfaceinvoke v.<org.apache.activemq.command.Command: void setCommandId(int)>(v);
if v == null goto label;
interfaceinvoke v.<org.apache.activemq.command.Command: void setResponseRequired(boolean)>(1);
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.concurrent.ConcurrentMap resposeHandlers>;
v = interfaceinvoke v.<org.apache.activemq.command.Command: int getCommandId()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTTransport getMQTTTransport()>();
interfaceinvoke v.<org.apache.activemq.transport.mqtt.MQTTTransport: void sendToActiveMQ(org.apache.activemq.command.Command)>(v);
return;
catch java.io.IOException from label to label with label;
catch java.io.IOException from label to label with label;
}
void sendToMQTT(org.fusesource.mqtt.codec.MQTTFrame)
{
org.fusesource.mqtt.codec.MQTTFrame v;
org.apache.activemq.transport.mqtt.MQTTTransport v;
org.slf4j.Logger v;
java.io.IOException v;
java.lang.String v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: org.fusesource.mqtt.codec.MQTTFrame;
label:
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTTransport mqttTransport>;
interfaceinvoke v.<org.apache.activemq.transport.mqtt.MQTTTransport: void sendToMQTT(org.fusesource.mqtt.codec.MQTTFrame)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.fusesource.mqtt.codec.MQTTFrame)>(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 frame \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>(v, v);
label:
return;
catch java.io.IOException from label to label with label;
}
public void onMQTTCommand(org.fusesource.mqtt.codec.MQTTFrame) throws java.io.IOException, javax.jms.JMSException
{
java.lang.Integer v;
byte v, v;
org.fusesource.mqtt.codec.PUBCOMP v, v;
org.fusesource.mqtt.codec.PUBREL v, v;
org.fusesource.mqtt.codec.PUBLISH v, v;
org.fusesource.mqtt.codec.PUBREC v, v;
org.fusesource.mqtt.codec.PUBACK v, v;
org.apache.activemq.transport.mqtt.MQTTProtocolException v;
org.fusesource.mqtt.codec.CONNECT v, v;
org.fusesource.mqtt.codec.UNSUBSCRIBE v, v;
int v;
java.lang.String v, v, v, v, v, v, v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
org.fusesource.mqtt.codec.MQTTFrame v, v;
org.fusesource.mqtt.codec.SUBSCRIBE v, v;
org.slf4j.Logger v, v, v, v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: org.fusesource.mqtt.codec.MQTTFrame;
v = virtualinvoke v.<org.fusesource.mqtt.codec.MQTTFrame: byte messageType()>();
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;
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;
default: goto label;
};
label:
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String getClientId()>();
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[])>("Received a ping from client: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void checkConnected()>();
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.fusesource.mqtt.codec.MQTTFrame PING_RESP_FRAME>;
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void sendToMQTT(org.fusesource.mqtt.codec.MQTTFrame)>(v);
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String getClientId()>();
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[])>("Sent Ping Response to \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
goto label;
label:
v = new org.fusesource.mqtt.codec.CONNECT;
specialinvoke v.<org.fusesource.mqtt.codec.CONNECT: void <init>()>();
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: org.fusesource.mqtt.codec.CONNECT decode(org.fusesource.mqtt.codec.MQTTFrame)>(v);
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void onMQTTConnect(org.fusesource.mqtt.codec.CONNECT)>(v);
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String getClientId()>();
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: int version()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("MQTT Client {} connected. (version: {})", v, v);
goto label;
label:
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String getClientId()>();
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("MQTT Client {} disconnecting", v);
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void onMQTTDisconnect()>();
goto label;
label:
v = new org.fusesource.mqtt.codec.SUBSCRIBE;
specialinvoke v.<org.fusesource.mqtt.codec.SUBSCRIBE: void <init>()>();
v = virtualinvoke v.<org.fusesource.mqtt.codec.SUBSCRIBE: org.fusesource.mqtt.codec.SUBSCRIBE decode(org.fusesource.mqtt.codec.MQTTFrame)>(v);
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void onSubscribe(org.fusesource.mqtt.codec.SUBSCRIBE)>(v);
goto label;
label:
v = new org.fusesource.mqtt.codec.UNSUBSCRIBE;
specialinvoke v.<org.fusesource.mqtt.codec.UNSUBSCRIBE: void <init>()>();
v = virtualinvoke v.<org.fusesource.mqtt.codec.UNSUBSCRIBE: org.fusesource.mqtt.codec.UNSUBSCRIBE decode(org.fusesource.mqtt.codec.MQTTFrame)>(v);
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void onUnSubscribe(org.fusesource.mqtt.codec.UNSUBSCRIBE)>(v);
goto label;
label:
v = new org.fusesource.mqtt.codec.PUBLISH;
specialinvoke v.<org.fusesource.mqtt.codec.PUBLISH: void <init>()>();
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.mqtt.codec.PUBLISH decode(org.fusesource.mqtt.codec.MQTTFrame)>(v);
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void onMQTTPublish(org.fusesource.mqtt.codec.PUBLISH)>(v);
goto label;
label:
v = new org.fusesource.mqtt.codec.PUBACK;
specialinvoke v.<org.fusesource.mqtt.codec.PUBACK: void <init>()>();
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBACK: org.fusesource.mqtt.codec.PUBACK decode(org.fusesource.mqtt.codec.MQTTFrame)>(v);
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void onMQTTPubAck(org.fusesource.mqtt.codec.PUBACK)>(v);
goto label;
label:
v = new org.fusesource.mqtt.codec.PUBREC;
specialinvoke v.<org.fusesource.mqtt.codec.PUBREC: void <init>()>();
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBREC: org.fusesource.mqtt.codec.PUBREC decode(org.fusesource.mqtt.codec.MQTTFrame)>(v);
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void onMQTTPubRec(org.fusesource.mqtt.codec.PUBREC)>(v);
goto label;
label:
v = new org.fusesource.mqtt.codec.PUBREL;
specialinvoke v.<org.fusesource.mqtt.codec.PUBREL: void <init>()>();
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBREL: org.fusesource.mqtt.codec.PUBREL decode(org.fusesource.mqtt.codec.MQTTFrame)>(v);
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void onMQTTPubRel(org.fusesource.mqtt.codec.PUBREL)>(v);
goto label;
label:
v = new org.fusesource.mqtt.codec.PUBCOMP;
specialinvoke v.<org.fusesource.mqtt.codec.PUBCOMP: void <init>()>();
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBCOMP: org.fusesource.mqtt.codec.PUBCOMP decode(org.fusesource.mqtt.codec.MQTTFrame)>(v);
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void onMQTTPubComp(org.fusesource.mqtt.codec.PUBCOMP)>(v);
goto label;
label:
v = new org.apache.activemq.transport.mqtt.MQTTProtocolException;
v = virtualinvoke v.<org.fusesource.mqtt.codec.MQTTFrame: byte messageType()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (byte)>(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[])>("Unknown MQTTFrame type: \u0001");
specialinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolException: void <init>(java.lang.String,boolean)>(v, 1);
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void handleException(java.lang.Throwable,org.fusesource.mqtt.codec.MQTTFrame)>(v, v);
label:
return;
}
void onMQTTConnect(org.fusesource.mqtt.codec.CONNECT) throws org.apache.activemq.transport.mqtt.MQTTProtocolException
{
org.fusesource.mqtt.codec.CONNACK$Code v, v;
boolean v, v, v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter$1 v;
org.apache.activemq.transport.mqtt.MQTTTransport v, v, v, v, v, v, v, v;
java.security.cert.X509Certificate[] v;
org.apache.activemq.transport.mqtt.MQTTProtocolException v;
org.fusesource.mqtt.codec.CONNECT v;
java.util.concurrent.atomic.AtomicBoolean v;
short v;
org.apache.activemq.command.ConnectionInfo v, v, v, v, v, v, v, v, v;
org.fusesource.mqtt.codec.CONNACK v, v;
int v, v, v, v;
java.lang.String v, v, v, v, v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
org.fusesource.mqtt.codec.MQTTFrame v, v;
org.apache.activemq.command.ConnectionId v, v;
java.io.IOException v, v, v, v, v, v, v;
org.fusesource.hawtbuf.UTF8Buffer v, v, v, v, v, v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: org.fusesource.mqtt.codec.CONNECT;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.concurrent.atomic.AtomicBoolean connected>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v == 0 goto label;
v = new org.apache.activemq.transport.mqtt.MQTTProtocolException;
specialinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolException: void <init>(java.lang.String)>("Already connected.");
throw v;
label:
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.fusesource.mqtt.codec.CONNECT connect> = v;
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: int version()>();
if v < 3 goto label;
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: int version()>();
if v <= 4 goto label;
label:
v = new org.fusesource.mqtt.codec.CONNACK;
specialinvoke v.<org.fusesource.mqtt.codec.CONNACK: void <init>()>();
v = <org.fusesource.mqtt.codec.CONNACK$Code: org.fusesource.mqtt.codec.CONNACK$Code CONNECTION_REFUSED_UNACCEPTED_PROTOCOL_VERSION>;
virtualinvoke v.<org.fusesource.mqtt.codec.CONNACK: org.fusesource.mqtt.codec.CONNACK code(org.fusesource.mqtt.codec.CONNACK$Code)>(v);
label:
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTTransport getMQTTTransport()>();
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNACK: org.fusesource.mqtt.codec.MQTTFrame encode()>();
interfaceinvoke v.<org.apache.activemq.transport.mqtt.MQTTTransport: void sendToMQTT(org.fusesource.mqtt.codec.MQTTFrame)>(v);
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTTransport getMQTTTransport()>();
v = staticinvoke <org.apache.activemq.util.IOExceptionSupport: java.io.IOException create(java.lang.String,java.lang.Exception)>("Unsupported or invalid protocol version", null);
interfaceinvoke v.<org.apache.activemq.transport.mqtt.MQTTTransport: void onException(java.io.IOException)>(v);
label:
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTTransport getMQTTTransport()>();
v = staticinvoke <org.apache.activemq.util.IOExceptionSupport: java.io.IOException create(java.lang.Exception)>(v);
interfaceinvoke v.<org.apache.activemq.transport.mqtt.MQTTTransport: void onException(java.io.IOException)>(v);
label:
return;
label:
v = "";
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: org.fusesource.hawtbuf.UTF8Buffer clientId()>();
if v == null goto label;
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: org.fusesource.hawtbuf.UTF8Buffer clientId()>();
v = virtualinvoke v.<org.fusesource.hawtbuf.UTF8Buffer: java.lang.String toString()>();
label:
v = null;
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: org.fusesource.hawtbuf.UTF8Buffer userName()>();
if v == null goto label;
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: org.fusesource.hawtbuf.UTF8Buffer userName()>();
v = virtualinvoke v.<org.fusesource.hawtbuf.UTF8Buffer: java.lang.String toString()>();
label:
v = null;
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: org.fusesource.hawtbuf.UTF8Buffer password()>();
if v == null goto label;
if v != null goto label;
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: int version()>();
if v == 3 goto label;
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTTransport getMQTTTransport()>();
v = staticinvoke <org.apache.activemq.util.IOExceptionSupport: java.io.IOException create(java.lang.String,java.lang.Exception)>("Password given without a user name", null);
interfaceinvoke v.<org.apache.activemq.transport.mqtt.MQTTTransport: void onException(java.io.IOException)>(v);
return;
label:
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: org.fusesource.hawtbuf.UTF8Buffer password()>();
v = virtualinvoke v.<org.fusesource.hawtbuf.UTF8Buffer: java.lang.String toString()>();
label:
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: int version()>();
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: int version> = v;
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: short keepAlive()>();
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void configureInactivityMonitor(short)>(v);
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionInfo connectionInfo>;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionId connectionId>;
virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: void setConnectionId(org.apache.activemq.command.ConnectionId)>(v);
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionInfo connectionInfo>;
virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: void setClientId(java.lang.String)>(v);
goto label;
label:
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: boolean cleanSession()>();
if v != 0 goto label;
v = new org.fusesource.mqtt.codec.CONNACK;
specialinvoke v.<org.fusesource.mqtt.codec.CONNACK: void <init>()>();
v = <org.fusesource.mqtt.codec.CONNACK$Code: org.fusesource.mqtt.codec.CONNACK$Code CONNECTION_REFUSED_IDENTIFIER_REJECTED>;
virtualinvoke v.<org.fusesource.mqtt.codec.CONNACK: org.fusesource.mqtt.codec.CONNACK code(org.fusesource.mqtt.codec.CONNACK$Code)>(v);
label:
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTTransport getMQTTTransport()>();
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNACK: org.fusesource.mqtt.codec.MQTTFrame encode()>();
interfaceinvoke v.<org.apache.activemq.transport.mqtt.MQTTTransport: void sendToMQTT(org.fusesource.mqtt.codec.MQTTFrame)>(v);
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTTransport getMQTTTransport()>();
v = staticinvoke <org.apache.activemq.util.IOExceptionSupport: java.io.IOException create(java.lang.String,java.lang.Exception)>("Invalid Client ID", null);
interfaceinvoke v.<org.apache.activemq.transport.mqtt.MQTTTransport: void onException(java.io.IOException)>(v);
label:
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTTransport getMQTTTransport()>();
v = staticinvoke <org.apache.activemq.util.IOExceptionSupport: java.io.IOException create(java.lang.Exception)>(v);
interfaceinvoke v.<org.apache.activemq.transport.mqtt.MQTTTransport: void onException(java.io.IOException)>(v);
label:
return;
label:
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionInfo connectionInfo>;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionInfo connectionInfo>;
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()>();
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[])>("\u0001");
virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: void setClientId(java.lang.String)>(v);
label:
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionInfo connectionInfo>;
virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: void setResponseRequired(boolean)>(1);
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionInfo connectionInfo>;
virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: void setUserName(java.lang.String)>(v);
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionInfo connectionInfo>;
virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: void setPassword(java.lang.String)>(v);
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionInfo connectionInfo>;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTTransport mqttTransport>;
v = interfaceinvoke v.<org.apache.activemq.transport.mqtt.MQTTTransport: java.security.cert.X509Certificate[] getPeerCertificates()>();
virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: void setTransportContext(java.lang.Object)>(v);
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionInfo connectionInfo>;
v = new org.apache.activemq.transport.mqtt.MQTTProtocolConverter$1;
specialinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter$1: void <init>(org.apache.activemq.transport.mqtt.MQTTProtocolConverter,org.fusesource.mqtt.codec.CONNECT)>(v, v);
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void sendToActiveMQ(org.apache.activemq.command.Command,org.apache.activemq.transport.mqtt.ResponseHandler)>(v, v);
return;
catch java.io.IOException from label to label with label;
catch java.io.IOException from label to label with label;
}
void onMQTTDisconnect() throws org.apache.activemq.transport.mqtt.MQTTProtocolException
{
org.apache.activemq.command.ConnectionInfo v;
org.apache.activemq.command.ShutdownInfo v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
org.apache.activemq.command.RemoveInfo v;
boolean v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.concurrent.atomic.AtomicBoolean connected>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(1, 0);
if v == 0 goto label;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionInfo connectionInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: org.apache.activemq.command.RemoveInfo createRemoveCommand()>();
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void sendToActiveMQ(org.apache.activemq.command.Command,org.apache.activemq.transport.mqtt.ResponseHandler)>(v, null);
v = new org.apache.activemq.command.ShutdownInfo;
specialinvoke v.<org.apache.activemq.command.ShutdownInfo: void <init>()>();
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void sendToActiveMQ(org.apache.activemq.command.Command,org.apache.activemq.transport.mqtt.ResponseHandler)>(v, null);
label:
specialinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void stopTransport()>();
return;
}
void onSubscribe(org.fusesource.mqtt.codec.SUBSCRIBE) throws org.apache.activemq.transport.mqtt.MQTTProtocolException
{
byte[] v;
org.fusesource.mqtt.client.Topic v, v;
byte v;
java.lang.Short v;
org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy v;
org.apache.activemq.transport.mqtt.MQTTTransport v;
org.fusesource.mqtt.codec.SUBACK v;
java.lang.Object[] v;
org.apache.activemq.transport.mqtt.MQTTProtocolException v, v;
short v, v;
org.apache.activemq.command.ConnectionInfo v;
int v, v, v;
java.lang.String v, v, v, v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
org.fusesource.mqtt.codec.MQTTFrame v;
org.fusesource.mqtt.codec.SUBSCRIBE v;
org.slf4j.Logger v, v, v;
org.apache.activemq.command.ConnectionId v;
java.io.IOException v, v;
org.fusesource.hawtbuf.UTF8Buffer v;
org.fusesource.mqtt.client.Topic[] v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: org.fusesource.mqtt.codec.SUBSCRIBE;
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void checkConnected()>();
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = virtualinvoke v.<org.fusesource.mqtt.codec.SUBSCRIBE: short messageId()>();
v = staticinvoke <java.lang.Short: java.lang.Short valueOf(short)>(v);
v[0] = v;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String clientId>;
v[1] = v;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionInfo connectionInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: org.apache.activemq.command.ConnectionId getConnectionId()>();
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("MQTT SUBSCRIBE message:{} client:{} connection:{}", v);
v = virtualinvoke v.<org.fusesource.mqtt.codec.SUBSCRIBE: org.fusesource.mqtt.client.Topic[] topics()>();
if v == null goto label;
v = lengthof v;
v = newarray (byte)[v];
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<org.fusesource.mqtt.client.Topic: org.fusesource.hawtbuf.UTF8Buffer name()>();
v = virtualinvoke v.<org.fusesource.hawtbuf.UTF8Buffer: java.lang.String toString()>();
staticinvoke <org.apache.activemq.transport.mqtt.MQTTProtocolSupport: void validate(java.lang.String)>(v);
label:
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy findSubscriptionStrategy()>();
v = v[v];
v = interfaceinvoke v.<org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy: byte onSubscribe(org.fusesource.mqtt.client.Topic)>(v);
v[v] = v;
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.activemq.transport.mqtt.MQTTProtocolException;
specialinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolException: void <init>(java.lang.String,boolean,java.lang.Throwable)>("Failed to process subscription request", 1, v);
throw v;
label:
v = v + 1;
goto label;
label:
v = new org.fusesource.mqtt.codec.SUBACK;
specialinvoke v.<org.fusesource.mqtt.codec.SUBACK: void <init>()>();
v = virtualinvoke v.<org.fusesource.mqtt.codec.SUBSCRIBE: short messageId()>();
virtualinvoke v.<org.fusesource.mqtt.codec.SUBACK: org.fusesource.mqtt.codec.SUBACK messageId(short)>(v);
virtualinvoke v.<org.fusesource.mqtt.codec.SUBACK: org.fusesource.mqtt.codec.SUBACK grantedQos(byte[])>(v);
label:
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTTransport getMQTTTransport()>();
v = virtualinvoke v.<org.fusesource.mqtt.codec.SUBACK: org.fusesource.mqtt.codec.MQTTFrame encode()>();
interfaceinvoke v.<org.apache.activemq.transport.mqtt.MQTTTransport: void sendToMQTT(org.fusesource.mqtt.codec.MQTTFrame)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.fusesource.mqtt.codec.SUBSCRIBE)>(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[])>("Couldn\'t send SUBACK for \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>(v, v);
goto label;
label:
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.fusesource.mqtt.codec.SUBSCRIBE)>(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 topics defined for Subscription \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
v = new org.apache.activemq.transport.mqtt.MQTTProtocolException;
specialinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolException: void <init>(java.lang.String)>("SUBSCRIBE command received with no topic filter");
throw v;
label:
return;
catch java.io.IOException from label to label with label;
catch java.io.IOException from label to label with label;
}
public void onUnSubscribe(org.fusesource.mqtt.codec.UNSUBSCRIBE) throws org.apache.activemq.transport.mqtt.MQTTProtocolException
{
org.apache.activemq.transport.mqtt.MQTTProtocolException v, v, v;
org.fusesource.mqtt.client.QoS v, v;
short v;
org.fusesource.mqtt.codec.UNSUBSCRIBE v;
int v, v, v;
java.lang.String v, v, v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
boolean v;
org.fusesource.hawtbuf.UTF8Buffer[] v;
org.fusesource.mqtt.codec.MQTTFrame v;
org.slf4j.Logger v;
org.fusesource.mqtt.codec.UNSUBACK v;
java.io.IOException v;
java.lang.Exception v;
org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy v;
org.fusesource.hawtbuf.UTF8Buffer v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: org.fusesource.mqtt.codec.UNSUBSCRIBE;
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void checkConnected()>();
v = virtualinvoke v.<org.fusesource.mqtt.codec.UNSUBSCRIBE: org.fusesource.mqtt.client.QoS qos()>();
v = <org.fusesource.mqtt.client.QoS: org.fusesource.mqtt.client.QoS AT_LEAST_ONCE>;
if v == v goto label;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: int version>;
if v != 3 goto label;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: boolean publishDollarTopics>;
if v == 1 goto label;
label:
v = new org.apache.activemq.transport.mqtt.MQTTProtocolException;
v = new java.lang.Exception;
specialinvoke v.<java.lang.Exception: void <init>(java.lang.String)>("UNSUBSCRIBE frame not properly formatted, QoS");
specialinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolException: void <init>(java.lang.String,boolean,java.lang.Throwable)>("Failed to process unsubscribe request", 1, v);
throw v;
label:
v = virtualinvoke v.<org.fusesource.mqtt.codec.UNSUBSCRIBE: org.fusesource.hawtbuf.UTF8Buffer[] topics()>();
if v == null goto label;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<org.fusesource.hawtbuf.UTF8Buffer: java.lang.String toString()>();
staticinvoke <org.apache.activemq.transport.mqtt.MQTTProtocolSupport: void validate(java.lang.String)>(v);
label:
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy findSubscriptionStrategy()>();
v = virtualinvoke v.<org.fusesource.hawtbuf.UTF8Buffer: java.lang.String toString()>();
interfaceinvoke v.<org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy: void onUnSubscribe(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.activemq.transport.mqtt.MQTTProtocolException;
specialinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolException: void <init>(java.lang.String,boolean,java.lang.Throwable)>("Failed to process unsubscribe request", 1, v);
throw v;
label:
v = v + 1;
goto label;
label:
v = new org.fusesource.mqtt.codec.UNSUBACK;
specialinvoke v.<org.fusesource.mqtt.codec.UNSUBACK: void <init>()>();
v = virtualinvoke v.<org.fusesource.mqtt.codec.UNSUBSCRIBE: short messageId()>();
virtualinvoke v.<org.fusesource.mqtt.codec.UNSUBACK: org.fusesource.mqtt.codec.UNSUBACK messageId(short)>(v);
v = virtualinvoke v.<org.fusesource.mqtt.codec.UNSUBACK: org.fusesource.mqtt.codec.MQTTFrame encode()>();
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void sendToMQTT(org.fusesource.mqtt.codec.MQTTFrame)>(v);
goto label;
label:
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.fusesource.mqtt.codec.UNSUBSCRIBE)>(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 topics defined for Subscription \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
v = new org.apache.activemq.transport.mqtt.MQTTProtocolException;
specialinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolException: void <init>(java.lang.String)>("UNSUBSCRIBE command received with no topic filter");
throw v;
label:
return;
catch java.io.IOException from label to label with label;
}
public void onActiveMQCommand(org.apache.activemq.command.Command) throws java.lang.Exception
{
java.lang.Integer v;
org.apache.activemq.command.ConsumerId v;
org.fusesource.mqtt.client.QoS v;
org.apache.activemq.command.Message v, v;
byte v;
int[] v;
java.lang.Short v, v;
java.util.Map v, v;
boolean v, v, v, v, v, v, v, v;
org.apache.activemq.transport.mqtt.MQTTSubscription v;
org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy v;
org.fusesource.mqtt.codec.PUBLISH v;
org.apache.activemq.transport.mqtt.MQTTTransport v, v;
java.lang.Throwable v, v, v;
org.apache.activemq.command.Response v;
java.lang.Object[] v;
java.util.concurrent.ConcurrentMap v;
short v, v;
org.apache.activemq.command.ConnectionInfo v;
int v, v, v;
java.lang.String v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
org.fusesource.mqtt.codec.MQTTFrame v;
org.apache.activemq.command.MessageAck v;
org.slf4j.Logger v, v;
org.apache.activemq.command.Command v;
org.apache.activemq.command.ConnectionId v;
java.lang.Object v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: org.apache.activemq.command.Command;
v = interfaceinvoke v.<org.apache.activemq.command.Command: boolean isResponse()>();
if v == 0 goto label;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.concurrent.ConcurrentMap resposeHandlers>;
v = virtualinvoke v.<org.apache.activemq.command.Response: int getCorrelationId()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object remove(java.lang.Object)>(v);
if v == null goto label;
interfaceinvoke v.<org.apache.activemq.transport.mqtt.ResponseHandler: void onResponse(org.apache.activemq.transport.mqtt.MQTTProtocolConverter,org.apache.activemq.command.Response)>(v, v);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.command.Response: boolean isException()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ExceptionResponse: java.lang.Throwable getException()>();
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void handleException(java.lang.Throwable,org.fusesource.mqtt.codec.MQTTFrame)>(v, null);
goto label;
label:
v = interfaceinvoke v.<org.apache.activemq.command.Command: boolean isMessageDispatch()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy findSubscriptionStrategy()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = interfaceinvoke v.<org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy: org.apache.activemq.transport.mqtt.MQTTSubscription getSubscription(org.apache.activemq.command.ConsumerId)>(v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTSubscription: org.apache.activemq.command.MessageAck createMessageAck(org.apache.activemq.command.MessageDispatch)>(v);
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTSubscription: org.fusesource.mqtt.codec.PUBLISH createPublish(org.apache.activemq.command.ActiveMQMessage)>(v);
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter$3: int[] $SwitchMap$org$fusesource$mqtt$client$QoS>;
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.mqtt.client.QoS qos()>();
v = virtualinvoke v.<org.fusesource.mqtt.client.QoS: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: boolean dup()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
v = virtualinvoke v.<org.apache.activemq.command.Message: boolean isRedelivered()>();
label:
virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.mqtt.codec.PUBLISH dup(boolean)>(v);
label:
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTSubscription: boolean expectAck(org.fusesource.mqtt.codec.PUBLISH)>(v);
if v == 0 goto label;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.Map consumerAcks>;
entermonitor v;
label:
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.Map consumerAcks>;
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: short messageId()>();
v = staticinvoke <java.lang.Short: java.lang.Short valueOf(short)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: short messageId()>();
v = staticinvoke <java.lang.Short: java.lang.Short valueOf(short)>(v);
v[0] = v;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String clientId>;
v[1] = v;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionInfo connectionInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: org.apache.activemq.command.ConnectionId getConnectionId()>();
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("MQTT Snd PUBLISH message:{} client:{} connection:{}", v);
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTTransport getMQTTTransport()>();
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.mqtt.codec.MQTTFrame encode()>();
interfaceinvoke v.<org.apache.activemq.transport.mqtt.MQTTTransport: void sendToMQTT(org.fusesource.mqtt.codec.MQTTFrame)>(v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTSubscription: boolean expectAck(org.fusesource.mqtt.codec.PUBLISH)>(v);
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTTransport getMQTTTransport()>();
interfaceinvoke v.<org.apache.activemq.transport.mqtt.MQTTTransport: void sendToActiveMQ(org.apache.activemq.command.Command)>(v);
goto label;
label:
v = interfaceinvoke v.<org.apache.activemq.command.Command: byte getDataStructureType()>();
if v != 16 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ConnectionError: java.lang.Throwable getException()>();
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void handleException(java.lang.Throwable,org.fusesource.mqtt.codec.MQTTFrame)>(v, null);
goto label;
label:
v = interfaceinvoke v.<org.apache.activemq.command.Command: boolean isBrokerInfo()>();
if v != 0 goto label;
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Do not know how to process ActiveMQ Command {}", v);
label:
return;
catch java.lang.Throwable from label to label with label;
}
void onMQTTPublish(org.fusesource.mqtt.codec.PUBLISH) throws java.io.IOException, javax.jms.JMSException
{
java.lang.Object[] v;
org.apache.activemq.command.ActiveMQMessage v;
short v;
org.apache.activemq.command.ConnectionInfo v;
java.lang.Short v;
java.lang.String v, v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
boolean v;
org.slf4j.Logger v;
org.apache.activemq.command.ConnectionId v;
java.io.IOException v;
org.fusesource.mqtt.codec.PUBLISH v;
org.apache.activemq.command.ProducerId v;
org.apache.activemq.transport.mqtt.MQTTTransport v;
org.apache.activemq.transport.mqtt.ResponseHandler v;
org.fusesource.hawtbuf.UTF8Buffer v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: org.fusesource.mqtt.codec.PUBLISH;
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void checkConnected()>();
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: short messageId()>();
v = staticinvoke <java.lang.Short: java.lang.Short valueOf(short)>(v);
v[0] = v;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String clientId>;
v[1] = v;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionInfo connectionInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: org.apache.activemq.command.ConnectionId getConnectionId()>();
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("MQTT Rcv PUBLISH message:{} client:{} connection:{}", v);
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.hawtbuf.UTF8Buffer topicName()>();
v = virtualinvoke v.<org.fusesource.hawtbuf.UTF8Buffer: java.lang.String toString()>();
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: boolean containsMqttWildcard(java.lang.String)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTTransport getMQTTTransport()>();
v = staticinvoke <org.apache.activemq.util.IOExceptionSupport: java.io.IOException create(java.lang.String,java.lang.Exception)>("The topic name must not contain wildcard characters.", null);
interfaceinvoke v.<org.apache.activemq.transport.mqtt.MQTTTransport: void onException(java.io.IOException)>(v);
return;
label:
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ActiveMQMessage convertMessage(org.fusesource.mqtt.codec.PUBLISH)>(v);
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ProducerId producerId>;
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setProducerId(org.apache.activemq.command.ProducerId)>(v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void onSend()>();
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.ResponseHandler createResponseHandler(org.fusesource.mqtt.codec.PUBLISH)>(v);
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void sendToActiveMQ(org.apache.activemq.command.Command,org.apache.activemq.transport.mqtt.ResponseHandler)>(v, v);
return;
}
void onMQTTPubAck(org.fusesource.mqtt.codec.PUBACK)
{
java.lang.Throwable v;
java.lang.Object[] v;
short v;
org.apache.activemq.command.ConnectionInfo v;
java.lang.Short v, v;
java.util.Map v, v;
java.lang.String v, v;
org.apache.activemq.transport.mqtt.MQTTPacketIdGenerator v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
org.slf4j.Logger v;
org.apache.activemq.command.ConnectionId v;
org.apache.activemq.transport.mqtt.MQTTTransport v;
org.fusesource.mqtt.codec.PUBACK v;
java.lang.Object v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: org.fusesource.mqtt.codec.PUBACK;
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBACK: short messageId()>();
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = staticinvoke <java.lang.Short: java.lang.Short valueOf(short)>(v);
v[0] = v;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String clientId>;
v[1] = v;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionInfo connectionInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: org.apache.activemq.command.ConnectionId getConnectionId()>();
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("MQTT Rcv PUBACK message:{} client:{} connection:{}", v);
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTPacketIdGenerator packetIdGenerator>;
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String getClientId()>();
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTPacketIdGenerator: void ackPacketId(java.lang.String,short)>(v, v);
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.Map consumerAcks>;
entermonitor v;
label:
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.Map consumerAcks>;
v = staticinvoke <java.lang.Short: java.lang.Short valueOf(short)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTTransport getMQTTTransport()>();
interfaceinvoke v.<org.apache.activemq.transport.mqtt.MQTTTransport: void sendToActiveMQ(org.apache.activemq.command.Command)>(v);
label:
return;
catch java.lang.Throwable from label to label with label;
}
void onMQTTPubRec(org.fusesource.mqtt.codec.PUBREC)
{
org.fusesource.mqtt.codec.MQTTFrame v;
org.fusesource.mqtt.codec.PUBREC v;
short v;
org.fusesource.mqtt.codec.PUBREL v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: org.fusesource.mqtt.codec.PUBREC;
v = new org.fusesource.mqtt.codec.PUBREL;
specialinvoke v.<org.fusesource.mqtt.codec.PUBREL: void <init>()>();
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBREC: short messageId()>();
virtualinvoke v.<org.fusesource.mqtt.codec.PUBREL: org.fusesource.mqtt.codec.PUBREL messageId(short)>(v);
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBREL: org.fusesource.mqtt.codec.MQTTFrame encode()>();
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void sendToMQTT(org.fusesource.mqtt.codec.MQTTFrame)>(v);
return;
}
void onMQTTPubRel(org.fusesource.mqtt.codec.PUBREL)
{
java.lang.Throwable v;
org.fusesource.mqtt.codec.MQTTFrame v;
org.slf4j.Logger v;
org.fusesource.mqtt.codec.PUBCOMP v;
org.fusesource.mqtt.codec.PUBREL v;
short v, v, v;
java.lang.Short v, v;
java.util.Map v, v;
java.lang.Object v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: org.fusesource.mqtt.codec.PUBREL;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.Map publisherRecs>;
entermonitor v;
label:
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.Map publisherRecs>;
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBREL: short messageId()>();
v = staticinvoke <java.lang.Short: java.lang.Short valueOf(short)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v != null goto label;
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBREL: short messageId()>();
v = staticinvoke <java.lang.Short: java.lang.Short valueOf(short)>(v);
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Unknown PUBREL: {} received", v);
label:
v = new org.fusesource.mqtt.codec.PUBCOMP;
specialinvoke v.<org.fusesource.mqtt.codec.PUBCOMP: void <init>()>();
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBREL: short messageId()>();
virtualinvoke v.<org.fusesource.mqtt.codec.PUBCOMP: org.fusesource.mqtt.codec.PUBCOMP messageId(short)>(v);
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBCOMP: org.fusesource.mqtt.codec.MQTTFrame encode()>();
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void sendToMQTT(org.fusesource.mqtt.codec.MQTTFrame)>(v);
return;
catch java.lang.Throwable from label to label with label;
}
void onMQTTPubComp(org.fusesource.mqtt.codec.PUBCOMP)
{
java.lang.Throwable v;
org.fusesource.mqtt.codec.PUBCOMP v;
org.apache.activemq.transport.mqtt.MQTTTransport v;
short v;
java.lang.Short v;
java.util.Map v, v;
java.lang.Object v;
java.lang.String v;
org.apache.activemq.transport.mqtt.MQTTPacketIdGenerator v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: org.fusesource.mqtt.codec.PUBCOMP;
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBCOMP: short messageId()>();
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTPacketIdGenerator packetIdGenerator>;
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String getClientId()>();
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTPacketIdGenerator: void ackPacketId(java.lang.String,short)>(v, v);
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.Map consumerAcks>;
entermonitor v;
label:
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.Map consumerAcks>;
v = staticinvoke <java.lang.Short: java.lang.Short valueOf(short)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTTransport getMQTTTransport()>();
interfaceinvoke v.<org.apache.activemq.transport.mqtt.MQTTTransport: void sendToActiveMQ(org.apache.activemq.command.Command)>(v);
label:
return;
catch java.lang.Throwable from label to label with label;
}
org.apache.activemq.command.ActiveMQMessage convertMessage(org.fusesource.mqtt.codec.PUBLISH) throws javax.jms.JMSException
{
byte[] v;
org.fusesource.mqtt.client.QoS v, v, v;
java.lang.Short v;
java.util.Map v, v, v;
boolean v, v;
org.apache.activemq.command.MessageId v, v;
javax.jms.JMSException v;
org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy v;
org.fusesource.mqtt.codec.PUBLISH v;
org.apache.activemq.util.LongSequenceGenerator v;
java.lang.Throwable v;
org.apache.activemq.command.ActiveMQBytesMessage v;
java.lang.Object[] v;
long v, v;
org.fusesource.hawtbuf.Buffer v, v, v;
short v;
org.apache.activemq.command.ConnectionInfo v;
int v, v, v;
java.lang.String v, v, v, v, v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
org.slf4j.Logger v;
org.apache.activemq.command.ConnectionId v;
java.io.IOException v;
org.apache.activemq.command.ProducerId v, v;
org.fusesource.hawtbuf.UTF8Buffer v, v, v;
java.lang.Object v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: org.fusesource.mqtt.codec.PUBLISH;
v = new org.apache.activemq.command.ActiveMQBytesMessage;
specialinvoke v.<org.apache.activemq.command.ActiveMQBytesMessage: void <init>()>();
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ProducerId producerId>;
virtualinvoke v.<org.apache.activemq.command.ActiveMQBytesMessage: void setProducerId(org.apache.activemq.command.ProducerId)>(v);
v = new org.apache.activemq.command.MessageId;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ProducerId producerId>;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.util.LongSequenceGenerator publisherIdGenerator>;
v = virtualinvoke v.<org.apache.activemq.util.LongSequenceGenerator: long getNextSequenceId()>();
specialinvoke v.<org.apache.activemq.command.MessageId: void <init>(org.apache.activemq.command.ProducerId,long)>(v, v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQBytesMessage: void setMessageId(org.apache.activemq.command.MessageId)>(v);
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[4];
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: short messageId()>();
v = staticinvoke <java.lang.Short: java.lang.Short valueOf(short)>(v);
v[0] = v;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String clientId>;
v[1] = v;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionInfo connectionInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: org.apache.activemq.command.ConnectionId getConnectionId()>();
v[2] = v;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQBytesMessage: org.apache.activemq.command.MessageId getMessageId()>();
v[3] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("MQTT-->ActiveMQ: MQTT_MSGID:{} client:{} connection:{} ActiveMQ_MSGID:{}", v);
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
virtualinvoke v.<org.apache.activemq.command.ActiveMQBytesMessage: void setTimestamp(long)>(v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQBytesMessage: void setPriority(byte)>(4);
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.mqtt.client.QoS qos()>();
v = <org.fusesource.mqtt.client.QoS: org.fusesource.mqtt.client.QoS AT_MOST_ONCE>;
if v == v goto label;
v = 1;
goto label;
label:
v = 0;
label:
virtualinvoke v.<org.apache.activemq.command.ActiveMQBytesMessage: void setPersistent(boolean)>(v);
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.mqtt.client.QoS qos()>();
v = virtualinvoke v.<org.fusesource.mqtt.client.QoS: int ordinal()>();
virtualinvoke v.<org.apache.activemq.command.ActiveMQBytesMessage: void setIntProperty(java.lang.String,int)>("ActiveMQ.MQTT.QoS", v);
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: boolean retain()>();
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.command.ActiveMQBytesMessage: void setBooleanProperty(java.lang.String,boolean)>("ActiveMQ.Retain", 1);
label:
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.Map activeMQDestinationMap>;
entermonitor v;
label:
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.Map activeMQDestinationMap>;
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.hawtbuf.UTF8Buffer topicName()>();
v = virtualinvoke v.<org.fusesource.hawtbuf.UTF8Buffer: java.lang.String toString()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.hawtbuf.UTF8Buffer topicName()>();
v = virtualinvoke v.<org.fusesource.hawtbuf.UTF8Buffer: java.lang.String toString()>();
v = staticinvoke <org.apache.activemq.transport.mqtt.MQTTProtocolSupport: java.lang.String convertMQTTToActiveMQ(java.lang.String)>(v);
label:
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy findSubscriptionStrategy()>();
v = interfaceinvoke v.<org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy: org.apache.activemq.command.ActiveMQDestination onSend(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <org.apache.activemq.util.JMSExceptionSupport: javax.jms.JMSException create(java.lang.Exception)>(v);
throw v;
label:
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.Map activeMQDestinationMap>;
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.hawtbuf.UTF8Buffer topicName()>();
v = virtualinvoke v.<org.fusesource.hawtbuf.UTF8Buffer: java.lang.String toString()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
virtualinvoke v.<org.apache.activemq.command.ActiveMQBytesMessage: void setJMSDestination(javax.jms.Destination)>(v);
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.hawtbuf.Buffer payload()>();
v = v.<org.fusesource.hawtbuf.Buffer: byte[] data>;
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.hawtbuf.Buffer payload()>();
v = v.<org.fusesource.hawtbuf.Buffer: int offset>;
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.hawtbuf.Buffer payload()>();
v = v.<org.fusesource.hawtbuf.Buffer: int length>;
virtualinvoke v.<org.apache.activemq.command.ActiveMQBytesMessage: void writeBytes(byte[],int,int)>(v, v, v);
return v;
catch java.io.IOException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public org.fusesource.mqtt.codec.PUBLISH convertMessage(org.apache.activemq.command.ActiveMQMessage) throws java.io.IOException, javax.jms.JMSException, java.util.zip.DataFormatException
{
org.apache.activemq.util.ByteArrayOutputStream v;
byte[] v, v, v, v, v, v;
java.util.zip.Inflater v;
org.apache.activemq.command.ActiveMQMessage v;
org.fusesource.mqtt.client.QoS v, v;
org.apache.activemq.command.Message v, v, v;
org.fusesource.mqtt.client.QoS[] v;
byte v, v, v;
java.lang.Short v;
java.util.Map v, v, v, v;
org.apache.activemq.util.ByteSequence v;
boolean v, v, v, v, v;
org.apache.activemq.command.MessageId v;
org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy v;
org.fusesource.mqtt.codec.PUBLISH v;
org.apache.activemq.command.ActiveMQDestination v, v;
java.lang.Throwable v;
java.lang.Object[] v;
long v;
org.fusesource.hawtbuf.Buffer v, v, v, v;
short v;
org.apache.activemq.command.ConnectionInfo v;
int v, v, v, v, v, v, v;
java.lang.String v, v, v, v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
org.slf4j.Logger v;
org.apache.activemq.command.ConnectionId v;
org.fusesource.hawtbuf.UTF8Buffer v;
java.lang.Object v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: org.apache.activemq.command.ActiveMQMessage;
v = new org.fusesource.mqtt.codec.PUBLISH;
specialinvoke v.<org.fusesource.mqtt.codec.PUBLISH: void <init>()>();
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: boolean propertyExists(java.lang.String)>("ActiveMQ.MQTT.QoS");
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: int getIntProperty(java.lang.String)>("ActiveMQ.MQTT.QoS");
v = staticinvoke <org.fusesource.mqtt.client.QoS: org.fusesource.mqtt.client.QoS[] values()>();
v = v[v];
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: boolean isPersistent()>();
if v == 0 goto label;
v = <org.fusesource.mqtt.client.QoS: org.fusesource.mqtt.client.QoS AT_MOST_ONCE>;
goto label;
label:
v = <org.fusesource.mqtt.client.QoS: org.fusesource.mqtt.client.QoS AT_LEAST_ONCE>;
label:
v = v;
label:
virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.mqtt.codec.PUBLISH qos(org.fusesource.mqtt.client.QoS)>(v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: boolean getBooleanProperty(java.lang.String)>("ActiveMQ.Retained");
if v == 0 goto label;
virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.mqtt.codec.PUBLISH retain(boolean)>(1);
label:
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.Map mqttTopicMap>;
entermonitor v;
label:
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: boolean isPattern()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: org.apache.activemq.command.ActiveMQDestination getOriginalDestination()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: org.apache.activemq.command.ActiveMQDestination getOriginalDestination()>();
label:
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.Map mqttTopicMap>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy findSubscriptionStrategy()>();
v = interfaceinvoke v.<org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy: java.lang.String onSend(org.apache.activemq.command.ActiveMQDestination)>(v);
v = staticinvoke <org.apache.activemq.transport.mqtt.MQTTProtocolSupport: java.lang.String convertActiveMQToMQTT(java.lang.String)>(v);
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.Map mqttTopicMap>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = new org.fusesource.hawtbuf.UTF8Buffer;
specialinvoke v.<org.fusesource.hawtbuf.UTF8Buffer: void <init>(java.lang.String)>(v);
virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.mqtt.codec.PUBLISH topicName(org.fusesource.hawtbuf.UTF8Buffer)>(v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: byte getDataStructureType()>();
if v != 28 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: org.apache.activemq.command.Message copy()>();
virtualinvoke v.<org.apache.activemq.command.ActiveMQTextMessage: void setReadOnlyBody(boolean)>(1);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQTextMessage: java.lang.String getText()>();
if v == null goto label;
v = new org.fusesource.hawtbuf.Buffer;
v = virtualinvoke v.<java.lang.String: byte[] getBytes(java.lang.String)>("UTF-8");
specialinvoke v.<org.fusesource.hawtbuf.Buffer: void <init>(byte[])>(v);
virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.mqtt.codec.PUBLISH payload(org.fusesource.hawtbuf.Buffer)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: byte getDataStructureType()>();
if v != 24 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: org.apache.activemq.command.Message copy()>();
virtualinvoke v.<org.apache.activemq.command.ActiveMQBytesMessage: void setReadOnlyBody(boolean)>(1);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQBytesMessage: long getBodyLength()>();
v = newarray (byte)[v];
virtualinvoke v.<org.apache.activemq.command.ActiveMQBytesMessage: int readBytes(byte[])>(v);
v = new org.fusesource.hawtbuf.Buffer;
specialinvoke v.<org.fusesource.hawtbuf.Buffer: void <init>(byte[])>(v);
virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.mqtt.codec.PUBLISH payload(org.fusesource.hawtbuf.Buffer)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: byte getDataStructureType()>();
if v != 25 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: org.apache.activemq.command.Message copy()>();
virtualinvoke v.<org.apache.activemq.command.ActiveMQMapMessage: void setReadOnlyBody(boolean)>(1);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMapMessage: java.util.Map getContentMap()>();
if v == null goto label;
v = new org.fusesource.hawtbuf.Buffer;
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
v = virtualinvoke v.<java.lang.String: byte[] getBytes(java.lang.String)>("UTF-8");
specialinvoke v.<org.fusesource.hawtbuf.Buffer: void <init>(byte[])>(v);
virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.mqtt.codec.PUBLISH payload(org.fusesource.hawtbuf.Buffer)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: org.apache.activemq.util.ByteSequence getContent()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.util.ByteSequence: int getLength()>();
if v <= 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: boolean isCompressed()>();
if v == 0 goto label;
v = new java.util.zip.Inflater;
specialinvoke v.<java.util.zip.Inflater: void <init>()>();
v = v.<org.apache.activemq.util.ByteSequence: byte[] data>;
v = v.<org.apache.activemq.util.ByteSequence: int offset>;
v = v.<org.apache.activemq.util.ByteSequence: int length>;
virtualinvoke v.<java.util.zip.Inflater: void setInput(byte[],int,int)>(v, v, v);
v = newarray (byte)[4096];
v = new org.apache.activemq.util.ByteArrayOutputStream;
specialinvoke v.<org.apache.activemq.util.ByteArrayOutputStream: void <init>()>();
label:
v = virtualinvoke v.<java.util.zip.Inflater: int inflate(byte[])>(v);
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.util.ByteArrayOutputStream: void write(byte[],int,int)>(v, 0, v);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.util.ByteArrayOutputStream: org.apache.activemq.util.ByteSequence toByteSequence()>();
virtualinvoke v.<org.apache.activemq.util.ByteArrayOutputStream: void close()>();
label:
v = new org.fusesource.hawtbuf.Buffer;
v = v.<org.apache.activemq.util.ByteSequence: byte[] data>;
v = v.<org.apache.activemq.util.ByteSequence: int offset>;
v = v.<org.apache.activemq.util.ByteSequence: int length>;
specialinvoke v.<org.fusesource.hawtbuf.Buffer: void <init>(byte[],int,int)>(v, v, v);
virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.mqtt.codec.PUBLISH payload(org.fusesource.hawtbuf.Buffer)>(v);
label:
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[4];
v = virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: short messageId()>();
v = staticinvoke <java.lang.Short: java.lang.Short valueOf(short)>(v);
v[0] = v;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String clientId>;
v[1] = v;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionInfo connectionInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: org.apache.activemq.command.ConnectionId getConnectionId()>();
v[2] = v;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: org.apache.activemq.command.MessageId getMessageId()>();
v[3] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("ActiveMQ-->MQTT:MQTT_MSGID:{} client:{} connection:{} ActiveMQ_MSGID:{}", v);
return v;
catch java.lang.Throwable from label to label with label;
}
public org.apache.activemq.transport.mqtt.MQTTTransport getMQTTTransport()
{
org.apache.activemq.transport.mqtt.MQTTTransport v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTTransport mqttTransport>;
return v;
}
public void onTransportError()
{
org.fusesource.mqtt.codec.CONNECT v, v, v, v, v, v, v, v;
java.util.concurrent.atomic.AtomicBoolean v, v;
org.apache.activemq.command.ActiveMQMessage v;
org.fusesource.mqtt.client.QoS v;
org.apache.activemq.command.RemoveInfo v;
short v;
org.apache.activemq.command.ConnectionInfo v;
java.lang.String v, v;
org.apache.activemq.transport.mqtt.MQTTPacketIdGenerator v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
boolean v, v, v;
org.slf4j.Logger v;
java.lang.Exception v;
org.fusesource.mqtt.codec.PUBLISH v;
org.apache.activemq.command.ProducerId v;
org.fusesource.hawtbuf.UTF8Buffer v, v, v, v, v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.concurrent.atomic.AtomicBoolean transportErrorHandled>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(0, 1);
if v == 0 goto label;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.fusesource.mqtt.codec.CONNECT connect>;
if v == null goto label;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.concurrent.atomic.AtomicBoolean connected>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v == 0 goto label;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.fusesource.mqtt.codec.CONNECT connect>;
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: org.fusesource.hawtbuf.UTF8Buffer willTopic()>();
if v == null goto label;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.fusesource.mqtt.codec.CONNECT connect>;
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: org.fusesource.hawtbuf.UTF8Buffer willMessage()>();
if v == null goto label;
label:
v = new org.fusesource.mqtt.codec.PUBLISH;
specialinvoke v.<org.fusesource.mqtt.codec.PUBLISH: void <init>()>();
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.fusesource.mqtt.codec.CONNECT connect>;
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: org.fusesource.hawtbuf.UTF8Buffer willTopic()>();
virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.mqtt.codec.PUBLISH topicName(org.fusesource.hawtbuf.UTF8Buffer)>(v);
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.fusesource.mqtt.codec.CONNECT connect>;
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: org.fusesource.mqtt.client.QoS willQos()>();
virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.mqtt.codec.PUBLISH qos(org.fusesource.mqtt.client.QoS)>(v);
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTPacketIdGenerator packetIdGenerator>;
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String getClientId()>();
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTPacketIdGenerator: short getNextSequenceId(java.lang.String)>(v);
virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.mqtt.codec.PUBLISH messageId(short)>(v);
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.fusesource.mqtt.codec.CONNECT connect>;
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: org.fusesource.hawtbuf.UTF8Buffer willMessage()>();
virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.mqtt.codec.PUBLISH payload(org.fusesource.hawtbuf.Buffer)>(v);
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.fusesource.mqtt.codec.CONNECT connect>;
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: boolean willRetain()>();
virtualinvoke v.<org.fusesource.mqtt.codec.PUBLISH: org.fusesource.mqtt.codec.PUBLISH retain(boolean)>(v);
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ActiveMQMessage convertMessage(org.fusesource.mqtt.codec.PUBLISH)>(v);
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ProducerId producerId>;
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setProducerId(org.apache.activemq.command.ProducerId)>(v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void onSend()>();
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void sendToActiveMQ(org.apache.activemq.command.Command,org.apache.activemq.transport.mqtt.ResponseHandler)>(v, null);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.fusesource.mqtt.codec.CONNECT connect>;
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: org.fusesource.hawtbuf.UTF8Buffer willMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.fusesource.hawtbuf.UTF8Buffer)>(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 publish Will Message \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
label:
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionInfo connectionInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: org.apache.activemq.command.RemoveInfo createRemoveCommand()>();
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void sendToActiveMQ(org.apache.activemq.command.Command,org.apache.activemq.transport.mqtt.ResponseHandler)>(v, null);
label:
return;
catch java.lang.Exception from label to label with label;
}
void configureInactivityMonitor(short)
{
java.lang.Object[] v;
long v, v;
short v;
byte v, v;
java.lang.Long v, v, v, v;
java.lang.String v, v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
double v;
org.slf4j.Logger v, v, v;
org.apache.activemq.transport.mqtt.MQTTInactivityMonitor v;
java.lang.Exception v;
org.apache.activemq.transport.mqtt.MQTTTransport v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: short;
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTTransport getMQTTTransport()>();
v = interfaceinvoke v.<org.apache.activemq.transport.mqtt.MQTTTransport: org.apache.activemq.transport.mqtt.MQTTInactivityMonitor getInactivityMonitor()>();
if v != null goto label;
return;
label:
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTInactivityMonitor: void stopConnectChecker()>();
v = v * 1000L;
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String getClientId()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("MQTT Client {} requests heart beat of {} ms", v, v);
label:
v = v cmp 0L;
if v != 0 goto label;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: long defaultKeepAlive>;
v = v cmp 0L;
if v <= 0 goto label;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: long defaultKeepAlive>;
label:
v = v * 0.5;
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTInactivityMonitor: void setProtocolConverter(org.apache.activemq.transport.mqtt.MQTTProtocolConverter)>(v);
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTInactivityMonitor: void setReadKeepAliveTime(long)>(v);
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTInactivityMonitor: void setReadGraceTime(long)>(v);
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTInactivityMonitor: void startReadChecker()>();
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[4];
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String getClientId()>();
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;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[3] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("MQTT Client {} established heart beat of  {} ms ({} ms + {} ms grace period)", v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Failed to start MQTT InactivityMonitor ", v);
label:
return;
catch java.lang.Exception from label to label with label;
}
void handleException(java.lang.Throwable, org.fusesource.mqtt.codec.MQTTFrame)
{
java.lang.Throwable v;
org.fusesource.mqtt.codec.MQTTFrame v;
org.slf4j.Logger v, v;
java.util.concurrent.atomic.AtomicBoolean v, v;
org.apache.activemq.command.RemoveInfo v;
org.apache.activemq.command.ConnectionInfo v, v;
java.lang.String v, v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
boolean v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: java.lang.Throwable;
v := @parameter: org.fusesource.mqtt.codec.MQTTFrame;
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String toString()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.fusesource.mqtt.codec.MQTTFrame,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[])>("Exception occurred processing: \n\u0001: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("Exception detail", v);
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.concurrent.atomic.AtomicBoolean connected>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v == 0 goto label;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionInfo connectionInfo>;
if v == null goto label;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.concurrent.atomic.AtomicBoolean connected>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(0);
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionInfo connectionInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ConnectionInfo: org.apache.activemq.command.RemoveInfo createRemoveCommand()>();
virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void sendToActiveMQ(org.apache.activemq.command.Command,org.apache.activemq.transport.mqtt.ResponseHandler)>(v, null);
label:
specialinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: void stopTransport()>();
return;
}
void checkConnected() throws org.apache.activemq.transport.mqtt.MQTTProtocolException
{
org.apache.activemq.transport.mqtt.MQTTProtocolException v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
boolean v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.util.concurrent.atomic.AtomicBoolean connected>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v != 0 goto label;
v = new org.apache.activemq.transport.mqtt.MQTTProtocolException;
specialinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolException: void <init>(java.lang.String)>("Not connected.");
throw v;
label:
return;
}
private void stopTransport()
{
java.lang.Throwable v;
org.apache.activemq.transport.mqtt.MQTTTransport v;
org.slf4j.Logger v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
label:
v = virtualinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTTransport getMQTTTransport()>();
interfaceinvoke v.<org.apache.activemq.transport.mqtt.MQTTTransport: void stop()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("Failed to stop MQTT transport ", v);
label:
return;
catch java.lang.Throwable from label to label with label;
}
org.apache.activemq.transport.mqtt.ResponseHandler createResponseHandler(org.fusesource.mqtt.codec.PUBLISH)
{
org.apache.activemq.transport.mqtt.MQTTProtocolConverter$2 v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
org.fusesource.mqtt.codec.PUBLISH v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: org.fusesource.mqtt.codec.PUBLISH;
if v == null goto label;
v = new org.apache.activemq.transport.mqtt.MQTTProtocolConverter$2;
specialinvoke v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter$2: void <init>(org.apache.activemq.transport.mqtt.MQTTProtocolConverter,org.fusesource.mqtt.codec.PUBLISH)>(v, v);
return v;
label:
return null;
}
public long getDefaultKeepAlive()
{
long v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: long defaultKeepAlive>;
return v;
}
public void setDefaultKeepAlive(long)
{
long v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: long;
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: long defaultKeepAlive> = v;
return;
}
public int getActiveMQSubscriptionPrefetch()
{
int v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: int activeMQSubscriptionPrefetch>;
return v;
}
public void setActiveMQSubscriptionPrefetch(int)
{
int v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: int;
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: int activeMQSubscriptionPrefetch> = v;
return;
}
public org.apache.activemq.transport.mqtt.MQTTPacketIdGenerator getPacketIdGenerator()
{
org.apache.activemq.transport.mqtt.MQTTPacketIdGenerator v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.MQTTPacketIdGenerator packetIdGenerator>;
return v;
}
public void setPublishDollarTopics(boolean)
{
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
boolean v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: boolean;
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: boolean publishDollarTopics> = v;
return;
}
public boolean getPublishDollarTopics()
{
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
boolean v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: boolean publishDollarTopics>;
return v;
}
public org.apache.activemq.command.ConnectionId getConnectionId()
{
org.apache.activemq.command.ConnectionId v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.ConnectionId connectionId>;
return v;
}
public org.apache.activemq.command.SessionId getSessionId()
{
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
org.apache.activemq.command.SessionId v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.command.SessionId sessionId>;
return v;
}
public boolean isCleanSession()
{
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
boolean v;
org.fusesource.mqtt.codec.CONNECT v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.fusesource.mqtt.codec.CONNECT connect>;
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: boolean cleanSession()>();
return v;
}
public java.lang.String getSubscriptionStrategy()
{
java.lang.String v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String subscriptionStrategyName>;
return v;
}
public void setSubscriptionStrategy(java.lang.String)
{
java.lang.String v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: java.lang.String;
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String subscriptionStrategyName> = v;
return;
}
public java.lang.String getClientId()
{
org.fusesource.mqtt.codec.CONNECT v, v, v;
org.fusesource.hawtbuf.UTF8Buffer v, v;
java.lang.String v, v, v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String clientId>;
if v != null goto label;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.fusesource.mqtt.codec.CONNECT connect>;
if v == null goto label;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.fusesource.mqtt.codec.CONNECT connect>;
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: org.fusesource.hawtbuf.UTF8Buffer clientId()>();
if v == null goto label;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.fusesource.mqtt.codec.CONNECT connect>;
v = virtualinvoke v.<org.fusesource.mqtt.codec.CONNECT: org.fusesource.hawtbuf.UTF8Buffer clientId()>();
v = virtualinvoke v.<org.fusesource.hawtbuf.UTF8Buffer: java.lang.String toString()>();
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String clientId> = v;
goto label;
label:
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String clientId> = "";
label:
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String clientId>;
return v;
}
protected boolean containsMqttWildcard(java.lang.String)
{
java.lang.String v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
boolean v, v, v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: java.lang.String;
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("+");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("#");
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
protected org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy findSubscriptionStrategy() throws java.io.IOException
{
java.lang.Throwable v;
org.apache.activemq.util.FactoryFinder v, v;
java.lang.String v, v, v, v, v, v;
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
boolean v, v;
org.apache.activemq.broker.BrokerService v;
org.slf4j.Logger v;
java.io.IOException v, v;
java.lang.Exception v;
org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy v, v, v, v, v;
java.lang.Object v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy subsciptionStrategy>;
if v != null goto label;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.util.FactoryFinder STRATAGY_FINDER>;
entermonitor v;
label:
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy subsciptionStrategy>;
if v == null goto label;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy subsciptionStrategy>;
exitmonitor v;
label:
return v;
label:
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String subscriptionStrategyName>;
if v == null goto label;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String subscriptionStrategyName>;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v != 0 goto label;
label:
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.util.FactoryFinder STRATAGY_FINDER>;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String subscriptionStrategyName>;
v = virtualinvoke v.<org.apache.activemq.util.FactoryFinder: java.lang.Object newInstance(java.lang.String)>(v);
v = <org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String subscriptionStrategyName>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("MQTT Using subscription strategy: {}", v);
v = v instanceof org.apache.activemq.broker.BrokerServiceAware;
if v == 0 goto label;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.broker.BrokerService brokerService>;
interfaceinvoke v.<org.apache.activemq.broker.BrokerServiceAware: void setBrokerService(org.apache.activemq.broker.BrokerService)>(v);
label:
interfaceinvoke v.<org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy: void initialize(org.apache.activemq.transport.mqtt.MQTTProtocolConverter)>(v);
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <org.apache.activemq.util.IOExceptionSupport: java.io.IOException create(java.lang.Exception)>(v);
throw v;
label:
v = new java.io.IOException;
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: java.lang.String subscriptionStrategyName>;
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 subscription strategy name given: \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy subsciptionStrategy> = v;
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy subsciptionStrategy>;
return v;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public void setSubsciptionStrategy(org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy)
{
org.apache.activemq.transport.mqtt.MQTTProtocolConverter v;
org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy v;
v := @this: org.apache.activemq.transport.mqtt.MQTTProtocolConverter;
v := @parameter: org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy;
v.<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.transport.mqtt.strategy.MQTTSubscriptionStrategy subsciptionStrategy> = v;
return;
}
static void <clinit>()
{
org.fusesource.mqtt.codec.MQTTFrame v;
org.fusesource.mqtt.codec.PINGRESP v;
org.slf4j.Logger v;
org.apache.activemq.util.IdGenerator v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/activemq/transport/mqtt/MQTTProtocolConverter;");
<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.slf4j.Logger LOG> = v;
v = new org.apache.activemq.util.IdGenerator;
specialinvoke v.<org.apache.activemq.util.IdGenerator: void <init>()>();
<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.apache.activemq.util.IdGenerator CONNECTION_ID_GENERATOR> = v;
v = new org.fusesource.mqtt.codec.PINGRESP;
specialinvoke v.<org.fusesource.mqtt.codec.PINGRESP: void <init>()>();
v = virtualinvoke v.<org.fusesource.mqtt.codec.PINGRESP: org.fusesource.mqtt.codec.MQTTFrame encode()>();
<org.apache.activemq.transport.mqtt.MQTTProtocolConverter: org.fusesource.mqtt.codec.MQTTFrame PING_RESP_FRAME> = v;
return;
}
}