public class io.netty.handler.codec.http2.HttpToHttp2ConnectionHandler extends io.netty.handler.codec.http2.Http2ConnectionHandler
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.netty.handler.codec.http2.HttpToHttp2ConnectionHandler
super_class: io.netty.handler.codec.http2.Http2ConnectionHandler
{
private final boolean validateHeaders;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int currentStreamId;
descriptor: I
flags: (0x0002) ACC_PRIVATE
protected void <init>(io.netty.handler.codec.http2.Http2ConnectionDecoder, io.netty.handler.codec.http2.Http2ConnectionEncoder, io.netty.handler.codec.http2.Http2Settings, boolean);
descriptor: (Lio/netty/handler/codec/http2/Http2ConnectionDecoder;Lio/netty/handler/codec/http2/Http2ConnectionEncoder;Lio/netty/handler/codec/http2/Http2Settings;Z)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
aload 3
invokespecial io.netty.handler.codec.http2.Http2ConnectionHandler.<init>:(Lio/netty/handler/codec/http2/Http2ConnectionDecoder;Lio/netty/handler/codec/http2/Http2ConnectionEncoder;Lio/netty/handler/codec/http2/Http2Settings;)V
1: aload 0
iload 4
putfield io.netty.handler.codec.http2.HttpToHttp2ConnectionHandler.validateHeaders:Z
2: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/handler/codec/http2/HttpToHttp2ConnectionHandler;
0 3 1 decoder Lio/netty/handler/codec/http2/Http2ConnectionDecoder;
0 3 2 encoder Lio/netty/handler/codec/http2/Http2ConnectionEncoder;
0 3 3 initialSettings Lio/netty/handler/codec/http2/Http2Settings;
0 3 4 validateHeaders Z
MethodParameters:
Name Flags
decoder
encoder
initialSettings
validateHeaders
private int getStreamId(io.netty.handler.codec.http.HttpHeaders);
descriptor: (Lio/netty/handler/codec/http/HttpHeaders;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getstatic io.netty.handler.codec.http2.HttpConversionUtil$ExtensionHeaderNames.STREAM_ID:Lio/netty/handler/codec/http2/HttpConversionUtil$ExtensionHeaderNames;
invokevirtual io.netty.handler.codec.http2.HttpConversionUtil$ExtensionHeaderNames.text:()Lio/netty/util/AsciiString;
1: aload 0
invokevirtual io.netty.handler.codec.http2.HttpToHttp2ConnectionHandler.connection:()Lio/netty/handler/codec/http2/Http2Connection;
invokeinterface io.netty.handler.codec.http2.Http2Connection.local:()Lio/netty/handler/codec/http2/Http2Connection$Endpoint;
invokeinterface io.netty.handler.codec.http2.Http2Connection$Endpoint.incrementAndGetNextStreamId:()I
2: invokevirtual io.netty.handler.codec.http.HttpHeaders.getInt:(Ljava/lang/CharSequence;I)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/handler/codec/http2/HttpToHttp2ConnectionHandler;
0 3 1 httpHeaders Lio/netty/handler/codec/http/HttpHeaders;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
httpHeaders
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=7, locals=13, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
instanceof io.netty.handler.codec.http.HttpMessage
ifne 3
aload 2
instanceof io.netty.handler.codec.http.HttpContent
ifne 3
1: aload 1
aload 2
aload 3
invokeinterface io.netty.channel.ChannelHandlerContext.write:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
pop
2: return
3: StackMap locals:
StackMap stack:
iconst_1
istore 4
start local 4 4: new io.netty.handler.codec.http2.Http2CodecUtil$SimpleChannelPromiseAggregator
dup
aload 3
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
invokespecial io.netty.handler.codec.http2.Http2CodecUtil$SimpleChannelPromiseAggregator.<init>:(Lio/netty/channel/ChannelPromise;Lio/netty/channel/Channel;Lio/netty/util/concurrent/EventExecutor;)V
5: astore 5
start local 5 6: aload 0
invokevirtual io.netty.handler.codec.http2.HttpToHttp2ConnectionHandler.encoder:()Lio/netty/handler/codec/http2/Http2ConnectionEncoder;
astore 6
start local 6 7: iconst_0
istore 7
start local 7 8: aload 2
instanceof io.netty.handler.codec.http.HttpMessage
ifeq 18
9: aload 2
checkcast io.netty.handler.codec.http.HttpMessage
astore 8
start local 8 10: aload 0
aload 0
aload 8
invokeinterface io.netty.handler.codec.http.HttpMessage.headers:()Lio/netty/handler/codec/http/HttpHeaders;
invokevirtual io.netty.handler.codec.http2.HttpToHttp2ConnectionHandler.getStreamId:(Lio/netty/handler/codec/http/HttpHeaders;)I
putfield io.netty.handler.codec.http2.HttpToHttp2ConnectionHandler.currentStreamId:I
11: aload 8
aload 0
getfield io.netty.handler.codec.http2.HttpToHttp2ConnectionHandler.validateHeaders:Z
invokestatic io.netty.handler.codec.http2.HttpConversionUtil.toHttp2Headers:(Lio/netty/handler/codec/http/HttpMessage;Z)Lio/netty/handler/codec/http2/Http2Headers;
astore 9
start local 9 12: aload 2
instanceof io.netty.handler.codec.http.FullHttpMessage
ifeq 13
aload 2
checkcast io.netty.handler.codec.http.FullHttpMessage
invokeinterface io.netty.handler.codec.http.FullHttpMessage.content:()Lio/netty/buffer/ByteBuf;
invokevirtual io.netty.buffer.ByteBuf.isReadable:()Z
ifne 13
iconst_1
goto 14
StackMap locals: io.netty.handler.codec.http2.HttpToHttp2ConnectionHandler io.netty.channel.ChannelHandlerContext java.lang.Object io.netty.channel.ChannelPromise int io.netty.handler.codec.http2.Http2CodecUtil$SimpleChannelPromiseAggregator io.netty.handler.codec.http2.Http2ConnectionEncoder int io.netty.handler.codec.http.HttpMessage io.netty.handler.codec.http2.Http2Headers
StackMap stack:
13: iconst_0
StackMap locals:
StackMap stack: int
14: istore 7
15: aload 1
aload 6
aload 0
getfield io.netty.handler.codec.http2.HttpToHttp2ConnectionHandler.currentStreamId:I
aload 8
invokeinterface io.netty.handler.codec.http.HttpMessage.headers:()Lio/netty/handler/codec/http/HttpHeaders;
aload 9
16: iload 7
aload 5
17: invokestatic io.netty.handler.codec.http2.HttpToHttp2ConnectionHandler.writeHeaders:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http2/Http2ConnectionEncoder;ILio/netty/handler/codec/http/HttpHeaders;Lio/netty/handler/codec/http2/Http2Headers;ZLio/netty/handler/codec/http2/Http2CodecUtil$SimpleChannelPromiseAggregator;)V
end local 9 end local 8 18: StackMap locals:
StackMap stack:
iload 7
ifne 47
aload 2
instanceof io.netty.handler.codec.http.HttpContent
ifeq 47
19: iconst_0
istore 8
start local 8 20: getstatic io.netty.handler.codec.http.EmptyHttpHeaders.INSTANCE:Lio/netty/handler/codec/http/EmptyHttpHeaders;
astore 9
start local 9 21: getstatic io.netty.handler.codec.http2.EmptyHttp2Headers.INSTANCE:Lio/netty/handler/codec/http2/EmptyHttp2Headers;
astore 10
start local 10 22: aload 2
instanceof io.netty.handler.codec.http.LastHttpContent
ifeq 27
23: iconst_1
istore 8
24: aload 2
checkcast io.netty.handler.codec.http.LastHttpContent
astore 11
start local 11 25: aload 11
invokeinterface io.netty.handler.codec.http.LastHttpContent.trailingHeaders:()Lio/netty/handler/codec/http/HttpHeaders;
astore 9
26: aload 9
aload 0
getfield io.netty.handler.codec.http2.HttpToHttp2ConnectionHandler.validateHeaders:Z
invokestatic io.netty.handler.codec.http2.HttpConversionUtil.toHttp2Headers:(Lio/netty/handler/codec/http/HttpHeaders;Z)Lio/netty/handler/codec/http2/Http2Headers;
astore 10
end local 11 27: StackMap locals: int io.netty.handler.codec.http.HttpHeaders io.netty.handler.codec.http2.Http2Headers
StackMap stack:
aload 2
checkcast io.netty.handler.codec.http.HttpContent
invokeinterface io.netty.handler.codec.http.HttpContent.content:()Lio/netty/buffer/ByteBuf;
astore 11
start local 11 28: iload 8
ifeq 29
aload 9
invokevirtual io.netty.handler.codec.http.HttpHeaders.isEmpty:()Z
ifeq 29
iconst_1
goto 30
StackMap locals: io.netty.buffer.ByteBuf
StackMap stack:
29: iconst_0
StackMap locals:
StackMap stack: int
30: istore 7
31: iconst_0
istore 4
32: aload 6
aload 1
aload 0
getfield io.netty.handler.codec.http2.HttpToHttp2ConnectionHandler.currentStreamId:I
aload 11
iconst_0
iload 7
aload 5
invokevirtual io.netty.handler.codec.http2.Http2CodecUtil$SimpleChannelPromiseAggregator.newPromise:()Lio/netty/channel/ChannelPromise;
invokeinterface io.netty.handler.codec.http2.Http2ConnectionEncoder.writeData:(Lio/netty/channel/ChannelHandlerContext;ILio/netty/buffer/ByteBuf;IZLio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
pop
33: aload 9
invokevirtual io.netty.handler.codec.http.HttpHeaders.isEmpty:()Z
ifne 47
34: aload 1
aload 6
aload 0
getfield io.netty.handler.codec.http2.HttpToHttp2ConnectionHandler.currentStreamId:I
aload 9
aload 10
iconst_1
aload 5
invokestatic io.netty.handler.codec.http2.HttpToHttp2ConnectionHandler.writeHeaders:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http2/Http2ConnectionEncoder;ILio/netty/handler/codec/http/HttpHeaders;Lio/netty/handler/codec/http2/Http2Headers;ZLio/netty/handler/codec/http2/Http2CodecUtil$SimpleChannelPromiseAggregator;)V
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 35: goto 47
StackMap locals: io.netty.handler.codec.http2.HttpToHttp2ConnectionHandler io.netty.channel.ChannelHandlerContext java.lang.Object io.netty.channel.ChannelPromise int io.netty.handler.codec.http2.Http2CodecUtil$SimpleChannelPromiseAggregator
StackMap stack: java.lang.Throwable
36: astore 6
start local 6 37: aload 0
aload 1
iconst_1
aload 6
invokevirtual io.netty.handler.codec.http2.HttpToHttp2ConnectionHandler.onError:(Lio/netty/channel/ChannelHandlerContext;ZLjava/lang/Throwable;)V
38: aload 5
aload 6
invokevirtual io.netty.handler.codec.http2.Http2CodecUtil$SimpleChannelPromiseAggregator.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
pop
end local 6 39: iload 4
ifeq 41
40: aload 2
invokestatic io.netty.util.ReferenceCountUtil.release:(Ljava/lang/Object;)Z
pop
41: StackMap locals:
StackMap stack:
aload 5
invokevirtual io.netty.handler.codec.http2.Http2CodecUtil$SimpleChannelPromiseAggregator.doneAllocatingPromises:()Lio/netty/channel/ChannelPromise;
pop
goto 50
42: StackMap locals:
StackMap stack: java.lang.Throwable
astore 12
43: iload 4
ifeq 45
44: aload 2
invokestatic io.netty.util.ReferenceCountUtil.release:(Ljava/lang/Object;)Z
pop
45: StackMap locals: io.netty.handler.codec.http2.HttpToHttp2ConnectionHandler io.netty.channel.ChannelHandlerContext java.lang.Object io.netty.channel.ChannelPromise int io.netty.handler.codec.http2.Http2CodecUtil$SimpleChannelPromiseAggregator top top top top top top java.lang.Throwable
StackMap stack:
aload 5
invokevirtual io.netty.handler.codec.http2.Http2CodecUtil$SimpleChannelPromiseAggregator.doneAllocatingPromises:()Lio/netty/channel/ChannelPromise;
pop
46: aload 12
athrow
47: StackMap locals: io.netty.handler.codec.http2.HttpToHttp2ConnectionHandler io.netty.channel.ChannelHandlerContext java.lang.Object io.netty.channel.ChannelPromise int io.netty.handler.codec.http2.Http2CodecUtil$SimpleChannelPromiseAggregator
StackMap stack:
iload 4
ifeq 49
48: aload 2
invokestatic io.netty.util.ReferenceCountUtil.release:(Ljava/lang/Object;)Z
pop
49: StackMap locals:
StackMap stack:
aload 5
invokevirtual io.netty.handler.codec.http2.Http2CodecUtil$SimpleChannelPromiseAggregator.doneAllocatingPromises:()Lio/netty/channel/ChannelPromise;
pop
50: StackMap locals:
StackMap stack:
return
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 51 0 this Lio/netty/handler/codec/http2/HttpToHttp2ConnectionHandler;
0 51 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 51 2 msg Ljava/lang/Object;
0 51 3 promise Lio/netty/channel/ChannelPromise;
4 51 4 release Z
6 51 5 promiseAggregator Lio/netty/handler/codec/http2/Http2CodecUtil$SimpleChannelPromiseAggregator;
7 35 6 encoder Lio/netty/handler/codec/http2/Http2ConnectionEncoder;
8 35 7 endStream Z
10 18 8 httpMsg Lio/netty/handler/codec/http/HttpMessage;
12 18 9 http2Headers Lio/netty/handler/codec/http2/Http2Headers;
20 35 8 isLastContent Z
21 35 9 trailers Lio/netty/handler/codec/http/HttpHeaders;
22 35 10 http2Trailers Lio/netty/handler/codec/http2/Http2Headers;
25 27 11 lastContent Lio/netty/handler/codec/http/LastHttpContent;
28 35 11 content Lio/netty/buffer/ByteBuf;
37 39 6 t Ljava/lang/Throwable;
Exception table:
from to target type
6 35 36 Class java.lang.Throwable
6 39 42 any
MethodParameters:
Name Flags
ctx
msg
promise
private static void writeHeaders(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.http2.Http2ConnectionEncoder, int, io.netty.handler.codec.http.HttpHeaders, io.netty.handler.codec.http2.Http2Headers, boolean, io.netty.handler.codec.http2.Http2CodecUtil$SimpleChannelPromiseAggregator);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http2/Http2ConnectionEncoder;ILio/netty/handler/codec/http/HttpHeaders;Lio/netty/handler/codec/http2/Http2Headers;ZLio/netty/handler/codec/http2/Http2CodecUtil$SimpleChannelPromiseAggregator;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=10, locals=9, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 3
1: getstatic io.netty.handler.codec.http2.HttpConversionUtil$ExtensionHeaderNames.STREAM_DEPENDENCY_ID:Lio/netty/handler/codec/http2/HttpConversionUtil$ExtensionHeaderNames;
invokevirtual io.netty.handler.codec.http2.HttpConversionUtil$ExtensionHeaderNames.text:()Lio/netty/util/AsciiString;
iconst_0
2: invokevirtual io.netty.handler.codec.http.HttpHeaders.getInt:(Ljava/lang/CharSequence;I)I
istore 7
start local 7 3: aload 3
4: getstatic io.netty.handler.codec.http2.HttpConversionUtil$ExtensionHeaderNames.STREAM_WEIGHT:Lio/netty/handler/codec/http2/HttpConversionUtil$ExtensionHeaderNames;
invokevirtual io.netty.handler.codec.http2.HttpConversionUtil$ExtensionHeaderNames.text:()Lio/netty/util/AsciiString;
bipush 16
5: invokevirtual io.netty.handler.codec.http.HttpHeaders.getShort:(Ljava/lang/CharSequence;S)S
istore 8
start local 8 6: aload 1
aload 0
iload 2
aload 4
iload 7
iload 8
iconst_0
7: iconst_0
iload 5
aload 6
invokevirtual io.netty.handler.codec.http2.Http2CodecUtil$SimpleChannelPromiseAggregator.newPromise:()Lio/netty/channel/ChannelPromise;
8: invokeinterface io.netty.handler.codec.http2.Http2ConnectionEncoder.writeHeaders:(Lio/netty/channel/ChannelHandlerContext;ILio/netty/handler/codec/http2/Http2Headers;ISZIZLio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
pop
9: return
end local 8 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 10 0 ctx Lio/netty/channel/ChannelHandlerContext;
0 10 1 encoder Lio/netty/handler/codec/http2/Http2ConnectionEncoder;
0 10 2 streamId I
0 10 3 headers Lio/netty/handler/codec/http/HttpHeaders;
0 10 4 http2Headers Lio/netty/handler/codec/http2/Http2Headers;
0 10 5 endStream Z
0 10 6 promiseAggregator Lio/netty/handler/codec/http2/Http2CodecUtil$SimpleChannelPromiseAggregator;
3 10 7 dependencyId I
6 10 8 weight S
MethodParameters:
Name Flags
ctx
encoder
streamId
headers
http2Headers
endStream
promiseAggregator
}
SourceFile: "HttpToHttp2ConnectionHandler.java"
InnerClasses:
final SimpleChannelPromiseAggregator = io.netty.handler.codec.http2.Http2CodecUtil$SimpleChannelPromiseAggregator of io.netty.handler.codec.http2.Http2CodecUtil
public abstract Endpoint = io.netty.handler.codec.http2.Http2Connection$Endpoint of io.netty.handler.codec.http2.Http2Connection
public final ExtensionHeaderNames = io.netty.handler.codec.http2.HttpConversionUtil$ExtensionHeaderNames of io.netty.handler.codec.http2.HttpConversionUtil