public class org.apache.dubbo.qos.server.handler.TelnetProcessHandler extends io.netty.channel.SimpleChannelInboundHandler
{
private static final org.apache.dubbo.common.logger.Logger log;
private static org.apache.dubbo.qos.command.CommandExecutor commandExecutor;
public void <init>()
{
org.apache.dubbo.qos.server.handler.TelnetProcessHandler v;
v := @this: org.apache.dubbo.qos.server.handler.TelnetProcessHandler;
specialinvoke v.<io.netty.channel.SimpleChannelInboundHandler: void <init>()>();
return;
}
protected void channelRead0(io.netty.channel.ChannelHandlerContext, java.lang.String) throws java.lang.Exception
{
org.apache.dubbo.qos.command.CommandExecutor v;
io.netty.channel.ChannelHandlerContext v;
org.apache.dubbo.qos.command.NoSuchCommandException v;
io.netty.channel.ChannelFutureListener v;
java.lang.String v, v, v, v, v, v, v, v, v;
boolean v, v;
org.apache.dubbo.common.logger.Logger v, v;
org.apache.dubbo.qos.command.CommandContext v;
org.apache.dubbo.qos.server.handler.TelnetProcessHandler v;
java.lang.Exception v;
io.netty.channel.ChannelFuture v;
io.netty.channel.Channel v;
v := @this: org.apache.dubbo.qos.server.handler.TelnetProcessHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.dubbo.common.utils.StringUtils: boolean isBlank(java.lang.CharSequence)>(v);
if v == 0 goto label;
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object)>("dubbo>");
goto label;
label:
v = staticinvoke <org.apache.dubbo.qos.command.decoder.TelnetCommandDecoder: org.apache.dubbo.qos.command.CommandContext decode(java.lang.String)>(v);
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.Channel channel()>();
virtualinvoke v.<org.apache.dubbo.qos.command.CommandContext: void setRemote(io.netty.channel.Channel)>(v);
label:
v = <org.apache.dubbo.qos.server.handler.TelnetProcessHandler: org.apache.dubbo.qos.command.CommandExecutor commandExecutor>;
v = interfaceinvoke v.<org.apache.dubbo.qos.command.CommandExecutor: java.lang.String execute(org.apache.dubbo.qos.command.CommandContext)>(v);
v = staticinvoke <org.apache.dubbo.common.utils.StringUtils: boolean isEquals(java.lang.String,java.lang.String)>("close!", v);
if v == 0 goto label;
v = specialinvoke v.<org.apache.dubbo.qos.server.handler.TelnetProcessHandler: java.lang.String getByeLabel()>();
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object)>(v);
v = <io.netty.channel.ChannelFutureListener: io.netty.channel.ChannelFutureListener CLOSE>;
interfaceinvoke v.<io.netty.channel.ChannelFuture: io.netty.channel.ChannelFuture addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
goto label;
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001\r\ndubbo>");
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
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[])>("\u :no such command");
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object)>(v);
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object)>("\r\ndubbo>");
v = <org.apache.dubbo.qos.server.handler.TelnetProcessHandler: org.apache.dubbo.common.logger.Logger log>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.dubbo.qos.command.CommandContext)>(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[])>("can not found command \u0001");
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void error(java.lang.String,java.lang.Throwable)>(v, v);
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
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[])>("\u :fail to execute commandContext by \u0001");
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object)>(v);
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object)>("\r\ndubbo>");
v = <org.apache.dubbo.qos.server.handler.TelnetProcessHandler: org.apache.dubbo.common.logger.Logger log>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.dubbo.qos.command.CommandContext)>(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[])>("execute commandContext got exception \u0001");
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void error(java.lang.String,java.lang.Throwable)>(v, v);
label:
return;
catch org.apache.dubbo.qos.command.NoSuchCommandException from label to label with label;
catch java.lang.Exception from label to label with label;
}
private java.lang.String getByeLabel()
{
org.apache.dubbo.qos.server.handler.TelnetProcessHandler v;
v := @this: org.apache.dubbo.qos.server.handler.TelnetProcessHandler;
return "BYE!\n";
}
static void <clinit>()
{
org.apache.dubbo.qos.command.DefaultCommandExecutor v;
org.apache.dubbo.common.logger.Logger v;
v = staticinvoke <org.apache.dubbo.common.logger.LoggerFactory: org.apache.dubbo.common.logger.Logger getLogger(java.lang.Class)>(class "Lorg/apache/dubbo/qos/server/handler/TelnetProcessHandler;");
<org.apache.dubbo.qos.server.handler.TelnetProcessHandler: org.apache.dubbo.common.logger.Logger log> = v;
v = new org.apache.dubbo.qos.command.DefaultCommandExecutor;
specialinvoke v.<org.apache.dubbo.qos.command.DefaultCommandExecutor: void <init>()>();
<org.apache.dubbo.qos.server.handler.TelnetProcessHandler: org.apache.dubbo.qos.command.CommandExecutor commandExecutor> = v;
return;
}
}