public class io.netty.example.securechat.SecureChatServerHandler extends io.netty.channel.SimpleChannelInboundHandler<java.lang.String>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.netty.example.securechat.SecureChatServerHandler
super_class: io.netty.channel.SimpleChannelInboundHandler
{
static final io.netty.channel.group.ChannelGroup channels;
descriptor: Lio/netty/channel/group/ChannelGroup;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new io.netty.channel.group.DefaultChannelGroup
dup
getstatic io.netty.util.concurrent.GlobalEventExecutor.INSTANCE:Lio/netty/util/concurrent/GlobalEventExecutor;
invokespecial io.netty.channel.group.DefaultChannelGroup.<init>:(Lio/netty/util/concurrent/EventExecutor;)V
putstatic io.netty.example.securechat.SecureChatServerHandler.channels:Lio/netty/channel/group/ChannelGroup;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial io.netty.channel.SimpleChannelInboundHandler.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/example/securechat/SecureChatServerHandler;
public void channelActive(io.netty.channel.ChannelHandlerContext);
descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.pipeline:()Lio/netty/channel/ChannelPipeline;
ldc Lio/netty/handler/ssl/SslHandler;
invokeinterface io.netty.channel.ChannelPipeline.get:(Ljava/lang/Class;)Lio/netty/channel/ChannelHandler;
checkcast io.netty.handler.ssl.SslHandler
invokevirtual io.netty.handler.ssl.SslHandler.handshakeFuture:()Lio/netty/util/concurrent/Future;
1: new io.netty.example.securechat.SecureChatServerHandler$1
dup
aload 0
aload 1
invokespecial io.netty.example.securechat.SecureChatServerHandler$1.<init>:(Lio/netty/example/securechat/SecureChatServerHandler;Lio/netty/channel/ChannelHandlerContext;)V
2: invokeinterface io.netty.util.concurrent.Future.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/util/concurrent/Future;
pop
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/example/securechat/SecureChatServerHandler;
0 4 1 ctx Lio/netty/channel/ChannelHandlerContext;
MethodParameters:
Name Flags
ctx final
public void channelRead0(io.netty.channel.ChannelHandlerContext, java.lang.String);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: getstatic io.netty.example.securechat.SecureChatServerHandler.channels:Lio/netty/channel/group/ChannelGroup;
invokeinterface io.netty.channel.group.ChannelGroup.iterator:()Ljava/util/Iterator;
astore 4
goto 6
StackMap locals: io.netty.example.securechat.SecureChatServerHandler io.netty.channel.ChannelHandlerContext java.lang.String top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.netty.channel.Channel
astore 3
start local 3 2: aload 3
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
if_acmpeq 5
3: aload 3
new java.lang.StringBuilder
dup
ldc "["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
invokeinterface io.netty.channel.Channel.remoteAddress:()Ljava/net/SocketAddress;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface io.netty.channel.Channel.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
pop
4: goto 6
5: StackMap locals: io.netty.example.securechat.SecureChatServerHandler io.netty.channel.ChannelHandlerContext java.lang.String io.netty.channel.Channel java.util.Iterator
StackMap stack:
aload 3
new java.lang.StringBuilder
dup
ldc "[you] "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface io.netty.channel.Channel.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
pop
end local 3 6: StackMap locals: io.netty.example.securechat.SecureChatServerHandler io.netty.channel.ChannelHandlerContext java.lang.String top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
7: ldc "bye"
aload 2
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 9
8: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.close:()Lio/netty/channel/ChannelFuture;
pop
9: StackMap locals: io.netty.example.securechat.SecureChatServerHandler io.netty.channel.ChannelHandlerContext java.lang.String
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lio/netty/example/securechat/SecureChatServerHandler;
0 10 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 10 2 msg Ljava/lang/String;
2 6 3 c Lio/netty/channel/Channel;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
msg
public void exceptionCaught(io.netty.channel.ChannelHandlerContext, java.lang.Throwable);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual java.lang.Throwable.printStackTrace:()V
1: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.close:()Lio/netty/channel/ChannelFuture;
pop
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/example/securechat/SecureChatServerHandler;
0 3 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 3 2 cause Ljava/lang/Throwable;
MethodParameters:
Name Flags
ctx
cause
public void channelRead0(io.netty.channel.ChannelHandlerContext, java.lang.Object);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
aload 2
checkcast java.lang.String
invokevirtual io.netty.example.securechat.SecureChatServerHandler.channelRead0:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
return
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
}
Signature: Lio/netty/channel/SimpleChannelInboundHandler<Ljava/lang/String;>;
SourceFile: "SecureChatServerHandler.java"
NestMembers:
io.netty.example.securechat.SecureChatServerHandler$1
InnerClasses:
io.netty.example.securechat.SecureChatServerHandler$1