public class io.netty.example.redis.RedisClientHandler extends io.netty.channel.ChannelDuplexHandler
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.netty.example.redis.RedisClientHandler
super_class: io.netty.channel.ChannelDuplexHandler
{
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.ChannelDuplexHandler.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/example/redis/RedisClientHandler;
public void write(io.netty.channel.ChannelHandlerContext, java.lang.Object, io.netty.channel.ChannelPromise);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
checkcast java.lang.String
ldc "\\s+"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 4
start local 4 1: new java.util.ArrayList
dup
aload 4
arraylength
invokespecial java.util.ArrayList.<init>:(I)V
astore 5
start local 5 2: aload 4
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 6
StackMap locals: io.netty.example.redis.RedisClientHandler io.netty.channel.ChannelHandlerContext java.lang.Object io.netty.channel.ChannelPromise java.lang.String[] java.util.List top int int java.lang.String[]
StackMap stack:
3: aload 9
iload 7
aaload
astore 6
start local 6 4: aload 5
new io.netty.handler.codec.redis.FullBulkStringRedisMessage
dup
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.alloc:()Lio/netty/buffer/ByteBufAllocator;
aload 6
invokestatic io.netty.buffer.ByteBufUtil.writeUtf8:(Lio/netty/buffer/ByteBufAllocator;Ljava/lang/CharSequence;)Lio/netty/buffer/ByteBuf;
invokespecial io.netty.handler.codec.redis.FullBulkStringRedisMessage.<init>:(Lio/netty/buffer/ByteBuf;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 6 5: iinc 7 1
StackMap locals:
StackMap stack:
6: iload 7
iload 8
if_icmplt 3
7: new io.netty.handler.codec.redis.ArrayRedisMessage
dup
aload 5
invokespecial io.netty.handler.codec.redis.ArrayRedisMessage.<init>:(Ljava/util/List;)V
astore 6
start local 6 8: aload 1
aload 6
aload 3
invokeinterface io.netty.channel.ChannelHandlerContext.write:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
pop
9: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lio/netty/example/redis/RedisClientHandler;
0 10 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 10 2 msg Ljava/lang/Object;
0 10 3 promise Lio/netty/channel/ChannelPromise;
1 10 4 commands [Ljava/lang/String;
2 10 5 children Ljava/util/List<Lio/netty/handler/codec/redis/RedisMessage;>;
4 5 6 cmdString Ljava/lang/String;
8 10 6 request Lio/netty/handler/codec/redis/RedisMessage;
MethodParameters:
Name Flags
ctx
msg
promise
public void channelRead(io.netty.channel.ChannelHandlerContext, java.lang.Object);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
checkcast io.netty.handler.codec.redis.RedisMessage
astore 3
start local 3 1: aload 3
invokestatic io.netty.example.redis.RedisClientHandler.printAggregatedRedisResponse:(Lio/netty/handler/codec/redis/RedisMessage;)V
2: aload 3
invokestatic io.netty.util.ReferenceCountUtil.release:(Ljava/lang/Object;)Z
pop
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/example/redis/RedisClientHandler;
0 4 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 4 2 msg Ljava/lang/Object;
1 4 3 redisMessage Lio/netty/handler/codec/redis/RedisMessage;
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=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "exceptionCaught: "
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
1: aload 2
getstatic java.lang.System.err:Ljava/io/PrintStream;
invokevirtual java.lang.Throwable.printStackTrace:(Ljava/io/PrintStream;)V
2: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.close:()Lio/netty/channel/ChannelFuture;
pop
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/example/redis/RedisClientHandler;
0 4 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 4 2 cause Ljava/lang/Throwable;
MethodParameters:
Name Flags
ctx
cause
private static void printAggregatedRedisResponse(io.netty.handler.codec.redis.RedisMessage);
descriptor: (Lio/netty/handler/codec/redis/RedisMessage;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
instanceof io.netty.handler.codec.redis.SimpleStringRedisMessage
ifeq 3
1: getstatic java.lang.System.out:Ljava/io/PrintStream;
aload 0
checkcast io.netty.handler.codec.redis.SimpleStringRedisMessage
invokevirtual io.netty.handler.codec.redis.SimpleStringRedisMessage.content:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
2: goto 19
StackMap locals:
StackMap stack:
3: aload 0
instanceof io.netty.handler.codec.redis.ErrorRedisMessage
ifeq 6
4: getstatic java.lang.System.out:Ljava/io/PrintStream;
aload 0
checkcast io.netty.handler.codec.redis.ErrorRedisMessage
invokevirtual io.netty.handler.codec.redis.ErrorRedisMessage.content:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
5: goto 19
StackMap locals:
StackMap stack:
6: aload 0
instanceof io.netty.handler.codec.redis.IntegerRedisMessage
ifeq 9
7: getstatic java.lang.System.out:Ljava/io/PrintStream;
aload 0
checkcast io.netty.handler.codec.redis.IntegerRedisMessage
invokevirtual io.netty.handler.codec.redis.IntegerRedisMessage.value:()J
invokevirtual java.io.PrintStream.println:(J)V
8: goto 19
StackMap locals:
StackMap stack:
9: aload 0
instanceof io.netty.handler.codec.redis.FullBulkStringRedisMessage
ifeq 12
10: getstatic java.lang.System.out:Ljava/io/PrintStream;
aload 0
checkcast io.netty.handler.codec.redis.FullBulkStringRedisMessage
invokestatic io.netty.example.redis.RedisClientHandler.getString:(Lio/netty/handler/codec/redis/FullBulkStringRedisMessage;)Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
11: goto 19
StackMap locals:
StackMap stack:
12: aload 0
instanceof io.netty.handler.codec.redis.ArrayRedisMessage
ifeq 18
13: aload 0
checkcast io.netty.handler.codec.redis.ArrayRedisMessage
invokevirtual io.netty.handler.codec.redis.ArrayRedisMessage.children:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 2
goto 16
StackMap locals: io.netty.handler.codec.redis.RedisMessage top java.util.Iterator
StackMap stack:
14: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.netty.handler.codec.redis.RedisMessage
astore 1
start local 1 15: aload 1
invokestatic io.netty.example.redis.RedisClientHandler.printAggregatedRedisResponse:(Lio/netty/handler/codec/redis/RedisMessage;)V
end local 1 16: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
17: goto 19
18: StackMap locals: io.netty.handler.codec.redis.RedisMessage
StackMap stack:
new io.netty.handler.codec.CodecException
dup
new java.lang.StringBuilder
dup
ldc "unknown message type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial io.netty.handler.codec.CodecException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 msg Lio/netty/handler/codec/redis/RedisMessage;
15 16 1 child Lio/netty/handler/codec/redis/RedisMessage;
MethodParameters:
Name Flags
msg
private static java.lang.String getString(io.netty.handler.codec.redis.FullBulkStringRedisMessage);
descriptor: (Lio/netty/handler/codec/redis/FullBulkStringRedisMessage;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual io.netty.handler.codec.redis.FullBulkStringRedisMessage.isNull:()Z
ifeq 2
1: ldc "(null)"
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.handler.codec.redis.FullBulkStringRedisMessage.content:()Lio/netty/buffer/ByteBuf;
getstatic io.netty.util.CharsetUtil.UTF_8:Ljava/nio/charset/Charset;
invokevirtual io.netty.buffer.ByteBuf.toString:(Ljava/nio/charset/Charset;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 msg Lio/netty/handler/codec/redis/FullBulkStringRedisMessage;
MethodParameters:
Name Flags
msg
}
SourceFile: "RedisClientHandler.java"