public class io.netty.example.http.snoop.HttpSnoopServerHandler extends io.netty.channel.SimpleChannelInboundHandler<java.lang.Object>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.netty.example.http.snoop.HttpSnoopServerHandler
super_class: io.netty.channel.SimpleChannelInboundHandler
{
private io.netty.handler.codec.http.HttpRequest request;
descriptor: Lio/netty/handler/codec/http/HttpRequest;
flags: (0x0002) ACC_PRIVATE
private final java.lang.StringBuilder buf;
descriptor: Ljava/lang/StringBuilder;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial io.netty.channel.SimpleChannelInboundHandler.<init>:()V
1: aload 0
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
putfield io.netty.example.http.snoop.HttpSnoopServerHandler.buf:Ljava/lang/StringBuilder;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/example/http/snoop/HttpSnoopServerHandler;
public void channelReadComplete(io.netty.channel.ChannelHandlerContext);
descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.flush:()Lio/netty/channel/ChannelHandlerContext;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/example/http/snoop/HttpSnoopServerHandler;
0 2 1 ctx Lio/netty/channel/ChannelHandlerContext;
MethodParameters:
Name Flags
ctx
protected void channelRead0(io.netty.channel.ChannelHandlerContext, java.lang.Object);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof io.netty.handler.codec.http.HttpRequest
ifeq 33
1: aload 0
aload 2
checkcast io.netty.handler.codec.http.HttpRequest
dup_x1
putfield io.netty.example.http.snoop.HttpSnoopServerHandler.request:Lio/netty/handler/codec/http/HttpRequest;
astore 3
start local 3 2: aload 3
invokestatic io.netty.handler.codec.http.HttpUtil.is100ContinueExpected:(Lio/netty/handler/codec/http/HttpMessage;)Z
ifeq 4
3: aload 1
invokestatic io.netty.example.http.snoop.HttpSnoopServerHandler.send100Continue:(Lio/netty/channel/ChannelHandlerContext;)V
4: StackMap locals: io.netty.handler.codec.http.HttpRequest
StackMap stack:
aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.buf:Ljava/lang/StringBuilder;
iconst_0
invokevirtual java.lang.StringBuilder.setLength:(I)V
5: aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.buf:Ljava/lang/StringBuilder;
ldc "WELCOME TO THE WILD WILD WEB SERVER\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.buf:Ljava/lang/StringBuilder;
ldc "===================================\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.buf:Ljava/lang/StringBuilder;
ldc "VERSION: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokeinterface io.netty.handler.codec.http.HttpRequest.protocolVersion:()Lio/netty/handler/codec/http/HttpVersion;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.buf:Ljava/lang/StringBuilder;
ldc "HOSTNAME: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokeinterface io.netty.handler.codec.http.HttpRequest.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.HOST:Lio/netty/util/AsciiString;
ldc "unknown"
invokevirtual io.netty.handler.codec.http.HttpHeaders.get:(Ljava/lang/CharSequence;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.buf:Ljava/lang/StringBuilder;
ldc "REQUEST_URI: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokeinterface io.netty.handler.codec.http.HttpRequest.uri:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\r\n\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: aload 3
invokeinterface io.netty.handler.codec.http.HttpRequest.headers:()Lio/netty/handler/codec/http/HttpHeaders;
astore 4
start local 4 11: aload 4
invokevirtual io.netty.handler.codec.http.HttpHeaders.isEmpty:()Z
ifne 19
12: aload 4
invokevirtual io.netty.handler.codec.http.HttpHeaders.iterator:()Ljava/util/Iterator;
astore 6
goto 17
StackMap locals: io.netty.example.http.snoop.HttpSnoopServerHandler io.netty.channel.ChannelHandlerContext java.lang.Object io.netty.handler.codec.http.HttpRequest io.netty.handler.codec.http.HttpHeaders top java.util.Iterator
StackMap stack:
13: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 5
start local 5 14: aload 5
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.CharSequence
astore 7
start local 7 15: aload 5
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.CharSequence
astore 8
start local 8 16: aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.buf:Ljava/lang/StringBuilder;
ldc "HEADER: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
ldc " = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 8 end local 7 end local 5 17: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
18: aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.buf:Ljava/lang/StringBuilder;
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
19: StackMap locals: io.netty.example.http.snoop.HttpSnoopServerHandler io.netty.channel.ChannelHandlerContext java.lang.Object io.netty.handler.codec.http.HttpRequest io.netty.handler.codec.http.HttpHeaders
StackMap stack:
new io.netty.handler.codec.http.QueryStringDecoder
dup
aload 3
invokeinterface io.netty.handler.codec.http.HttpRequest.uri:()Ljava/lang/String;
invokespecial io.netty.handler.codec.http.QueryStringDecoder.<init>:(Ljava/lang/String;)V
astore 5
start local 5 20: aload 5
invokevirtual io.netty.handler.codec.http.QueryStringDecoder.parameters:()Ljava/util/Map;
astore 6
start local 6 21: aload 6
invokeinterface java.util.Map.isEmpty:()Z
ifne 32
22: aload 6
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 8
goto 30
StackMap locals: io.netty.example.http.snoop.HttpSnoopServerHandler io.netty.channel.ChannelHandlerContext java.lang.Object io.netty.handler.codec.http.HttpRequest io.netty.handler.codec.http.HttpHeaders io.netty.handler.codec.http.QueryStringDecoder java.util.Map top java.util.Iterator
StackMap stack:
23: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 7
start local 7 24: aload 7
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
astore 9
start local 9 25: aload 7
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.List
astore 10
start local 10 26: aload 10
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 12
goto 29
StackMap locals: io.netty.example.http.snoop.HttpSnoopServerHandler io.netty.channel.ChannelHandlerContext java.lang.Object io.netty.handler.codec.http.HttpRequest io.netty.handler.codec.http.HttpHeaders io.netty.handler.codec.http.QueryStringDecoder java.util.Map java.util.Map$Entry java.util.Iterator java.lang.String java.util.List top java.util.Iterator
StackMap stack:
27: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 11
start local 11 28: aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.buf:Ljava/lang/StringBuilder;
ldc "PARAM: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 11
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 11 29: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 27
end local 10 end local 9 end local 7 30: StackMap locals: io.netty.example.http.snoop.HttpSnoopServerHandler io.netty.channel.ChannelHandlerContext java.lang.Object io.netty.handler.codec.http.HttpRequest io.netty.handler.codec.http.HttpHeaders io.netty.handler.codec.http.QueryStringDecoder java.util.Map top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 23
31: aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.buf:Ljava/lang/StringBuilder;
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
32: StackMap locals: io.netty.example.http.snoop.HttpSnoopServerHandler io.netty.channel.ChannelHandlerContext java.lang.Object io.netty.handler.codec.http.HttpRequest io.netty.handler.codec.http.HttpHeaders io.netty.handler.codec.http.QueryStringDecoder java.util.Map
StackMap stack:
aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.buf:Ljava/lang/StringBuilder;
aload 3
invokestatic io.netty.example.http.snoop.HttpSnoopServerHandler.appendDecoderResult:(Ljava/lang/StringBuilder;Lio/netty/handler/codec/http/HttpObject;)V
end local 6 end local 5 end local 4 end local 3 33: StackMap locals: io.netty.example.http.snoop.HttpSnoopServerHandler io.netty.channel.ChannelHandlerContext java.lang.Object
StackMap stack:
aload 2
instanceof io.netty.handler.codec.http.HttpContent
ifeq 57
34: aload 2
checkcast io.netty.handler.codec.http.HttpContent
astore 3
start local 3 35: aload 3
invokeinterface io.netty.handler.codec.http.HttpContent.content:()Lio/netty/buffer/ByteBuf;
astore 4
start local 4 36: aload 4
invokevirtual io.netty.buffer.ByteBuf.isReadable:()Z
ifeq 41
37: aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.buf:Ljava/lang/StringBuilder;
ldc "CONTENT: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
38: aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.buf:Ljava/lang/StringBuilder;
aload 4
getstatic io.netty.util.CharsetUtil.UTF_8:Ljava/nio/charset/Charset;
invokevirtual io.netty.buffer.ByteBuf.toString:(Ljava/nio/charset/Charset;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
39: aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.buf:Ljava/lang/StringBuilder;
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
40: aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.buf:Ljava/lang/StringBuilder;
aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.request:Lio/netty/handler/codec/http/HttpRequest;
invokestatic io.netty.example.http.snoop.HttpSnoopServerHandler.appendDecoderResult:(Ljava/lang/StringBuilder;Lio/netty/handler/codec/http/HttpObject;)V
41: StackMap locals: io.netty.handler.codec.http.HttpContent io.netty.buffer.ByteBuf
StackMap stack:
aload 2
instanceof io.netty.handler.codec.http.LastHttpContent
ifeq 57
42: aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.buf:Ljava/lang/StringBuilder;
ldc "END OF CONTENT\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
43: aload 2
checkcast io.netty.handler.codec.http.LastHttpContent
astore 5
start local 5 44: aload 5
invokeinterface io.netty.handler.codec.http.LastHttpContent.trailingHeaders:()Lio/netty/handler/codec/http/HttpHeaders;
invokevirtual io.netty.handler.codec.http.HttpHeaders.isEmpty:()Z
ifne 55
45: aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.buf:Ljava/lang/StringBuilder;
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
46: aload 5
invokeinterface io.netty.handler.codec.http.LastHttpContent.trailingHeaders:()Lio/netty/handler/codec/http/HttpHeaders;
invokevirtual io.netty.handler.codec.http.HttpHeaders.names:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
goto 53
StackMap locals: io.netty.example.http.snoop.HttpSnoopServerHandler io.netty.channel.ChannelHandlerContext java.lang.Object io.netty.handler.codec.http.HttpContent io.netty.buffer.ByteBuf io.netty.handler.codec.http.LastHttpContent top java.util.Iterator
StackMap stack:
47: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.CharSequence
astore 6
start local 6 48: aload 5
invokeinterface io.netty.handler.codec.http.LastHttpContent.trailingHeaders:()Lio/netty/handler/codec/http/HttpHeaders;
aload 6
invokevirtual io.netty.handler.codec.http.HttpHeaders.getAll:(Ljava/lang/CharSequence;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 52
StackMap locals: io.netty.example.http.snoop.HttpSnoopServerHandler io.netty.channel.ChannelHandlerContext java.lang.Object io.netty.handler.codec.http.HttpContent io.netty.buffer.ByteBuf io.netty.handler.codec.http.LastHttpContent java.lang.CharSequence java.util.Iterator top java.util.Iterator
StackMap stack:
49: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.CharSequence
astore 8
start local 8 50: aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.buf:Ljava/lang/StringBuilder;
ldc "TRAILING HEADER: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
51: aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.buf:Ljava/lang/StringBuilder;
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
ldc " = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 8 52: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 49
end local 6 53: StackMap locals: io.netty.example.http.snoop.HttpSnoopServerHandler io.netty.channel.ChannelHandlerContext java.lang.Object io.netty.handler.codec.http.HttpContent io.netty.buffer.ByteBuf io.netty.handler.codec.http.LastHttpContent top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 47
54: aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.buf:Ljava/lang/StringBuilder;
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
55: StackMap locals: io.netty.example.http.snoop.HttpSnoopServerHandler io.netty.channel.ChannelHandlerContext java.lang.Object io.netty.handler.codec.http.HttpContent io.netty.buffer.ByteBuf io.netty.handler.codec.http.LastHttpContent
StackMap stack:
aload 0
aload 5
aload 1
invokevirtual io.netty.example.http.snoop.HttpSnoopServerHandler.writeResponse:(Lio/netty/handler/codec/http/HttpObject;Lio/netty/channel/ChannelHandlerContext;)Z
ifne 57
56: aload 1
getstatic io.netty.buffer.Unpooled.EMPTY_BUFFER:Lio/netty/buffer/ByteBuf;
invokeinterface io.netty.channel.ChannelHandlerContext.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
getstatic io.netty.channel.ChannelFutureListener.CLOSE:Lio/netty/channel/ChannelFutureListener;
invokeinterface io.netty.channel.ChannelFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelFuture;
pop
end local 5 end local 4 end local 3 57: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 58 0 this Lio/netty/example/http/snoop/HttpSnoopServerHandler;
0 58 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 58 2 msg Ljava/lang/Object;
2 33 3 request Lio/netty/handler/codec/http/HttpRequest;
11 33 4 headers Lio/netty/handler/codec/http/HttpHeaders;
14 17 5 h Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
15 17 7 key Ljava/lang/CharSequence;
16 17 8 value Ljava/lang/CharSequence;
20 33 5 queryStringDecoder Lio/netty/handler/codec/http/QueryStringDecoder;
21 33 6 params Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
24 30 7 p Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
25 30 9 key Ljava/lang/String;
26 30 10 vals Ljava/util/List<Ljava/lang/String;>;
28 29 11 val Ljava/lang/String;
35 57 3 httpContent Lio/netty/handler/codec/http/HttpContent;
36 57 4 content Lio/netty/buffer/ByteBuf;
44 57 5 trailer Lio/netty/handler/codec/http/LastHttpContent;
48 53 6 name Ljava/lang/CharSequence;
50 52 8 value Ljava/lang/CharSequence;
MethodParameters:
Name Flags
ctx
msg
private static void appendDecoderResult(java.lang.StringBuilder, io.netty.handler.codec.http.HttpObject);
descriptor: (Ljava/lang/StringBuilder;Lio/netty/handler/codec/http/HttpObject;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface io.netty.handler.codec.http.HttpObject.decoderResult:()Lio/netty/handler/codec/DecoderResult;
astore 2
start local 2 1: aload 2
invokevirtual io.netty.handler.codec.DecoderResult.isSuccess:()Z
ifeq 3
2: return
3: StackMap locals: io.netty.handler.codec.DecoderResult
StackMap stack:
aload 0
ldc ".. WITH DECODER FAILURE: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
4: aload 0
aload 2
invokevirtual io.netty.handler.codec.DecoderResult.cause:()Ljava/lang/Throwable;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
pop
5: aload 0
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 buf Ljava/lang/StringBuilder;
0 7 1 o Lio/netty/handler/codec/http/HttpObject;
1 7 2 result Lio/netty/handler/codec/DecoderResult;
MethodParameters:
Name Flags
buf
o
private boolean writeResponse(io.netty.handler.codec.http.HttpObject, io.netty.channel.ChannelHandlerContext);
descriptor: (Lio/netty/handler/codec/http/HttpObject;Lio/netty/channel/ChannelHandlerContext;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.request:Lio/netty/handler/codec/http/HttpRequest;
invokestatic io.netty.handler.codec.http.HttpUtil.isKeepAlive:(Lio/netty/handler/codec/http/HttpMessage;)Z
istore 3
start local 3 1: new io.netty.handler.codec.http.DefaultFullHttpResponse
dup
2: getstatic io.netty.handler.codec.http.HttpVersion.HTTP_1_1:Lio/netty/handler/codec/http/HttpVersion;
aload 1
invokeinterface io.netty.handler.codec.http.HttpObject.decoderResult:()Lio/netty/handler/codec/DecoderResult;
invokevirtual io.netty.handler.codec.DecoderResult.isSuccess:()Z
ifeq 3
getstatic io.netty.handler.codec.http.HttpResponseStatus.OK:Lio/netty/handler/codec/http/HttpResponseStatus;
goto 4
StackMap locals: io.netty.example.http.snoop.HttpSnoopServerHandler io.netty.handler.codec.http.HttpObject io.netty.channel.ChannelHandlerContext int
StackMap stack: new 1 new 1 io.netty.handler.codec.http.HttpVersion
3: getstatic io.netty.handler.codec.http.HttpResponseStatus.BAD_REQUEST:Lio/netty/handler/codec/http/HttpResponseStatus;
4: StackMap locals: io.netty.example.http.snoop.HttpSnoopServerHandler io.netty.handler.codec.http.HttpObject io.netty.channel.ChannelHandlerContext int
StackMap stack: new 1 new 1 io.netty.handler.codec.http.HttpVersion io.netty.handler.codec.http.HttpResponseStatus
aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.buf:Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
getstatic io.netty.util.CharsetUtil.UTF_8:Ljava/nio/charset/Charset;
invokestatic io.netty.buffer.Unpooled.copiedBuffer:(Ljava/lang/CharSequence;Ljava/nio/charset/Charset;)Lio/netty/buffer/ByteBuf;
5: invokespecial io.netty.handler.codec.http.DefaultFullHttpResponse.<init>:(Lio/netty/handler/codec/http/HttpVersion;Lio/netty/handler/codec/http/HttpResponseStatus;Lio/netty/buffer/ByteBuf;)V
astore 4
start local 4 6: aload 4
invokeinterface io.netty.handler.codec.http.FullHttpResponse.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.CONTENT_TYPE:Lio/netty/util/AsciiString;
ldc "text/plain; charset=UTF-8"
invokevirtual io.netty.handler.codec.http.HttpHeaders.set:(Ljava/lang/CharSequence;Ljava/lang/Object;)Lio/netty/handler/codec/http/HttpHeaders;
pop
7: iload 3
ifeq 10
8: aload 4
invokeinterface io.netty.handler.codec.http.FullHttpResponse.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.CONTENT_LENGTH:Lio/netty/util/AsciiString;
aload 4
invokeinterface io.netty.handler.codec.http.FullHttpResponse.content:()Lio/netty/buffer/ByteBuf;
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
invokevirtual io.netty.handler.codec.http.HttpHeaders.setInt:(Ljava/lang/CharSequence;I)Lio/netty/handler/codec/http/HttpHeaders;
pop
9: aload 4
invokeinterface io.netty.handler.codec.http.FullHttpResponse.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.CONNECTION:Lio/netty/util/AsciiString;
getstatic io.netty.handler.codec.http.HttpHeaderValues.KEEP_ALIVE:Lio/netty/util/AsciiString;
invokevirtual io.netty.handler.codec.http.HttpHeaders.set:(Ljava/lang/CharSequence;Ljava/lang/Object;)Lio/netty/handler/codec/http/HttpHeaders;
pop
10: StackMap locals: io.netty.handler.codec.http.FullHttpResponse
StackMap stack:
aload 0
getfield io.netty.example.http.snoop.HttpSnoopServerHandler.request:Lio/netty/handler/codec/http/HttpRequest;
invokeinterface io.netty.handler.codec.http.HttpRequest.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.COOKIE:Lio/netty/util/AsciiString;
invokevirtual io.netty.handler.codec.http.HttpHeaders.get:(Ljava/lang/CharSequence;)Ljava/lang/String;
astore 5
start local 5 11: aload 5
ifnull 19
12: getstatic io.netty.handler.codec.http.cookie.ServerCookieDecoder.STRICT:Lio/netty/handler/codec/http/cookie/ServerCookieDecoder;
aload 5
invokevirtual io.netty.handler.codec.http.cookie.ServerCookieDecoder.decode:(Ljava/lang/String;)Ljava/util/Set;
astore 6
start local 6 13: aload 6
invokeinterface java.util.Set.isEmpty:()Z
ifne 21
14: aload 6
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 8
goto 17
StackMap locals: io.netty.example.http.snoop.HttpSnoopServerHandler io.netty.handler.codec.http.HttpObject io.netty.channel.ChannelHandlerContext int io.netty.handler.codec.http.FullHttpResponse java.lang.String java.util.Set top java.util.Iterator
StackMap stack:
15: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.netty.handler.codec.http.cookie.Cookie
astore 7
start local 7 16: aload 4
invokeinterface io.netty.handler.codec.http.FullHttpResponse.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.SET_COOKIE:Lio/netty/util/AsciiString;
getstatic io.netty.handler.codec.http.cookie.ServerCookieEncoder.STRICT:Lio/netty/handler/codec/http/cookie/ServerCookieEncoder;
aload 7
invokevirtual io.netty.handler.codec.http.cookie.ServerCookieEncoder.encode:(Lio/netty/handler/codec/http/cookie/Cookie;)Ljava/lang/String;
invokevirtual io.netty.handler.codec.http.HttpHeaders.add:(Ljava/lang/CharSequence;Ljava/lang/Object;)Lio/netty/handler/codec/http/HttpHeaders;
pop
end local 7 17: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
end local 6 18: goto 21
19: StackMap locals: io.netty.example.http.snoop.HttpSnoopServerHandler io.netty.handler.codec.http.HttpObject io.netty.channel.ChannelHandlerContext int io.netty.handler.codec.http.FullHttpResponse java.lang.String
StackMap stack:
aload 4
invokeinterface io.netty.handler.codec.http.FullHttpResponse.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.SET_COOKIE:Lio/netty/util/AsciiString;
getstatic io.netty.handler.codec.http.cookie.ServerCookieEncoder.STRICT:Lio/netty/handler/codec/http/cookie/ServerCookieEncoder;
ldc "key1"
ldc "value1"
invokevirtual io.netty.handler.codec.http.cookie.ServerCookieEncoder.encode:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual io.netty.handler.codec.http.HttpHeaders.add:(Ljava/lang/CharSequence;Ljava/lang/Object;)Lio/netty/handler/codec/http/HttpHeaders;
pop
20: aload 4
invokeinterface io.netty.handler.codec.http.FullHttpResponse.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.SET_COOKIE:Lio/netty/util/AsciiString;
getstatic io.netty.handler.codec.http.cookie.ServerCookieEncoder.STRICT:Lio/netty/handler/codec/http/cookie/ServerCookieEncoder;
ldc "key2"
ldc "value2"
invokevirtual io.netty.handler.codec.http.cookie.ServerCookieEncoder.encode:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual io.netty.handler.codec.http.HttpHeaders.add:(Ljava/lang/CharSequence;Ljava/lang/Object;)Lio/netty/handler/codec/http/HttpHeaders;
pop
21: StackMap locals:
StackMap stack:
aload 2
aload 4
invokeinterface io.netty.channel.ChannelHandlerContext.write:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
pop
22: iload 3
ireturn
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 23 0 this Lio/netty/example/http/snoop/HttpSnoopServerHandler;
0 23 1 currentObj Lio/netty/handler/codec/http/HttpObject;
0 23 2 ctx Lio/netty/channel/ChannelHandlerContext;
1 23 3 keepAlive Z
6 23 4 response Lio/netty/handler/codec/http/FullHttpResponse;
11 23 5 cookieString Ljava/lang/String;
13 18 6 cookies Ljava/util/Set<Lio/netty/handler/codec/http/cookie/Cookie;>;
16 17 7 cookie Lio/netty/handler/codec/http/cookie/Cookie;
MethodParameters:
Name Flags
currentObj
ctx
private static void send100Continue(io.netty.channel.ChannelHandlerContext);
descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new io.netty.handler.codec.http.DefaultFullHttpResponse
dup
getstatic io.netty.handler.codec.http.HttpVersion.HTTP_1_1:Lio/netty/handler/codec/http/HttpVersion;
getstatic io.netty.handler.codec.http.HttpResponseStatus.CONTINUE:Lio/netty/handler/codec/http/HttpResponseStatus;
invokespecial io.netty.handler.codec.http.DefaultFullHttpResponse.<init>:(Lio/netty/handler/codec/http/HttpVersion;Lio/netty/handler/codec/http/HttpResponseStatus;)V
astore 1
start local 1 1: aload 0
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.write:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 ctx Lio/netty/channel/ChannelHandlerContext;
1 3 1 response Lio/netty/handler/codec/http/FullHttpResponse;
MethodParameters:
Name Flags
ctx
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/http/snoop/HttpSnoopServerHandler;
0 3 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 3 2 cause Ljava/lang/Throwable;
MethodParameters:
Name Flags
ctx
cause
}
Signature: Lio/netty/channel/SimpleChannelInboundHandler<Ljava/lang/Object;>;
SourceFile: "HttpSnoopServerHandler.java"
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map