public class org.apache.dubbo.rpc.protocol.thrift.ThriftCodec extends java.lang.Object implements org.apache.dubbo.remoting.Codec
{
public static final int MESSAGE_LENGTH_INDEX;
public static final int MESSAGE_HEADER_LENGTH_INDEX;
public static final int MESSAGE_SHORTEST_LENGTH;
public static final java.lang.String NAME;
public static final java.lang.String PARAMETER_CLASS_NAME_GENERATOR;
public static final byte VERSION;
public static final short MAGIC;
static final java.util.concurrent.ConcurrentMap CACHED_REQUEST;
private static final java.util.concurrent.atomic.AtomicInteger THRIFT_SEQ_ID;
private static final java.util.concurrent.ConcurrentMap CACHED_CLASS;
public void <init>()
{
org.apache.dubbo.rpc.protocol.thrift.ThriftCodec v;
v := @this: org.apache.dubbo.rpc.protocol.thrift.ThriftCodec;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
private static int nextSeqId()
{
int v;
java.util.concurrent.atomic.AtomicInteger v;
v = <org.apache.dubbo.rpc.protocol.thrift.ThriftCodec: java.util.concurrent.atomic.AtomicInteger THRIFT_SEQ_ID>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int incrementAndGet()>();
return v;
}
static int getSeqId()
{
int v;
java.util.concurrent.atomic.AtomicInteger v;
v = <org.apache.dubbo.rpc.protocol.thrift.ThriftCodec: java.util.concurrent.atomic.AtomicInteger THRIFT_SEQ_ID>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
return v;
}
public void encode(org.apache.dubbo.remoting.Channel, org.apache.dubbo.remoting.buffer.ChannelBuffer, java.lang.Object) throws java.io.IOException
{
java.lang.UnsupportedOperationException v;
org.apache.dubbo.remoting.buffer.ChannelBuffer v;
org.apache.dubbo.rpc.protocol.thrift.ThriftCodec v;
org.apache.dubbo.remoting.Channel v;
java.lang.Class v, v;
java.lang.Object v;
java.lang.String v, v, v;
boolean v, v;
v := @this: org.apache.dubbo.rpc.protocol.thrift.ThriftCodec;
v := @parameter: org.apache.dubbo.remoting.Channel;
v := @parameter: org.apache.dubbo.remoting.buffer.ChannelBuffer;
v := @parameter: java.lang.Object;
v = v instanceof org.apache.dubbo.remoting.exchange.Request;
if v == 0 goto label;
specialinvoke v.<org.apache.dubbo.rpc.protocol.thrift.ThriftCodec: void encodeRequest(org.apache.dubbo.remoting.Channel,org.apache.dubbo.remoting.buffer.ChannelBuffer,org.apache.dubbo.remoting.exchange.Request)>(v, v, v);
goto label;
label:
v = v instanceof org.apache.dubbo.remoting.exchange.Response;
if v == 0 goto label;
specialinvoke v.<org.apache.dubbo.rpc.protocol.thrift.ThriftCodec: void encodeResponse(org.apache.dubbo.remoting.Channel,org.apache.dubbo.remoting.buffer.ChannelBuffer,org.apache.dubbo.remoting.exchange.Response)>(v, v, v);
goto label;
label:
v = new java.lang.UnsupportedOperationException;
v = class "Lorg/apache/dubbo/remoting/exchange/Request;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = class "Lorg/apache/dubbo/remoting/exchange/Response;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,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[])>("Thrift codec only support encode \u and \u0001");
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
public java.lang.Object decode(org.apache.dubbo.remoting.Channel, org.apache.dubbo.remoting.buffer.ChannelBuffer) throws java.io.IOException
{
java.lang.Throwable v;
byte[] v;
org.apache.thrift.protocol.TBinaryProtocol v;
short v;
org.apache.dubbo.remoting.buffer.ChannelBufferInputStream v;
int v, v, v;
java.lang.String v, v;
org.apache.thrift.transport.TIOStreamTransport v;
org.apache.dubbo.remoting.buffer.ChannelBuffer v;
org.apache.dubbo.rpc.protocol.thrift.ThriftCodec v;
java.io.IOException v, v;
org.apache.dubbo.remoting.Channel v;
org.apache.dubbo.remoting.Codec2$DecodeResult v, v;
java.lang.Object v;
v := @this: org.apache.dubbo.rpc.protocol.thrift.ThriftCodec;
v := @parameter: org.apache.dubbo.remoting.Channel;
v := @parameter: org.apache.dubbo.remoting.buffer.ChannelBuffer;
v = interfaceinvoke v.<org.apache.dubbo.remoting.buffer.ChannelBuffer: int readableBytes()>();
if v >= 10 goto label;
v = <org.apache.dubbo.remoting.Codec2$DecodeResult: org.apache.dubbo.remoting.Codec2$DecodeResult NEED_MORE_INPUT>;
return v;
label:
v = new org.apache.thrift.transport.TIOStreamTransport;
v = new org.apache.dubbo.remoting.buffer.ChannelBufferInputStream;
specialinvoke v.<org.apache.dubbo.remoting.buffer.ChannelBufferInputStream: void <init>(org.apache.dubbo.remoting.buffer.ChannelBuffer)>(v);
specialinvoke v.<org.apache.thrift.transport.TIOStreamTransport: void <init>(java.io.InputStream)>(v);
v = new org.apache.thrift.protocol.TBinaryProtocol;
specialinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void <init>(org.apache.thrift.transport.TTransport)>(v);
label:
v = newarray (byte)[4];
virtualinvoke v.<org.apache.thrift.transport.TIOStreamTransport: int read(byte[],int,int)>(v, 0, 4);
v = virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: short readI16()>();
v = virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: int readI32()>();
label:
goto label;
label:
v := @caughtexception;
v = new java.io.IOException;
v = virtualinvoke v.<org.apache.thrift.TException: java.lang.String getMessage()>();
specialinvoke v.<java.io.IOException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = (int) -9540;
if v == v goto label;
v = new java.io.IOException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (short)>(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 magic code \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
if v >= v goto label;
v = <org.apache.dubbo.remoting.Codec2$DecodeResult: org.apache.dubbo.remoting.Codec2$DecodeResult NEED_MORE_INPUT>;
return v;
label:
v = specialinvoke v.<org.apache.dubbo.rpc.protocol.thrift.ThriftCodec: java.lang.Object decode(org.apache.thrift.protocol.TProtocol)>(v);
return v;
catch org.apache.thrift.TException from label to label with label;
}
private java.lang.Object decode(org.apache.thrift.protocol.TProtocol) throws java.io.IOException
{
byte v, v, v;
java.lang.NoSuchFieldException v;
java.lang.Long v;
org.apache.dubbo.rpc.AppResponse v, v;
org.apache.dubbo.rpc.protocol.thrift.ThriftCodec v;
org.apache.dubbo.rpc.protocol.thrift.ThriftCodec$RequestData v;
java.lang.Throwable v, v, v, v;
java.lang.Object[] v, v, v;
org.apache.dubbo.common.extension.ExtensionLoader v, v;
org.apache.dubbo.remoting.exchange.Request v;
long v;
java.lang.ReflectiveOperationException v, v, v;
java.util.ArrayList v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.Class[] v, v;
java.io.IOException v, v, v;
java.lang.reflect.Field v;
java.lang.ClassNotFoundException v, v;
java.lang.NoSuchMethodException v;
java.lang.reflect.Method v;
boolean v, v, v;
java.lang.IllegalAccessException v;
org.apache.dubbo.rpc.RpcException v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.thrift.TFieldIdEnum v, v;
org.apache.dubbo.remoting.exchange.Response v, v;
java.util.concurrent.ConcurrentMap v, v, v, v, v;
int v, v, v, v, v;
org.apache.dubbo.rpc.RpcInvocation v;
org.apache.thrift.TApplicationException v;
java.lang.IllegalArgumentException v;
org.apache.thrift.protocol.TMessage v;
org.apache.thrift.protocol.TProtocol v;
java.lang.Class v;
java.lang.Object v, v, v, v, v, v, v, v;
v := @this: org.apache.dubbo.rpc.protocol.thrift.ThriftCodec;
v := @parameter: org.apache.thrift.protocol.TProtocol;
label:
virtualinvoke v.<org.apache.thrift.protocol.TProtocol: short readI16()>();
virtualinvoke v.<org.apache.thrift.protocol.TProtocol: byte readByte()>();
v = virtualinvoke v.<org.apache.thrift.protocol.TProtocol: java.lang.String readString()>();
v = virtualinvoke v.<org.apache.thrift.protocol.TProtocol: java.lang.String readString()>();
v = virtualinvoke v.<org.apache.thrift.protocol.TProtocol: long readI64()>();
v = virtualinvoke v.<org.apache.thrift.protocol.TProtocol: org.apache.thrift.protocol.TMessage readMessageBegin()>();
label:
goto label;
label:
v := @caughtexception;
v = new java.io.IOException;
v = virtualinvoke v.<org.apache.thrift.TException: java.lang.String getMessage()>();
specialinvoke v.<java.io.IOException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = v.<org.apache.thrift.protocol.TMessage: byte type>;
if v != 1 goto label;
v = new org.apache.dubbo.rpc.RpcInvocation;
specialinvoke v.<org.apache.dubbo.rpc.RpcInvocation: void <init>()>();
virtualinvoke v.<org.apache.dubbo.rpc.RpcInvocation: void setAttachment(java.lang.String,java.lang.String)>("interface", v);
virtualinvoke v.<org.apache.dubbo.rpc.RpcInvocation: void setAttachment(java.lang.String,java.lang.String)>("path", v);
v = v.<org.apache.thrift.protocol.TMessage: java.lang.String name>;
virtualinvoke v.<org.apache.dubbo.rpc.RpcInvocation: void setMethodName(java.lang.String)>(v);
v = staticinvoke <org.apache.dubbo.common.extension.ExtensionLoader: org.apache.dubbo.common.extension.ExtensionLoader getExtensionLoader(java.lang.Class)>(class "Lorg/apache/dubbo/rpc/protocol/thrift/ClassNameGenerator;");
v = virtualinvoke v.<org.apache.dubbo.common.extension.ExtensionLoader: java.lang.Object getExtension(java.lang.String)>("thrift");
v = v.<org.apache.thrift.protocol.TMessage: java.lang.String name>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.protocol.thrift.ClassNameGenerator: java.lang.String generateArgsClassName(java.lang.String,java.lang.String)>(v, v);
v = staticinvoke <org.apache.dubbo.common.utils.StringUtils: boolean isEmpty(java.lang.String)>(v);
if v == 0 goto label;
v = new org.apache.dubbo.rpc.RpcException;
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(int,java.lang.String)>(5, "The specified interface name incorrect.");
throw v;
label:
v = <org.apache.dubbo.rpc.protocol.thrift.ThriftCodec: java.util.concurrent.ConcurrentMap CACHED_CLASS>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
label:
v = staticinvoke <org.apache.dubbo.common.utils.ClassUtils: java.lang.Class forNameWithThreadContextClassLoader(java.lang.String)>(v);
v = <org.apache.dubbo.rpc.protocol.thrift.ThriftCodec: java.util.concurrent.ConcurrentMap CACHED_CLASS>;
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.dubbo.rpc.RpcException;
v = virtualinvoke v.<java.lang.ClassNotFoundException: java.lang.String getMessage()>();
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(int,java.lang.String,java.lang.Throwable)>(5, v, v);
throw v;
label:
v = virtualinvoke v.<java.lang.Class: java.lang.Object newInstance()>();
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.dubbo.rpc.RpcException;
v = virtualinvoke v.<java.lang.ReflectiveOperationException: java.lang.String getMessage()>();
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(int,java.lang.String,java.lang.Throwable)>(5, v, v);
throw v;
label:
interfaceinvoke v.<org.apache.thrift.TBase: void read(org.apache.thrift.protocol.TProtocol)>(v);
virtualinvoke v.<org.apache.thrift.protocol.TProtocol: void readMessageEnd()>();
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.dubbo.rpc.RpcException;
v = virtualinvoke v.<org.apache.thrift.TException: java.lang.String getMessage()>();
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(int,java.lang.String,java.lang.Throwable)>(5, v, v);
throw v;
label:
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = 1;
label:
v = v;
v = v + 1;
v = interfaceinvoke v.<org.apache.thrift.TBase: org.apache.thrift.TFieldIdEnum fieldForId(int)>(v);
if v == null goto label;
v = interfaceinvoke v.<org.apache.thrift.TFieldIdEnum: java.lang.String getFieldName()>();
v = staticinvoke <org.apache.dubbo.rpc.protocol.thrift.ThriftUtils: java.lang.String generateGetMethodName(java.lang.String)>(v);
label:
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.dubbo.rpc.RpcException;
v = virtualinvoke v.<java.lang.NoSuchMethodException: java.lang.String getMessage()>();
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(int,java.lang.String,java.lang.Throwable)>(5, v, v);
throw v;
label:
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class getReturnType()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = newarray (java.lang.Object)[0];
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.dubbo.rpc.RpcException;
v = virtualinvoke v.<java.lang.ReflectiveOperationException: java.lang.String getMessage()>();
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(int,java.lang.String,java.lang.Throwable)>(5, v, v);
throw v;
label:
v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray()>();
virtualinvoke v.<org.apache.dubbo.rpc.RpcInvocation: void setArguments(java.lang.Object[])>(v);
v = newarray (java.lang.Class)[0];
v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray(java.lang.Object[])>(v);
virtualinvoke v.<org.apache.dubbo.rpc.RpcInvocation: void setParameterTypes(java.lang.Class[])>(v);
v = new org.apache.dubbo.remoting.exchange.Request;
specialinvoke v.<org.apache.dubbo.remoting.exchange.Request: void <init>(long)>(v);
virtualinvoke v.<org.apache.dubbo.remoting.exchange.Request: void setData(java.lang.Object)>(v);
v = <org.apache.dubbo.rpc.protocol.thrift.ThriftCodec: java.util.concurrent.ConcurrentMap CACHED_REQUEST>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = v.<org.apache.thrift.protocol.TMessage: int seqid>;
v = v.<org.apache.thrift.protocol.TMessage: java.lang.String name>;
v = staticinvoke <org.apache.dubbo.rpc.protocol.thrift.ThriftCodec$RequestData: org.apache.dubbo.rpc.protocol.thrift.ThriftCodec$RequestData create(int,java.lang.String,java.lang.String)>(v, v, v);
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, v);
return v;
label:
v = v.<org.apache.thrift.protocol.TMessage: byte type>;
if v != 3 goto label;
label:
v = staticinvoke <org.apache.thrift.TApplicationException: org.apache.thrift.TApplicationException readFrom(org.apache.thrift.protocol.TProtocol)>(v);
virtualinvoke v.<org.apache.thrift.protocol.TProtocol: void readMessageEnd()>();
label:
goto label;
label:
v := @caughtexception;
v = new java.io.IOException;
v = virtualinvoke v.<org.apache.thrift.TException: java.lang.String getMessage()>();
specialinvoke v.<java.io.IOException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = new org.apache.dubbo.rpc.AppResponse;
specialinvoke v.<org.apache.dubbo.rpc.AppResponse: void <init>()>();
v = new org.apache.dubbo.rpc.RpcException;
v = virtualinvoke v.<org.apache.thrift.TApplicationException: java.lang.String getMessage()>();
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(java.lang.String)>(v);
virtualinvoke v.<org.apache.dubbo.rpc.AppResponse: void setException(java.lang.Throwable)>(v);
v = new org.apache.dubbo.remoting.exchange.Response;
specialinvoke v.<org.apache.dubbo.remoting.exchange.Response: void <init>()>();
virtualinvoke v.<org.apache.dubbo.remoting.exchange.Response: void setResult(java.lang.Object)>(v);
virtualinvoke v.<org.apache.dubbo.remoting.exchange.Response: void setId(long)>(v);
return v;
label:
v = v.<org.apache.thrift.protocol.TMessage: byte type>;
if v != 2 goto label;
v = staticinvoke <org.apache.dubbo.common.extension.ExtensionLoader: org.apache.dubbo.common.extension.ExtensionLoader getExtensionLoader(java.lang.Class)>(class "Lorg/apache/dubbo/rpc/protocol/thrift/ClassNameGenerator;");
v = virtualinvoke v.<org.apache.dubbo.common.extension.ExtensionLoader: java.lang.Object getExtension(java.lang.String)>("thrift");
v = v.<org.apache.thrift.protocol.TMessage: java.lang.String name>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.protocol.thrift.ClassNameGenerator: java.lang.String generateResultClassName(java.lang.String,java.lang.String)>(v, v);
v = staticinvoke <org.apache.dubbo.common.utils.StringUtils: boolean isEmpty(java.lang.String)>(v);
if v == 0 goto label;
v = new java.lang.IllegalArgumentException;
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[])>("Could not infer service result class name from service name \u, the service name you specified may not generated by thrift idl compiler");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = <org.apache.dubbo.rpc.protocol.thrift.ThriftCodec: java.util.concurrent.ConcurrentMap CACHED_CLASS>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
label:
v = staticinvoke <org.apache.dubbo.common.utils.ClassUtils: java.lang.Class forNameWithThreadContextClassLoader(java.lang.String)>(v);
v = <org.apache.dubbo.rpc.protocol.thrift.ThriftCodec: java.util.concurrent.ConcurrentMap CACHED_CLASS>;
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.dubbo.rpc.RpcException;
v = virtualinvoke v.<java.lang.ClassNotFoundException: java.lang.String getMessage()>();
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(int,java.lang.String,java.lang.Throwable)>(5, v, v);
throw v;
label:
v = virtualinvoke v.<java.lang.Class: java.lang.Object newInstance()>();
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.dubbo.rpc.RpcException;
v = virtualinvoke v.<java.lang.ReflectiveOperationException: java.lang.String getMessage()>();
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(int,java.lang.String,java.lang.Throwable)>(5, v, v);
throw v;
label:
interfaceinvoke v.<org.apache.thrift.TBase: void read(org.apache.thrift.protocol.TProtocol)>(v);
virtualinvoke v.<org.apache.thrift.protocol.TProtocol: void readMessageEnd()>();
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.dubbo.rpc.RpcException;
v = virtualinvoke v.<org.apache.thrift.TException: java.lang.String getMessage()>();
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(int,java.lang.String,java.lang.Throwable)>(5, v, v);
throw v;
label:
v = null;
v = 0;
label:
v = v;
v = v + 1;
v = interfaceinvoke v.<org.apache.thrift.TBase: org.apache.thrift.TFieldIdEnum fieldForId(int)>(v);
if v == null goto label;
label:
v = interfaceinvoke v.<org.apache.thrift.TFieldIdEnum: java.lang.String getFieldName()>();
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Field getDeclaredField(java.lang.String)>(v);
staticinvoke <org.apache.dubbo.common.utils.ReflectUtils: void makeAccessible(java.lang.reflect.Field)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.dubbo.rpc.RpcException;
v = virtualinvoke v.<java.lang.NoSuchFieldException: java.lang.String getMessage()>();
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(int,java.lang.String,java.lang.Throwable)>(5, v, v);
throw v;
label:
v = virtualinvoke v.<java.lang.reflect.Field: java.lang.Object get(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.dubbo.rpc.RpcException;
v = virtualinvoke v.<java.lang.IllegalAccessException: java.lang.String getMessage()>();
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(int,java.lang.String,java.lang.Throwable)>(5, v, v);
throw v;
label:
if v == null goto label;
label:
v = new org.apache.dubbo.remoting.exchange.Response;
specialinvoke v.<org.apache.dubbo.remoting.exchange.Response: void <init>()>();
virtualinvoke v.<org.apache.dubbo.remoting.exchange.Response: void setId(long)>(v);
v = new org.apache.dubbo.rpc.AppResponse;
specialinvoke v.<org.apache.dubbo.rpc.AppResponse: void <init>()>();
v = v instanceof java.lang.Throwable;
if v == 0 goto label;
virtualinvoke v.<org.apache.dubbo.rpc.AppResponse: void setException(java.lang.Throwable)>(v);
goto label;
label:
virtualinvoke v.<org.apache.dubbo.rpc.AppResponse: void setValue(java.lang.Object)>(v);
label:
virtualinvoke v.<org.apache.dubbo.remoting.exchange.Response: void setResult(java.lang.Object)>(v);
return v;
label:
v = new java.io.IOException;
specialinvoke v.<java.io.IOException: void <init>()>();
throw v;
catch org.apache.thrift.TException from label to label with label;
catch java.lang.ClassNotFoundException from label to label with label;
catch java.lang.InstantiationException from label to label with label;
catch java.lang.IllegalAccessException from label to label with label;
catch org.apache.thrift.TException from label to label with label;
catch java.lang.NoSuchMethodException from label to label with label;
catch java.lang.IllegalAccessException from label to label with label;
catch java.lang.reflect.InvocationTargetException from label to label with label;
catch org.apache.thrift.TException from label to label with label;
catch java.lang.ClassNotFoundException from label to label with label;
catch java.lang.InstantiationException from label to label with label;
catch java.lang.IllegalAccessException from label to label with label;
catch org.apache.thrift.TException from label to label with label;
catch java.lang.NoSuchFieldException from label to label with label;
catch java.lang.IllegalAccessException from label to label with label;
}
private void encodeRequest(org.apache.dubbo.remoting.Channel, org.apache.dubbo.remoting.buffer.ChannelBuffer, org.apache.dubbo.remoting.exchange.Request) throws java.io.IOException
{
byte[] v, v;
org.apache.thrift.protocol.TBinaryProtocol v;
org.apache.dubbo.rpc.protocol.thrift.ThriftCodec v;
org.apache.dubbo.remoting.Channel v;
java.lang.Throwable v, v;
java.lang.Object[] v, v, v;
org.apache.dubbo.common.extension.ExtensionLoader v;
org.apache.dubbo.remoting.exchange.Request v;
long v;
java.lang.ReflectiveOperationException v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.Class[] v, v;
java.lang.ClassNotFoundException v;
java.lang.NoSuchMethodException v;
org.apache.dubbo.common.URL v;
org.apache.thrift.transport.TTransport v, v;
org.apache.thrift.transport.TIOStreamTransport v;
java.lang.reflect.Method v;
boolean v, v;
org.apache.dubbo.remoting.buffer.ChannelBuffer v;
org.apache.dubbo.rpc.RpcException v, v, v, v, v, v;
org.apache.thrift.TFieldIdEnum v;
java.util.concurrent.ConcurrentMap v, v;
int v, v, v, v, v, v, v, v;
org.apache.dubbo.rpc.protocol.thrift.io.RandomAccessByteArrayOutputStream v;
java.lang.IllegalArgumentException v;
org.apache.thrift.protocol.TMessage v;
java.lang.Class v;
java.lang.Object v, v, v, v, v;
v := @this: org.apache.dubbo.rpc.protocol.thrift.ThriftCodec;
v := @parameter: org.apache.dubbo.remoting.Channel;
v := @parameter: org.apache.dubbo.remoting.buffer.ChannelBuffer;
v := @parameter: org.apache.dubbo.remoting.exchange.Request;
v = virtualinvoke v.<org.apache.dubbo.remoting.exchange.Request: java.lang.Object getData()>();
v = staticinvoke <org.apache.dubbo.rpc.protocol.thrift.ThriftCodec: int nextSeqId()>();
v = virtualinvoke v.<org.apache.dubbo.rpc.RpcInvocation: java.lang.String getAttachment(java.lang.String)>("interface");
v = staticinvoke <org.apache.dubbo.common.utils.StringUtils: boolean isEmpty(java.lang.String)>(v);
if v == 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Could not find service name in attachment with key interface");
throw v;
label:
v = new org.apache.thrift.protocol.TMessage;
v = virtualinvoke v.<org.apache.dubbo.rpc.RpcInvocation: java.lang.String getMethodName()>();
specialinvoke v.<org.apache.thrift.protocol.TMessage: void <init>(java.lang.String,byte,int)>(v, 1, v);
v = staticinvoke <org.apache.dubbo.common.extension.ExtensionLoader: org.apache.dubbo.common.extension.ExtensionLoader getExtensionLoader(java.lang.Class)>(class "Lorg/apache/dubbo/rpc/protocol/thrift/ClassNameGenerator;");
v = interfaceinvoke v.<org.apache.dubbo.remoting.Channel: org.apache.dubbo.common.URL getUrl()>();
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.lang.String getParameter(java.lang.String,java.lang.String)>("class.name.generator", "thrift");
v = virtualinvoke v.<org.apache.dubbo.common.extension.ExtensionLoader: java.lang.Object getExtension(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.dubbo.rpc.RpcInvocation: java.lang.String getMethodName()>();
v = interfaceinvoke v.<org.apache.dubbo.rpc.protocol.thrift.ClassNameGenerator: java.lang.String generateArgsClassName(java.lang.String,java.lang.String)>(v, v);
v = staticinvoke <org.apache.dubbo.common.utils.StringUtils: boolean isEmpty(java.lang.String)>(v);
if v == 0 goto label;
v = new org.apache.dubbo.rpc.RpcException;
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(int,java.lang.String)>(5, "Could not encode request, the specified interface may be incorrect.");
throw v;
label:
v = <org.apache.dubbo.rpc.protocol.thrift.ThriftCodec: java.util.concurrent.ConcurrentMap CACHED_CLASS>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
label:
v = staticinvoke <org.apache.dubbo.common.utils.ClassUtils: java.lang.Class forNameWithThreadContextClassLoader(java.lang.String)>(v);
v = <org.apache.dubbo.rpc.protocol.thrift.ThriftCodec: java.util.concurrent.ConcurrentMap CACHED_CLASS>;
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.dubbo.rpc.RpcException;
v = virtualinvoke v.<java.lang.ClassNotFoundException: java.lang.String getMessage()>();
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(int,java.lang.String,java.lang.Throwable)>(5, v, v);
throw v;
label:
v = virtualinvoke v.<java.lang.Class: java.lang.Object newInstance()>();
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.dubbo.rpc.RpcException;
v = virtualinvoke v.<java.lang.ReflectiveOperationException: java.lang.String getMessage()>();
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(int,java.lang.String,java.lang.Throwable)>(5, v, v);
throw v;
label:
v = 0;
label:
v = virtualinvoke v.<org.apache.dubbo.rpc.RpcInvocation: java.lang.Object[] getArguments()>();
v = lengthof v;
if v >= v goto label;
v = virtualinvoke v.<org.apache.dubbo.rpc.RpcInvocation: java.lang.Object[] getArguments()>();
v = v[v];
if v == null goto label;
v = v + 1;
v = interfaceinvoke v.<org.apache.thrift.TBase: org.apache.thrift.TFieldIdEnum fieldForId(int)>(v);
v = interfaceinvoke v.<org.apache.thrift.TFieldIdEnum: java.lang.String getFieldName()>();
v = staticinvoke <org.apache.dubbo.rpc.protocol.thrift.ThriftUtils: java.lang.String generateSetMethodName(java.lang.String)>(v);
label:
v = newarray (java.lang.Class)[1];
v = virtualinvoke v.<org.apache.dubbo.rpc.RpcInvocation: java.lang.Class[] getParameterTypes()>();
v = v[v];
v[0] = v;
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.dubbo.rpc.RpcException;
v = virtualinvoke v.<java.lang.NoSuchMethodException: java.lang.String getMessage()>();
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(int,java.lang.String,java.lang.Throwable)>(5, v, v);
throw v;
label:
v = newarray (java.lang.Object)[1];
v[0] = v;
virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.dubbo.rpc.RpcException;
v = virtualinvoke v.<java.lang.ReflectiveOperationException: java.lang.String getMessage()>();
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(int,java.lang.String,java.lang.Throwable)>(5, v, v);
throw v;
label:
v = v + 1;
goto label;
label:
v = new org.apache.dubbo.rpc.protocol.thrift.io.RandomAccessByteArrayOutputStream;
specialinvoke v.<org.apache.dubbo.rpc.protocol.thrift.io.RandomAccessByteArrayOutputStream: void <init>(int)>(1024);
v = new org.apache.thrift.transport.TIOStreamTransport;
specialinvoke v.<org.apache.thrift.transport.TIOStreamTransport: void <init>(java.io.OutputStream)>(v);
v = new org.apache.thrift.protocol.TBinaryProtocol;
specialinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void <init>(org.apache.thrift.transport.TTransport)>(v);
v = newarray (byte)[4];
label:
virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void writeI16(short)>(-9540);
virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void writeI32(int)>(2147483647);
virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void writeI16(short)>(32767);
virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void writeByte(byte)>(1);
virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void writeString(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.dubbo.rpc.RpcInvocation: java.lang.String getAttachment(java.lang.String)>("path");
virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void writeString(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.dubbo.remoting.exchange.Request: long getId()>();
virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void writeI64(long)>(v);
v = virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: org.apache.thrift.transport.TTransport getTransport()>();
virtualinvoke v.<org.apache.thrift.transport.TTransport: void flush()>();
v = virtualinvoke v.<org.apache.dubbo.rpc.protocol.thrift.io.RandomAccessByteArrayOutputStream: int size()>();
virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void writeMessageBegin(org.apache.thrift.protocol.TMessage)>(v);
interfaceinvoke v.<org.apache.thrift.TBase: void write(org.apache.thrift.protocol.TProtocol)>(v);
virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void writeMessageEnd()>();
v = virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: org.apache.thrift.transport.TTransport getTransport()>();
virtualinvoke v.<org.apache.thrift.transport.TTransport: void flush()>();
v = virtualinvoke v.<org.apache.dubbo.rpc.protocol.thrift.io.RandomAccessByteArrayOutputStream: int size()>();
label:
staticinvoke <org.apache.thrift.transport.TFramedTransport: void encodeFrameSize(int,byte[])>(v, v);
virtualinvoke v.<org.apache.dubbo.rpc.protocol.thrift.io.RandomAccessByteArrayOutputStream: void setWriteIndex(int)>(2);
virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void writeI32(int)>(v);
virtualinvoke v.<org.apache.dubbo.rpc.protocol.thrift.io.RandomAccessByteArrayOutputStream: void setWriteIndex(int)>(6);
v = (int) 65535;
v = v & v;
virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void writeI16(short)>(v);
label:
virtualinvoke v.<org.apache.dubbo.rpc.protocol.thrift.io.RandomAccessByteArrayOutputStream: void setWriteIndex(int)>(v);
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.dubbo.rpc.protocol.thrift.io.RandomAccessByteArrayOutputStream: void setWriteIndex(int)>(v);
throw v;
label:
v := @caughtexception;
v = new org.apache.dubbo.rpc.RpcException;
v = virtualinvoke v.<org.apache.thrift.TException: java.lang.String getMessage()>();
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(int,java.lang.String,java.lang.Throwable)>(5, v, v);
throw v;
label:
interfaceinvoke v.<org.apache.dubbo.remoting.buffer.ChannelBuffer: void writeBytes(byte[])>(v);
v = virtualinvoke v.<org.apache.dubbo.rpc.protocol.thrift.io.RandomAccessByteArrayOutputStream: byte[] toByteArray()>();
interfaceinvoke v.<org.apache.dubbo.remoting.buffer.ChannelBuffer: void writeBytes(byte[])>(v);
return;
catch java.lang.ClassNotFoundException from label to label with label;
catch java.lang.InstantiationException from label to label with label;
catch java.lang.IllegalAccessException from label to label with label;
catch java.lang.NoSuchMethodException from label to label with label;
catch java.lang.IllegalAccessException from label to label with label;
catch java.lang.reflect.InvocationTargetException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch org.apache.thrift.TException from label to label with label;
}
private void encodeResponse(org.apache.dubbo.remoting.Channel, org.apache.dubbo.remoting.buffer.ChannelBuffer, org.apache.dubbo.remoting.exchange.Response) throws java.io.IOException
{
byte[] v, v;
org.apache.thrift.protocol.TBinaryProtocol v;
byte v;
java.lang.Long v;
org.apache.dubbo.rpc.protocol.thrift.ThriftCodec v;
org.apache.dubbo.remoting.Channel v;
java.lang.Throwable v, v, v;
java.lang.Object[] v, v;
org.apache.dubbo.common.extension.ExtensionLoader v;
long v, v;
java.lang.ReflectiveOperationException v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.Class[] v, v, v, v;
java.lang.ClassNotFoundException v;
org.apache.dubbo.common.URL v;
org.apache.thrift.transport.TTransport v, v;
org.apache.thrift.transport.TIOStreamTransport v;
java.lang.reflect.Method v, v, v, v;
boolean v, v, v, v;
org.apache.dubbo.remoting.buffer.ChannelBuffer v;
org.apache.dubbo.rpc.RpcException v, v, v, v, v, v;
org.apache.thrift.TFieldIdEnum v, v;
org.apache.dubbo.remoting.exchange.Response v;
java.util.concurrent.ConcurrentMap v, v, v;
int v, v, v, v, v, v, v, v;
org.apache.thrift.TApplicationException v, v;
org.apache.dubbo.rpc.protocol.thrift.io.RandomAccessByteArrayOutputStream v;
org.apache.thrift.protocol.TMessage v, v, v;
java.lang.Class v, v, v, v;
java.lang.Object v, v, v, v, v, v;
v := @this: org.apache.dubbo.rpc.protocol.thrift.ThriftCodec;
v := @parameter: org.apache.dubbo.remoting.Channel;
v := @parameter: org.apache.dubbo.remoting.buffer.ChannelBuffer;
v := @parameter: org.apache.dubbo.remoting.exchange.Response;
v = virtualinvoke v.<org.apache.dubbo.remoting.exchange.Response: java.lang.Object getResult()>();
v = <org.apache.dubbo.rpc.protocol.thrift.ThriftCodec: java.util.concurrent.ConcurrentMap CACHED_REQUEST>;
v = virtualinvoke v.<org.apache.dubbo.remoting.exchange.Response: long getId()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
v = staticinvoke <org.apache.dubbo.common.extension.ExtensionLoader: org.apache.dubbo.common.extension.ExtensionLoader getExtensionLoader(java.lang.Class)>(class "Lorg/apache/dubbo/rpc/protocol/thrift/ClassNameGenerator;");
v = interfaceinvoke v.<org.apache.dubbo.remoting.Channel: org.apache.dubbo.common.URL getUrl()>();
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.lang.String getParameter(java.lang.String,java.lang.String)>("class.name.generator", "thrift");
v = virtualinvoke v.<org.apache.dubbo.common.extension.ExtensionLoader: java.lang.Object getExtension(java.lang.String)>(v);
v = v.<org.apache.dubbo.rpc.protocol.thrift.ThriftCodec$RequestData: java.lang.String serviceName>;
v = v.<org.apache.dubbo.rpc.protocol.thrift.ThriftCodec$RequestData: java.lang.String methodName>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.protocol.thrift.ClassNameGenerator: java.lang.String generateResultClassName(java.lang.String,java.lang.String)>(v, v);
v = staticinvoke <org.apache.dubbo.common.utils.StringUtils: boolean isEmpty(java.lang.String)>(v);
if v == 0 goto label;
v = new org.apache.dubbo.rpc.RpcException;
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(int,java.lang.String)>(5, "Could not encode response, the specified interface may be incorrect.");
throw v;
label:
v = <org.apache.dubbo.rpc.protocol.thrift.ThriftCodec: java.util.concurrent.ConcurrentMap CACHED_CLASS>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
label:
v = staticinvoke <org.apache.dubbo.common.utils.ClassUtils: java.lang.Class forNameWithThreadContextClassLoader(java.lang.String)>(v);
v = <org.apache.dubbo.rpc.protocol.thrift.ThriftCodec: java.util.concurrent.ConcurrentMap CACHED_CLASS>;
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.dubbo.rpc.RpcException;
v = virtualinvoke v.<java.lang.ClassNotFoundException: java.lang.String getMessage()>();
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(int,java.lang.String,java.lang.Throwable)>(5, v, v);
throw v;
label:
v = virtualinvoke v.<java.lang.Class: java.lang.Object newInstance()>();
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.dubbo.rpc.RpcException;
v = virtualinvoke v.<java.lang.ReflectiveOperationException: java.lang.String getMessage()>();
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(int,java.lang.String,java.lang.Throwable)>(5, v, v);
throw v;
label:
v = null;
v = virtualinvoke v.<org.apache.dubbo.rpc.AppResponse: boolean hasException()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.dubbo.rpc.AppResponse: java.lang.Throwable getException()>();
v = 1;
v = 0;
label:
v = v;
v = v + 1;
v = interfaceinvoke v.<org.apache.thrift.TBase: org.apache.thrift.TFieldIdEnum fieldForId(int)>(v);
if v == null goto label;
v = interfaceinvoke v.<org.apache.thrift.TFieldIdEnum: java.lang.String getFieldName()>();
v = staticinvoke <org.apache.dubbo.rpc.protocol.thrift.ThriftUtils: java.lang.String generateGetMethodName(java.lang.String)>(v);
v = staticinvoke <org.apache.dubbo.rpc.protocol.thrift.ThriftUtils: java.lang.String generateSetMethodName(java.lang.String)>(v);
label:
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>(v, v);
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class getReturnType()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = 1;
v = newarray (java.lang.Class)[1];
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v[0] = v;
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>(v, v);
v = newarray (java.lang.Object)[1];
v[0] = v;
virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.dubbo.rpc.RpcException;
v = virtualinvoke v.<java.lang.ReflectiveOperationException: java.lang.String getMessage()>();
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(int,java.lang.String,java.lang.Throwable)>(5, v, v);
throw v;
label:
if v != 0 goto label;
v = new org.apache.thrift.TApplicationException;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
specialinvoke v.<org.apache.thrift.TApplicationException: void <init>(java.lang.String)>(v);
v = v;
goto label;
label:
v = virtualinvoke v.<org.apache.dubbo.rpc.AppResponse: java.lang.Object getValue()>();
v = interfaceinvoke v.<org.apache.thrift.TBase: org.apache.thrift.TFieldIdEnum fieldForId(int)>(0);
v = interfaceinvoke v.<org.apache.thrift.TFieldIdEnum: java.lang.String getFieldName()>();
v = staticinvoke <org.apache.dubbo.rpc.protocol.thrift.ThriftUtils: java.lang.String generateSetMethodName(java.lang.String)>(v);
v = staticinvoke <org.apache.dubbo.rpc.protocol.thrift.ThriftUtils: java.lang.String generateGetMethodName(java.lang.String)>(v);
label:
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>(v, v);
v = newarray (java.lang.Class)[1];
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class getReturnType()>();
v[0] = v;
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>(v, v);
v = newarray (java.lang.Object)[1];
v[0] = v;
virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.dubbo.rpc.RpcException;
v = virtualinvoke v.<java.lang.ReflectiveOperationException: java.lang.String getMessage()>();
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(int,java.lang.String,java.lang.Throwable)>(5, v, v);
throw v;
label:
if v == null goto label;
v = new org.apache.thrift.protocol.TMessage;
v = v.<org.apache.dubbo.rpc.protocol.thrift.ThriftCodec$RequestData: java.lang.String methodName>;
v = v.<org.apache.dubbo.rpc.protocol.thrift.ThriftCodec$RequestData: int id>;
specialinvoke v.<org.apache.thrift.protocol.TMessage: void <init>(java.lang.String,byte,int)>(v, 3, v);
v = v;
goto label;
label:
v = new org.apache.thrift.protocol.TMessage;
v = v.<org.apache.dubbo.rpc.protocol.thrift.ThriftCodec$RequestData: java.lang.String methodName>;
v = v.<org.apache.dubbo.rpc.protocol.thrift.ThriftCodec$RequestData: int id>;
specialinvoke v.<org.apache.thrift.protocol.TMessage: void <init>(java.lang.String,byte,int)>(v, 2, v);
v = v;
label:
v = new org.apache.dubbo.rpc.protocol.thrift.io.RandomAccessByteArrayOutputStream;
specialinvoke v.<org.apache.dubbo.rpc.protocol.thrift.io.RandomAccessByteArrayOutputStream: void <init>(int)>(1024);
v = new org.apache.thrift.transport.TIOStreamTransport;
specialinvoke v.<org.apache.thrift.transport.TIOStreamTransport: void <init>(java.io.OutputStream)>(v);
v = new org.apache.thrift.protocol.TBinaryProtocol;
specialinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void <init>(org.apache.thrift.transport.TTransport)>(v);
v = newarray (byte)[4];
label:
virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void writeI16(short)>(-9540);
virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void writeI32(int)>(2147483647);
virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void writeI16(short)>(32767);
virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void writeByte(byte)>(1);
v = v.<org.apache.dubbo.rpc.protocol.thrift.ThriftCodec$RequestData: java.lang.String serviceName>;
virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void writeString(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.dubbo.remoting.exchange.Response: long getId()>();
virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void writeI64(long)>(v);
v = virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: org.apache.thrift.transport.TTransport getTransport()>();
virtualinvoke v.<org.apache.thrift.transport.TTransport: void flush()>();
v = virtualinvoke v.<org.apache.dubbo.rpc.protocol.thrift.io.RandomAccessByteArrayOutputStream: int size()>();
virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void writeMessageBegin(org.apache.thrift.protocol.TMessage)>(v);
v = v.<org.apache.thrift.protocol.TMessage: byte type>;
lookupswitch(v)
{
case 2: goto label;
case 3: goto label;
default: goto label;
};
label:
virtualinvoke v.<org.apache.thrift.TApplicationException: void write(org.apache.thrift.protocol.TProtocol)>(v);
goto label;
label:
interfaceinvoke v.<org.apache.thrift.TBase: void write(org.apache.thrift.protocol.TProtocol)>(v);
label:
virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void writeMessageEnd()>();
v = virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: org.apache.thrift.transport.TTransport getTransport()>();
virtualinvoke v.<org.apache.thrift.transport.TTransport: void flush()>();
v = virtualinvoke v.<org.apache.dubbo.rpc.protocol.thrift.io.RandomAccessByteArrayOutputStream: int size()>();
label:
staticinvoke <org.apache.thrift.transport.TFramedTransport: void encodeFrameSize(int,byte[])>(v, v);
virtualinvoke v.<org.apache.dubbo.rpc.protocol.thrift.io.RandomAccessByteArrayOutputStream: void setWriteIndex(int)>(2);
virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void writeI32(int)>(v);
virtualinvoke v.<org.apache.dubbo.rpc.protocol.thrift.io.RandomAccessByteArrayOutputStream: void setWriteIndex(int)>(6);
v = (int) 65535;
v = v & v;
virtualinvoke v.<org.apache.thrift.protocol.TBinaryProtocol: void writeI16(short)>(v);
label:
virtualinvoke v.<org.apache.dubbo.rpc.protocol.thrift.io.RandomAccessByteArrayOutputStream: void setWriteIndex(int)>(v);
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.dubbo.rpc.protocol.thrift.io.RandomAccessByteArrayOutputStream: void setWriteIndex(int)>(v);
throw v;
label:
v := @caughtexception;
v = new org.apache.dubbo.rpc.RpcException;
v = virtualinvoke v.<org.apache.thrift.TException: java.lang.String getMessage()>();
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(int,java.lang.String,java.lang.Throwable)>(5, v, v);
throw v;
label:
interfaceinvoke v.<org.apache.dubbo.remoting.buffer.ChannelBuffer: void writeBytes(byte[])>(v);
v = virtualinvoke v.<org.apache.dubbo.rpc.protocol.thrift.io.RandomAccessByteArrayOutputStream: byte[] toByteArray()>();
interfaceinvoke v.<org.apache.dubbo.remoting.buffer.ChannelBuffer: void writeBytes(byte[])>(v);
return;
catch java.lang.ClassNotFoundException from label to label with label;
catch java.lang.InstantiationException from label to label with label;
catch java.lang.IllegalAccessException from label to label with label;
catch java.lang.NoSuchMethodException from label to label with label;
catch java.lang.reflect.InvocationTargetException from label to label with label;
catch java.lang.IllegalAccessException from label to label with label;
catch java.lang.NoSuchMethodException from label to label with label;
catch java.lang.reflect.InvocationTargetException from label to label with label;
catch java.lang.IllegalAccessException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch org.apache.thrift.TException from label to label with label;
}
static void <clinit>()
{
java.util.concurrent.ConcurrentHashMap v, v;
java.util.concurrent.atomic.AtomicInteger v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
<org.apache.dubbo.rpc.protocol.thrift.ThriftCodec: java.util.concurrent.ConcurrentMap CACHED_REQUEST> = v;
v = new java.util.concurrent.atomic.AtomicInteger;
specialinvoke v.<java.util.concurrent.atomic.AtomicInteger: void <init>(int)>(0);
<org.apache.dubbo.rpc.protocol.thrift.ThriftCodec: java.util.concurrent.atomic.AtomicInteger THRIFT_SEQ_ID> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
<org.apache.dubbo.rpc.protocol.thrift.ThriftCodec: java.util.concurrent.ConcurrentMap CACHED_CLASS> = v;
return;
}
}