public class org.apache.dubbo.remoting.telnet.codec.TelnetCodec extends org.apache.dubbo.remoting.transport.codec.TransportCodec
{
private static final org.apache.dubbo.common.logger.Logger logger;
private static final java.lang.String HISTORY_LIST_KEY;
private static final java.lang.String HISTORY_INDEX_KEY;
private static final byte[] UP;
private static final byte[] DOWN;
private static final java.util.List ENTER;
private static final java.util.List EXIT;
public void <init>()
{
org.apache.dubbo.remoting.telnet.codec.TelnetCodec v;
v := @this: org.apache.dubbo.remoting.telnet.codec.TelnetCodec;
specialinvoke v.<org.apache.dubbo.remoting.transport.codec.TransportCodec: void <init>()>();
return;
}
private static java.nio.charset.Charset getCharset(org.apache.dubbo.remoting.Channel)
{
java.lang.Throwable v, v, v;
org.apache.dubbo.common.URL v;
java.nio.charset.Charset v, v, v, v;
java.lang.String v, v, v, v;
boolean v, v, v;
org.apache.dubbo.common.logger.Logger v, v, v;
org.apache.dubbo.remoting.Channel v;
java.lang.Object v;
v := @parameter: org.apache.dubbo.remoting.Channel;
if v == null goto label;
v = interfaceinvoke v.<org.apache.dubbo.remoting.Channel: java.lang.Object getAttribute(java.lang.String)>("charset");
v = v instanceof java.lang.String;
if v == 0 goto label;
label:
v = staticinvoke <java.nio.charset.Charset: java.nio.charset.Charset forName(java.lang.String)>(v);
label:
return v;
label:
v := @caughtexception;
v = <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: org.apache.dubbo.common.logger.Logger logger>;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void warn(java.lang.String,java.lang.Throwable)>(v, v);
goto label;
label:
v = v instanceof java.nio.charset.Charset;
if v == 0 goto label;
return v;
label:
v = interfaceinvoke v.<org.apache.dubbo.remoting.Channel: org.apache.dubbo.common.URL getUrl()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.lang.String getParameter(java.lang.String)>("charset");
v = staticinvoke <org.apache.dubbo.common.utils.StringUtils: boolean isNotEmpty(java.lang.String)>(v);
if v == 0 goto label;
label:
v = staticinvoke <java.nio.charset.Charset: java.nio.charset.Charset forName(java.lang.String)>(v);
label:
return v;
label:
v := @caughtexception;
v = <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: org.apache.dubbo.common.logger.Logger logger>;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void warn(java.lang.String,java.lang.Throwable)>(v, v);
label:
v = staticinvoke <java.nio.charset.Charset: java.nio.charset.Charset forName(java.lang.String)>("UTF-8");
label:
return v;
label:
v := @caughtexception;
v = <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: org.apache.dubbo.common.logger.Logger logger>;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void warn(java.lang.String,java.lang.Throwable)>(v, v);
v = staticinvoke <java.nio.charset.Charset: java.nio.charset.Charset defaultCharset()>();
return v;
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;
}
private static java.lang.String toString(byte[], java.nio.charset.Charset) throws java.io.UnsupportedEncodingException
{
byte[] v, v;
byte v, v, v, v, v, v, v;
java.nio.charset.Charset v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v;
v := @parameter: byte[];
v := @parameter: java.nio.charset.Charset;
v = lengthof v;
v = newarray (byte)[v];
v = 0;
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
if v != 8 goto label;
if v <= 0 goto label;
v = v - 1;
label:
if v <= 2 goto label;
v = v - 2;
v = v[v];
if v >= 0 goto label;
if v <= 0 goto label;
v = v - 1;
goto label;
label:
if v != 27 goto label;
v = lengthof v;
v = v - 4;
if v >= v goto label;
v = v + 4;
v = v[v];
if v != 126 goto label;
v = v + 4;
goto label;
label:
v = lengthof v;
v = v - 3;
if v >= v goto label;
v = v + 3;
v = v[v];
if v != 126 goto label;
v = v + 3;
goto label;
label:
v = lengthof v;
v = v - 2;
if v >= v goto label;
v = v + 2;
goto label;
label:
v = (int) -1;
if v != v goto label;
v = lengthof v;
v = v - 2;
if v >= v goto label;
v = v + 1;
v = v[v];
v = (int) -3;
if v == v goto label;
v = v + 1;
v = v[v];
v = (int) -5;
if v != v goto label;
label:
v = v + 2;
goto label;
label:
v = v;
v = v + 1;
v = v[v];
v[v] = v;
label:
v = v + 1;
goto label;
label:
if v != 0 goto label;
return "";
label:
v = new java.lang.String;
v = virtualinvoke v.<java.nio.charset.Charset: java.lang.String name()>();
specialinvoke v.<java.lang.String: void <init>(byte[],int,int,java.lang.String)>(v, 0, v, v);
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
return v;
}
private static boolean isEquals(byte[], byte[]) throws java.io.IOException
{
byte[] v, v;
int v, v;
boolean v, v;
v := @parameter: byte[];
v := @parameter: byte[];
v = lengthof v;
v = lengthof v;
if v != v goto label;
v = staticinvoke <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: boolean endsWith(byte[],byte[])>(v, v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private static boolean endsWith(byte[], byte[]) throws java.io.IOException
{
byte[] v, v;
byte v, v;
int v, v, v, v, v, v, v, v;
v := @parameter: byte[];
v := @parameter: byte[];
v = lengthof v;
v = lengthof v;
if v >= v goto label;
return 0;
label:
v = lengthof v;
v = lengthof v;
v = v - v;
v = lengthof v;
v = v - 1;
label:
if v < 0 goto label;
v = v + v;
v = v[v];
v = v[v];
if v == v goto label;
return 0;
label:
v = v - 1;
goto label;
label:
return 1;
}
public void encode(org.apache.dubbo.remoting.Channel, org.apache.dubbo.remoting.buffer.ChannelBuffer, java.lang.Object) throws java.io.IOException
{
byte[] v;
org.apache.dubbo.remoting.buffer.ChannelBuffer v;
org.apache.dubbo.remoting.telnet.codec.TelnetCodec v;
org.apache.dubbo.remoting.Channel v;
java.nio.charset.Charset v;
java.lang.Object v;
java.lang.String v;
boolean v, v;
v := @this: org.apache.dubbo.remoting.telnet.codec.TelnetCodec;
v := @parameter: org.apache.dubbo.remoting.Channel;
v := @parameter: org.apache.dubbo.remoting.buffer.ChannelBuffer;
v := @parameter: java.lang.Object;
v = v instanceof java.lang.String;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.dubbo.remoting.telnet.codec.TelnetCodec: boolean isClientSide(org.apache.dubbo.remoting.Channel)>(v);
if v == 0 goto label;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object)>(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\r\n");
label:
v = staticinvoke <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: java.nio.charset.Charset getCharset(org.apache.dubbo.remoting.Channel)>(v);
v = virtualinvoke v.<java.nio.charset.Charset: java.lang.String name()>();
v = virtualinvoke v.<java.lang.String: byte[] getBytes(java.lang.String)>(v);
interfaceinvoke v.<org.apache.dubbo.remoting.buffer.ChannelBuffer: void writeBytes(byte[])>(v);
goto label;
label:
specialinvoke v.<org.apache.dubbo.remoting.transport.codec.TransportCodec: void encode(org.apache.dubbo.remoting.Channel,org.apache.dubbo.remoting.buffer.ChannelBuffer,java.lang.Object)>(v, v, v);
label:
return;
}
public java.lang.Object decode(org.apache.dubbo.remoting.Channel, org.apache.dubbo.remoting.buffer.ChannelBuffer) throws java.io.IOException
{
byte[] v;
org.apache.dubbo.remoting.buffer.ChannelBuffer v;
int v;
java.lang.Object v;
org.apache.dubbo.remoting.telnet.codec.TelnetCodec v;
org.apache.dubbo.remoting.Channel v;
v := @this: org.apache.dubbo.remoting.telnet.codec.TelnetCodec;
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()>();
v = newarray (byte)[v];
interfaceinvoke v.<org.apache.dubbo.remoting.buffer.ChannelBuffer: void readBytes(byte[])>(v);
v = virtualinvoke v.<org.apache.dubbo.remoting.telnet.codec.TelnetCodec: java.lang.Object decode(org.apache.dubbo.remoting.Channel,org.apache.dubbo.remoting.buffer.ChannelBuffer,int,byte[])>(v, v, v, v);
return v;
}
protected java.lang.Object decode(org.apache.dubbo.remoting.Channel, org.apache.dubbo.remoting.buffer.ChannelBuffer, int, byte[]) throws java.io.IOException
{
byte[] v, v, v, v, v, v;
java.lang.Integer v;
byte v, v;
org.apache.dubbo.remoting.Channel v;
java.lang.Exception v, v;
java.lang.StringBuilder v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v;
java.io.IOException v, v;
org.apache.dubbo.remoting.telnet.codec.TelnetCodec v;
org.apache.dubbo.remoting.RemotingException v, v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.dubbo.remoting.buffer.ChannelBuffer v;
java.util.List v, v, v;
java.nio.charset.Charset v, v, v;
int 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, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.LinkedList v;
java.util.Iterator v, v, v;
org.apache.dubbo.common.logger.Logger v, v, v, v;
org.apache.dubbo.remoting.Codec2$DecodeResult v, v, v, v, v;
java.lang.Object v, v, v, v, v, v, v, v, v, v, v;
v := @this: org.apache.dubbo.remoting.telnet.codec.TelnetCodec;
v := @parameter: org.apache.dubbo.remoting.Channel;
v := @parameter: org.apache.dubbo.remoting.buffer.ChannelBuffer;
v := @parameter: int;
v := @parameter: byte[];
v = virtualinvoke v.<org.apache.dubbo.remoting.telnet.codec.TelnetCodec: boolean isClientSide(org.apache.dubbo.remoting.Channel)>(v);
if v == 0 goto label;
v = staticinvoke <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: java.nio.charset.Charset getCharset(org.apache.dubbo.remoting.Channel)>(v);
v = staticinvoke <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: java.lang.String toString(byte[],java.nio.charset.Charset)>(v, v);
return v;
label:
staticinvoke <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: void checkPayload(org.apache.dubbo.remoting.Channel,long)>(v, v);
if v == null goto label;
v = lengthof v;
if v != 0 goto label;
label:
v = <org.apache.dubbo.remoting.Codec2$DecodeResult: org.apache.dubbo.remoting.Codec2$DecodeResult NEED_MORE_INPUT>;
return v;
label:
v = lengthof v;
v = v - 1;
v = v[v];
if v != 8 goto label;
label:
v = lengthof v;
if v < 3 goto label;
v = lengthof v;
v = v - 3;
v = v[v];
if v >= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = new java.lang.String;
if v == 0 goto label;
v = newarray (byte)[4];
v[0] = 32;
v[1] = 32;
v[2] = 8;
v[3] = 8;
goto label;
label:
v = newarray (byte)[2];
v[0] = 32;
v[1] = 8;
label:
v = staticinvoke <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: java.nio.charset.Charset getCharset(org.apache.dubbo.remoting.Channel)>(v);
v = virtualinvoke v.<java.nio.charset.Charset: java.lang.String name()>();
specialinvoke v.<java.lang.String: void <init>(byte[],java.lang.String)>(v, v);
interfaceinvoke v.<org.apache.dubbo.remoting.Channel: void send(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new java.io.IOException;
v = staticinvoke <org.apache.dubbo.common.utils.StringUtils: java.lang.String toString(java.lang.Throwable)>(v);
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = <org.apache.dubbo.remoting.Codec2$DecodeResult: org.apache.dubbo.remoting.Codec2$DecodeResult NEED_MORE_INPUT>;
return v;
label:
v = <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: java.util.List EXIT>;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = staticinvoke <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: boolean isEquals(byte[],byte[])>(v, v);
if v == 0 goto label;
v = <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: org.apache.dubbo.common.logger.Logger logger>;
v = interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: boolean isInfoEnabled()>();
if v == 0 goto label;
v = <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: org.apache.dubbo.common.logger.Logger logger>;
v = new java.lang.Exception;
v = staticinvoke <java.util.Arrays: java.lang.String toString(byte[])>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.dubbo.remoting.Channel,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[])>("Close channel \u on exit command: \u0001");
specialinvoke v.<java.lang.Exception: void <init>(java.lang.String)>(v);
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void info(java.lang.Throwable)>(v);
label:
interfaceinvoke v.<org.apache.dubbo.remoting.Channel: void close()>();
return null;
label:
v = <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: byte[] UP>;
v = staticinvoke <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: boolean endsWith(byte[],byte[])>(v, v);
v = <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: byte[] DOWN>;
v = staticinvoke <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: boolean endsWith(byte[],byte[])>(v, v);
if v != 0 goto label;
if v == 0 goto label;
label:
v = interfaceinvoke v.<org.apache.dubbo.remoting.Channel: java.lang.Object getAttribute(java.lang.String)>("telnet.history.list");
v = staticinvoke <org.apache.dubbo.common.utils.CollectionUtils: boolean isEmpty(java.util.Collection)>(v);
if v == 0 goto label;
v = <org.apache.dubbo.remoting.Codec2$DecodeResult: org.apache.dubbo.remoting.Codec2$DecodeResult NEED_MORE_INPUT>;
return v;
label:
v = interfaceinvoke v.<org.apache.dubbo.remoting.Channel: java.lang.Object getAttribute(java.lang.String)>("telnet.history.index");
if v != null goto label;
v = virtualinvoke v.<java.util.LinkedList: int size()>();
v = v - 1;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
goto label;
label:
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = v - 1;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
if v >= 0 goto label;
v = virtualinvoke v.<java.util.LinkedList: int size()>();
v = v - 1;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
goto label;
label:
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = v + 1;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = virtualinvoke v.<java.util.LinkedList: int size()>();
v = v - 1;
if v <= v goto label;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(0);
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.Integer: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
label:
interfaceinvoke v.<org.apache.dubbo.remoting.Channel: void setAttribute(java.lang.String,java.lang.Object)>("telnet.history.index", v);
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = virtualinvoke v.<java.util.LinkedList: java.lang.Object get(int)>(v);
if v == null goto label;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
if v < 0 goto label;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = virtualinvoke v.<java.util.LinkedList: int size()>();
if v >= v goto label;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = virtualinvoke v.<java.util.LinkedList: java.lang.Object get(int)>(v);
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = 0;
label:
v = virtualinvoke v.<java.lang.String: int length()>();
if v >= v goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\u0008");
v = v + 1;
goto label;
label:
v = 0;
label:
v = virtualinvoke v.<java.lang.String: int length()>();
if v >= v goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(" ");
v = v + 1;
goto label;
label:
v = 0;
label:
v = virtualinvoke v.<java.lang.String: int length()>();
if v >= v goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\u0008");
v = v + 1;
goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
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[])>("\u0001\u0001");
label:
interfaceinvoke v.<org.apache.dubbo.remoting.Channel: void send(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new java.io.IOException;
v = staticinvoke <org.apache.dubbo.common.utils.StringUtils: java.lang.String toString(java.lang.Throwable)>(v);
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = <org.apache.dubbo.remoting.Codec2$DecodeResult: org.apache.dubbo.remoting.Codec2$DecodeResult NEED_MORE_INPUT>;
return v;
label:
v = <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: java.util.List EXIT>;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = staticinvoke <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: boolean isEquals(byte[],byte[])>(v, v);
if v == 0 goto label;
v = <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: org.apache.dubbo.common.logger.Logger logger>;
v = interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: boolean isInfoEnabled()>();
if v == 0 goto label;
v = <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: org.apache.dubbo.common.logger.Logger logger>;
v = new java.lang.Exception;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.dubbo.remoting.Channel,java.lang.Object)>(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[])>("Close channel \u on exit command \u0001");
specialinvoke v.<java.lang.Exception: void <init>(java.lang.String)>(v);
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void info(java.lang.Throwable)>(v);
label:
interfaceinvoke v.<org.apache.dubbo.remoting.Channel: void close()>();
return null;
label:
v = <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: java.util.List ENTER>;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = staticinvoke <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: boolean endsWith(byte[],byte[])>(v, v);
if v == 0 goto label;
label:
if v != null goto label;
v = <org.apache.dubbo.remoting.Codec2$DecodeResult: org.apache.dubbo.remoting.Codec2$DecodeResult NEED_MORE_INPUT>;
return v;
label:
v = interfaceinvoke v.<org.apache.dubbo.remoting.Channel: java.lang.Object getAttribute(java.lang.String)>("telnet.history.list");
v = interfaceinvoke v.<org.apache.dubbo.remoting.Channel: java.lang.Object getAttribute(java.lang.String)>("telnet.history.index");
interfaceinvoke v.<org.apache.dubbo.remoting.Channel: void removeAttribute(java.lang.String)>("telnet.history.index");
v = staticinvoke <org.apache.dubbo.common.utils.CollectionUtils: boolean isNotEmpty(java.util.Collection)>(v);
if v == 0 goto label;
if v == null goto label;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
if v < 0 goto label;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = virtualinvoke v.<java.util.LinkedList: int size()>();
if v >= v goto label;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = virtualinvoke v.<java.util.LinkedList: java.lang.Object get(int)>(v);
if v == null goto label;
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
v = lengthof v;
v = lengthof v;
v = v + v;
v = newarray (byte)[v];
v = lengthof v;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
v = lengthof v;
v = lengthof v;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, v, v);
v = v;
label:
v = staticinvoke <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: java.nio.charset.Charset getCharset(org.apache.dubbo.remoting.Channel)>(v);
v = staticinvoke <org.apache.dubbo.remoting.telnet.codec.TelnetCodec: java.lang.String toString(byte[],java.nio.charset.Charset)>(v, v);
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 0 goto label;
if v != null goto label;
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v = v;
interfaceinvoke v.<org.apache.dubbo.remoting.Channel: void setAttribute(java.lang.String,java.lang.Object)>("telnet.history.list", v);
label:
v = virtualinvoke v.<java.util.LinkedList: boolean isEmpty()>();
if v == 0 goto label;
virtualinvoke v.<java.util.LinkedList: void addLast(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<java.util.LinkedList: java.lang.Object getLast()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
virtualinvoke v.<java.util.LinkedList: boolean remove(java.lang.Object)>(v);
virtualinvoke v.<java.util.LinkedList: void addLast(java.lang.Object)>(v);
v = virtualinvoke v.<java.util.LinkedList: int size()>();
if v <= 10 goto label;
virtualinvoke v.<java.util.LinkedList: java.lang.Object removeFirst()>();
label:
return v;
catch org.apache.dubbo.remoting.RemotingException from label to label with label;
catch org.apache.dubbo.remoting.RemotingException from label to label with label;
}
static void <clinit>()
{
byte[] v, v, v, v, v, v, v;
org.apache.dubbo.common.logger.Logger v;
byte[][] v, v;
java.util.List v, v;
v = staticinvoke <org.apache.dubbo.common.logger.LoggerFactory: org.apache.dubbo.common.logger.Logger getLogger(java.lang.Class)>(class "Lorg/apache/dubbo/remoting/telnet/codec/TelnetCodec;");
<org.apache.dubbo.remoting.telnet.codec.TelnetCodec: org.apache.dubbo.common.logger.Logger logger> = v;
v = newarray (byte)[3];
v[0] = 27;
v[1] = 91;
v[2] = 65;
<org.apache.dubbo.remoting.telnet.codec.TelnetCodec: byte[] UP> = v;
v = newarray (byte)[3];
v[0] = 27;
v[1] = 91;
v[2] = 66;
<org.apache.dubbo.remoting.telnet.codec.TelnetCodec: byte[] DOWN> = v;
v = newarray (byte[])[2];
v = newarray (byte)[2];
v[0] = 13;
v[1] = 10;
v[0] = v;
v = newarray (byte)[1];
v[0] = 10;
v[1] = v;
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
<org.apache.dubbo.remoting.telnet.codec.TelnetCodec: java.util.List ENTER> = v;
v = newarray (byte[])[3];
v = newarray (byte)[1];
v[0] = 3;
v[0] = v;
v = newarray (byte)[5];
v[0] = -1;
v[1] = -12;
v[2] = -1;
v[3] = -3;
v[4] = 6;
v[1] = v;
v = newarray (byte)[5];
v[0] = -1;
v[1] = -19;
v[2] = -1;
v[3] = -3;
v[4] = 6;
v[2] = v;
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
<org.apache.dubbo.remoting.telnet.codec.TelnetCodec: java.util.List EXIT> = v;
return;
}
}