public class org.apache.activemq.transport.tcp.TcpTransport extends org.apache.activemq.transport.TransportThreadSupport implements org.apache.activemq.transport.Transport, org.apache.activemq.Service, java.lang.Runnable
{
private static final org.slf4j.Logger LOG;
protected final java.net.URI remoteLocation;
protected final java.net.URI localLocation;
protected final org.apache.activemq.wireformat.WireFormat wireFormat;
protected int connectionTimeout;
protected int soTimeout;
protected int socketBufferSize;
protected int ioBufferSize;
protected boolean closeAsync;
protected java.net.Socket socket;
protected java.io.DataOutputStream dataOut;
protected java.io.DataInputStream dataIn;
protected org.apache.activemq.transport.tcp.TimeStampStream buffOut;
protected final org.apache.activemq.transport.tcp.TcpTransport$InitBuffer initBuffer;
protected int trafficClass;
private boolean trafficClassSet;
protected boolean diffServChosen;
protected boolean typeOfServiceChosen;
protected boolean trace;
protected java.lang.String logWriterName;
protected boolean dynamicManagement;
protected boolean startLogging;
protected int jmxPort;
protected boolean useLocalHost;
protected int minmumWireFormatVersion;
protected javax.net.SocketFactory socketFactory;
protected final java.util.concurrent.atomic.AtomicReference stoppedLatch;
protected volatile int receiveCounter;
protected java.util.Map socketOptions;
private int soLinger;
private java.lang.Boolean keepAlive;
private java.lang.Boolean tcpNoDelay;
private java.lang.Thread runnerThread;
public void <init>(org.apache.activemq.wireformat.WireFormat, javax.net.SocketFactory, java.net.URI, java.net.URI) throws java.net.UnknownHostException, java.io.IOException
{
java.net.Socket v;
org.apache.activemq.wireformat.WireFormat v;
java.util.concurrent.atomic.AtomicReference v;
javax.net.SocketFactory v;
java.net.SocketException v;
org.apache.activemq.transport.tcp.TcpTransport v;
java.lang.String v;
java.net.URI v, v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: org.apache.activemq.wireformat.WireFormat;
v := @parameter: javax.net.SocketFactory;
v := @parameter: java.net.URI;
v := @parameter: java.net.URI;
specialinvoke v.<org.apache.activemq.transport.TransportThreadSupport: void <init>()>();
v.<org.apache.activemq.transport.tcp.TcpTransport: int connectionTimeout> = 30000;
v.<org.apache.activemq.transport.tcp.TcpTransport: int socketBufferSize> = 65536;
v.<org.apache.activemq.transport.tcp.TcpTransport: int ioBufferSize> = 8192;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean closeAsync> = 1;
v.<org.apache.activemq.transport.tcp.TcpTransport: org.apache.activemq.transport.tcp.TimeStampStream buffOut> = null;
v.<org.apache.activemq.transport.tcp.TcpTransport: int trafficClass> = 0;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean trafficClassSet> = 0;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean diffServChosen> = 0;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean typeOfServiceChosen> = 0;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean trace> = 0;
v = <org.apache.activemq.TransportLoggerSupport: java.lang.String defaultLogWriterName>;
v.<org.apache.activemq.transport.tcp.TcpTransport: java.lang.String logWriterName> = v;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean dynamicManagement> = 0;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean startLogging> = 1;
v.<org.apache.activemq.transport.tcp.TcpTransport: int jmxPort> = 1099;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean useLocalHost> = 0;
v = new java.util.concurrent.atomic.AtomicReference;
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>()>();
v.<org.apache.activemq.transport.tcp.TcpTransport: java.util.concurrent.atomic.AtomicReference stoppedLatch> = v;
v.<org.apache.activemq.transport.tcp.TcpTransport: int soLinger> = -2147483648;
v.<org.apache.activemq.transport.tcp.TcpTransport: org.apache.activemq.wireformat.WireFormat wireFormat> = v;
v.<org.apache.activemq.transport.tcp.TcpTransport: javax.net.SocketFactory socketFactory> = v;
label:
v = virtualinvoke v.<javax.net.SocketFactory: java.net.Socket createSocket()>();
v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket> = v;
label:
goto label;
label:
v := @caughtexception;
v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket> = null;
label:
v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.URI remoteLocation> = v;
v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.URI localLocation> = v;
v.<org.apache.activemq.transport.tcp.TcpTransport: org.apache.activemq.transport.tcp.TcpTransport$InitBuffer initBuffer> = null;
virtualinvoke v.<org.apache.activemq.transport.tcp.TcpTransport: void setDaemon(boolean)>(0);
return;
catch java.net.SocketException from label to label with label;
}
public void <init>(org.apache.activemq.wireformat.WireFormat, java.net.Socket) throws java.io.IOException
{
java.net.Socket v;
org.apache.activemq.transport.tcp.TcpTransport v;
org.apache.activemq.wireformat.WireFormat v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: org.apache.activemq.wireformat.WireFormat;
v := @parameter: java.net.Socket;
specialinvoke v.<org.apache.activemq.transport.tcp.TcpTransport: void <init>(org.apache.activemq.wireformat.WireFormat,java.net.Socket,org.apache.activemq.transport.tcp.TcpTransport$InitBuffer)>(v, v, null);
return;
}
public void <init>(org.apache.activemq.wireformat.WireFormat, java.net.Socket, org.apache.activemq.transport.tcp.TcpTransport$InitBuffer) throws java.io.IOException
{
org.apache.activemq.transport.tcp.TcpTransport$InitBuffer v;
java.net.Socket v;
org.apache.activemq.wireformat.WireFormat v;
org.apache.activemq.transport.tcp.TcpTransport v;
java.lang.String v;
java.util.concurrent.atomic.AtomicReference v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: org.apache.activemq.wireformat.WireFormat;
v := @parameter: java.net.Socket;
v := @parameter: org.apache.activemq.transport.tcp.TcpTransport$InitBuffer;
specialinvoke v.<org.apache.activemq.transport.TransportThreadSupport: void <init>()>();
v.<org.apache.activemq.transport.tcp.TcpTransport: int connectionTimeout> = 30000;
v.<org.apache.activemq.transport.tcp.TcpTransport: int socketBufferSize> = 65536;
v.<org.apache.activemq.transport.tcp.TcpTransport: int ioBufferSize> = 8192;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean closeAsync> = 1;
v.<org.apache.activemq.transport.tcp.TcpTransport: org.apache.activemq.transport.tcp.TimeStampStream buffOut> = null;
v.<org.apache.activemq.transport.tcp.TcpTransport: int trafficClass> = 0;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean trafficClassSet> = 0;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean diffServChosen> = 0;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean typeOfServiceChosen> = 0;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean trace> = 0;
v = <org.apache.activemq.TransportLoggerSupport: java.lang.String defaultLogWriterName>;
v.<org.apache.activemq.transport.tcp.TcpTransport: java.lang.String logWriterName> = v;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean dynamicManagement> = 0;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean startLogging> = 1;
v.<org.apache.activemq.transport.tcp.TcpTransport: int jmxPort> = 1099;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean useLocalHost> = 0;
v = new java.util.concurrent.atomic.AtomicReference;
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>()>();
v.<org.apache.activemq.transport.tcp.TcpTransport: java.util.concurrent.atomic.AtomicReference stoppedLatch> = v;
v.<org.apache.activemq.transport.tcp.TcpTransport: int soLinger> = -2147483648;
v.<org.apache.activemq.transport.tcp.TcpTransport: org.apache.activemq.wireformat.WireFormat wireFormat> = v;
v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket> = v;
v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.URI remoteLocation> = null;
v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.URI localLocation> = null;
v.<org.apache.activemq.transport.tcp.TcpTransport: org.apache.activemq.transport.tcp.TcpTransport$InitBuffer initBuffer> = v;
virtualinvoke v.<org.apache.activemq.transport.tcp.TcpTransport: void setDaemon(boolean)>(1);
return;
}
public void oneway(java.lang.Object) throws java.io.IOException
{
java.io.DataOutputStream v, v;
org.apache.activemq.wireformat.WireFormat v;
java.lang.Object v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: java.lang.Object;
virtualinvoke v.<org.apache.activemq.transport.tcp.TcpTransport: void checkStarted()>();
v = v.<org.apache.activemq.transport.tcp.TcpTransport: org.apache.activemq.wireformat.WireFormat wireFormat>;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.io.DataOutputStream dataOut>;
interfaceinvoke v.<org.apache.activemq.wireformat.WireFormat: void marshal(java.lang.Object,java.io.DataOutput)>(v, v);
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.io.DataOutputStream dataOut>;
virtualinvoke v.<java.io.DataOutputStream: void flush()>();
return;
}
public java.lang.String toString()
{
java.net.Socket v, v, v, v;
java.io.Serializable v;
java.net.InetAddress v;
int v, v;
org.apache.activemq.transport.tcp.TcpTransport v;
java.lang.String v;
java.net.URI v;
boolean v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket>;
v = virtualinvoke v.<java.net.Socket: boolean isConnected()>();
if v == 0 goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket>;
v = virtualinvoke v.<java.net.Socket: java.net.InetAddress getInetAddress()>();
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket>;
v = virtualinvoke v.<java.net.Socket: int getPort()>();
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket>;
v = virtualinvoke v.<java.net.Socket: int getLocalPort()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.net.InetAddress,int,int)>(v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("tcp://\u0001:\u0001@\u0001");
goto label;
label:
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.URI localLocation>;
if v == null goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.URI localLocation>;
goto label;
label:
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.URI remoteLocation>;
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.Serializable)>(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");
return v;
}
public void run()
{
java.lang.Throwable v, v;
java.util.concurrent.atomic.AtomicReference v, v, v, v, v, v;
java.lang.Thread v;
org.apache.activemq.transport.tcp.TcpTransport v;
java.lang.String v, v;
boolean v, v;
org.slf4j.Logger v;
java.io.IOException v, v;
java.lang.Object v, v, v, v, v, v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = <org.apache.activemq.transport.tcp.TcpTransport: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.transport.tcp.TcpTransport)>(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[])>("TCP consumer thread for \u starting");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v.<org.apache.activemq.transport.tcp.TcpTransport: java.lang.Thread runnerThread> = v;
label:
v = virtualinvoke v.<org.apache.activemq.transport.tcp.TcpTransport: boolean isStopped()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.transport.tcp.TcpTransport: boolean isStopping()>();
if v != 0 goto label;
virtualinvoke v.<org.apache.activemq.transport.tcp.TcpTransport: void doRun()>();
goto label;
label:
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.util.concurrent.atomic.AtomicReference stoppedLatch>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
virtualinvoke v.<java.util.concurrent.CountDownLatch: void countDown()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.util.concurrent.atomic.AtomicReference stoppedLatch>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
virtualinvoke v.<java.util.concurrent.CountDownLatch: void countDown()>();
virtualinvoke v.<org.apache.activemq.transport.tcp.TcpTransport: void onException(java.io.IOException)>(v);
label:
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.util.concurrent.atomic.AtomicReference stoppedLatch>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
virtualinvoke v.<java.util.concurrent.CountDownLatch: void countDown()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.util.concurrent.atomic.AtomicReference stoppedLatch>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
virtualinvoke v.<java.util.concurrent.CountDownLatch: void countDown()>();
v = new java.io.IOException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Throwable)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unexpected error occurred: \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
virtualinvoke v.<java.io.IOException: java.lang.Throwable initCause(java.lang.Throwable)>(v);
virtualinvoke v.<org.apache.activemq.transport.tcp.TcpTransport: void onException(java.io.IOException)>(v);
label:
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.util.concurrent.atomic.AtomicReference stoppedLatch>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
virtualinvoke v.<java.util.concurrent.CountDownLatch: void countDown()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.util.concurrent.atomic.AtomicReference stoppedLatch>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
virtualinvoke v.<java.util.concurrent.CountDownLatch: void countDown()>();
throw v;
label:
return;
catch java.io.IOException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
protected void doRun() throws java.io.IOException
{
java.net.SocketTimeoutException v;
java.lang.Object v;
org.apache.activemq.transport.tcp.TcpTransport v;
java.io.InterruptedIOException v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
label:
v = virtualinvoke v.<org.apache.activemq.transport.tcp.TcpTransport: java.lang.Object readCommand()>();
virtualinvoke v.<org.apache.activemq.transport.tcp.TcpTransport: void doConsume(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
goto label;
label:
v := @caughtexception;
label:
return;
catch java.net.SocketTimeoutException from label to label with label;
catch java.io.InterruptedIOException from label to label with label;
}
protected java.lang.Object readCommand() throws java.io.IOException
{
java.io.DataInputStream v;
org.apache.activemq.wireformat.WireFormat v;
java.lang.Object v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: org.apache.activemq.wireformat.WireFormat wireFormat>;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.io.DataInputStream dataIn>;
v = interfaceinvoke v.<org.apache.activemq.wireformat.WireFormat: java.lang.Object unmarshal(java.io.DataInput)>(v);
return v;
}
public java.lang.String getDiffServ()
{
int v;
org.apache.activemq.transport.tcp.TcpTransport v;
java.lang.String v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int trafficClass>;
v = staticinvoke <java.lang.Integer: java.lang.String toString(int)>(v);
return v;
}
public void setDiffServ(java.lang.String) throws java.lang.IllegalArgumentException
{
int v;
org.apache.activemq.transport.tcp.TcpTransport v;
java.lang.String v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.activemq.transport.tcp.QualityOfServiceUtils: int getDSCP(java.lang.String)>(v);
v.<org.apache.activemq.transport.tcp.TcpTransport: int trafficClass> = v;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean diffServChosen> = 1;
return;
}
public int getTypeOfService()
{
int v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int trafficClass>;
return v;
}
public void setTypeOfService(int)
{
int v, v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: int;
v = staticinvoke <org.apache.activemq.transport.tcp.QualityOfServiceUtils: int getToS(int)>(v);
v.<org.apache.activemq.transport.tcp.TcpTransport: int trafficClass> = v;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean typeOfServiceChosen> = 1;
return;
}
public boolean isTrace()
{
org.apache.activemq.transport.tcp.TcpTransport v;
boolean v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: boolean trace>;
return v;
}
public void setTrace(boolean)
{
org.apache.activemq.transport.tcp.TcpTransport v;
boolean v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: boolean;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean trace> = v;
return;
}
public java.lang.String getLogWriterName()
{
org.apache.activemq.transport.tcp.TcpTransport v;
java.lang.String v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.lang.String logWriterName>;
return v;
}
public void setLogWriterName(java.lang.String)
{
org.apache.activemq.transport.tcp.TcpTransport v;
java.lang.String v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: java.lang.String;
v.<org.apache.activemq.transport.tcp.TcpTransport: java.lang.String logWriterName> = v;
return;
}
public boolean isDynamicManagement()
{
org.apache.activemq.transport.tcp.TcpTransport v;
boolean v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: boolean dynamicManagement>;
return v;
}
public void setDynamicManagement(boolean)
{
org.apache.activemq.transport.tcp.TcpTransport v;
boolean v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: boolean;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean dynamicManagement> = v;
return;
}
public boolean isStartLogging()
{
org.apache.activemq.transport.tcp.TcpTransport v;
boolean v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: boolean startLogging>;
return v;
}
public void setStartLogging(boolean)
{
org.apache.activemq.transport.tcp.TcpTransport v;
boolean v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: boolean;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean startLogging> = v;
return;
}
public int getJmxPort()
{
int v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int jmxPort>;
return v;
}
public void setJmxPort(int)
{
int v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: int;
v.<org.apache.activemq.transport.tcp.TcpTransport: int jmxPort> = v;
return;
}
public int getMinmumWireFormatVersion()
{
int v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int minmumWireFormatVersion>;
return v;
}
public void setMinmumWireFormatVersion(int)
{
int v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: int;
v.<org.apache.activemq.transport.tcp.TcpTransport: int minmumWireFormatVersion> = v;
return;
}
public boolean isUseLocalHost()
{
org.apache.activemq.transport.tcp.TcpTransport v;
boolean v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: boolean useLocalHost>;
return v;
}
public void setUseLocalHost(boolean)
{
org.apache.activemq.transport.tcp.TcpTransport v;
boolean v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: boolean;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean useLocalHost> = v;
return;
}
public int getSocketBufferSize()
{
int v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int socketBufferSize>;
return v;
}
public void setSocketBufferSize(int)
{
int v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: int;
v.<org.apache.activemq.transport.tcp.TcpTransport: int socketBufferSize> = v;
return;
}
public int getSoTimeout()
{
int v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int soTimeout>;
return v;
}
public void setSoTimeout(int)
{
int v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: int;
v.<org.apache.activemq.transport.tcp.TcpTransport: int soTimeout> = v;
return;
}
public int getConnectionTimeout()
{
int v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int connectionTimeout>;
return v;
}
public void setConnectionTimeout(int)
{
int v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: int;
v.<org.apache.activemq.transport.tcp.TcpTransport: int connectionTimeout> = v;
return;
}
public java.lang.Boolean getKeepAlive()
{
java.lang.Boolean v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.lang.Boolean keepAlive>;
return v;
}
public void setKeepAlive(java.lang.Boolean)
{
java.lang.Boolean v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: java.lang.Boolean;
v.<org.apache.activemq.transport.tcp.TcpTransport: java.lang.Boolean keepAlive> = v;
return;
}
public void setSoLinger(int)
{
int v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: int;
v.<org.apache.activemq.transport.tcp.TcpTransport: int soLinger> = v;
return;
}
public int getSoLinger()
{
int v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int soLinger>;
return v;
}
public java.lang.Boolean getTcpNoDelay()
{
java.lang.Boolean v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.lang.Boolean tcpNoDelay>;
return v;
}
public void setTcpNoDelay(java.lang.Boolean)
{
java.lang.Boolean v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: java.lang.Boolean;
v.<org.apache.activemq.transport.tcp.TcpTransport: java.lang.Boolean tcpNoDelay> = v;
return;
}
public int getIoBufferSize()
{
int v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int ioBufferSize>;
return v;
}
public void setIoBufferSize(int)
{
int v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: int;
v.<org.apache.activemq.transport.tcp.TcpTransport: int ioBufferSize> = v;
return;
}
public boolean isCloseAsync()
{
org.apache.activemq.transport.tcp.TcpTransport v;
boolean v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: boolean closeAsync>;
return v;
}
public void setCloseAsync(boolean)
{
org.apache.activemq.transport.tcp.TcpTransport v;
boolean v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: boolean;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean closeAsync> = v;
return;
}
protected java.lang.String resolveHostName(java.lang.String) throws java.net.UnknownHostException
{
org.apache.activemq.transport.tcp.TcpTransport v;
java.lang.String v, v;
boolean v, v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.apache.activemq.transport.tcp.TcpTransport: boolean isUseLocalHost()>();
if v == 0 goto label;
v = staticinvoke <org.apache.activemq.util.InetAddressUtil: java.lang.String getLocalHostName()>();
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return "localhost";
label:
return v;
}
protected void initialiseSocket(java.net.Socket) throws java.net.SocketException, java.lang.IllegalArgumentException
{
java.lang.Integer v;
java.util.Map v, v;
org.apache.activemq.transport.tcp.TcpTransport v;
boolean v, v, v, v, v;
java.net.Socket v, v;
java.util.HashMap v;
java.net.SocketException v;
int v, v, v, v, v, v, v, v, v, v, v;
java.lang.Boolean v, v, v, v;
java.lang.String v, v, v, v;
org.slf4j.Logger v, v, v;
java.lang.IllegalArgumentException v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: java.net.Socket;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.util.Map socketOptions>;
if v == null goto label;
v = new java.util.HashMap;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.util.Map socketOptions>;
specialinvoke v.<java.util.HashMap: void <init>(java.util.Map)>(v);
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket>;
staticinvoke <org.apache.activemq.util.IntrospectionSupport: boolean setProperties(java.lang.Object,java.util.Map)>(v, v);
v = interfaceinvoke v.<java.util.Map: boolean isEmpty()>();
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.HashMap)>(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 socket parameters: \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int socketBufferSize>;
if v <= 0 goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int socketBufferSize>;
virtualinvoke v.<java.net.Socket: void setReceiveBufferSize(int)>(v);
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int socketBufferSize>;
virtualinvoke v.<java.net.Socket: void setSendBufferSize(int)>(v);
goto label;
label:
v = <org.apache.activemq.transport.tcp.TcpTransport: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int socketBufferSize>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Socket buffer size was set to {}; Skipping this setting as the size must be a positive number.", v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.transport.tcp.TcpTransport: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int socketBufferSize>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Cannot set socket buffer size = \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
v = <org.apache.activemq.transport.tcp.TcpTransport: org.slf4j.Logger LOG>;
v = virtualinvoke v.<java.net.SocketException: java.lang.String getMessage()>();
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[])>("Cannot set socket buffer size. Reason: \u. This exception is ignored.");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>(v, v);
label:
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int soTimeout>;
virtualinvoke v.<java.net.Socket: void setSoTimeout(int)>(v);
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.lang.Boolean keepAlive>;
if v == null goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.lang.Boolean keepAlive>;
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
virtualinvoke v.<java.net.Socket: void setKeepAlive(boolean)>(v);
label:
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int soLinger>;
v = (int) -1;
if v <= v goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int soLinger>;
virtualinvoke v.<java.net.Socket: void setSoLinger(boolean,int)>(1, v);
goto label;
label:
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int soLinger>;
v = (int) -1;
if v != v goto label;
virtualinvoke v.<java.net.Socket: void setSoLinger(boolean,int)>(0, 0);
label:
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.lang.Boolean tcpNoDelay>;
if v == null goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.lang.Boolean tcpNoDelay>;
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
virtualinvoke v.<java.net.Socket: void setTcpNoDelay(boolean)>(v);
label:
v = v.<org.apache.activemq.transport.tcp.TcpTransport: boolean trafficClassSet>;
if v != 0 goto label;
v = specialinvoke v.<org.apache.activemq.transport.tcp.TcpTransport: boolean setTrafficClass(java.net.Socket)>(v);
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean trafficClassSet> = v;
label:
return;
catch java.net.SocketException from label to label with label;
}
protected void doStart() throws java.lang.Exception
{
java.util.concurrent.CountDownLatch v;
org.apache.activemq.transport.tcp.TcpTransport v;
java.util.concurrent.atomic.AtomicReference v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
virtualinvoke v.<org.apache.activemq.transport.tcp.TcpTransport: void connect()>();
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.util.concurrent.atomic.AtomicReference stoppedLatch>;
v = new java.util.concurrent.CountDownLatch;
specialinvoke v.<java.util.concurrent.CountDownLatch: void <init>(int)>(1);
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: void set(java.lang.Object)>(v);
specialinvoke v.<org.apache.activemq.transport.TransportThreadSupport: void doStart()>();
return;
}
protected void connect() throws java.lang.Exception
{
java.lang.IllegalStateException v;
java.net.InetAddress v, v, v, v;
org.apache.activemq.transport.tcp.TcpTransport v;
java.net.URI v, v, v, v, v, v;
boolean v;
java.net.InetSocketAddress v, v, v, v;
javax.net.SocketFactory v, v, v;
java.net.Socket v, v, v, v, v, v, v, v, v;
int v, v, v, v, v, v, v;
java.lang.String v, v, v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket>;
if v != null goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: javax.net.SocketFactory socketFactory>;
if v != null goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Cannot connect if the socket or socketFactory have not been set");
throw v;
label:
v = null;
v = null;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.URI localLocation>;
if v == null goto label;
v = new java.net.InetSocketAddress;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.URI localLocation>;
v = virtualinvoke v.<java.net.URI: java.lang.String getHost()>();
v = staticinvoke <java.net.InetAddress: java.net.InetAddress getByName(java.lang.String)>(v);
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.URI localLocation>;
v = virtualinvoke v.<java.net.URI: int getPort()>();
specialinvoke v.<java.net.InetSocketAddress: void <init>(java.net.InetAddress,int)>(v, v);
v = v;
label:
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.URI remoteLocation>;
if v == null goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.URI remoteLocation>;
v = virtualinvoke v.<java.net.URI: java.lang.String getHost()>();
v = virtualinvoke v.<org.apache.activemq.transport.tcp.TcpTransport: java.lang.String resolveHostName(java.lang.String)>(v);
v = new java.net.InetSocketAddress;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.URI remoteLocation>;
v = virtualinvoke v.<java.net.URI: int getPort()>();
specialinvoke v.<java.net.InetSocketAddress: void <init>(java.lang.String,int)>(v, v);
v = v;
label:
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket>;
v = specialinvoke v.<org.apache.activemq.transport.tcp.TcpTransport: boolean setTrafficClass(java.net.Socket)>(v);
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean trafficClassSet> = v;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket>;
if v == null goto label;
if v == null goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket>;
virtualinvoke v.<java.net.Socket: void bind(java.net.SocketAddress)>(v);
label:
if v == null goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int connectionTimeout>;
if v < 0 goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket>;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int connectionTimeout>;
virtualinvoke v.<java.net.Socket: void connect(java.net.SocketAddress,int)>(v, v);
goto label;
label:
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket>;
virtualinvoke v.<java.net.Socket: void connect(java.net.SocketAddress)>(v);
goto label;
label:
if v == null goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: javax.net.SocketFactory socketFactory>;
v = virtualinvoke v.<java.net.InetSocketAddress: java.net.InetAddress getAddress()>();
v = virtualinvoke v.<java.net.InetSocketAddress: int getPort()>();
v = virtualinvoke v.<java.net.InetSocketAddress: java.net.InetAddress getAddress()>();
v = virtualinvoke v.<java.net.InetSocketAddress: int getPort()>();
v = virtualinvoke v.<javax.net.SocketFactory: java.net.Socket createSocket(java.net.InetAddress,int,java.net.InetAddress,int)>(v, v, v, v);
v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket> = v;
goto label;
label:
v = v.<org.apache.activemq.transport.tcp.TcpTransport: javax.net.SocketFactory socketFactory>;
v = virtualinvoke v.<java.net.InetSocketAddress: java.net.InetAddress getAddress()>();
v = virtualinvoke v.<java.net.InetSocketAddress: int getPort()>();
v = virtualinvoke v.<javax.net.SocketFactory: java.net.Socket createSocket(java.net.InetAddress,int)>(v, v);
v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket> = v;
label:
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket>;
virtualinvoke v.<org.apache.activemq.transport.tcp.TcpTransport: void initialiseSocket(java.net.Socket)>(v);
virtualinvoke v.<org.apache.activemq.transport.tcp.TcpTransport: void initializeStreams()>();
return;
}
protected void doStop(org.apache.activemq.util.ServiceStopper) throws java.lang.Exception
{
java.lang.Throwable v;
java.net.Socket v, v, v, v, v;
org.apache.activemq.util.ServiceStopper v;
java.lang.Thread v;
org.apache.activemq.transport.tcp.TcpTransport$1 v;
org.apache.activemq.transport.tcp.TcpTransport v;
java.lang.String v, v;
boolean v, v, v;
org.slf4j.Logger v, v, v, v, v, v;
java.io.IOException v;
java.util.concurrent.TimeUnit v;
java.util.concurrent.CountDownLatch v;
java.lang.InterruptedException v;
org.apache.activemq.thread.TaskRunnerFactory v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: org.apache.activemq.util.ServiceStopper;
v = <org.apache.activemq.transport.tcp.TcpTransport: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.transport.tcp.TcpTransport: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.transport.tcp.TcpTransport)>(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[])>("Stopping transport \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket>;
if v == null goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: boolean closeAsync>;
if v == 0 goto label;
v = new java.util.concurrent.CountDownLatch;
specialinvoke v.<java.util.concurrent.CountDownLatch: void <init>(int)>(1);
v = new org.apache.activemq.thread.TaskRunnerFactory;
specialinvoke v.<org.apache.activemq.thread.TaskRunnerFactory: void <init>()>();
v = new org.apache.activemq.transport.tcp.TcpTransport$1;
specialinvoke v.<org.apache.activemq.transport.tcp.TcpTransport$1: void <init>(org.apache.activemq.transport.tcp.TcpTransport,java.util.concurrent.CountDownLatch)>(v, v);
virtualinvoke v.<org.apache.activemq.thread.TaskRunnerFactory: void execute(java.lang.Runnable)>(v);
label:
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
virtualinvoke v.<java.util.concurrent.CountDownLatch: boolean await(long,java.util.concurrent.TimeUnit)>(1L, v);
label:
virtualinvoke v.<org.apache.activemq.thread.TaskRunnerFactory: void shutdownNow()>();
goto label;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
label:
virtualinvoke v.<org.apache.activemq.thread.TaskRunnerFactory: void shutdownNow()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.activemq.thread.TaskRunnerFactory: void shutdownNow()>();
throw v;
label:
v = <org.apache.activemq.transport.tcp.TcpTransport: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("Closing socket {}", v);
label:
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket>;
virtualinvoke v.<java.net.Socket: void close()>();
v = <org.apache.activemq.transport.tcp.TcpTransport: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Closed socket {}", v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.transport.tcp.TcpTransport: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.transport.tcp.TcpTransport: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.net.Socket)>(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[])>("Caught exception closing socket \u. This exception will be ignored.");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>(v, v);
label:
return;
catch java.lang.InterruptedException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.io.IOException from label to label with label;
}
public void stop() throws java.lang.Exception
{
java.util.concurrent.TimeUnit v;
java.lang.Thread v, v;
java.lang.Object v;
org.apache.activemq.transport.tcp.TcpTransport v;
java.util.concurrent.atomic.AtomicReference v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
specialinvoke v.<org.apache.activemq.transport.TransportThreadSupport: void stop()>();
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.util.concurrent.atomic.AtomicReference stoppedLatch>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
if v == null goto label;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.lang.Thread runnerThread>;
if v == v goto label;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
virtualinvoke v.<java.util.concurrent.CountDownLatch: boolean await(long,java.util.concurrent.TimeUnit)>(1L, v);
label:
return;
}
protected void initializeStreams() throws java.lang.Exception
{
java.io.OutputStream v;
org.apache.activemq.transport.tcp.TcpTransport$InitBuffer v, v;
byte[] v;
java.io.DataInputStream v;
java.net.Socket v, v;
java.nio.ByteBuffer v;
org.apache.activemq.transport.tcp.TcpBufferedOutputStream v;
java.io.DataOutputStream v;
int v, v;
org.apache.activemq.transport.tcp.TcpTransport v;
org.apache.activemq.transport.tcp.TcpTransport$2 v;
java.io.InputStream v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = new org.apache.activemq.transport.tcp.TcpTransport$2;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket>;
v = virtualinvoke v.<java.net.Socket: java.io.InputStream getInputStream()>();
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int ioBufferSize>;
specialinvoke v.<org.apache.activemq.transport.tcp.TcpTransport$2: void <init>(org.apache.activemq.transport.tcp.TcpTransport,java.io.InputStream,int)>(v, v, v);
v = v.<org.apache.activemq.transport.tcp.TcpTransport: org.apache.activemq.transport.tcp.TcpTransport$InitBuffer initBuffer>;
if v == null goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: org.apache.activemq.transport.tcp.TcpTransport$InitBuffer initBuffer>;
v = v.<org.apache.activemq.transport.tcp.TcpTransport$InitBuffer: java.nio.ByteBuffer buffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: byte[] array()>();
virtualinvoke v.<org.apache.activemq.transport.tcp.TcpBufferedInputStream: void unread(byte[])>(v);
label:
v = new java.io.DataInputStream;
specialinvoke v.<java.io.DataInputStream: void <init>(java.io.InputStream)>(v);
v.<org.apache.activemq.transport.tcp.TcpTransport: java.io.DataInputStream dataIn> = v;
v = new org.apache.activemq.transport.tcp.TcpBufferedOutputStream;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket>;
v = virtualinvoke v.<java.net.Socket: java.io.OutputStream getOutputStream()>();
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int ioBufferSize>;
specialinvoke v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: void <init>(java.io.OutputStream,int)>(v, v);
v = new java.io.DataOutputStream;
specialinvoke v.<java.io.DataOutputStream: void <init>(java.io.OutputStream)>(v);
v.<org.apache.activemq.transport.tcp.TcpTransport: java.io.DataOutputStream dataOut> = v;
v.<org.apache.activemq.transport.tcp.TcpTransport: org.apache.activemq.transport.tcp.TimeStampStream buffOut> = v;
return;
}
protected void closeStreams() throws java.io.IOException
{
java.io.DataInputStream v, v;
java.io.DataOutputStream v, v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.io.DataOutputStream dataOut>;
if v == null goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.io.DataOutputStream dataOut>;
virtualinvoke v.<java.io.DataOutputStream: void close()>();
label:
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.io.DataInputStream dataIn>;
if v == null goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.io.DataInputStream dataIn>;
virtualinvoke v.<java.io.DataInputStream: void close()>();
label:
return;
}
public void setSocketOptions(java.util.Map)
{
java.util.HashMap v;
org.apache.activemq.transport.tcp.TcpTransport v;
java.util.Map v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: java.util.Map;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>(java.util.Map)>(v);
v.<org.apache.activemq.transport.tcp.TcpTransport: java.util.Map socketOptions> = v;
return;
}
public java.lang.String getRemoteAddress()
{
java.net.Socket v, v, v;
java.net.SocketAddress v, v;
java.net.InetAddress v;
int v;
org.apache.activemq.transport.tcp.TcpTransport v;
java.lang.String v, v, v;
boolean v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket>;
if v == null goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket>;
v = virtualinvoke v.<java.net.Socket: java.net.SocketAddress getRemoteSocketAddress()>();
v = v instanceof java.net.InetSocketAddress;
if v == 0 goto label;
v = virtualinvoke v.<java.net.InetSocketAddress: java.net.InetAddress getAddress()>();
v = virtualinvoke v.<java.net.InetAddress: java.lang.String getHostAddress()>();
v = virtualinvoke v.<java.net.InetSocketAddress: int getPort()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("tcp://\u0001:\u0001");
return v;
label:
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket>;
v = virtualinvoke v.<java.net.Socket: java.net.SocketAddress getRemoteSocketAddress()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.net.SocketAddress)>(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");
return v;
label:
return null;
}
public java.lang.Object narrow(java.lang.Class)
{
java.net.Socket v;
org.apache.activemq.transport.tcp.TimeStampStream v;
java.lang.Class v;
java.lang.Object v, v, v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: java.lang.Class;
if v != class "Ljava/net/Socket;" goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: java.net.Socket socket>;
v = virtualinvoke v.<java.lang.Class: java.lang.Object cast(java.lang.Object)>(v);
return v;
label:
if v != class "Lorg/apache/activemq/transport/tcp/TimeStampStream;" goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: org.apache.activemq.transport.tcp.TimeStampStream buffOut>;
v = virtualinvoke v.<java.lang.Class: java.lang.Object cast(java.lang.Object)>(v);
return v;
label:
v = specialinvoke v.<org.apache.activemq.transport.TransportThreadSupport: java.lang.Object narrow(java.lang.Class)>(v);
return v;
}
public int getReceiveCounter()
{
int v;
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int receiveCounter>;
return v;
}
private boolean setTrafficClass(java.net.Socket) throws java.net.SocketException, java.lang.IllegalArgumentException
{
java.net.Socket v;
int v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.transport.tcp.TcpTransport v;
java.lang.String v, v;
boolean v, v, v, v;
org.slf4j.Logger v, v;
java.lang.IllegalArgumentException v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: java.net.Socket;
if v == null goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: boolean diffServChosen>;
if v != 0 goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: boolean typeOfServiceChosen>;
if v != 0 goto label;
label:
return 0;
label:
v = v.<org.apache.activemq.transport.tcp.TcpTransport: boolean diffServChosen>;
if v == 0 goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: boolean typeOfServiceChosen>;
if v == 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Cannot set both the  Differentiated Services and Type of Services transport  options on the same connection.");
throw v;
label:
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int trafficClass>;
virtualinvoke v.<java.net.Socket: void setTrafficClass(int)>(v);
v = virtualinvoke v.<java.net.Socket: int getTrafficClass()>();
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int trafficClass>;
if v == v goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int trafficClass>;
v = v >> 2;
v = v >> 2;
if v != v goto label;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int trafficClass>;
v = v & 3;
v = v & 3;
if v == v goto label;
v = <org.apache.activemq.transport.tcp.TcpTransport: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int trafficClass>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,int)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Attempted to set the Traffic Class to \u but the result Traffic Class was \u. Please check that your system allows you to set the ECN bits (the first two bits).");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
goto label;
label:
v = <org.apache.activemq.transport.tcp.TcpTransport: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: int trafficClass>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,int)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Attempted to set the Traffic Class to \u but the result Traffic Class was \u. Please check that your system supports java.net.setTrafficClass.");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
label:
return 0;
label:
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean diffServChosen> = 0;
v.<org.apache.activemq.transport.tcp.TcpTransport: boolean typeOfServiceChosen> = 0;
return 1;
}
public org.apache.activemq.wireformat.WireFormat getWireFormat()
{
org.apache.activemq.transport.tcp.TcpTransport v;
org.apache.activemq.wireformat.WireFormat v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v = v.<org.apache.activemq.transport.tcp.TcpTransport: org.apache.activemq.wireformat.WireFormat wireFormat>;
return v;
}
public java.security.cert.X509Certificate[] getPeerCertificates()
{
org.apache.activemq.transport.tcp.TcpTransport v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
return null;
}
public void setPeerCertificates(java.security.cert.X509Certificate[])
{
org.apache.activemq.transport.tcp.TcpTransport v;
java.security.cert.X509Certificate[] v;
v := @this: org.apache.activemq.transport.tcp.TcpTransport;
v := @parameter: java.security.cert.X509Certificate[];
return;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/activemq/transport/tcp/TcpTransport;");
<org.apache.activemq.transport.tcp.TcpTransport: org.slf4j.Logger LOG> = v;
return;
}
}