public class io.netty.example.http.upload.HttpUploadServerHandler extends io.netty.channel.SimpleChannelInboundHandler<io.netty.handler.codec.http.HttpObject>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.netty.example.http.upload.HttpUploadServerHandler
super_class: io.netty.channel.SimpleChannelInboundHandler
{
private static final java.util.logging.Logger logger;
descriptor: Ljava/util/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private io.netty.handler.codec.http.HttpRequest request;
descriptor: Lio/netty/handler/codec/http/HttpRequest;
flags: (0x0002) ACC_PRIVATE
private boolean readingChunks;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private io.netty.handler.codec.http.multipart.HttpData partialContent;
descriptor: Lio/netty/handler/codec/http/multipart/HttpData;
flags: (0x0002) ACC_PRIVATE
private final java.lang.StringBuilder responseContent;
descriptor: Ljava/lang/StringBuilder;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final io.netty.handler.codec.http.multipart.HttpDataFactory factory;
descriptor: Lio/netty/handler/codec/http/multipart/HttpDataFactory;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private io.netty.handler.codec.http.multipart.HttpPostRequestDecoder decoder;
descriptor: Lio/netty/handler/codec/http/multipart/HttpPostRequestDecoder;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: ldc Lio/netty/example/http/upload/HttpUploadServerHandler;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
putstatic io.netty.example.http.upload.HttpUploadServerHandler.logger:Ljava/util/logging/Logger;
1: new io.netty.handler.codec.http.multipart.DefaultHttpDataFactory
dup
ldc 16384
invokespecial io.netty.handler.codec.http.multipart.DefaultHttpDataFactory.<init>:(J)V
2: putstatic io.netty.example.http.upload.HttpUploadServerHandler.factory:Lio/netty/handler/codec/http/multipart/HttpDataFactory;
3: iconst_1
putstatic io.netty.handler.codec.http.multipart.DiskFileUpload.deleteOnExitTemporaryFile:Z
4: aconst_null
putstatic io.netty.handler.codec.http.multipart.DiskFileUpload.baseDirectory:Ljava/lang/String;
5: iconst_1
putstatic io.netty.handler.codec.http.multipart.DiskAttribute.deleteOnExitTemporaryFile:Z
6: aconst_null
putstatic io.netty.handler.codec.http.multipart.DiskAttribute.baseDirectory:Ljava/lang/String;
7: return
LocalVariableTable:
Start End Slot Name Signature
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.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/example/http/upload/HttpUploadServerHandler;
public void channelInactive(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 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.decoder:Lio/netty/handler/codec/http/multipart/HttpPostRequestDecoder;
ifnull 2
1: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.decoder:Lio/netty/handler/codec/http/multipart/HttpPostRequestDecoder;
invokevirtual io.netty.handler.codec.http.multipart.HttpPostRequestDecoder.cleanFiles:()V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/example/http/upload/HttpUploadServerHandler;
0 3 1 ctx Lio/netty/channel/ChannelHandlerContext;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
public void channelRead0(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.http.HttpObject);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http/HttpObject;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, 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 54
1: aload 0
aload 2
checkcast io.netty.handler.codec.http.HttpRequest
dup_x1
putfield io.netty.example.http.upload.HttpUploadServerHandler.request:Lio/netty/handler/codec/http/HttpRequest;
astore 3
start local 3 2: new java.net.URI
dup
aload 3
invokeinterface io.netty.handler.codec.http.HttpRequest.uri:()Ljava/lang/String;
invokespecial java.net.URI.<init>:(Ljava/lang/String;)V
astore 4
start local 4 3: aload 4
invokevirtual java.net.URI.getPath:()Ljava/lang/String;
ldc "/form"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 6
4: aload 0
aload 1
invokevirtual io.netty.example.http.upload.HttpUploadServerHandler.writeMenu:(Lio/netty/channel/ChannelHandlerContext;)V
5: return
6: StackMap locals: io.netty.handler.codec.http.HttpRequest java.net.URI
StackMap stack:
aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
iconst_0
invokevirtual java.lang.StringBuilder.setLength:(I)V
7: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent: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
8: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent: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.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
new java.lang.StringBuilder
dup
ldc "VERSION: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokeinterface io.netty.handler.codec.http.HttpRequest.protocolVersion:()Lio/netty/handler/codec/http/HttpVersion;
invokevirtual io.netty.handler.codec.http.HttpVersion.text:()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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
new java.lang.StringBuilder
dup
ldc "REQUEST_URI: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
11: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "\r\n\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: aload 3
invokeinterface io.netty.handler.codec.http.HttpRequest.headers:()Lio/netty/handler/codec/http/HttpHeaders;
invokevirtual io.netty.handler.codec.http.HttpHeaders.iterator:()Ljava/util/Iterator;
astore 6
goto 15
StackMap locals: io.netty.example.http.upload.HttpUploadServerHandler io.netty.channel.ChannelHandlerContext io.netty.handler.codec.http.HttpObject io.netty.handler.codec.http.HttpRequest java.net.URI 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 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
new java.lang.StringBuilder
dup
ldc "HEADER: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 61
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 5
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 5 15: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
16: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "\r\n\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
17: aload 3
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 6
start local 6 18: aload 6
ifnonnull 21
19: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
astore 5
start local 5 20: goto 22
end local 5 21: StackMap locals: io.netty.example.http.upload.HttpUploadServerHandler io.netty.channel.ChannelHandlerContext io.netty.handler.codec.http.HttpObject io.netty.handler.codec.http.HttpRequest java.net.URI top java.lang.String
StackMap stack:
getstatic io.netty.handler.codec.http.cookie.ServerCookieDecoder.STRICT:Lio/netty/handler/codec/http/cookie/ServerCookieDecoder;
aload 6
invokevirtual io.netty.handler.codec.http.cookie.ServerCookieDecoder.decode:(Ljava/lang/String;)Ljava/util/Set;
astore 5
start local 5 22: StackMap locals: io.netty.example.http.upload.HttpUploadServerHandler io.netty.channel.ChannelHandlerContext io.netty.handler.codec.http.HttpObject io.netty.handler.codec.http.HttpRequest java.net.URI java.util.Set java.lang.String
StackMap stack:
aload 5
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 8
goto 25
StackMap locals: io.netty.example.http.upload.HttpUploadServerHandler io.netty.channel.ChannelHandlerContext io.netty.handler.codec.http.HttpObject io.netty.handler.codec.http.HttpRequest java.net.URI java.util.Set java.lang.String top java.util.Iterator
StackMap stack:
23: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.netty.handler.codec.http.cookie.Cookie
astore 7
start local 7 24: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
new java.lang.StringBuilder
dup
ldc "COOKIE: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 7 25: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 23
26: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "\r\n\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
27: 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 7
start local 7 28: aload 7
invokevirtual io.netty.handler.codec.http.QueryStringDecoder.parameters:()Ljava/util/Map;
astore 8
start local 8 29: aload 8
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 10
goto 35
StackMap locals: io.netty.example.http.upload.HttpUploadServerHandler io.netty.channel.ChannelHandlerContext io.netty.handler.codec.http.HttpObject io.netty.handler.codec.http.HttpRequest java.net.URI java.util.Set java.lang.String io.netty.handler.codec.http.QueryStringDecoder java.util.Map top java.util.Iterator
StackMap stack:
30: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 9
start local 9 31: aload 9
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.List
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 12
goto 34
StackMap locals: io.netty.example.http.upload.HttpUploadServerHandler io.netty.channel.ChannelHandlerContext io.netty.handler.codec.http.HttpObject io.netty.handler.codec.http.HttpRequest java.net.URI java.util.Set java.lang.String io.netty.handler.codec.http.QueryStringDecoder java.util.Map java.util.Map$Entry java.util.Iterator top java.util.Iterator
StackMap stack:
32: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 11
start local 11 33: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
new java.lang.StringBuilder
dup
ldc "URI: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 61
invokevirtual java.lang.StringBuilder.append:(C)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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 11 34: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 32
end local 9 35: StackMap locals: io.netty.example.http.upload.HttpUploadServerHandler io.netty.channel.ChannelHandlerContext io.netty.handler.codec.http.HttpObject io.netty.handler.codec.http.HttpRequest java.net.URI java.util.Set java.lang.String io.netty.handler.codec.http.QueryStringDecoder java.util.Map top java.util.Iterator
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 30
36: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "\r\n\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
37: aload 3
invokeinterface io.netty.handler.codec.http.HttpRequest.method:()Lio/netty/handler/codec/http/HttpMethod;
getstatic io.netty.handler.codec.http.HttpMethod.GET:Lio/netty/handler/codec/http/HttpMethod;
invokevirtual io.netty.handler.codec.http.HttpMethod.equals:(Ljava/lang/Object;)Z
ifeq 40
38: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "\r\n\r\nEND OF GET CONTENT\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
39: return
40: StackMap locals: io.netty.example.http.upload.HttpUploadServerHandler io.netty.channel.ChannelHandlerContext io.netty.handler.codec.http.HttpObject io.netty.handler.codec.http.HttpRequest java.net.URI java.util.Set java.lang.String io.netty.handler.codec.http.QueryStringDecoder java.util.Map
StackMap stack:
aload 0
new io.netty.handler.codec.http.multipart.HttpPostRequestDecoder
dup
getstatic io.netty.example.http.upload.HttpUploadServerHandler.factory:Lio/netty/handler/codec/http/multipart/HttpDataFactory;
aload 3
invokespecial io.netty.handler.codec.http.multipart.HttpPostRequestDecoder.<init>:(Lio/netty/handler/codec/http/multipart/HttpDataFactory;Lio/netty/handler/codec/http/HttpRequest;)V
putfield io.netty.example.http.upload.HttpUploadServerHandler.decoder:Lio/netty/handler/codec/http/multipart/HttpPostRequestDecoder;
41: goto 48
StackMap locals:
StackMap stack: io.netty.handler.codec.http.multipart.HttpPostRequestDecoder$ErrorDataDecoderException
42: astore 9
start local 9 43: aload 9
invokevirtual io.netty.handler.codec.http.multipart.HttpPostRequestDecoder$ErrorDataDecoderException.printStackTrace:()V
44: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
aload 9
invokevirtual io.netty.handler.codec.http.multipart.HttpPostRequestDecoder$ErrorDataDecoderException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
45: aload 0
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
invokevirtual io.netty.example.http.upload.HttpUploadServerHandler.writeResponse:(Lio/netty/channel/Channel;)V
46: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
invokeinterface io.netty.channel.Channel.close:()Lio/netty/channel/ChannelFuture;
pop
47: return
end local 9 48: StackMap locals:
StackMap stack:
aload 0
aload 3
invokestatic io.netty.handler.codec.http.HttpUtil.isTransferEncodingChunked:(Lio/netty/handler/codec/http/HttpMessage;)Z
putfield io.netty.example.http.upload.HttpUploadServerHandler.readingChunks:Z
49: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
new java.lang.StringBuilder
dup
ldc "Is Chunked: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.readingChunks:Z
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
50: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
new java.lang.StringBuilder
dup
ldc "IsMultipart: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.decoder:Lio/netty/handler/codec/http/multipart/HttpPostRequestDecoder;
invokevirtual io.netty.handler.codec.http.multipart.HttpPostRequestDecoder.isMultipart:()Z
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
51: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.readingChunks:Z
ifeq 54
52: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "Chunks: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
53: aload 0
iconst_1
putfield io.netty.example.http.upload.HttpUploadServerHandler.readingChunks:Z
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 54: StackMap locals: io.netty.example.http.upload.HttpUploadServerHandler io.netty.channel.ChannelHandlerContext io.netty.handler.codec.http.HttpObject
StackMap stack:
aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.decoder:Lio/netty/handler/codec/http/multipart/HttpPostRequestDecoder;
ifnull 72
55: aload 2
instanceof io.netty.handler.codec.http.HttpContent
ifeq 73
56: aload 2
checkcast io.netty.handler.codec.http.HttpContent
astore 3
start local 3 57: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.decoder:Lio/netty/handler/codec/http/multipart/HttpPostRequestDecoder;
aload 3
invokevirtual io.netty.handler.codec.http.multipart.HttpPostRequestDecoder.offer:(Lio/netty/handler/codec/http/HttpContent;)Lio/netty/handler/codec/http/multipart/InterfaceHttpPostRequestDecoder;
pop
58: goto 65
StackMap locals: io.netty.example.http.upload.HttpUploadServerHandler io.netty.channel.ChannelHandlerContext io.netty.handler.codec.http.HttpObject io.netty.handler.codec.http.HttpContent
StackMap stack: io.netty.handler.codec.http.multipart.HttpPostRequestDecoder$ErrorDataDecoderException
59: astore 4
start local 4 60: aload 4
invokevirtual io.netty.handler.codec.http.multipart.HttpPostRequestDecoder$ErrorDataDecoderException.printStackTrace:()V
61: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
aload 4
invokevirtual io.netty.handler.codec.http.multipart.HttpPostRequestDecoder$ErrorDataDecoderException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
62: aload 0
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
invokevirtual io.netty.example.http.upload.HttpUploadServerHandler.writeResponse:(Lio/netty/channel/Channel;)V
63: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
invokeinterface io.netty.channel.Channel.close:()Lio/netty/channel/ChannelFuture;
pop
64: return
end local 4 65: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
bipush 111
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
66: aload 0
invokevirtual io.netty.example.http.upload.HttpUploadServerHandler.readHttpDataChunkByChunk:()V
67: aload 3
instanceof io.netty.handler.codec.http.LastHttpContent
ifeq 73
68: aload 0
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
invokevirtual io.netty.example.http.upload.HttpUploadServerHandler.writeResponse:(Lio/netty/channel/Channel;)V
69: aload 0
iconst_0
putfield io.netty.example.http.upload.HttpUploadServerHandler.readingChunks:Z
70: aload 0
invokevirtual io.netty.example.http.upload.HttpUploadServerHandler.reset:()V
end local 3 71: goto 73
72: StackMap locals:
StackMap stack:
aload 0
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
invokevirtual io.netty.example.http.upload.HttpUploadServerHandler.writeResponse:(Lio/netty/channel/Channel;)V
73: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 74 0 this Lio/netty/example/http/upload/HttpUploadServerHandler;
0 74 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 74 2 msg Lio/netty/handler/codec/http/HttpObject;
2 54 3 request Lio/netty/handler/codec/http/HttpRequest;
3 54 4 uri Ljava/net/URI;
14 15 5 entry Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
20 21 5 cookies Ljava/util/Set<Lio/netty/handler/codec/http/cookie/Cookie;>;
22 54 5 cookies Ljava/util/Set<Lio/netty/handler/codec/http/cookie/Cookie;>;
18 54 6 value Ljava/lang/String;
24 25 7 cookie Lio/netty/handler/codec/http/cookie/Cookie;
28 54 7 decoderQuery Lio/netty/handler/codec/http/QueryStringDecoder;
29 54 8 uriAttributes Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
31 35 9 attr Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
33 34 11 attrVal Ljava/lang/String;
43 48 9 e1 Lio/netty/handler/codec/http/multipart/HttpPostRequestDecoder$ErrorDataDecoderException;
57 71 3 chunk Lio/netty/handler/codec/http/HttpContent;
60 65 4 e1 Lio/netty/handler/codec/http/multipart/HttpPostRequestDecoder$ErrorDataDecoderException;
Exception table:
from to target type
40 41 42 Class io.netty.handler.codec.http.multipart.HttpPostRequestDecoder$ErrorDataDecoderException
57 58 59 Class io.netty.handler.codec.http.multipart.HttpPostRequestDecoder$ErrorDataDecoderException
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
msg
private void reset();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
putfield io.netty.example.http.upload.HttpUploadServerHandler.request:Lio/netty/handler/codec/http/HttpRequest;
1: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.decoder:Lio/netty/handler/codec/http/multipart/HttpPostRequestDecoder;
invokevirtual io.netty.handler.codec.http.multipart.HttpPostRequestDecoder.destroy:()V
2: aload 0
aconst_null
putfield io.netty.example.http.upload.HttpUploadServerHandler.decoder:Lio/netty/handler/codec/http/multipart/HttpPostRequestDecoder;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/example/http/upload/HttpUploadServerHandler;
private void readHttpDataChunkByChunk();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=1
start local 0 0: goto 12
1: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.decoder:Lio/netty/handler/codec/http/multipart/HttpPostRequestDecoder;
invokevirtual io.netty.handler.codec.http.multipart.HttpPostRequestDecoder.next:()Lio/netty/handler/codec/http/multipart/InterfaceHttpData;
astore 1
start local 1 2: aload 1
ifnull 12
3: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.partialContent:Lio/netty/handler/codec/http/multipart/HttpData;
aload 1
if_acmpne 6
4: getstatic io.netty.example.http.upload.HttpUploadServerHandler.logger:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
ldc " 100% (FinalSize: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.partialContent:Lio/netty/handler/codec/http/multipart/HttpData;
invokeinterface io.netty.handler.codec.http.multipart.HttpData.length:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.info:(Ljava/lang/String;)V
5: aload 0
aconst_null
putfield io.netty.example.http.upload.HttpUploadServerHandler.partialContent:Lio/netty/handler/codec/http/multipart/HttpData;
6: StackMap locals: io.netty.handler.codec.http.multipart.InterfaceHttpData
StackMap stack:
aload 0
aload 1
invokevirtual io.netty.example.http.upload.HttpUploadServerHandler.writeHttpData:(Lio/netty/handler/codec/http/multipart/InterfaceHttpData;)V
7: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
8: astore 2
9: aload 1
invokeinterface io.netty.handler.codec.http.multipart.InterfaceHttpData.release:()Z
pop
10: aload 2
athrow
11: StackMap locals:
StackMap stack:
aload 1
invokeinterface io.netty.handler.codec.http.multipart.InterfaceHttpData.release:()Z
pop
end local 1 12: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.decoder:Lio/netty/handler/codec/http/multipart/HttpPostRequestDecoder;
invokevirtual io.netty.handler.codec.http.multipart.HttpPostRequestDecoder.hasNext:()Z
ifne 1
13: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.decoder:Lio/netty/handler/codec/http/multipart/HttpPostRequestDecoder;
invokevirtual io.netty.handler.codec.http.multipart.HttpPostRequestDecoder.currentPartialHttpData:()Lio/netty/handler/codec/http/multipart/InterfaceHttpData;
astore 1
start local 1 14: aload 1
ifnull 35
15: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 16: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.partialContent:Lio/netty/handler/codec/http/multipart/HttpData;
ifnonnull 25
17: aload 0
aload 1
checkcast io.netty.handler.codec.http.multipart.HttpData
putfield io.netty.example.http.upload.HttpUploadServerHandler.partialContent:Lio/netty/handler/codec/http/multipart/HttpData;
18: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.partialContent:Lio/netty/handler/codec/http/multipart/HttpData;
instanceof io.netty.handler.codec.http.multipart.FileUpload
ifeq 22
19: aload 2
ldc "Start FileUpload: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
20: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.partialContent:Lio/netty/handler/codec/http/multipart/HttpData;
checkcast io.netty.handler.codec.http.multipart.FileUpload
invokeinterface io.netty.handler.codec.http.multipart.FileUpload.getFilename:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
21: goto 24
22: StackMap locals: io.netty.handler.codec.http.multipart.InterfaceHttpData java.lang.StringBuilder
StackMap stack:
aload 2
ldc "Start Attribute: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
23: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.partialContent:Lio/netty/handler/codec/http/multipart/HttpData;
invokeinterface io.netty.handler.codec.http.multipart.HttpData.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
24: StackMap locals:
StackMap stack:
aload 2
ldc "(DefinedSize: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.partialContent:Lio/netty/handler/codec/http/multipart/HttpData;
invokeinterface io.netty.handler.codec.http.multipart.HttpData.definedLength:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
25: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.partialContent:Lio/netty/handler/codec/http/multipart/HttpData;
invokeinterface io.netty.handler.codec.http.multipart.HttpData.definedLength:()J
lconst_0
lcmp
ifle 30
26: aload 2
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.partialContent:Lio/netty/handler/codec/http/multipart/HttpData;
invokeinterface io.netty.handler.codec.http.multipart.HttpData.length:()J
ldc 100
lmul
aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.partialContent:Lio/netty/handler/codec/http/multipart/HttpData;
invokeinterface io.netty.handler.codec.http.multipart.HttpData.definedLength:()J
ldiv
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
27: ldc "% "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
28: getstatic io.netty.example.http.upload.HttpUploadServerHandler.logger:Ljava/util/logging/Logger;
aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.info:(Ljava/lang/String;)V
29: goto 35
30: StackMap locals:
StackMap stack:
aload 2
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.partialContent:Lio/netty/handler/codec/http/multipart/HttpData;
invokeinterface io.netty.handler.codec.http.multipart.HttpData.length:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
31: getstatic io.netty.example.http.upload.HttpUploadServerHandler.logger:Ljava/util/logging/Logger;
aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.info:(Ljava/lang/String;)V
end local 2 end local 1 32: goto 35
StackMap locals: io.netty.example.http.upload.HttpUploadServerHandler
StackMap stack: io.netty.handler.codec.http.multipart.HttpPostRequestDecoder$EndOfDataDecoderException
33: pop
34: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "\r\n\r\nEND OF CONTENT CHUNK BY CHUNK\r\n\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
35: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lio/netty/example/http/upload/HttpUploadServerHandler;
2 12 1 data Lio/netty/handler/codec/http/multipart/InterfaceHttpData;
14 32 1 data Lio/netty/handler/codec/http/multipart/InterfaceHttpData;
16 32 2 builder Ljava/lang/StringBuilder;
Exception table:
from to target type
6 8 8 any
0 32 33 Class io.netty.handler.codec.http.multipart.HttpPostRequestDecoder$EndOfDataDecoderException
private void writeHttpData(io.netty.handler.codec.http.multipart.InterfaceHttpData);
descriptor: (Lio/netty/handler/codec/http/multipart/InterfaceHttpData;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface io.netty.handler.codec.http.multipart.InterfaceHttpData.getHttpDataType:()Lio/netty/handler/codec/http/multipart/InterfaceHttpData$HttpDataType;
getstatic io.netty.handler.codec.http.multipart.InterfaceHttpData$HttpDataType.Attribute:Lio/netty/handler/codec/http/multipart/InterfaceHttpData$HttpDataType;
if_acmpne 19
1: aload 1
checkcast io.netty.handler.codec.http.multipart.Attribute
astore 2
start local 2 2: aload 2
invokeinterface io.netty.handler.codec.http.multipart.Attribute.getValue:()Ljava/lang/String;
astore 3
start local 3 3: goto 10
end local 3 StackMap locals: io.netty.example.http.upload.HttpUploadServerHandler io.netty.handler.codec.http.multipart.InterfaceHttpData io.netty.handler.codec.http.multipart.Attribute
StackMap stack: java.io.IOException
4: astore 4
start local 4 5: aload 4
invokevirtual java.io.IOException.printStackTrace:()V
6: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
new java.lang.StringBuilder
dup
ldc "\r\nBODY Attribute: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokeinterface io.netty.handler.codec.http.multipart.Attribute.getHttpDataType:()Lio/netty/handler/codec/http/multipart/InterfaceHttpData$HttpDataType;
invokevirtual io.netty.handler.codec.http.multipart.InterfaceHttpData$HttpDataType.name:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: aload 2
invokeinterface io.netty.handler.codec.http.multipart.Attribute.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " Error while reading value: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.io.IOException.getMessage:()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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: return
end local 4 start local 3 10: StackMap locals: java.lang.String
StackMap stack:
aload 3
invokevirtual java.lang.String.length:()I
bipush 100
if_icmple 15
11: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
new java.lang.StringBuilder
dup
ldc "\r\nBODY Attribute: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokeinterface io.netty.handler.codec.http.multipart.Attribute.getHttpDataType:()Lio/netty/handler/codec/http/multipart/InterfaceHttpData$HttpDataType;
invokevirtual io.netty.handler.codec.http.multipart.InterfaceHttpData$HttpDataType.name:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: aload 2
invokeinterface io.netty.handler.codec.http.multipart.Attribute.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " data too long\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
14: goto 36
15: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
new java.lang.StringBuilder
dup
ldc "\r\nBODY Attribute: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokeinterface io.netty.handler.codec.http.multipart.Attribute.getHttpDataType:()Lio/netty/handler/codec/http/multipart/InterfaceHttpData$HttpDataType;
invokevirtual io.netty.handler.codec.http.multipart.InterfaceHttpData$HttpDataType.name:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
16: aload 2
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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
17: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 3 end local 2 18: goto 36
19: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
new java.lang.StringBuilder
dup
ldc "\r\nBODY FileUpload: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface io.netty.handler.codec.http.multipart.InterfaceHttpData.getHttpDataType:()Lio/netty/handler/codec/http/multipart/InterfaceHttpData$HttpDataType;
invokevirtual io.netty.handler.codec.http.multipart.InterfaceHttpData$HttpDataType.name:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
20: ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
21: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
22: aload 1
invokeinterface io.netty.handler.codec.http.multipart.InterfaceHttpData.getHttpDataType:()Lio/netty/handler/codec/http/multipart/InterfaceHttpData$HttpDataType;
getstatic io.netty.handler.codec.http.multipart.InterfaceHttpData$HttpDataType.FileUpload:Lio/netty/handler/codec/http/multipart/InterfaceHttpData$HttpDataType;
if_acmpne 36
23: aload 1
checkcast io.netty.handler.codec.http.multipart.FileUpload
astore 2
start local 2 24: aload 2
invokeinterface io.netty.handler.codec.http.multipart.FileUpload.isCompleted:()Z
ifeq 35
25: aload 2
invokeinterface io.netty.handler.codec.http.multipart.FileUpload.length:()J
ldc 10000
lcmp
ifge 33
26: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "\tContent of file\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
27: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
aload 2
aload 2
invokeinterface io.netty.handler.codec.http.multipart.FileUpload.getCharset:()Ljava/nio/charset/Charset;
invokeinterface io.netty.handler.codec.http.multipart.FileUpload.getString:(Ljava/nio/charset/Charset;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
28: goto 31
StackMap locals: io.netty.example.http.upload.HttpUploadServerHandler io.netty.handler.codec.http.multipart.InterfaceHttpData io.netty.handler.codec.http.multipart.FileUpload
StackMap stack: java.io.IOException
29: astore 3
start local 3 30: aload 3
invokevirtual java.io.IOException.printStackTrace:()V
end local 3 31: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
32: goto 36
33: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
new java.lang.StringBuilder
dup
ldc "\tFile too long to be printed out:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokeinterface io.netty.handler.codec.http.multipart.FileUpload.length:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
34: goto 36
35: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "\tFile to be continued but should not!\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 2 36: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lio/netty/example/http/upload/HttpUploadServerHandler;
0 37 1 data Lio/netty/handler/codec/http/multipart/InterfaceHttpData;
2 18 2 attribute Lio/netty/handler/codec/http/multipart/Attribute;
3 4 3 value Ljava/lang/String;
10 18 3 value Ljava/lang/String;
5 10 4 e1 Ljava/io/IOException;
24 36 2 fileUpload Lio/netty/handler/codec/http/multipart/FileUpload;
30 31 3 e1 Ljava/io/IOException;
Exception table:
from to target type
2 3 4 Class java.io.IOException
27 28 29 Class java.io.IOException
MethodParameters:
Name Flags
data
private void writeResponse(io.netty.channel.Channel);
descriptor: (Lio/netty/channel/Channel;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent: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;
astore 2
start local 2 1: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
iconst_0
invokevirtual java.lang.StringBuilder.setLength:(I)V
2: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.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.CONNECTION:Lio/netty/util/AsciiString;
getstatic io.netty.handler.codec.http.HttpHeaderValues.CLOSE:Lio/netty/util/AsciiString;
iconst_1
invokevirtual io.netty.handler.codec.http.HttpHeaders.contains:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Z)Z
ifne 6
3: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.request:Lio/netty/handler/codec/http/HttpRequest;
invokeinterface io.netty.handler.codec.http.HttpRequest.protocolVersion:()Lio/netty/handler/codec/http/HttpVersion;
getstatic io.netty.handler.codec.http.HttpVersion.HTTP_1_0:Lio/netty/handler/codec/http/HttpVersion;
invokevirtual io.netty.handler.codec.http.HttpVersion.equals:(Ljava/lang/Object;)Z
ifeq 5
4: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.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.CONNECTION:Lio/netty/util/AsciiString;
getstatic io.netty.handler.codec.http.HttpHeaderValues.KEEP_ALIVE:Lio/netty/util/AsciiString;
iconst_1
invokevirtual io.netty.handler.codec.http.HttpHeaders.contains:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Z)Z
ifeq 6
5: StackMap locals: io.netty.buffer.ByteBuf
StackMap stack:
iconst_0
goto 7
StackMap locals:
StackMap stack:
6: iconst_1
StackMap locals:
StackMap stack: int
7: istore 3
start local 3 8: new io.netty.handler.codec.http.DefaultFullHttpResponse
dup
9: getstatic io.netty.handler.codec.http.HttpVersion.HTTP_1_1:Lio/netty/handler/codec/http/HttpVersion;
getstatic io.netty.handler.codec.http.HttpResponseStatus.OK:Lio/netty/handler/codec/http/HttpResponseStatus;
aload 2
10: 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 11: 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
12: iload 3
ifne 14
13: 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 2
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
14: StackMap locals: int io.netty.handler.codec.http.FullHttpResponse
StackMap stack:
aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.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 6
start local 6 15: aload 6
ifnonnull 18
16: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
astore 5
start local 5 17: goto 19
end local 5 18: StackMap locals: io.netty.example.http.upload.HttpUploadServerHandler io.netty.channel.Channel io.netty.buffer.ByteBuf int io.netty.handler.codec.http.FullHttpResponse top java.lang.String
StackMap stack:
getstatic io.netty.handler.codec.http.cookie.ServerCookieDecoder.STRICT:Lio/netty/handler/codec/http/cookie/ServerCookieDecoder;
aload 6
invokevirtual io.netty.handler.codec.http.cookie.ServerCookieDecoder.decode:(Ljava/lang/String;)Ljava/util/Set;
astore 5
start local 5 19: StackMap locals: io.netty.example.http.upload.HttpUploadServerHandler io.netty.channel.Channel io.netty.buffer.ByteBuf int io.netty.handler.codec.http.FullHttpResponse java.util.Set java.lang.String
StackMap stack:
aload 5
invokeinterface java.util.Set.isEmpty:()Z
ifne 24
20: aload 5
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 8
goto 23
StackMap locals: io.netty.example.http.upload.HttpUploadServerHandler io.netty.channel.Channel io.netty.buffer.ByteBuf int io.netty.handler.codec.http.FullHttpResponse java.util.Set java.lang.String top java.util.Iterator
StackMap stack:
21: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.netty.handler.codec.http.cookie.Cookie
astore 7
start local 7 22: 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 23: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 21
24: StackMap locals: io.netty.example.http.upload.HttpUploadServerHandler io.netty.channel.Channel io.netty.buffer.ByteBuf int io.netty.handler.codec.http.FullHttpResponse java.util.Set java.lang.String
StackMap stack:
aload 1
aload 4
invokeinterface io.netty.channel.Channel.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
astore 7
start local 7 25: iload 3
ifeq 27
26: aload 7
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
27: StackMap locals: io.netty.channel.ChannelFuture
StackMap stack:
return
end local 7 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 28 0 this Lio/netty/example/http/upload/HttpUploadServerHandler;
0 28 1 channel Lio/netty/channel/Channel;
1 28 2 buf Lio/netty/buffer/ByteBuf;
8 28 3 close Z
11 28 4 response Lio/netty/handler/codec/http/FullHttpResponse;
17 18 5 cookies Ljava/util/Set<Lio/netty/handler/codec/http/cookie/Cookie;>;
19 28 5 cookies Ljava/util/Set<Lio/netty/handler/codec/http/cookie/Cookie;>;
15 28 6 value Ljava/lang/String;
22 23 7 cookie Lio/netty/handler/codec/http/cookie/Cookie;
25 28 7 future Lio/netty/channel/ChannelFuture;
MethodParameters:
Name Flags
channel
private void writeMenu(io.netty.channel.ChannelHandlerContext);
descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
iconst_0
invokevirtual java.lang.StringBuilder.setLength:(I)V
1: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<html>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<head>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<title>Netty Test Form</title>\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
4: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "</head>\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<body bgcolor=white><style>td{font-size: 12pt;}</style>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<table border=\"0\">"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<tr>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<td>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<h1>Netty Test Form</h1>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "Choose one FORM"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
11: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "</td>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "</tr>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
13: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "</table>\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
14: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<CENTER>GET FORM<HR WIDTH=\"75%\" NOSHADE color=\"blue\"></CENTER>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
15: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<FORM ACTION=\"/formget\" METHOD=\"GET\">"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
16: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<input type=hidden name=getform value=\"GET\">"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
17: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<table border=\"0\">"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
18: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<tr><td>Fill with value: <br> <input type=text name=\"info\" size=10></td></tr>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
19: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<tr><td>Fill with value: <br> <input type=text name=\"secondinfo\" size=20>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
20: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
21: ldc "<tr><td>Fill with value: <br> <textarea name=\"thirdinfo\" cols=40 rows=10></textarea>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
22: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "</td></tr>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
23: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<tr><td><INPUT TYPE=\"submit\" NAME=\"Send\" VALUE=\"Send\"></INPUT></td>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
24: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<td><INPUT TYPE=\"reset\" NAME=\"Clear\" VALUE=\"Clear\" ></INPUT></td></tr>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
25: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "</table></FORM>\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
26: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<CENTER><HR WIDTH=\"75%\" NOSHADE color=\"blue\"></CENTER>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
27: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<CENTER>POST FORM<HR WIDTH=\"75%\" NOSHADE color=\"blue\"></CENTER>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
28: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<FORM ACTION=\"/formpost\" METHOD=\"POST\">"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
29: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<input type=hidden name=getform value=\"POST\">"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
30: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<table border=\"0\">"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
31: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<tr><td>Fill with value: <br> <input type=text name=\"info\" size=10></td></tr>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
32: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<tr><td>Fill with value: <br> <input type=text name=\"secondinfo\" size=20>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
33: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
34: ldc "<tr><td>Fill with value: <br> <textarea name=\"thirdinfo\" cols=40 rows=10></textarea>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
35: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<tr><td>Fill with file (only file name will be transmitted): <br> <input type=file name=\"myfile\">"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
36: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "</td></tr>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
37: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<tr><td><INPUT TYPE=\"submit\" NAME=\"Send\" VALUE=\"Send\"></INPUT></td>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
38: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<td><INPUT TYPE=\"reset\" NAME=\"Clear\" VALUE=\"Clear\" ></INPUT></td></tr>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
39: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "</table></FORM>\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
40: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<CENTER><HR WIDTH=\"75%\" NOSHADE color=\"blue\"></CENTER>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
41: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<CENTER>POST MULTIPART FORM<HR WIDTH=\"75%\" NOSHADE color=\"blue\"></CENTER>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
42: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<FORM ACTION=\"/formpostmultipart\" ENCTYPE=\"multipart/form-data\" METHOD=\"POST\">"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
43: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<input type=hidden name=getform value=\"POST\">"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
44: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<table border=\"0\">"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
45: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<tr><td>Fill with value: <br> <input type=text name=\"info\" size=10></td></tr>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
46: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<tr><td>Fill with value: <br> <input type=text name=\"secondinfo\" size=20>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
47: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
48: ldc "<tr><td>Fill with value: <br> <textarea name=\"thirdinfo\" cols=40 rows=10></textarea>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
49: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<tr><td>Fill with file: <br> <input type=file name=\"myfile\">"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
50: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "</td></tr>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
51: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<tr><td><INPUT TYPE=\"submit\" NAME=\"Send\" VALUE=\"Send\"></INPUT></td>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
52: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<td><INPUT TYPE=\"reset\" NAME=\"Clear\" VALUE=\"Clear\" ></INPUT></td></tr>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
53: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "</table></FORM>\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
54: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "<CENTER><HR WIDTH=\"75%\" NOSHADE color=\"blue\"></CENTER>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
55: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "</body>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
56: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
ldc "</html>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
57: aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent: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;
astore 2
start local 2 58: new io.netty.handler.codec.http.DefaultFullHttpResponse
dup
59: getstatic io.netty.handler.codec.http.HttpVersion.HTTP_1_1:Lio/netty/handler/codec/http/HttpVersion;
getstatic io.netty.handler.codec.http.HttpResponseStatus.OK:Lio/netty/handler/codec/http/HttpResponseStatus;
aload 2
60: 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 3
start local 3 61: aload 3
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/html; charset=UTF-8"
invokevirtual io.netty.handler.codec.http.HttpHeaders.set:(Ljava/lang/CharSequence;Ljava/lang/Object;)Lio/netty/handler/codec/http/HttpHeaders;
pop
62: aload 3
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 2
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
63: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
aload 3
invokeinterface io.netty.channel.Channel.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
pop
64: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 65 0 this Lio/netty/example/http/upload/HttpUploadServerHandler;
0 65 1 ctx Lio/netty/channel/ChannelHandlerContext;
58 65 2 buf Lio/netty/buffer/ByteBuf;
61 65 3 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=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic io.netty.example.http.upload.HttpUploadServerHandler.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
aload 0
getfield io.netty.example.http.upload.HttpUploadServerHandler.responseContent:Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 2
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
1: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
invokeinterface io.netty.channel.Channel.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/upload/HttpUploadServerHandler;
0 3 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 3 2 cause Ljava/lang/Throwable;
Exceptions:
throws java.lang.Exception
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 io.netty.handler.codec.http.HttpObject
invokevirtual io.netty.example.http.upload.HttpUploadServerHandler.channelRead0:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http/HttpObject;)V
return
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
}
Signature: Lio/netty/channel/SimpleChannelInboundHandler<Lio/netty/handler/codec/http/HttpObject;>;
SourceFile: "HttpUploadServerHandler.java"
InnerClasses:
public EndOfDataDecoderException = io.netty.handler.codec.http.multipart.HttpPostRequestDecoder$EndOfDataDecoderException of io.netty.handler.codec.http.multipart.HttpPostRequestDecoder
public ErrorDataDecoderException = io.netty.handler.codec.http.multipart.HttpPostRequestDecoder$ErrorDataDecoderException of io.netty.handler.codec.http.multipart.HttpPostRequestDecoder
public final HttpDataType = io.netty.handler.codec.http.multipart.InterfaceHttpData$HttpDataType of io.netty.handler.codec.http.multipart.InterfaceHttpData
public abstract Entry = java.util.Map$Entry of java.util.Map