final class io.undertow.server.protocol.http.HttpReadListener implements org.xnio.ChannelListener<org.xnio.conduits.ConduitStreamSourceChannel>, java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.undertow.server.protocol.http.HttpReadListener
super_class: java.lang.Object
{
private static final io.undertow.util.HttpString PRI;
descriptor: Lio/undertow/util/HttpString;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] PRI_EXPECTED;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String BAD_REQUEST;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "HTTP/1.1 400 Bad Request\r\nContent-Length: 0\r\nConnection: close\r\n\r\n"
private final io.undertow.server.protocol.http.HttpServerConnection connection;
descriptor: Lio/undertow/server/protocol/http/HttpServerConnection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.undertow.server.protocol.http.ParseState state;
descriptor: Lio/undertow/server/protocol/http/ParseState;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.undertow.server.protocol.http.HttpRequestParser parser;
descriptor: Lio/undertow/server/protocol/http/HttpRequestParser;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private io.undertow.server.HttpServerExchange httpServerExchange;
descriptor: Lio/undertow/server/HttpServerExchange;
flags: (0x0002) ACC_PRIVATE
private int read;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final int maxRequestSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long maxEntitySize;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean recordRequestStartTime;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean allowUnknownProtocols;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean ;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile int requestState;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<io.undertow.server.protocol.http.HttpReadListener> requestStateUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lio/undertow/server/protocol/http/HttpReadListener;>;
private final io.undertow.server.ConnectorStatisticsImpl connectorStatistics;
descriptor: Lio/undertow/server/ConnectorStatisticsImpl;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private io.undertow.server.protocol.ParseTimeoutUpdater parseTimeoutUpdater;
descriptor: Lio/undertow/server/protocol/ParseTimeoutUpdater;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: new io.undertow.util.HttpString
dup
ldc "PRI"
invokespecial io.undertow.util.HttpString.<init>:(Ljava/lang/String;)V
putstatic io.undertow.server.protocol.http.HttpReadListener.PRI:Lio/undertow/util/HttpString;
1: bipush 6
newarray 8
dup
iconst_0
bipush 83
bastore
dup
iconst_1
bipush 77
bastore
dup
iconst_2
bipush 13
bastore
dup
iconst_3
bipush 10
bastore
dup
iconst_4
bipush 13
bastore
dup
iconst_5
bipush 10
bastore
putstatic io.undertow.server.protocol.http.HttpReadListener.PRI_EXPECTED:[B
2: ldc Lio/undertow/server/protocol/http/HttpReadListener;
ldc "requestState"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic io.undertow.server.protocol.http.HttpReadListener.requestStateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(io.undertow.server.protocol.http.HttpServerConnection, io.undertow.server.protocol.http.HttpRequestParser, io.undertow.server.ConnectorStatisticsImpl);
descriptor: (Lio/undertow/server/protocol/http/HttpServerConnection;Lio/undertow/server/protocol/http/HttpRequestParser;Lio/undertow/server/ConnectorStatisticsImpl;)V
flags: (0x0000)
Code:
stack=8, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield io.undertow.server.protocol.http.HttpReadListener.read:I
2: aload 0
aload 1
putfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
3: aload 0
aload 2
putfield io.undertow.server.protocol.http.HttpReadListener.parser:Lio/undertow/server/protocol/http/HttpRequestParser;
4: aload 0
aload 3
putfield io.undertow.server.protocol.http.HttpReadListener.connectorStatistics:Lio/undertow/server/ConnectorStatisticsImpl;
5: aload 0
aload 1
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getUndertowOptions:()Lorg/xnio/OptionMap;
getstatic io.undertow.UndertowOptions.MAX_HEADER_SIZE:Lorg/xnio/Option;
ldc 1048576
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
putfield io.undertow.server.protocol.http.HttpReadListener.maxRequestSize:I
6: aload 0
aload 1
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getUndertowOptions:()Lorg/xnio/OptionMap;
getstatic io.undertow.UndertowOptions.MAX_ENTITY_SIZE:Lorg/xnio/Option;
ldc -1
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;J)J
putfield io.undertow.server.protocol.http.HttpReadListener.maxEntitySize:J
7: aload 0
aload 1
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getUndertowOptions:()Lorg/xnio/OptionMap;
getstatic io.undertow.UndertowOptions.RECORD_REQUEST_START_TIME:Lorg/xnio/Option;
iconst_0
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;Z)Z
putfield io.undertow.server.protocol.http.HttpReadListener.recordRequestStartTime:Z
8: aload 0
aload 1
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getUndertowOptions:()Lorg/xnio/OptionMap;
getstatic io.undertow.UndertowOptions.REQUIRE_HOST_HTTP11:Lorg/xnio/Option;
iconst_1
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;Z)Z
putfield io.undertow.server.protocol.http.HttpReadListener.requireHostHeader:Z
9: aload 0
aload 1
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getUndertowOptions:()Lorg/xnio/OptionMap;
getstatic io.undertow.UndertowOptions.ALLOW_UNKNOWN_PROTOCOLS:Lorg/xnio/Option;
iconst_0
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;Z)Z
putfield io.undertow.server.protocol.http.HttpReadListener.allowUnknownProtocols:Z
10: aload 1
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getUndertowOptions:()Lorg/xnio/OptionMap;
getstatic io.undertow.UndertowOptions.REQUEST_PARSE_TIMEOUT:Lorg/xnio/Option;
iconst_m1
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
istore 4
start local 4 11: aload 1
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getUndertowOptions:()Lorg/xnio/OptionMap;
getstatic io.undertow.UndertowOptions.NO_REQUEST_TIMEOUT:Lorg/xnio/Option;
iconst_m1
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
istore 5
start local 5 12: iload 5
ifge 15
iload 4
ifge 15
13: aload 0
aconst_null
putfield io.undertow.server.protocol.http.HttpReadListener.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
14: goto 17
15: StackMap locals: io.undertow.server.protocol.http.HttpReadListener io.undertow.server.protocol.http.HttpServerConnection io.undertow.server.protocol.http.HttpRequestParser io.undertow.server.ConnectorStatisticsImpl int int
StackMap stack:
aload 0
new io.undertow.server.protocol.ParseTimeoutUpdater
dup
aload 1
iload 4
i2l
iload 5
i2l
invokespecial io.undertow.server.protocol.ParseTimeoutUpdater.<init>:(Lorg/xnio/channels/ConnectedChannel;JJ)V
putfield io.undertow.server.protocol.http.HttpReadListener.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
16: aload 1
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.addCloseListener:(Lio/undertow/server/ServerConnection$CloseListener;)V
17: StackMap locals:
StackMap stack:
aload 0
new io.undertow.server.protocol.http.ParseState
dup
aload 1
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getUndertowOptions:()Lorg/xnio/OptionMap;
getstatic io.undertow.UndertowOptions.HTTP_HEADERS_CACHE_SIZE:Lorg/xnio/Option;
bipush 15
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
invokespecial io.undertow.server.protocol.http.ParseState.<init>:(I)V
putfield io.undertow.server.protocol.http.HttpReadListener.state:Lio/undertow/server/protocol/http/ParseState;
18: 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 19 0 this Lio/undertow/server/protocol/http/HttpReadListener;
0 19 1 connection Lio/undertow/server/protocol/http/HttpServerConnection;
0 19 2 parser Lio/undertow/server/protocol/http/HttpRequestParser;
0 19 3 connectorStatistics Lio/undertow/server/ConnectorStatisticsImpl;
11 19 4 requestParseTimeout I
12 19 5 requestIdleTimeout I
MethodParameters:
Name Flags
connection final
parser final
connectorStatistics
public void newRequest();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.state:Lio/undertow/server/protocol/http/ParseState;
invokevirtual io.undertow.server.protocol.http.ParseState.reset:()V
1: aload 0
iconst_0
putfield io.undertow.server.protocol.http.HttpReadListener.read:I
2: aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
ifnull 4
3: aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
invokevirtual io.undertow.server.protocol.ParseTimeoutUpdater.connectionIdle:()V
4: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
aconst_null
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.setCurrentExchange:(Lio/undertow/server/HttpServerExchange;)V
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/undertow/server/protocol/http/HttpReadListener;
public void handleEvent(org.xnio.conduits.ConduitStreamSourceChannel);
descriptor: (Lorg/xnio/conduits/ConduitStreamSourceChannel;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: goto 9
1: StackMap locals:
StackMap stack:
getstatic io.undertow.server.protocol.http.HttpReadListener.requestStateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_1
iconst_2
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 9
2: aload 1
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.suspendReads:()V
3: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
4: astore 2
5: getstatic io.undertow.server.protocol.http.HttpReadListener.requestStateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
6: aload 2
athrow
7: StackMap locals:
StackMap stack:
getstatic io.undertow.server.protocol.http.HttpReadListener.requestStateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
8: return
9: StackMap locals:
StackMap stack:
getstatic io.undertow.server.protocol.http.HttpReadListener.requestStateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.get:(Ljava/lang/Object;)I
ifne 1
10: aload 0
aload 1
invokevirtual io.undertow.server.protocol.http.HttpReadListener.handleEventWithNoRunningRequest:(Lorg/xnio/conduits/ConduitStreamSourceChannel;)V
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/undertow/server/protocol/http/HttpReadListener;
0 12 1 channel Lorg/xnio/conduits/ConduitStreamSourceChannel;
Exception table:
from to target type
2 4 4 any
MethodParameters:
Name Flags
channel final
public void handleEventWithNoRunningRequest(org.xnio.conduits.ConduitStreamSourceChannel);
descriptor: (Lorg/xnio/conduits/ConduitStreamSourceChannel;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=11, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getExtraBytes:()Lio/undertow/connector/PooledByteBuffer;
astore 2
start local 2 1: aload 2
ifnonnull 2
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getOriginalSourceConduit:()Lorg/xnio/conduits/StreamSourceConduit;
invokeinterface org.xnio.conduits.StreamSourceConduit.isReadShutdown:()Z
ifne 3
StackMap locals: io.undertow.connector.PooledByteBuffer
StackMap stack:
2: aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getOriginalSinkConduit:()Lorg/xnio/conduits/StreamSinkConduit;
invokeinterface org.xnio.conduits.StreamSinkConduit.isWriteShutdown:()Z
ifeq 6
3: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
4: aload 1
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.suspendReads:()V
5: return
6: StackMap locals:
StackMap stack:
aload 2
ifnonnull 7
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getByteBufferPool:()Lio/undertow/connector/ByteBufferPool;
invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
goto 8
StackMap locals:
StackMap stack:
7: aload 2
StackMap locals:
StackMap stack: io.undertow.connector.PooledByteBuffer
8: astore 3
start local 3 9: aload 3
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
astore 4
start local 4 10: iconst_1
istore 5
start local 5 11: iconst_0
istore 7
start local 7 12: StackMap locals: io.undertow.server.protocol.http.HttpReadListener org.xnio.conduits.ConduitStreamSourceChannel io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int top int
StackMap stack:
aload 2
ifnonnull 21
13: aload 4
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
pop
14: aload 1
aload 4
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.read:(Ljava/nio/ByteBuffer;)I
istore 6
start local 6 15: goto 22
end local 6 StackMap locals:
StackMap stack: java.io.IOException
16: astore 8
start local 8 17: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
ldc "Error reading request"
aload 8
invokeinterface io.undertow.UndertowLogger.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
18: aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
19: iload 5
ifeq 20
aload 3
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
20: StackMap locals: java.io.IOException
StackMap stack:
return
end local 8 21: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 6
start local 6 22: StackMap locals: io.undertow.server.protocol.http.HttpReadListener org.xnio.conduits.ConduitStreamSourceChannel io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int int int
StackMap stack:
iload 6
ifgt 28
23: iload 7
ifeq 25
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
ifnull 25
24: aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
invokevirtual io.undertow.server.protocol.ParseTimeoutUpdater.failedParse:()V
25: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 6
invokevirtual io.undertow.server.protocol.http.HttpReadListener.handleFailedRead:(Lorg/xnio/conduits/ConduitStreamSourceChannel;I)V
26: iload 5
ifeq 27
aload 3
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
27: StackMap locals:
StackMap stack:
return
28: StackMap locals:
StackMap stack:
iconst_1
istore 7
29: aload 2
ifnull 33
30: aconst_null
astore 2
31: aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
aconst_null
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.setExtraBytes:(Lio/undertow/connector/PooledByteBuffer;)V
32: goto 34
33: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
34: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 8
start local 8 35: aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.httpServerExchange:Lio/undertow/server/HttpServerExchange;
ifnonnull 37
36: aload 0
new io.undertow.server.HttpServerExchange
dup
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.maxEntitySize:J
invokespecial io.undertow.server.HttpServerExchange.<init>:(Lio/undertow/server/ServerConnection;J)V
putfield io.undertow.server.protocol.http.HttpReadListener.httpServerExchange:Lio/undertow/server/HttpServerExchange;
37: StackMap locals: int
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.parser:Lio/undertow/server/protocol/http/HttpRequestParser;
aload 4
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.state:Lio/undertow/server/protocol/http/ParseState;
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.httpServerExchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.protocol.http.HttpRequestParser.handle:(Ljava/nio/ByteBuffer;Lio/undertow/server/protocol/http/ParseState;Lio/undertow/server/HttpServerExchange;)V
38: aload 4
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 41
39: iconst_0
istore 5
40: aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
aload 3
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.setExtraBytes:(Lio/undertow/connector/PooledByteBuffer;)V
41: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.read:I
iload 8
aload 4
invokevirtual java.nio.ByteBuffer.remaining:()I
isub
iadd
istore 9
start local 9 42: aload 0
iload 9
putfield io.undertow.server.protocol.http.HttpReadListener.read:I
43: aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.read:I
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.maxRequestSize:I
if_icmple 48
44: getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getPeerAddress:()Ljava/net/SocketAddress;
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.maxRequestSize:I
invokeinterface io.undertow.UndertowLogger.requestHeaderWasTooLarge:(Ljava/net/SocketAddress;I)V
45: aload 0
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
aconst_null
invokevirtual io.undertow.server.protocol.http.HttpReadListener.sendBadRequestAndClose:(Lorg/xnio/StreamConnection;Ljava/lang/Throwable;)V
46: iload 5
ifeq 47
aload 3
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
47: StackMap locals: int
StackMap stack:
return
end local 9 end local 8 48: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.state:Lio/undertow/server/protocol/http/ParseState;
invokevirtual io.undertow.server.protocol.http.ParseState.isComplete:()Z
ifeq 12
49: aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
ifnull 51
50: aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
invokevirtual io.undertow.server.protocol.ParseTimeoutUpdater.requestStarted:()V
51: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.httpServerExchange:Lio/undertow/server/HttpServerExchange;
astore 8
start local 8 52: aload 8
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getSslSession:()Ljavax/net/ssl/SSLSession;
ifnull 53
ldc "https"
goto 54
StackMap locals: io.undertow.server.protocol.http.HttpReadListener org.xnio.conduits.ConduitStreamSourceChannel io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int int int io.undertow.server.HttpServerExchange
StackMap stack: io.undertow.server.HttpServerExchange
53: ldc "http"
StackMap locals: io.undertow.server.protocol.http.HttpReadListener org.xnio.conduits.ConduitStreamSourceChannel io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int int int io.undertow.server.HttpServerExchange
StackMap stack: io.undertow.server.HttpServerExchange java.lang.String
54: invokevirtual io.undertow.server.HttpServerExchange.setRequestScheme:(Ljava/lang/String;)Lio/undertow/server/HttpServerExchange;
pop
55: aload 0
aconst_null
putfield io.undertow.server.protocol.http.HttpReadListener.httpServerExchange:Lio/undertow/server/HttpServerExchange;
56: getstatic io.undertow.server.protocol.http.HttpReadListener.requestStateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
57: aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.recordRequestStartTime:Z
ifeq 59
58: aload 8
invokestatic io.undertow.server.Connectors.setRequestStartTime:(Lio/undertow/server/HttpServerExchange;)V
59: StackMap locals:
StackMap stack:
aload 8
invokevirtual io.undertow.server.HttpServerExchange.getProtocol:()Lio/undertow/util/HttpString;
getstatic io.undertow.util.Protocols.HTTP_2_0:Lio/undertow/util/HttpString;
if_acmpne 63
60: aload 0
aload 3
aload 8
invokevirtual io.undertow.server.protocol.http.HttpReadListener.handleHttp2PriorKnowledge:(Lio/undertow/connector/PooledByteBuffer;Lio/undertow/server/HttpServerExchange;)Z
istore 5
61: iload 5
ifeq 62
aload 3
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
62: StackMap locals:
StackMap stack:
return
63: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.allowUnknownProtocols:Z
ifne 70
64: aload 8
invokevirtual io.undertow.server.HttpServerExchange.getProtocol:()Lio/undertow/util/HttpString;
astore 9
start local 9 65: aload 9
getstatic io.undertow.util.Protocols.HTTP_1_1:Lio/undertow/util/HttpString;
if_acmpeq 70
aload 9
getstatic io.undertow.util.Protocols.HTTP_1_0:Lio/undertow/util/HttpString;
if_acmpeq 70
aload 9
getstatic io.undertow.util.Protocols.HTTP_0_9:Lio/undertow/util/HttpString;
if_acmpeq 70
66: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
ldc "Closing connection from %s due to unknown protocol %s"
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getPeerAddress:()Ljava/net/SocketAddress;
aload 9
invokeinterface io.undertow.UndertowLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
67: aload 0
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
new java.io.IOException
dup
invokespecial java.io.IOException.<init>:()V
invokevirtual io.undertow.server.protocol.http.HttpReadListener.sendBadRequestAndClose:(Lorg/xnio/StreamConnection;Ljava/lang/Throwable;)V
68: iload 5
ifeq 69
aload 3
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
69: StackMap locals: io.undertow.util.HttpString
StackMap stack:
return
end local 9 70: StackMap locals:
StackMap stack:
aload 8
invokestatic io.undertow.server.protocol.http.HttpTransferEncoding.setupRequest:(Lio/undertow/server/HttpServerExchange;)V
71: aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
aload 8
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.setCurrentExchange:(Lio/undertow/server/HttpServerExchange;)V
72: aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connectorStatistics:Lio/undertow/server/ConnectorStatisticsImpl;
ifnull 74
73: aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connectorStatistics:Lio/undertow/server/ConnectorStatisticsImpl;
aload 8
invokevirtual io.undertow.server.ConnectorStatisticsImpl.setup:(Lio/undertow/server/HttpServerExchange;)V
74: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getSslSession:()Ljavax/net/ssl/SSLSession;
ifnull 76
75: aload 1
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.suspendReads:()V
76: StackMap locals:
StackMap stack:
aload 8
invokevirtual io.undertow.server.HttpServerExchange.getRequestHeaders:()Lio/undertow/util/HeaderMap;
getstatic io.undertow.util.Headers.HOST:Lio/undertow/util/HttpString;
invokevirtual io.undertow.util.HeaderMap.get:(Lio/undertow/util/HttpString;)Lio/undertow/util/HeaderValues;
astore 9
start local 9 77: aload 9
ifnull 81
aload 9
invokevirtual io.undertow.util.HeaderValues.size:()I
iconst_1
if_icmple 81
78: aload 0
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.moreThanOneHostHeader:()Ljava/io/IOException;
invokevirtual io.undertow.server.protocol.http.HttpReadListener.sendBadRequestAndClose:(Lorg/xnio/StreamConnection;Ljava/lang/Throwable;)V
79: iload 5
ifeq 80
aload 3
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
80: StackMap locals: io.undertow.util.HeaderValues
StackMap stack:
return
81: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.requireHostHeader:Z
ifeq 86
aload 8
invokevirtual io.undertow.server.HttpServerExchange.getProtocol:()Lio/undertow/util/HttpString;
getstatic io.undertow.util.Protocols.HTTP_1_1:Lio/undertow/util/HttpString;
invokevirtual io.undertow.util.HttpString.equals:(Lio/undertow/util/HttpString;)Z
ifeq 86
82: aload 9
ifnull 83
aload 9
invokevirtual io.undertow.util.HeaderValues.size:()I
ifeq 83
aload 9
invokevirtual io.undertow.util.HeaderValues.getFirst:()Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
ifeq 86
83: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.noHostInHttp11Request:()Ljava/io/IOException;
invokevirtual io.undertow.server.protocol.http.HttpReadListener.sendBadRequestAndClose:(Lorg/xnio/StreamConnection;Ljava/lang/Throwable;)V
84: iload 5
ifeq 85
aload 3
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
85: StackMap locals:
StackMap stack:
return
86: StackMap locals:
StackMap stack:
aload 8
invokevirtual io.undertow.server.HttpServerExchange.getRequestHeaders:()Lio/undertow/util/HeaderMap;
invokestatic io.undertow.server.Connectors.areRequestHeadersValid:(Lio/undertow/util/HeaderMap;)Z
ifne 90
87: aload 0
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.invalidHeaders:()Ljava/lang/IllegalArgumentException;
invokevirtual io.undertow.server.protocol.http.HttpReadListener.sendBadRequestAndClose:(Lorg/xnio/StreamConnection;Ljava/lang/Throwable;)V
88: iload 5
ifeq 89
aload 3
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
89: StackMap locals:
StackMap stack:
return
90: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getRootHandler:()Lio/undertow/server/HttpHandler;
aload 8
invokestatic io.undertow.server.Connectors.executeRootHandler:(Lio/undertow/server/HttpHandler;Lio/undertow/server/HttpServerExchange;)V
end local 9 end local 8 end local 7 end local 6 91: goto 99
StackMap locals: io.undertow.server.protocol.http.HttpReadListener org.xnio.conduits.ConduitStreamSourceChannel io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int
StackMap stack: java.lang.Throwable
92: astore 6
start local 6 93: aload 0
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
aload 6
invokevirtual io.undertow.server.protocol.http.HttpReadListener.sendBadRequestAndClose:(Lorg/xnio/StreamConnection;Ljava/lang/Throwable;)V
94: iload 5
ifeq 95
aload 3
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
95: StackMap locals: java.lang.Throwable
StackMap stack:
return
end local 6 96: StackMap locals: io.undertow.server.protocol.http.HttpReadListener org.xnio.conduits.ConduitStreamSourceChannel io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int
StackMap stack: java.lang.Throwable
astore 10
97: iload 5
ifeq 98
aload 3
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
98: StackMap locals: io.undertow.server.protocol.http.HttpReadListener org.xnio.conduits.ConduitStreamSourceChannel io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int top top top top java.lang.Throwable
StackMap stack:
aload 10
athrow
99: StackMap locals: io.undertow.server.protocol.http.HttpReadListener org.xnio.conduits.ConduitStreamSourceChannel io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int
StackMap stack:
iload 5
ifeq 100
aload 3
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
100: 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 101 0 this Lio/undertow/server/protocol/http/HttpReadListener;
0 101 1 channel Lorg/xnio/conduits/ConduitStreamSourceChannel;
1 101 2 existing Lio/undertow/connector/PooledByteBuffer;
9 101 3 pooled Lio/undertow/connector/PooledByteBuffer;
10 101 4 buffer Ljava/nio/ByteBuffer;
11 101 5 free Z
15 16 6 res I
22 91 6 res I
12 91 7 bytesRead Z
17 21 8 e Ljava/io/IOException;
35 48 8 begin I
42 48 9 total I
52 91 8 httpServerExchange Lio/undertow/server/HttpServerExchange;
65 70 9 protocol Lio/undertow/util/HttpString;
77 91 9 host Lio/undertow/util/HeaderValues;
93 96 6 t Ljava/lang/Throwable;
Exception table:
from to target type
14 15 16 Class java.io.IOException
11 19 92 Class java.lang.Throwable
21 26 92 Class java.lang.Throwable
28 46 92 Class java.lang.Throwable
48 61 92 Class java.lang.Throwable
63 68 92 Class java.lang.Throwable
70 79 92 Class java.lang.Throwable
81 84 92 Class java.lang.Throwable
86 88 92 Class java.lang.Throwable
90 91 92 Class java.lang.Throwable
11 19 96 any
21 26 96 any
28 46 96 any
48 61 96 any
63 68 96 any
70 79 96 any
81 84 96 any
86 88 96 any
90 94 96 any
MethodParameters:
Name Flags
channel final
private boolean handleHttp2PriorKnowledge(io.undertow.connector.PooledByteBuffer, io.undertow.server.HttpServerExchange);
descriptor: (Lio/undertow/connector/PooledByteBuffer;Lio/undertow/server/HttpServerExchange;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual io.undertow.server.HttpServerExchange.getRequestMethod:()Lio/undertow/util/HttpString;
getstatic io.undertow.server.protocol.http.HttpReadListener.PRI:Lio/undertow/util/HttpString;
invokevirtual io.undertow.util.HttpString.equals:(Lio/undertow/util/HttpString;)Z
ifeq 3
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getUndertowOptions:()Lorg/xnio/OptionMap;
getstatic io.undertow.UndertowOptions.ENABLE_HTTP2:Lorg/xnio/Option;
iconst_0
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;Z)Z
ifeq 3
1: aload 0
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
aload 1
invokevirtual io.undertow.server.protocol.http.HttpReadListener.handleHttp2PriorKnowledge:(Lorg/xnio/StreamConnection;Lio/undertow/server/protocol/http/HttpServerConnection;Lio/undertow/connector/PooledByteBuffer;)V
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
new java.io.IOException
dup
invokespecial java.io.IOException.<init>:()V
invokevirtual io.undertow.server.protocol.http.HttpReadListener.sendBadRequestAndClose:(Lorg/xnio/StreamConnection;Ljava/lang/Throwable;)V
4: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/undertow/server/protocol/http/HttpReadListener;
0 5 1 pooled Lio/undertow/connector/PooledByteBuffer;
0 5 2 httpServerExchange Lio/undertow/server/HttpServerExchange;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
pooled
httpServerExchange
private void handleFailedRead(org.xnio.conduits.ConduitStreamSourceChannel, int);
descriptor: (Lorg/xnio/conduits/ConduitStreamSourceChannel;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 2
ifne 4
1: aload 1
aload 0
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.setReadListener:(Lorg/xnio/ChannelListener;)V
2: aload 1
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.resumeReads:()V
3: goto 6
StackMap locals:
StackMap stack:
4: iload 2
iconst_m1
if_icmpne 6
5: aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/undertow/server/protocol/http/HttpReadListener;
0 7 1 channel Lorg/xnio/conduits/ConduitStreamSourceChannel;
0 7 2 res I
MethodParameters:
Name Flags
channel
res
private void sendBadRequestAndClose(org.xnio.StreamConnection, java.lang.Throwable);
descriptor: (Lorg/xnio/StreamConnection;Ljava/lang/Throwable;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
aload 2
invokeinterface io.undertow.UndertowLogger.failedToParseRequest:(Ljava/lang/Throwable;)V
1: aload 1
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.suspendReads:()V
2: new io.undertow.server.protocol.http.HttpReadListener$1
dup
aload 0
ldc "HTTP/1.1 400 Bad Request\r\nContent-Length: 0\r\nConnection: close\r\n\r\n"
aload 1
invokespecial io.undertow.server.protocol.http.HttpReadListener$1.<init>:(Lio/undertow/server/protocol/http/HttpReadListener;Ljava/lang/String;Lorg/xnio/StreamConnection;)V
3: aload 1
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual io.undertow.server.protocol.http.HttpReadListener$1.setup:(Lorg/xnio/channels/StreamSinkChannel;)V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/undertow/server/protocol/http/HttpReadListener;
0 5 1 connection Lorg/xnio/StreamConnection;
0 5 2 exception Ljava/lang/Throwable;
MethodParameters:
Name Flags
connection final
exception final
public void exchangeComplete(io.undertow.server.HttpServerExchange);
descriptor: (Lio/undertow/server/HttpServerExchange;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.clearChannel:()V
1: aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
aconst_null
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.setCurrentExchange:(Lio/undertow/server/HttpServerExchange;)V
2: aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
astore 2
start local 2 3: aload 1
invokevirtual io.undertow.server.HttpServerExchange.isPersistent:()Z
ifeq 50
aload 0
aload 1
invokevirtual io.undertow.server.protocol.http.HttpReadListener.isUpgradeOrConnect:(Lio/undertow/server/HttpServerExchange;)Z
ifne 50
4: aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
astore 3
start local 3 5: aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getExtraBytes:()Lio/undertow/connector/PooledByteBuffer;
ifnonnull 27
6: aload 1
invokevirtual io.undertow.server.HttpServerExchange.isInIoThread:()Z
ifeq 12
7: aload 0
invokevirtual io.undertow.server.protocol.http.HttpReadListener.newRequest:()V
8: aload 3
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
aload 0
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.setReadListener:(Lorg/xnio/ChannelListener;)V
9: aload 3
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.resumeReads:()V
10: getstatic io.undertow.server.protocol.http.HttpReadListener.requestStateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
11: goto 73
12: StackMap locals: io.undertow.server.protocol.http.HttpServerConnection org.xnio.StreamConnection
StackMap stack:
aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getOriginalSourceConduit:()Lorg/xnio/conduits/StreamSourceConduit;
invokeinterface org.xnio.conduits.StreamSourceConduit.isReadShutdown:()Z
ifne 13
aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getOriginalSinkConduit:()Lorg/xnio/conduits/StreamSinkConduit;
invokeinterface org.xnio.conduits.StreamSinkConduit.isWriteShutdown:()Z
ifeq 17
13: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.suspendReads:()V
14: aload 3
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.suspendWrites:()V
15: aload 2
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
16: return
17: StackMap locals:
StackMap stack:
getstatic io.undertow.server.protocol.http.HttpReadListener.requestStateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_1
iconst_2
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 12
18: aload 0
invokevirtual io.undertow.server.protocol.http.HttpReadListener.newRequest:()V
19: aload 3
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
aload 0
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.setReadListener:(Lorg/xnio/ChannelListener;)V
20: aload 3
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.resumeReads:()V
21: goto 25
StackMap locals:
StackMap stack: java.lang.Throwable
22: astore 4
23: getstatic io.undertow.server.protocol.http.HttpReadListener.requestStateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
24: aload 4
athrow
25: StackMap locals:
StackMap stack:
getstatic io.undertow.server.protocol.http.HttpReadListener.requestStateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
26: goto 73
27: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.undertow.server.HttpServerExchange.isInIoThread:()Z
ifeq 32
28: getstatic io.undertow.server.protocol.http.HttpReadListener.requestStateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
29: aload 0
invokevirtual io.undertow.server.protocol.http.HttpReadListener.newRequest:()V
30: aload 3
invokevirtual org.xnio.StreamConnection.getIoThread:()Lorg/xnio/XnioIoThread;
aload 0
invokevirtual org.xnio.XnioIoThread.execute:(Ljava/lang/Runnable;)V
31: goto 73
32: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getOriginalSinkConduit:()Lorg/xnio/conduits/StreamSinkConduit;
invokeinterface org.xnio.conduits.StreamSinkConduit.isWriteShutdown:()Z
ifeq 37
33: aload 3
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.suspendReads:()V
34: aload 3
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.suspendWrites:()V
35: aload 2
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
36: return
37: StackMap locals:
StackMap stack:
getstatic io.undertow.server.protocol.http.HttpReadListener.requestStateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_1
iconst_2
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 32
38: aload 0
invokevirtual io.undertow.server.protocol.http.HttpReadListener.newRequest:()V
39: aload 3
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.suspendReads:()V
40: goto 44
StackMap locals:
StackMap stack: java.lang.Throwable
41: astore 4
42: getstatic io.undertow.server.protocol.http.HttpReadListener.requestStateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
43: aload 4
athrow
44: StackMap locals:
StackMap stack:
getstatic io.undertow.server.protocol.http.HttpReadListener.requestStateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
45: aload 1
invokevirtual io.undertow.server.HttpServerExchange.getDispatchExecutor:()Ljava/util/concurrent/Executor;
astore 4
start local 4 46: aload 4
ifnonnull 48
47: aload 1
invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
invokevirtual io.undertow.server.ServerConnection.getWorker:()Lorg/xnio/XnioWorker;
astore 4
48: StackMap locals: java.util.concurrent.Executor
StackMap stack:
aload 4
aload 0
invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
end local 4 end local 3 49: goto 73
StackMap locals:
StackMap stack:
50: aload 1
invokevirtual io.undertow.server.HttpServerExchange.isPersistent:()Z
ifne 56
51: aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getExtraBytes:()Lio/undertow/connector/PooledByteBuffer;
ifnull 54
52: aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getExtraBytes:()Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
53: aload 2
aconst_null
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.setExtraBytes:(Lio/undertow/connector/PooledByteBuffer;)V
54: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
iconst_1
anewarray java.io.Closeable
dup
iconst_0
aload 2
aastore
invokestatic io.undertow.util.ConnectionUtils.cleanClose:(Lorg/xnio/StreamConnection;[Ljava/io/Closeable;)V
55: goto 73
56: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getExtraBytes:()Lio/undertow/connector/PooledByteBuffer;
ifnull 58
57: aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
new io.undertow.conduits.ReadDataStreamSourceConduit
dup
aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.getConduit:()Lorg/xnio/conduits/StreamSourceConduit;
aload 2
invokespecial io.undertow.conduits.ReadDataStreamSourceConduit.<init>:(Lorg/xnio/conduits/StreamSourceConduit;Lio/undertow/server/AbstractServerConnection;)V
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.setConduit:(Lorg/xnio/conduits/StreamSourceConduit;)V
58: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.flush:()Z
ifne 64
59: aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
new io.undertow.server.protocol.http.HttpReadListener$2
dup
aload 0
aload 2
aload 1
invokespecial io.undertow.server.protocol.http.HttpReadListener$2.<init>:(Lio/undertow/server/protocol/http/HttpReadListener;Lio/undertow/server/protocol/http/HttpServerConnection;Lio/undertow/server/HttpServerExchange;)V
60: new io.undertow.util.ClosingChannelExceptionHandler
dup
iconst_1
anewarray java.io.Closeable
dup
iconst_0
aload 2
aastore
invokespecial io.undertow.util.ClosingChannelExceptionHandler.<init>:([Ljava/io/Closeable;)V
61: invokestatic org.xnio.ChannelListeners.flushingChannelListener:(Lorg/xnio/ChannelListener;Lorg/xnio/ChannelExceptionHandler;)Lorg/xnio/ChannelListener;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.setWriteListener:(Lorg/xnio/ChannelListener;)V
62: aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.resumeWrites:()V
63: return
64: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getUpgradeListener:()Lio/undertow/server/HttpUpgradeListener;
aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
aload 1
invokeinterface io.undertow.server.HttpUpgradeListener.handleUpgrade:(Lorg/xnio/StreamConnection;Lio/undertow/server/HttpServerExchange;)V
65: goto 73
StackMap locals:
StackMap stack: java.io.IOException
66: astore 3
start local 3 67: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
aload 3
invokeinterface io.undertow.UndertowLogger.ioException:(Ljava/io/IOException;)V
68: aload 2
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
end local 3 69: goto 73
70: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
start local 3 71: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
aload 3
invokeinterface io.undertow.UndertowLogger.handleUnexpectedFailure:(Ljava/lang/Throwable;)V
72: aload 2
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
end local 3 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/undertow/server/protocol/http/HttpReadListener;
0 74 1 exchange Lio/undertow/server/HttpServerExchange;
3 74 2 connection Lio/undertow/server/protocol/http/HttpServerConnection;
5 49 3 channel Lorg/xnio/StreamConnection;
46 49 4 executor Ljava/util/concurrent/Executor;
67 69 3 e Ljava/io/IOException;
71 73 3 t Ljava/lang/Throwable;
Exception table:
from to target type
18 22 22 any
38 41 41 any
58 63 66 Class java.io.IOException
64 65 66 Class java.io.IOException
58 63 70 Class java.lang.Throwable
64 65 70 Class java.lang.Throwable
MethodParameters:
Name Flags
exchange final
private boolean isUpgradeOrConnect(io.undertow.server.HttpServerExchange);
descriptor: (Lio/undertow/server/HttpServerExchange;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual io.undertow.server.HttpServerExchange.isUpgrade:()Z
ifne 2
aload 1
invokevirtual io.undertow.server.HttpServerExchange.getRequestMethod:()Lio/undertow/util/HttpString;
getstatic io.undertow.util.Methods.CONNECT:Lio/undertow/util/HttpString;
invokevirtual io.undertow.util.HttpString.equals:(Lio/undertow/util/HttpString;)Z
ifeq 1
aload 1
invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
checkcast io.undertow.server.protocol.http.HttpServerConnection
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.isConnectHandled:()Z
ifne 2
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
StackMap locals:
StackMap stack:
2: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/server/protocol/http/HttpReadListener;
0 3 1 exchange Lio/undertow/server/HttpServerExchange;
MethodParameters:
Name Flags
exchange
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield io.undertow.server.protocol.http.HttpReadListener.connection:Lio/undertow/server/protocol/http/HttpServerConnection;
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual io.undertow.server.protocol.http.HttpReadListener.handleEvent:(Lorg/xnio/conduits/ConduitStreamSourceChannel;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/protocol/http/HttpReadListener;
private void handleHttp2PriorKnowledge(org.xnio.StreamConnection, io.undertow.server.protocol.http.HttpServerConnection, io.undertow.connector.PooledByteBuffer);
descriptor: (Lorg/xnio/StreamConnection;Lio/undertow/server/protocol/http/HttpServerConnection;Lio/undertow/connector/PooledByteBuffer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
astore 4
start local 4 1: getstatic io.undertow.server.protocol.http.HttpReadListener.PRI_EXPECTED:[B
arraylength
newarray 8
astore 5
start local 5 2: aload 5
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
astore 6
start local 6 3: aload 3
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 7
4: goto 6
5: StackMap locals: org.xnio.conduits.ConduitStreamSourceChannel byte[] java.nio.ByteBuffer
StackMap stack:
aload 6
aload 3
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.get:()B
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
6: StackMap locals:
StackMap stack:
aload 3
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 7
aload 6
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 5
7: StackMap locals:
StackMap stack:
aload 3
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 10
8: aload 3
astore 7
start local 7 9: goto 12
end local 7 10: StackMap locals:
StackMap stack:
aload 3
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
11: aconst_null
astore 7
start local 7 12: StackMap locals: io.undertow.connector.PooledByteBuffer
StackMap stack:
aload 0
aload 1
aload 6
aload 2
aload 7
invokevirtual io.undertow.server.protocol.http.HttpReadListener.doHttp2PriRead:(Lorg/xnio/StreamConnection;Ljava/nio/ByteBuffer;Lio/undertow/server/protocol/http/HttpServerConnection;Lio/undertow/connector/PooledByteBuffer;)Z
ifne 15
13: aload 4
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.getReadSetter:()Lorg/xnio/ChannelListener$Setter;
new io.undertow.server.protocol.http.HttpReadListener$3
dup
aload 0
aload 1
aload 6
aload 2
aload 7
invokespecial io.undertow.server.protocol.http.HttpReadListener$3.<init>:(Lio/undertow/server/protocol/http/HttpReadListener;Lorg/xnio/StreamConnection;Ljava/nio/ByteBuffer;Lio/undertow/server/protocol/http/HttpServerConnection;Lio/undertow/connector/PooledByteBuffer;)V
invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
14: aload 4
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.resumeReads:()V
15: StackMap locals:
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 16 0 this Lio/undertow/server/protocol/http/HttpReadListener;
0 16 1 connection Lorg/xnio/StreamConnection;
0 16 2 serverConnection Lio/undertow/server/protocol/http/HttpServerConnection;
0 16 3 readData Lio/undertow/connector/PooledByteBuffer;
1 16 4 request Lorg/xnio/conduits/ConduitStreamSourceChannel;
2 16 5 data [B
3 16 6 buffer Ljava/nio/ByteBuffer;
9 10 7 extraData Lio/undertow/connector/PooledByteBuffer;
12 16 7 extraData Lio/undertow/connector/PooledByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
connection final
serverConnection final
readData
private boolean doHttp2PriRead(org.xnio.StreamConnection, java.nio.ByteBuffer, io.undertow.server.protocol.http.HttpServerConnection, io.undertow.connector.PooledByteBuffer);
descriptor: (Lorg/xnio/StreamConnection;Ljava/nio/ByteBuffer;Lio/undertow/server/protocol/http/HttpServerConnection;Lio/undertow/connector/PooledByteBuffer;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=10, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 6
1: aload 1
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
aload 2
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.read:(Ljava/nio/ByteBuffer;)I
istore 5
start local 5 2: iload 5
iconst_m1
if_icmpne 4
3: iconst_1
ireturn
4: StackMap locals: int
StackMap stack:
aload 2
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 6
5: iconst_0
ireturn
end local 5 6: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
7: iconst_0
istore 5
start local 5 8: goto 12
9: StackMap locals: int
StackMap stack:
aload 2
invokevirtual java.nio.ByteBuffer.get:()B
getstatic io.undertow.server.protocol.http.HttpReadListener.PRI_EXPECTED:[B
iload 5
baload
if_icmpeq 11
10: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.http2PriRequestFailed:()Ljava/io/IOException;
athrow
11: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
12: iload 5
getstatic io.undertow.server.protocol.http.HttpReadListener.PRI_EXPECTED:[B
arraylength
if_icmplt 9
end local 5 13: new io.undertow.protocols.http2.Http2Channel
dup
aload 1
aconst_null
aload 3
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getByteBufferPool:()Lio/undertow/connector/ByteBufferPool;
aload 4
iconst_0
iconst_0
iconst_0
aload 3
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getUndertowOptions:()Lorg/xnio/OptionMap;
invokespecial io.undertow.protocols.http2.Http2Channel.<init>:(Lorg/xnio/StreamConnection;Ljava/lang/String;Lio/undertow/connector/ByteBufferPool;Lio/undertow/connector/PooledByteBuffer;ZZZLorg/xnio/OptionMap;)V
astore 5
start local 5 14: new io.undertow.server.protocol.http2.Http2ReceiveListener
dup
aload 3
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getRootHandler:()Lio/undertow/server/HttpHandler;
aload 3
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getUndertowOptions:()Lorg/xnio/OptionMap;
aload 3
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getBufferSize:()I
aconst_null
invokespecial io.undertow.server.protocol.http2.Http2ReceiveListener.<init>:(Lio/undertow/server/HttpHandler;Lorg/xnio/OptionMap;ILio/undertow/server/ConnectorStatisticsImpl;)V
astore 6
start local 6 15: aload 5
invokevirtual io.undertow.protocols.http2.Http2Channel.getReceiveSetter:()Lorg/xnio/ChannelListener$Setter;
aload 6
invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
16: aload 5
invokevirtual io.undertow.protocols.http2.Http2Channel.resumeReceives:()V
17: iconst_1
ireturn
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 18 0 this Lio/undertow/server/protocol/http/HttpReadListener;
0 18 1 connection Lorg/xnio/StreamConnection;
0 18 2 buffer Ljava/nio/ByteBuffer;
0 18 3 serverConnection Lio/undertow/server/protocol/http/HttpServerConnection;
0 18 4 extraData Lio/undertow/connector/PooledByteBuffer;
2 6 5 res I
8 13 5 i I
14 18 5 channel Lio/undertow/protocols/http2/Http2Channel;
15 18 6 receiveListener Lio/undertow/server/protocol/http2/Http2ReceiveListener;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
connection
buffer
serverConnection
extraData
public void handleEvent(java.nio.channels.Channel);
descriptor: (Ljava/nio/channels/Channel;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast org.xnio.conduits.ConduitStreamSourceChannel
invokevirtual io.undertow.server.protocol.http.HttpReadListener.handleEvent:(Lorg/xnio/conduits/ConduitStreamSourceChannel;)V
return
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Lorg/xnio/ChannelListener<Lorg/xnio/conduits/ConduitStreamSourceChannel;>;Ljava/lang/Runnable;
SourceFile: "HttpReadListener.java"
NestMembers:
io.undertow.server.protocol.http.HttpReadListener$1 io.undertow.server.protocol.http.HttpReadListener$2 io.undertow.server.protocol.http.HttpReadListener$3
InnerClasses:
public abstract CloseListener = io.undertow.server.ServerConnection$CloseListener of io.undertow.server.ServerConnection
io.undertow.server.protocol.http.HttpReadListener$1
io.undertow.server.protocol.http.HttpReadListener$2
io.undertow.server.protocol.http.HttpReadListener$3
public abstract Setter = org.xnio.ChannelListener$Setter of org.xnio.ChannelListener