public class io.undertow.server.protocol.http2.Http2UpgradeHandler implements io.undertow.server.HttpHandler
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.undertow.server.protocol.http2.Http2UpgradeHandler
super_class: java.lang.Object
{
private final io.undertow.server.HttpHandler next;
descriptor: Lio/undertow/server/HttpHandler;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Set<java.lang.String> upgradeStrings;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
public void <init>(io.undertow.server.HttpHandler);
descriptor: (Lio/undertow/server/HttpHandler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield io.undertow.server.protocol.http2.Http2UpgradeHandler.next:Lio/undertow/server/HttpHandler;
2: aload 0
ldc "h2c"
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
putfield io.undertow.server.protocol.http2.Http2UpgradeHandler.upgradeStrings:Ljava/util/Set;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/undertow/server/protocol/http2/Http2UpgradeHandler;
0 4 1 next Lio/undertow/server/HttpHandler;
MethodParameters:
Name Flags
next
public void <init>(io.undertow.server.HttpHandler, java.lang.String[]);
descriptor: (Lio/undertow/server/HttpHandler;[Ljava/lang/String;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield io.undertow.server.protocol.http2.Http2UpgradeHandler.next:Lio/undertow/server/HttpHandler;
2: aload 0
new java.util.HashSet
dup
aload 2
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
putfield io.undertow.server.protocol.http2.Http2UpgradeHandler.upgradeStrings:Ljava/util/Set;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/undertow/server/protocol/http2/Http2UpgradeHandler;
0 4 1 next Lio/undertow/server/HttpHandler;
0 4 2 upgradeStrings [Ljava/lang/String;
MethodParameters:
Name Flags
next
upgradeStrings
public void handleRequest(io.undertow.server.HttpServerExchange);
descriptor: (Lio/undertow/server/HttpServerExchange;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual io.undertow.server.HttpServerExchange.getRequestHeaders:()Lio/undertow/util/HeaderMap;
getstatic io.undertow.util.Headers.UPGRADE:Lio/undertow/util/HttpString;
invokevirtual io.undertow.util.HeaderMap.getFirst:(Lio/undertow/util/HttpString;)Ljava/lang/String;
astore 2
start local 2 1: aload 1
invokevirtual io.undertow.server.HttpServerExchange.getRequestHeaders:()Lio/undertow/util/HeaderMap;
ldc "HTTP2-Settings"
invokevirtual io.undertow.util.HeaderMap.getFirst:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 2: aload 3
ifnull 7
aload 2
ifnull 7
3: aload 0
getfield io.undertow.server.protocol.http2.Http2UpgradeHandler.upgradeStrings:Ljava/util/Set;
aload 2
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 7
4: aload 1
invokestatic io.undertow.server.protocol.http.HttpContinue.requiresContinueResponse:(Lio/undertow/server/HttpServerExchange;)Z
pop
5: aload 0
aload 1
aload 2
aload 3
invokevirtual io.undertow.server.protocol.http2.Http2UpgradeHandler.handleUpgradeBody:(Lio/undertow/server/HttpServerExchange;Ljava/lang/String;Ljava/lang/String;)V
6: return
7: StackMap locals: java.lang.String java.lang.String
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http2.Http2UpgradeHandler.next:Lio/undertow/server/HttpHandler;
aload 1
invokeinterface io.undertow.server.HttpHandler.handleRequest:(Lio/undertow/server/HttpServerExchange;)V
8: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/undertow/server/protocol/http2/Http2UpgradeHandler;
0 9 1 exchange Lio/undertow/server/HttpServerExchange;
1 9 2 upgrade Ljava/lang/String;
2 9 3 settings Ljava/lang/String;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
exchange
private void handleUpgradeBody(io.undertow.server.HttpServerExchange, java.lang.String, java.lang.String);
descriptor: (Lio/undertow/server/HttpServerExchange;Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual io.undertow.server.HttpServerExchange.isRequestComplete:()Z
ifeq 3
1: aload 0
aload 1
aload 2
aload 3
aconst_null
invokevirtual io.undertow.server.protocol.http2.Http2UpgradeHandler.handleHttp2Upgrade:(Lio/undertow/server/HttpServerExchange;Ljava/lang/String;Ljava/lang/String;[B)V
2: goto 12
3: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
invokevirtual io.undertow.server.ServerConnection.getUndertowOptions:()Lorg/xnio/OptionMap;
getstatic io.undertow.UndertowOptions.MAX_BUFFERED_REQUEST_SIZE:Lorg/xnio/Option;
sipush 16384
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
istore 4
start local 4 4: aload 1
invokevirtual io.undertow.server.HttpServerExchange.getRequestContentLength:()J
iload 4
i2l
lcmp
ifle 7
5: aload 0
getfield io.undertow.server.protocol.http2.Http2UpgradeHandler.next:Lio/undertow/server/HttpHandler;
aload 1
invokeinterface io.undertow.server.HttpHandler.handleRequest:(Lio/undertow/server/HttpServerExchange;)V
6: goto 12
StackMap locals: int
StackMap stack:
7: aload 1
invokevirtual io.undertow.server.HttpServerExchange.getRequestContentLength:()J
lconst_0
lcmp
ifle 10
aload 1
invokevirtual io.undertow.server.HttpServerExchange.getRequestContentLength:()J
iload 4
i2l
lcmp
ifge 10
8: aload 1
invokevirtual io.undertow.server.HttpServerExchange.getRequestReceiver:()Lio/undertow/io/Receiver;
new io.undertow.server.protocol.http2.Http2UpgradeHandler$1
dup
aload 0
aload 2
aload 3
invokespecial io.undertow.server.protocol.http2.Http2UpgradeHandler$1.<init>:(Lio/undertow/server/protocol/http2/Http2UpgradeHandler;Ljava/lang/String;Ljava/lang/String;)V
invokeinterface io.undertow.io.Receiver.receiveFullBytes:(Lio/undertow/io/Receiver$FullBytesCallback;)V
9: goto 12
10: StackMap locals:
StackMap stack:
new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 5
start local 5 11: aload 1
invokevirtual io.undertow.server.HttpServerExchange.getRequestReceiver:()Lio/undertow/io/Receiver;
new io.undertow.server.protocol.http2.Http2UpgradeHandler$2
dup
aload 0
aload 5
aload 2
aload 3
iload 4
invokespecial io.undertow.server.protocol.http2.Http2UpgradeHandler$2.<init>:(Lio/undertow/server/protocol/http2/Http2UpgradeHandler;Ljava/io/ByteArrayOutputStream;Ljava/lang/String;Ljava/lang/String;I)V
invokeinterface io.undertow.io.Receiver.receivePartialBytes:(Lio/undertow/io/Receiver$PartialBytesCallback;)V
end local 5 end local 4 12: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lio/undertow/server/protocol/http2/Http2UpgradeHandler;
0 13 1 exchange Lio/undertow/server/HttpServerExchange;
0 13 2 upgrade Ljava/lang/String;
0 13 3 settings Ljava/lang/String;
4 12 4 maxBufferedSize I
11 12 5 outputStream Ljava/io/ByteArrayOutputStream;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
exchange
upgrade
settings
private void handleHttp2Upgrade(io.undertow.server.HttpServerExchange, java.lang.String, java.lang.String, byte[]);
descriptor: (Lio/undertow/server/HttpServerExchange;Ljava/lang/String;Ljava/lang/String;[B)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 3
invokestatic io.undertow.util.FlexBase64.decodeURL:(Ljava/lang/String;)Ljava/nio/ByteBuffer;
astore 5
start local 5 1: aload 1
invokevirtual io.undertow.server.HttpServerExchange.getResponseHeaders:()Lio/undertow/util/HeaderMap;
getstatic io.undertow.util.Headers.UPGRADE:Lio/undertow/util/HttpString;
aload 2
invokevirtual io.undertow.util.HeaderMap.put:(Lio/undertow/util/HttpString;Ljava/lang/String;)Lio/undertow/util/HeaderMap;
pop
2: aload 1
new io.undertow.server.protocol.http2.Http2UpgradeHandler$3
dup
aload 0
aload 2
aload 5
aload 4
invokespecial io.undertow.server.protocol.http2.Http2UpgradeHandler$3.<init>:(Lio/undertow/server/protocol/http2/Http2UpgradeHandler;Ljava/lang/String;Ljava/nio/ByteBuffer;[B)V
invokevirtual io.undertow.server.HttpServerExchange.upgradeChannel:(Lio/undertow/server/HttpUpgradeListener;)Lio/undertow/server/HttpServerExchange;
pop
3: 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 4 0 this Lio/undertow/server/protocol/http2/Http2UpgradeHandler;
0 4 1 exchange Lio/undertow/server/HttpServerExchange;
0 4 2 upgrade Ljava/lang/String;
0 4 3 settings Ljava/lang/String;
0 4 4 data [B
1 4 5 settingsFrame Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
exchange
upgrade final
settings
data final
}
SourceFile: "Http2UpgradeHandler.java"
NestMembers:
io.undertow.server.protocol.http2.Http2UpgradeHandler$1 io.undertow.server.protocol.http2.Http2UpgradeHandler$2 io.undertow.server.protocol.http2.Http2UpgradeHandler$3 io.undertow.server.protocol.http2.Http2UpgradeHandler$3$1 io.undertow.server.protocol.http2.Http2UpgradeHandler$4
InnerClasses:
public abstract FullBytesCallback = io.undertow.io.Receiver$FullBytesCallback of io.undertow.io.Receiver
public abstract PartialBytesCallback = io.undertow.io.Receiver$PartialBytesCallback of io.undertow.io.Receiver
io.undertow.server.protocol.http2.Http2UpgradeHandler$1
io.undertow.server.protocol.http2.Http2UpgradeHandler$2
io.undertow.server.protocol.http2.Http2UpgradeHandler$3