public class io.netty.handler.codec.http.HttpServerKeepAliveHandler extends io.netty.channel.ChannelDuplexHandler
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.netty.handler.codec.http.HttpServerKeepAliveHandler
super_class: io.netty.channel.ChannelDuplexHandler
{
private static final java.lang.String MULTIPART_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "multipart"
private boolean persistentConnection;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int pendingResponses;
descriptor: I
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial io.netty.channel.ChannelDuplexHandler.<init>:()V
1: aload 0
iconst_1
putfield io.netty.handler.codec.http.HttpServerKeepAliveHandler.persistentConnection:Z
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/handler/codec/http/HttpServerKeepAliveHandler;
public void channelRead(io.netty.channel.ChannelHandlerContext, java.lang.Object);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof io.netty.handler.codec.http.HttpRequest
ifeq 5
1: aload 2
checkcast io.netty.handler.codec.http.HttpRequest
astore 3
start local 3 2: aload 0
getfield io.netty.handler.codec.http.HttpServerKeepAliveHandler.persistentConnection:Z
ifeq 5
3: aload 0
dup
getfield io.netty.handler.codec.http.HttpServerKeepAliveHandler.pendingResponses:I
iconst_1
iadd
putfield io.netty.handler.codec.http.HttpServerKeepAliveHandler.pendingResponses:I
4: aload 0
aload 3
invokestatic io.netty.handler.codec.http.HttpUtil.isKeepAlive:(Lio/netty/handler/codec/http/HttpMessage;)Z
putfield io.netty.handler.codec.http.HttpServerKeepAliveHandler.persistentConnection:Z
end local 3 5: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokespecial io.netty.channel.ChannelDuplexHandler.channelRead:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/netty/handler/codec/http/HttpServerKeepAliveHandler;
0 7 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 7 2 msg Ljava/lang/Object;
2 5 3 request Lio/netty/handler/codec/http/HttpRequest;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
msg
public void write(io.netty.channel.ChannelHandlerContext, java.lang.Object, io.netty.channel.ChannelPromise);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
instanceof io.netty.handler.codec.http.HttpResponse
ifeq 8
1: aload 2
checkcast io.netty.handler.codec.http.HttpResponse
astore 4
start local 4 2: aload 0
aload 4
invokevirtual io.netty.handler.codec.http.HttpServerKeepAliveHandler.trackResponse:(Lio/netty/handler/codec/http/HttpResponse;)V
3: aload 4
invokestatic io.netty.handler.codec.http.HttpUtil.isKeepAlive:(Lio/netty/handler/codec/http/HttpMessage;)Z
ifeq 4
aload 4
invokestatic io.netty.handler.codec.http.HttpServerKeepAliveHandler.isSelfDefinedMessageLength:(Lio/netty/handler/codec/http/HttpResponse;)Z
ifne 6
4: StackMap locals: io.netty.handler.codec.http.HttpResponse
StackMap stack:
aload 0
iconst_0
putfield io.netty.handler.codec.http.HttpServerKeepAliveHandler.pendingResponses:I
5: aload 0
iconst_0
putfield io.netty.handler.codec.http.HttpServerKeepAliveHandler.persistentConnection:Z
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.handler.codec.http.HttpServerKeepAliveHandler.shouldKeepAlive:()Z
ifne 8
7: aload 4
iconst_0
invokestatic io.netty.handler.codec.http.HttpUtil.setKeepAlive:(Lio/netty/handler/codec/http/HttpMessage;Z)V
end local 4 8: StackMap locals:
StackMap stack:
aload 2
instanceof io.netty.handler.codec.http.LastHttpContent
ifeq 10
aload 0
invokevirtual io.netty.handler.codec.http.HttpServerKeepAliveHandler.shouldKeepAlive:()Z
ifne 10
9: aload 3
invokeinterface io.netty.channel.ChannelPromise.unvoid:()Lio/netty/channel/ChannelPromise;
getstatic io.netty.channel.ChannelFutureListener.CLOSE:Lio/netty/channel/ChannelFutureListener;
invokeinterface io.netty.channel.ChannelPromise.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelPromise;
astore 3
10: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
invokespecial io.netty.channel.ChannelDuplexHandler.write:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)V
11: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/netty/handler/codec/http/HttpServerKeepAliveHandler;
0 12 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 12 2 msg Ljava/lang/Object;
0 12 3 promise Lio/netty/channel/ChannelPromise;
2 8 4 response Lio/netty/handler/codec/http/HttpResponse;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
msg
promise
private void trackResponse(io.netty.handler.codec.http.HttpResponse);
descriptor: (Lio/netty/handler/codec/http/HttpResponse;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic io.netty.handler.codec.http.HttpServerKeepAliveHandler.isInformational:(Lio/netty/handler/codec/http/HttpResponse;)Z
ifne 2
1: aload 0
dup
getfield io.netty.handler.codec.http.HttpServerKeepAliveHandler.pendingResponses:I
iconst_1
isub
putfield io.netty.handler.codec.http.HttpServerKeepAliveHandler.pendingResponses:I
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/handler/codec/http/HttpServerKeepAliveHandler;
0 3 1 response Lio/netty/handler/codec/http/HttpResponse;
MethodParameters:
Name Flags
response
private boolean shouldKeepAlive();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.handler.codec.http.HttpServerKeepAliveHandler.pendingResponses:I
ifne 1
aload 0
getfield io.netty.handler.codec.http.HttpServerKeepAliveHandler.persistentConnection:Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/handler/codec/http/HttpServerKeepAliveHandler;
private static boolean isSelfDefinedMessageLength(io.netty.handler.codec.http.HttpResponse);
descriptor: (Lio/netty/handler/codec/http/HttpResponse;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokestatic io.netty.handler.codec.http.HttpUtil.isContentLengthSet:(Lio/netty/handler/codec/http/HttpMessage;)Z
ifne 3
aload 0
invokestatic io.netty.handler.codec.http.HttpUtil.isTransferEncodingChunked:(Lio/netty/handler/codec/http/HttpMessage;)Z
ifne 3
aload 0
invokestatic io.netty.handler.codec.http.HttpServerKeepAliveHandler.isMultipart:(Lio/netty/handler/codec/http/HttpResponse;)Z
ifne 3
1: aload 0
invokestatic io.netty.handler.codec.http.HttpServerKeepAliveHandler.isInformational:(Lio/netty/handler/codec/http/HttpResponse;)Z
ifne 3
aload 0
invokeinterface io.netty.handler.codec.http.HttpResponse.status:()Lio/netty/handler/codec/http/HttpResponseStatus;
invokevirtual io.netty.handler.codec.http.HttpResponseStatus.code:()I
getstatic io.netty.handler.codec.http.HttpResponseStatus.NO_CONTENT:Lio/netty/handler/codec/http/HttpResponseStatus;
invokevirtual io.netty.handler.codec.http.HttpResponseStatus.code:()I
if_icmpeq 3
2: iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 response Lio/netty/handler/codec/http/HttpResponse;
MethodParameters:
Name Flags
response
private static boolean isInformational(io.netty.handler.codec.http.HttpResponse);
descriptor: (Lio/netty/handler/codec/http/HttpResponse;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface io.netty.handler.codec.http.HttpResponse.status:()Lio/netty/handler/codec/http/HttpResponseStatus;
invokevirtual io.netty.handler.codec.http.HttpResponseStatus.codeClass:()Lio/netty/handler/codec/http/HttpStatusClass;
getstatic io.netty.handler.codec.http.HttpStatusClass.INFORMATIONAL:Lio/netty/handler/codec/http/HttpStatusClass;
if_acmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 response Lio/netty/handler/codec/http/HttpResponse;
MethodParameters:
Name Flags
response
private static boolean isMultipart(io.netty.handler.codec.http.HttpResponse);
descriptor: (Lio/netty/handler/codec/http/HttpResponse;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=2, args_size=1
start local 0 0: aload 0
invokeinterface io.netty.handler.codec.http.HttpResponse.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.CONTENT_TYPE:Lio/netty/util/AsciiString;
invokevirtual io.netty.handler.codec.http.HttpHeaders.get:(Ljava/lang/CharSequence;)Ljava/lang/String;
astore 1
start local 1 1: aload 1
ifnull 4
2: aload 1
iconst_1
iconst_0
ldc "multipart"
iconst_0
ldc "multipart"
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.regionMatches:(ZILjava/lang/String;II)Z
ifeq 4
3: iconst_1
ireturn
StackMap locals: java.lang.String
StackMap stack:
4: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 response Lio/netty/handler/codec/http/HttpResponse;
1 5 1 contentType Ljava/lang/String;
MethodParameters:
Name Flags
response
}
SourceFile: "HttpServerKeepAliveHandler.java"