public class org.apache.activemq.transport.amqp.protocol.AmqpReceiver extends org.apache.activemq.transport.amqp.protocol.AmqpAbstractReceiver
{
private static final org.slf4j.Logger LOG;
private final org.apache.activemq.command.ProducerInfo producerInfo;
private final org.apache.activemq.util.LongSequenceGenerator messageIdGenerator;
private org.apache.activemq.transport.amqp.message.InboundTransformer inboundTransformer;
private int sendsInFlight;
public void <init>(org.apache.activemq.transport.amqp.protocol.AmqpSession, org.apache.qpid.proton.engine.Receiver, org.apache.activemq.command.ProducerInfo)
{
org.apache.activemq.util.LongSequenceGenerator v;
org.apache.activemq.command.ProducerInfo v;
org.apache.activemq.transport.amqp.protocol.AmqpSession v;
org.apache.qpid.proton.engine.Receiver v;
org.apache.activemq.transport.amqp.protocol.AmqpReceiver v;
v := @this: org.apache.activemq.transport.amqp.protocol.AmqpReceiver;
v := @parameter: org.apache.activemq.transport.amqp.protocol.AmqpSession;
v := @parameter: org.apache.qpid.proton.engine.Receiver;
v := @parameter: org.apache.activemq.command.ProducerInfo;
specialinvoke v.<org.apache.activemq.transport.amqp.protocol.AmqpAbstractReceiver: void <init>(org.apache.activemq.transport.amqp.protocol.AmqpSession,org.apache.qpid.proton.engine.Receiver)>(v, v);
v = new org.apache.activemq.util.LongSequenceGenerator;
specialinvoke v.<org.apache.activemq.util.LongSequenceGenerator: void <init>()>();
v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.apache.activemq.util.LongSequenceGenerator messageIdGenerator> = v;
v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.apache.activemq.command.ProducerInfo producerInfo> = v;
return;
}
public void close()
{
org.apache.activemq.command.ProducerId v;
org.apache.activemq.transport.amqp.protocol.AmqpReceiver$1 v;
org.apache.activemq.transport.amqp.protocol.AmqpReceiver v;
org.apache.activemq.command.RemoveInfo v;
boolean v, v;
v := @this: org.apache.activemq.transport.amqp.protocol.AmqpReceiver;
v = virtualinvoke v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: boolean isClosed()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: boolean isOpened()>();
if v == 0 goto label;
v = new org.apache.activemq.command.RemoveInfo;
v = virtualinvoke v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.apache.activemq.command.ProducerId getProducerId()>();
specialinvoke v.<org.apache.activemq.command.RemoveInfo: void <init>(org.apache.activemq.command.DataStructure)>(v);
v = new org.apache.activemq.transport.amqp.protocol.AmqpReceiver$1;
specialinvoke v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver$1: void <init>(org.apache.activemq.transport.amqp.protocol.AmqpReceiver)>(v);
virtualinvoke v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: void sendToActiveMQ(org.apache.activemq.command.Command,org.apache.activemq.transport.amqp.ResponseHandler)>(v, v);
goto label;
label:
specialinvoke v.<org.apache.activemq.transport.amqp.protocol.AmqpAbstractReceiver: void close()>();
label:
return;
}
public org.apache.activemq.command.ProducerId getProducerId()
{
org.apache.activemq.command.ProducerId v;
org.apache.activemq.transport.amqp.protocol.AmqpReceiver v;
org.apache.activemq.command.ProducerInfo v;
v := @this: org.apache.activemq.transport.amqp.protocol.AmqpReceiver;
v = v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.apache.activemq.command.ProducerInfo producerInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ProducerInfo: org.apache.activemq.command.ProducerId getProducerId()>();
return v;
}
public org.apache.activemq.command.ActiveMQDestination getDestination()
{
org.apache.activemq.transport.amqp.protocol.AmqpReceiver v;
org.apache.activemq.command.ProducerInfo v;
org.apache.activemq.command.ActiveMQDestination v;
v := @this: org.apache.activemq.transport.amqp.protocol.AmqpReceiver;
v = v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.apache.activemq.command.ProducerInfo producerInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ProducerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
return v;
}
public void setDestination(org.apache.activemq.command.ActiveMQDestination)
{
org.apache.activemq.transport.amqp.protocol.AmqpReceiver v;
org.apache.activemq.command.ProducerInfo v;
org.apache.activemq.command.ActiveMQDestination v;
v := @this: org.apache.activemq.transport.amqp.protocol.AmqpReceiver;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v = v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.apache.activemq.command.ProducerInfo producerInfo>;
virtualinvoke v.<org.apache.activemq.command.ProducerInfo: void setDestination(org.apache.activemq.command.ActiveMQDestination)>(v);
return;
}
public boolean isAnonymous()
{
org.apache.activemq.command.ProducerInfo v;
org.apache.activemq.transport.amqp.protocol.AmqpReceiver v;
boolean v;
org.apache.activemq.command.ActiveMQDestination v;
v := @this: org.apache.activemq.transport.amqp.protocol.AmqpReceiver;
v = v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.apache.activemq.command.ProducerInfo producerInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ProducerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
if v != null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
protected org.apache.activemq.transport.amqp.message.InboundTransformer getTransformer()
{
org.apache.activemq.transport.amqp.message.InboundTransformer v, v;
org.slf4j.Logger v;
org.apache.activemq.transport.amqp.message.AMQPNativeInboundTransformer v, v;
org.apache.activemq.transport.amqp.protocol.AmqpReceiver v;
org.apache.activemq.transport.amqp.protocol.AmqpSession v;
java.lang.String v;
org.apache.activemq.transport.amqp.message.JMSMappingInboundTransformer v;
org.apache.activemq.transport.amqp.message.AMQPRawInboundTransformer v;
org.apache.activemq.transport.amqp.protocol.AmqpConnection v;
boolean v, v, v;
v := @this: org.apache.activemq.transport.amqp.protocol.AmqpReceiver;
v = v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.apache.activemq.transport.amqp.message.InboundTransformer inboundTransformer>;
if v != null goto label;
v = v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.apache.activemq.transport.amqp.protocol.AmqpSession session>;
v = virtualinvoke v.<org.apache.activemq.transport.amqp.protocol.AmqpSession: org.apache.activemq.transport.amqp.protocol.AmqpConnection getConnection()>();
v = virtualinvoke v.<org.apache.activemq.transport.amqp.protocol.AmqpConnection: java.lang.String getConfiguredTransformer()>();
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>("jms");
if v == 0 goto label;
v = new org.apache.activemq.transport.amqp.message.JMSMappingInboundTransformer;
specialinvoke v.<org.apache.activemq.transport.amqp.message.JMSMappingInboundTransformer: void <init>()>();
v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.apache.activemq.transport.amqp.message.InboundTransformer inboundTransformer> = v;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>("native");
if v == 0 goto label;
v = new org.apache.activemq.transport.amqp.message.AMQPNativeInboundTransformer;
specialinvoke v.<org.apache.activemq.transport.amqp.message.AMQPNativeInboundTransformer: void <init>()>();
v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.apache.activemq.transport.amqp.message.InboundTransformer inboundTransformer> = v;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>("raw");
if v == 0 goto label;
v = new org.apache.activemq.transport.amqp.message.AMQPRawInboundTransformer;
specialinvoke v.<org.apache.activemq.transport.amqp.message.AMQPRawInboundTransformer: void <init>()>();
v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.apache.activemq.transport.amqp.message.InboundTransformer inboundTransformer> = v;
goto label;
label:
v = <org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Unknown transformer type {} using native one instead", v);
v = new org.apache.activemq.transport.amqp.message.AMQPNativeInboundTransformer;
specialinvoke v.<org.apache.activemq.transport.amqp.message.AMQPNativeInboundTransformer: void <init>()>();
v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.apache.activemq.transport.amqp.message.InboundTransformer inboundTransformer> = v;
label:
v = v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.apache.activemq.transport.amqp.message.InboundTransformer inboundTransformer>;
return v;
}
protected void processDelivery(org.apache.qpid.proton.engine.Delivery, org.fusesource.hawtbuf.Buffer) throws java.lang.Exception
{
byte[] v;
org.apache.activemq.transport.amqp.message.InboundTransformer v;
org.apache.qpid.proton.engine.Delivery v;
org.apache.activemq.command.ActiveMQMessage v;
org.apache.activemq.transport.amqp.protocol.AmqpReceiver v;
org.apache.activemq.transport.amqp.protocol.AmqpSession v, v;
org.apache.qpid.proton.amqp.transport.DeliveryState v;
org.apache.qpid.proton.amqp.Binary v;
boolean v, v, v, v;
org.apache.activemq.command.MessageId v, v, v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.transport.amqp.message.EncodedMessage v;
org.apache.qpid.proton.amqp.transport.ErrorCondition v;
org.apache.activemq.util.LongSequenceGenerator v;
javax.jms.Destination v;
org.apache.activemq.transport.amqp.ResponseHandler v;
org.apache.qpid.proton.amqp.messaging.Rejected v;
org.apache.activemq.command.LocalTransactionId v;
long v, v, v;
org.fusesource.hawtbuf.Buffer v;
org.apache.qpid.proton.amqp.Symbol v;
int v, v, v, v, v;
java.lang.String v, v, v, v;
org.apache.activemq.transport.amqp.protocol.AmqpConnection v;
org.slf4j.Logger v;
org.apache.activemq.command.ConnectionId v;
org.apache.activemq.command.ProducerId v, v, v;
v := @this: org.apache.activemq.transport.amqp.protocol.AmqpReceiver;
v := @parameter: org.apache.qpid.proton.engine.Delivery;
v := @parameter: org.fusesource.hawtbuf.Buffer;
v = virtualinvoke v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: boolean isClosed()>();
if v != 0 goto label;
v = new org.apache.activemq.transport.amqp.message.EncodedMessage;
v = interfaceinvoke v.<org.apache.qpid.proton.engine.Delivery: int getMessageFormat()>();
v = v.<org.fusesource.hawtbuf.Buffer: byte[] data>;
v = v.<org.fusesource.hawtbuf.Buffer: int offset>;
v = v.<org.fusesource.hawtbuf.Buffer: int length>;
specialinvoke v.<org.apache.activemq.transport.amqp.message.EncodedMessage: void <init>(long,byte[],int,int)>(v, v, v, v);
v = virtualinvoke v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.apache.activemq.transport.amqp.message.InboundTransformer getTransformer()>();
v = virtualinvoke v.<org.apache.activemq.transport.amqp.message.InboundTransformer: org.apache.activemq.command.ActiveMQMessage transform(org.apache.activemq.transport.amqp.message.EncodedMessage)>(v);
v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.fusesource.hawtbuf.ByteArrayOutputStream current> = null;
v = virtualinvoke v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: boolean isAnonymous()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: javax.jms.Destination getJMSDestination()>();
if v == null goto label;
v = v instanceof org.apache.activemq.command.ActiveMQDestination;
if v != 0 goto label;
label:
v = new org.apache.qpid.proton.amqp.messaging.Rejected;
specialinvoke v.<org.apache.qpid.proton.amqp.messaging.Rejected: void <init>()>();
v = new org.apache.qpid.proton.amqp.transport.ErrorCondition;
specialinvoke v.<org.apache.qpid.proton.amqp.transport.ErrorCondition: void <init>()>();
v = staticinvoke <org.apache.qpid.proton.amqp.Symbol: org.apache.qpid.proton.amqp.Symbol valueOf(java.lang.String)>("failed");
virtualinvoke v.<org.apache.qpid.proton.amqp.transport.ErrorCondition: void setCondition(org.apache.qpid.proton.amqp.Symbol)>(v);
virtualinvoke v.<org.apache.qpid.proton.amqp.transport.ErrorCondition: void setDescription(java.lang.String)>("Missing to field for message sent to an anonymous producer");
virtualinvoke v.<org.apache.qpid.proton.amqp.messaging.Rejected: void setError(org.apache.qpid.proton.amqp.transport.ErrorCondition)>(v);
interfaceinvoke v.<org.apache.qpid.proton.engine.Delivery: void disposition(org.apache.qpid.proton.amqp.transport.DeliveryState)>(v);
return;
label:
v = virtualinvoke v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.apache.activemq.command.ActiveMQDestination getDestination()>();
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setJMSDestination(javax.jms.Destination)>(v);
label:
v = virtualinvoke v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.apache.activemq.command.ProducerId getProducerId()>();
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setProducerId(org.apache.activemq.command.ProducerId)>(v);
v = new org.apache.activemq.command.MessageId;
v = virtualinvoke v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.apache.activemq.command.ProducerId getProducerId()>();
v = v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.apache.activemq.util.LongSequenceGenerator messageIdGenerator>;
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);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: org.apache.activemq.command.MessageId getMessageId()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.command.MessageId: java.lang.String getTextView()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.command.MessageId: java.lang.String getTextView()>();
virtualinvoke v.<org.apache.activemq.command.MessageId: void setTextView(java.lang.String)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.command.MessageId: java.lang.String toString()>();
virtualinvoke v.<org.apache.activemq.command.MessageId: void setTextView(java.lang.String)>(v);
label:
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setMessageId(org.apache.activemq.command.MessageId)>(v);
v = <org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: org.apache.activemq.command.MessageId getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.apache.activemq.command.ProducerId getProducerId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageId: long getProducerSequenceId()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.ProducerId,long)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001:\u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object,java.lang.Object)>("Inbound Message:{} from Producer:{}", v, v);
v = interfaceinvoke v.<org.apache.qpid.proton.engine.Delivery: org.apache.qpid.proton.amqp.transport.DeliveryState getRemoteState()>();
if v == null goto label;
v = v instanceof org.apache.qpid.proton.amqp.transaction.TransactionalState;
if v == 0 goto label;
v = new org.apache.activemq.command.LocalTransactionId;
v = v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.apache.activemq.transport.amqp.protocol.AmqpSession session>;
v = virtualinvoke v.<org.apache.activemq.transport.amqp.protocol.AmqpSession: org.apache.activemq.transport.amqp.protocol.AmqpConnection getConnection()>();
v = virtualinvoke v.<org.apache.activemq.transport.amqp.protocol.AmqpConnection: org.apache.activemq.command.ConnectionId getConnectionId()>();
v = virtualinvoke v.<org.apache.qpid.proton.amqp.transaction.TransactionalState: org.apache.qpid.proton.amqp.Binary getTxnId()>();
v = staticinvoke <org.apache.activemq.transport.amqp.AmqpSupport: long toLong(org.apache.qpid.proton.amqp.Binary)>(v);
specialinvoke v.<org.apache.activemq.command.LocalTransactionId: void <init>(org.apache.activemq.command.ConnectionId,long)>(v, v);
v = v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.apache.activemq.transport.amqp.protocol.AmqpSession session>;
virtualinvoke v.<org.apache.activemq.transport.amqp.protocol.AmqpSession: void enlist(org.apache.activemq.command.TransactionId)>(v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setTransactionId(org.apache.activemq.command.TransactionId)>(v);
label:
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void onSend()>();
v = v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: int sendsInFlight>;
v = v + 1;
v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: int sendsInFlight> = v;
v = specialinvoke v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.apache.activemq.transport.amqp.ResponseHandler createResponseHandler(org.apache.qpid.proton.engine.Delivery)>(v);
virtualinvoke v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: void sendToActiveMQ(org.apache.activemq.command.Command,org.apache.activemq.transport.amqp.ResponseHandler)>(v, v);
label:
return;
}
private org.apache.activemq.transport.amqp.ResponseHandler createResponseHandler(org.apache.qpid.proton.engine.Delivery)
{
org.apache.activemq.transport.amqp.protocol.AmqpReceiver$2 v;
org.apache.qpid.proton.engine.Delivery v;
org.apache.activemq.transport.amqp.protocol.AmqpReceiver v;
v := @this: org.apache.activemq.transport.amqp.protocol.AmqpReceiver;
v := @parameter: org.apache.qpid.proton.engine.Delivery;
v = new org.apache.activemq.transport.amqp.protocol.AmqpReceiver$2;
specialinvoke v.<org.apache.activemq.transport.amqp.protocol.AmqpReceiver$2: void <init>(org.apache.activemq.transport.amqp.protocol.AmqpReceiver,org.apache.qpid.proton.engine.Delivery)>(v, v);
return v;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/activemq/transport/amqp/protocol/AmqpReceiver;");
<org.apache.activemq.transport.amqp.protocol.AmqpReceiver: org.slf4j.Logger LOG> = v;
return;
}
}