public class io.undertow.protocols.http2.Http2Channel extends io.undertow.server.protocol.framed.AbstractFramedChannel<io.undertow.protocols.http2.Http2Channel, io.undertow.protocols.http2.AbstractHttp2StreamSourceChannel, io.undertow.protocols.http2.AbstractHttp2StreamSinkChannel> implements io.undertow.util.Attachable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.undertow.protocols.http2.Http2Channel
super_class: io.undertow.server.protocol.framed.AbstractFramedChannel
{
public static final java.lang.String CLEARTEXT_UPGRADE_STRING;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "h2c"
public static final io.undertow.util.HttpString METHOD;
descriptor: Lio/undertow/util/HttpString;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final io.undertow.util.HttpString PATH;
descriptor: Lio/undertow/util/HttpString;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final io.undertow.util.HttpString SCHEME;
descriptor: Lio/undertow/util/HttpString;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final io.undertow.util.HttpString AUTHORITY;
descriptor: Lio/undertow/util/HttpString;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final io.undertow.util.HttpString STATUS;
descriptor: Lio/undertow/util/HttpString;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
static final int FRAME_TYPE_DATA;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
static final int ;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int FRAME_TYPE_PRIORITY;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 2
static final int FRAME_TYPE_RST_STREAM;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 3
static final int FRAME_TYPE_SETTINGS;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 4
static final int FRAME_TYPE_PUSH_PROMISE;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 5
static final int FRAME_TYPE_PING;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 6
static final int FRAME_TYPE_GOAWAY;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 7
static final int FRAME_TYPE_WINDOW_UPDATE;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 8
static final int FRAME_TYPE_CONTINUATION;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 9
public static final int ERROR_NO_ERROR;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 0
public static final int ERROR_PROTOCOL_ERROR;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final int ERROR_INTERNAL_ERROR;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
public static final int ERROR_FLOW_CONTROL_ERROR;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 3
public static final int ERROR_SETTINGS_TIMEOUT;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 4
public static final int ERROR_STREAM_CLOSED;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 5
public static final int ERROR_FRAME_SIZE_ERROR;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 6
public static final int ERROR_REFUSED_STREAM;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 7
public static final int ERROR_CANCEL;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 8
public static final int ERROR_COMPRESSION_ERROR;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 9
public static final int ERROR_CONNECT_ERROR;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 10
public static final int ERROR_ENHANCE_YOUR_CALM;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 11
public static final int ERROR_INADEQUATE_SECURITY;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 12
static final int DATA_FLAG_END_STREAM;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int DATA_FLAG_END_SEGMENT;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 2
static final int DATA_FLAG_PADDED;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 8
static final int PING_FRAME_LENGTH;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 8
static final int PING_FLAG_ACK;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int ;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int ;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 2
static final int ;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 4
static final int ;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 8
static final int ;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 32
static final int SETTINGS_FLAG_ACK;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int ;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 4
public static final int DEFAULT_INITIAL_WINDOW_SIZE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 65535
static final byte[] PREFACE_BYTES;
descriptor: [B
flags: (0x0018) ACC_STATIC, ACC_FINAL
public static final int DEFAULT_MAX_FRAME_SIZE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 16384
public static final int MAX_FRAME_SIZE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 16777215
public static final int FLOW_CONTROL_MIN_WINDOW;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private io.undertow.protocols.http2.Http2FrameHeaderParser ;
descriptor: Lio/undertow/protocols/http2/Http2FrameHeaderParser;
flags: (0x0002) ACC_PRIVATE
private final java.util.Map<java.lang.Integer, io.undertow.protocols.http2.Http2Channel$StreamHolder> currentStreams;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Integer;Lio/undertow/protocols/http2/Http2Channel$StreamHolder;>;
private final java.lang.String protocol;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int ;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private volatile boolean pushEnabled;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile int sendMaxConcurrentStreams;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile int receiveMaxConcurrentStreams;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile int sendConcurrentStreams;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile int receiveConcurrentStreams;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile int initialReceiveWindowSize;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile int sendMaxFrameSize;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private int receiveMaxFrameSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int unackedReceiveMaxFrameSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final int ;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int ;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<io.undertow.protocols.http2.Http2Channel> sendConcurrentStreamsAtomicUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lio/undertow/protocols/http2/Http2Channel;>;
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<io.undertow.protocols.http2.Http2Channel> receiveConcurrentStreamsAtomicUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lio/undertow/protocols/http2/Http2Channel;>;
private boolean thisGoneAway;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean peerGoneAway;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean lastDataRead;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int streamIdCounter;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int lastGoodStreamId;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final io.undertow.protocols.http2.HpackDecoder decoder;
descriptor: Lio/undertow/protocols/http2/HpackDecoder;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.undertow.protocols.http2.HpackEncoder encoder;
descriptor: Lio/undertow/protocols/http2/HpackEncoder;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int maxPadding;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Random paddingRandom;
descriptor: Ljava/util/Random;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int prefaceCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean initialSettingsReceived;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private io.undertow.protocols.http2.Http2HeadersParser ;
descriptor: Lio/undertow/protocols/http2/Http2HeadersParser;
flags: (0x0002) ACC_PRIVATE
private boolean initialSettingsSent;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final java.util.Map<io.undertow.util.AttachmentKey<?>, java.lang.Object> attachments;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Lio/undertow/util/AttachmentKey<*>;Ljava/lang/Object;>;
private io.undertow.server.protocol.ParseTimeoutUpdater parseTimeoutUpdater;
descriptor: Lio/undertow/server/protocol/ParseTimeoutUpdater;
flags: (0x0002) ACC_PRIVATE
private final java.lang.Object flowControlLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile int initialSendWindowSize;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile long sendWindowSize;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile int receiveWindowSize;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
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 ":method"
invokespecial io.undertow.util.HttpString.<init>:(Ljava/lang/String;)V
putstatic io.undertow.protocols.http2.Http2Channel.METHOD:Lio/undertow/util/HttpString;
1: new io.undertow.util.HttpString
dup
ldc ":path"
invokespecial io.undertow.util.HttpString.<init>:(Ljava/lang/String;)V
putstatic io.undertow.protocols.http2.Http2Channel.PATH:Lio/undertow/util/HttpString;
2: new io.undertow.util.HttpString
dup
ldc ":scheme"
invokespecial io.undertow.util.HttpString.<init>:(Ljava/lang/String;)V
putstatic io.undertow.protocols.http2.Http2Channel.SCHEME:Lio/undertow/util/HttpString;
3: new io.undertow.util.HttpString
dup
ldc ":authority"
invokespecial io.undertow.util.HttpString.<init>:(Ljava/lang/String;)V
putstatic io.undertow.protocols.http2.Http2Channel.AUTHORITY:Lio/undertow/util/HttpString;
4: new io.undertow.util.HttpString
dup
ldc ":status"
invokespecial io.undertow.util.HttpString.<init>:(Ljava/lang/String;)V
putstatic io.undertow.protocols.http2.Http2Channel.STATUS:Lio/undertow/util/HttpString;
5: bipush 24
newarray 8
dup
iconst_0
6: bipush 80
bastore
dup
iconst_1
bipush 82
bastore
dup
iconst_2
bipush 73
bastore
dup
iconst_3
bipush 32
bastore
dup
iconst_4
bipush 42
bastore
dup
iconst_5
bipush 32
bastore
dup
bipush 6
bipush 72
bastore
dup
bipush 7
bipush 84
bastore
dup
bipush 8
7: bipush 84
bastore
dup
bipush 9
bipush 80
bastore
dup
bipush 10
bipush 47
bastore
dup
bipush 11
bipush 50
bastore
dup
bipush 12
bipush 46
bastore
dup
bipush 13
bipush 48
bastore
dup
bipush 14
bipush 13
bastore
dup
bipush 15
bipush 10
bastore
dup
bipush 16
8: bipush 13
bastore
dup
bipush 17
bipush 10
bastore
dup
bipush 18
bipush 83
bastore
dup
bipush 19
bipush 77
bastore
dup
bipush 20
bipush 13
bastore
dup
bipush 21
bipush 10
bastore
dup
bipush 22
bipush 13
bastore
dup
bipush 23
bipush 10
bastore
9: putstatic io.undertow.protocols.http2.Http2Channel.PREFACE_BYTES:[B
10: ldc Lio/undertow/protocols/http2/Http2Channel;
ldc "sendConcurrentStreams"
11: invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic io.undertow.protocols.http2.Http2Channel.sendConcurrentStreamsAtomicUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
12: ldc Lio/undertow/protocols/http2/Http2Channel;
ldc "receiveConcurrentStreams"
13: invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic io.undertow.protocols.http2.Http2Channel.receiveConcurrentStreamsAtomicUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
14: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.xnio.StreamConnection, java.lang.String, io.undertow.connector.ByteBufferPool, io.undertow.connector.PooledByteBuffer, boolean, boolean, org.xnio.OptionMap);
descriptor: (Lorg/xnio/StreamConnection;Ljava/lang/String;Lio/undertow/connector/ByteBufferPool;Lio/undertow/connector/PooledByteBuffer;ZZLorg/xnio/OptionMap;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=8, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
aload 1
aload 2
aload 3
aload 4
iload 5
iload 6
iconst_1
aconst_null
aload 7
invokespecial io.undertow.protocols.http2.Http2Channel.<init>:(Lorg/xnio/StreamConnection;Ljava/lang/String;Lio/undertow/connector/ByteBufferPool;Lio/undertow/connector/PooledByteBuffer;ZZZLjava/nio/ByteBuffer;Lorg/xnio/OptionMap;)V
1: 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 2 0 this Lio/undertow/protocols/http2/Http2Channel;
0 2 1 connectedStreamChannel Lorg/xnio/StreamConnection;
0 2 2 protocol Ljava/lang/String;
0 2 3 bufferPool Lio/undertow/connector/ByteBufferPool;
0 2 4 data Lio/undertow/connector/PooledByteBuffer;
0 2 5 clientSide Z
0 2 6 fromUpgrade Z
0 2 7 settings Lorg/xnio/OptionMap;
MethodParameters:
Name Flags
connectedStreamChannel
protocol
bufferPool
data
clientSide
fromUpgrade
settings
public void <init>(org.xnio.StreamConnection, java.lang.String, io.undertow.connector.ByteBufferPool, io.undertow.connector.PooledByteBuffer, boolean, boolean, boolean, org.xnio.OptionMap);
descriptor: (Lorg/xnio/StreamConnection;Ljava/lang/String;Lio/undertow/connector/ByteBufferPool;Lio/undertow/connector/PooledByteBuffer;ZZZLorg/xnio/OptionMap;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=9, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aload 0
aload 1
aload 2
aload 3
aload 4
iload 5
iload 6
iload 7
aconst_null
aload 8
invokespecial io.undertow.protocols.http2.Http2Channel.<init>:(Lorg/xnio/StreamConnection;Ljava/lang/String;Lio/undertow/connector/ByteBufferPool;Lio/undertow/connector/PooledByteBuffer;ZZZLjava/nio/ByteBuffer;Lorg/xnio/OptionMap;)V
1: 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 2 0 this Lio/undertow/protocols/http2/Http2Channel;
0 2 1 connectedStreamChannel Lorg/xnio/StreamConnection;
0 2 2 protocol Ljava/lang/String;
0 2 3 bufferPool Lio/undertow/connector/ByteBufferPool;
0 2 4 data Lio/undertow/connector/PooledByteBuffer;
0 2 5 clientSide Z
0 2 6 fromUpgrade Z
0 2 7 prefaceRequired Z
0 2 8 settings Lorg/xnio/OptionMap;
MethodParameters:
Name Flags
connectedStreamChannel
protocol
bufferPool
data
clientSide
fromUpgrade
prefaceRequired
settings
public void <init>(org.xnio.StreamConnection, java.lang.String, io.undertow.connector.ByteBufferPool, io.undertow.connector.PooledByteBuffer, boolean, boolean, boolean, java.nio.ByteBuffer, org.xnio.OptionMap);
descriptor: (Lorg/xnio/StreamConnection;Ljava/lang/String;Lio/undertow/connector/ByteBufferPool;Lio/undertow/connector/PooledByteBuffer;ZZZLjava/nio/ByteBuffer;Lorg/xnio/OptionMap;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=12, args_size=10
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 0: aload 0
aload 1
aload 3
1: new io.undertow.protocols.http2.Http2FramePriority
dup
iload 5
ifeq 3
iload 6
ifeq 2
iconst_3
goto 4
StackMap locals: uninitialized-this org.xnio.StreamConnection java.lang.String io.undertow.connector.ByteBufferPool io.undertow.connector.PooledByteBuffer int int int java.nio.ByteBuffer org.xnio.OptionMap
StackMap stack: uninitialized-this org.xnio.StreamConnection io.undertow.connector.ByteBufferPool new 1 new 1
2: iconst_1
goto 4
StackMap locals: uninitialized-this org.xnio.StreamConnection java.lang.String io.undertow.connector.ByteBufferPool io.undertow.connector.PooledByteBuffer int int int java.nio.ByteBuffer org.xnio.OptionMap
StackMap stack: uninitialized-this org.xnio.StreamConnection io.undertow.connector.ByteBufferPool new 1 new 1
3: iconst_2
StackMap locals: uninitialized-this org.xnio.StreamConnection java.lang.String io.undertow.connector.ByteBufferPool io.undertow.connector.PooledByteBuffer int int int java.nio.ByteBuffer org.xnio.OptionMap
StackMap stack: uninitialized-this org.xnio.StreamConnection io.undertow.connector.ByteBufferPool new 1 new 1 int
4: invokespecial io.undertow.protocols.http2.Http2FramePriority.<init>:(I)V
aload 4
aload 9
invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel.<init>:(Lorg/xnio/StreamConnection;Lio/undertow/connector/ByteBufferPool;Lio/undertow/server/protocol/framed/FramePriority;Lio/undertow/connector/PooledByteBuffer;Lorg/xnio/OptionMap;)V
5: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
6: aload 0
iconst_m1
putfield io.undertow.protocols.http2.Http2Channel.sendMaxConcurrentStreams:I
7: aload 0
iconst_m1
putfield io.undertow.protocols.http2.Http2Channel.receiveMaxConcurrentStreams:I
8: aload 0
iconst_0
putfield io.undertow.protocols.http2.Http2Channel.sendConcurrentStreams:I
9: aload 0
iconst_0
putfield io.undertow.protocols.http2.Http2Channel.receiveConcurrentStreams:I
10: aload 0
ldc 65535
putfield io.undertow.protocols.http2.Http2Channel.initialReceiveWindowSize:I
11: aload 0
sipush 16384
putfield io.undertow.protocols.http2.Http2Channel.sendMaxFrameSize:I
12: aload 0
sipush 16384
putfield io.undertow.protocols.http2.Http2Channel.receiveMaxFrameSize:I
13: aload 0
sipush 16384
putfield io.undertow.protocols.http2.Http2Channel.unackedReceiveMaxFrameSize:I
14: aload 0
iconst_0
putfield io.undertow.protocols.http2.Http2Channel.thisGoneAway:Z
15: aload 0
iconst_0
putfield io.undertow.protocols.http2.Http2Channel.peerGoneAway:Z
16: aload 0
iconst_0
putfield io.undertow.protocols.http2.Http2Channel.lastDataRead:Z
17: aload 0
aconst_null
putfield io.undertow.protocols.http2.Http2Channel.continuationParser:Lio/undertow/protocols/http2/Http2HeadersParser;
18: aload 0
iconst_0
putfield io.undertow.protocols.http2.Http2Channel.initialSettingsSent:Z
19: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
invokestatic java.util.Collections.synchronizedMap:(Ljava/util/Map;)Ljava/util/Map;
putfield io.undertow.protocols.http2.Http2Channel.attachments:Ljava/util/Map;
20: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield io.undertow.protocols.http2.Http2Channel.flowControlLock:Ljava/lang/Object;
21: aload 0
ldc 65535
putfield io.undertow.protocols.http2.Http2Channel.initialSendWindowSize:I
22: aload 0
aload 0
getfield io.undertow.protocols.http2.Http2Channel.initialSendWindowSize:I
i2l
putfield io.undertow.protocols.http2.Http2Channel.sendWindowSize:J
23: aload 0
aload 0
getfield io.undertow.protocols.http2.Http2Channel.initialReceiveWindowSize:I
putfield io.undertow.protocols.http2.Http2Channel.receiveWindowSize:I
24: aload 0
iload 5
ifeq 26
iload 6
ifeq 25
iconst_3
goto 27
StackMap locals: io.undertow.protocols.http2.Http2Channel org.xnio.StreamConnection java.lang.String io.undertow.connector.ByteBufferPool io.undertow.connector.PooledByteBuffer int int int java.nio.ByteBuffer org.xnio.OptionMap
StackMap stack: io.undertow.protocols.http2.Http2Channel
25: iconst_1
goto 27
StackMap locals:
StackMap stack: io.undertow.protocols.http2.Http2Channel
26: iconst_2
StackMap locals: io.undertow.protocols.http2.Http2Channel org.xnio.StreamConnection java.lang.String io.undertow.connector.ByteBufferPool io.undertow.connector.PooledByteBuffer int int int java.nio.ByteBuffer org.xnio.OptionMap
StackMap stack: io.undertow.protocols.http2.Http2Channel int
27: putfield io.undertow.protocols.http2.Http2Channel.streamIdCounter:I
28: aload 0
aload 9
getstatic io.undertow.UndertowOptions.HTTP2_SETTINGS_ENABLE_PUSH:Lorg/xnio/Option;
iconst_1
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;Z)Z
putfield io.undertow.protocols.http2.Http2Channel.pushEnabled:Z
29: aload 0
aload 9
getstatic io.undertow.UndertowOptions.HTTP2_SETTINGS_INITIAL_WINDOW_SIZE:Lorg/xnio/Option;
ldc 65535
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
putfield io.undertow.protocols.http2.Http2Channel.initialReceiveWindowSize:I
30: aload 0
aload 9
getstatic io.undertow.UndertowOptions.HTTP2_SETTINGS_MAX_CONCURRENT_STREAMS:Lorg/xnio/Option;
iconst_m1
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
putfield io.undertow.protocols.http2.Http2Channel.receiveMaxConcurrentStreams:I
31: aload 0
aload 2
ifnonnull 32
ldc "h2"
goto 33
StackMap locals:
StackMap stack: io.undertow.protocols.http2.Http2Channel
32: aload 2
StackMap locals: io.undertow.protocols.http2.Http2Channel org.xnio.StreamConnection java.lang.String io.undertow.connector.ByteBufferPool io.undertow.connector.PooledByteBuffer int int int java.nio.ByteBuffer org.xnio.OptionMap
StackMap stack: io.undertow.protocols.http2.Http2Channel java.lang.String
33: putfield io.undertow.protocols.http2.Http2Channel.protocol:Ljava/lang/String;
34: aload 0
aload 9
getstatic io.undertow.UndertowOptions.MAX_HEADERS:Lorg/xnio/Option;
iload 5
ifeq 35
iconst_m1
goto 36
StackMap locals: io.undertow.protocols.http2.Http2Channel org.xnio.StreamConnection java.lang.String io.undertow.connector.ByteBufferPool io.undertow.connector.PooledByteBuffer int int int java.nio.ByteBuffer org.xnio.OptionMap
StackMap stack: io.undertow.protocols.http2.Http2Channel org.xnio.OptionMap org.xnio.Option
35: sipush 200
StackMap locals: io.undertow.protocols.http2.Http2Channel org.xnio.StreamConnection java.lang.String io.undertow.connector.ByteBufferPool io.undertow.connector.PooledByteBuffer int int int java.nio.ByteBuffer org.xnio.OptionMap
StackMap stack: io.undertow.protocols.http2.Http2Channel org.xnio.OptionMap org.xnio.Option int
36: invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
putfield io.undertow.protocols.http2.Http2Channel.maxHeaders:I
37: aload 0
aload 9
getstatic io.undertow.UndertowOptions.HTTP2_SETTINGS_HEADER_TABLE_SIZE:Lorg/xnio/Option;
sipush 4096
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
putfield io.undertow.protocols.http2.Http2Channel.encoderHeaderTableSize:I
38: aload 0
aload 9
getstatic io.undertow.UndertowOptions.HTTP2_SETTINGS_MAX_FRAME_SIZE:Lorg/xnio/Option;
sipush 16384
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
putfield io.undertow.protocols.http2.Http2Channel.receiveMaxFrameSize:I
39: aload 0
aload 9
getstatic io.undertow.UndertowOptions.HTTP2_PADDING_SIZE:Lorg/xnio/Option;
iconst_0
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
putfield io.undertow.protocols.http2.Http2Channel.maxPadding:I
40: aload 0
aload 9
getstatic io.undertow.UndertowOptions.HTTP2_SETTINGS_MAX_HEADER_LIST_SIZE:Lorg/xnio/Option;
aload 9
getstatic io.undertow.UndertowOptions.MAX_HEADER_SIZE:Lorg/xnio/Option;
iconst_m1
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
putfield io.undertow.protocols.http2.Http2Channel.maxHeaderListSize:I
41: aload 0
getfield io.undertow.protocols.http2.Http2Channel.maxPadding:I
ifle 44
42: aload 0
new java.security.SecureRandom
dup
invokespecial java.security.SecureRandom.<init>:()V
putfield io.undertow.protocols.http2.Http2Channel.paddingRandom:Ljava/util/Random;
43: goto 45
44: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield io.undertow.protocols.http2.Http2Channel.paddingRandom:Ljava/util/Random;
45: StackMap locals:
StackMap stack:
aload 0
new io.undertow.protocols.http2.HpackDecoder
dup
aload 0
getfield io.undertow.protocols.http2.Http2Channel.encoderHeaderTableSize:I
invokespecial io.undertow.protocols.http2.HpackDecoder.<init>:(I)V
putfield io.undertow.protocols.http2.Http2Channel.decoder:Lio/undertow/protocols/http2/HpackDecoder;
46: aload 0
new io.undertow.protocols.http2.HpackEncoder
dup
aload 0
getfield io.undertow.protocols.http2.Http2Channel.encoderHeaderTableSize:I
invokespecial io.undertow.protocols.http2.HpackEncoder.<init>:(I)V
putfield io.undertow.protocols.http2.Http2Channel.encoder:Lio/undertow/protocols/http2/HpackEncoder;
47: iload 7
ifne 49
48: aload 0
getstatic io.undertow.protocols.http2.Http2Channel.PREFACE_BYTES:[B
arraylength
putfield io.undertow.protocols.http2.Http2Channel.prefaceCount:I
49: StackMap locals:
StackMap stack:
iload 5
ifeq 60
50: aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.sendPreface:()V
51: aload 0
getstatic io.undertow.protocols.http2.Http2Channel.PREFACE_BYTES:[B
arraylength
putfield io.undertow.protocols.http2.Http2Channel.prefaceCount:I
52: aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.sendSettings:()V
53: aload 0
iconst_1
putfield io.undertow.protocols.http2.Http2Channel.initialSettingsSent:Z
54: iload 6
ifeq 63
55: new io.undertow.protocols.http2.Http2Channel$StreamHolder
dup
aconst_null
invokespecial io.undertow.protocols.http2.Http2Channel$StreamHolder.<init>:(Lio/undertow/protocols/http2/Http2StreamSinkChannel;)V
astore 10
start local 10 56: aload 10
iconst_1
putfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sinkClosed:Z
57: getstatic io.undertow.protocols.http2.Http2Channel.sendConcurrentStreamsAtomicUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.getAndIncrement:(Ljava/lang/Object;)I
pop
58: aload 0
getfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 10
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 10 59: goto 63
StackMap locals:
StackMap stack:
60: iload 6
ifeq 63
61: aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.sendSettings:()V
62: aload 0
iconst_1
putfield io.undertow.protocols.http2.Http2Channel.initialSettingsSent:Z
63: StackMap locals:
StackMap stack:
aload 8
ifnull 73
64: new io.undertow.protocols.http2.Http2SettingsParser
dup
aload 8
invokevirtual java.nio.ByteBuffer.remaining:()I
invokespecial io.undertow.protocols.http2.Http2SettingsParser.<init>:(I)V
astore 10
start local 10 65: new io.undertow.protocols.http2.Http2FrameHeaderParser
dup
aload 0
aconst_null
invokespecial io.undertow.protocols.http2.Http2FrameHeaderParser.<init>:(Lio/undertow/protocols/http2/Http2Channel;Lio/undertow/protocols/http2/Http2HeadersParser;)V
astore 11
start local 11 66: aload 11
aload 8
invokevirtual java.nio.ByteBuffer.remaining:()I
putfield io.undertow.protocols.http2.Http2FrameHeaderParser.length:I
67: aload 10
aload 8
aload 11
invokevirtual io.undertow.protocols.http2.Http2SettingsParser.parse:(Ljava/nio/ByteBuffer;Lio/undertow/protocols/http2/Http2FrameHeaderParser;)V
68: aload 0
aload 10
invokevirtual io.undertow.protocols.http2.Http2SettingsParser.getSettings:()Ljava/util/List;
invokevirtual io.undertow.protocols.http2.Http2Channel.updateSettings:(Ljava/util/List;)Z
pop
end local 11 69: goto 73
StackMap locals: io.undertow.protocols.http2.Http2Channel org.xnio.StreamConnection java.lang.String io.undertow.connector.ByteBufferPool io.undertow.connector.PooledByteBuffer int int int java.nio.ByteBuffer org.xnio.OptionMap io.undertow.protocols.http2.Http2SettingsParser
StackMap stack: java.lang.Throwable
70: astore 11
start local 11 71: aload 1
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
72: new java.lang.RuntimeException
dup
aload 11
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 11 end local 10 73: StackMap locals:
StackMap stack:
aload 9
getstatic io.undertow.UndertowOptions.REQUEST_PARSE_TIMEOUT:Lorg/xnio/Option;
iconst_m1
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
istore 10
start local 10 74: aload 9
getstatic io.undertow.UndertowOptions.NO_REQUEST_TIMEOUT:Lorg/xnio/Option;
iconst_m1
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
istore 11
start local 11 75: iload 11
ifge 78
iload 10
ifge 78
76: aload 0
aconst_null
putfield io.undertow.protocols.http2.Http2Channel.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
77: goto 80
78: StackMap locals: int int
StackMap stack:
aload 0
new io.undertow.server.protocol.ParseTimeoutUpdater
dup
aload 0
iload 10
i2l
iload 11
i2l
new io.undertow.protocols.http2.Http2Channel$1
dup
aload 0
invokespecial io.undertow.protocols.http2.Http2Channel$1.<init>:(Lio/undertow/protocols/http2/Http2Channel;)V
invokespecial io.undertow.server.protocol.ParseTimeoutUpdater.<init>:(Lorg/xnio/channels/ConnectedChannel;JJLjava/lang/Runnable;)V
putfield io.undertow.protocols.http2.Http2Channel.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
79: aload 0
new io.undertow.protocols.http2.Http2Channel$2
dup
aload 0
invokespecial io.undertow.protocols.http2.Http2Channel$2.<init>:(Lio/undertow/protocols/http2/Http2Channel;)V
invokevirtual io.undertow.protocols.http2.Http2Channel.addCloseTask:(Lorg/xnio/ChannelListener;)V
80: StackMap locals:
StackMap stack:
return
end local 11 end local 10 end local 9 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 81 0 this Lio/undertow/protocols/http2/Http2Channel;
0 81 1 connectedStreamChannel Lorg/xnio/StreamConnection;
0 81 2 protocol Ljava/lang/String;
0 81 3 bufferPool Lio/undertow/connector/ByteBufferPool;
0 81 4 data Lio/undertow/connector/PooledByteBuffer;
0 81 5 clientSide Z
0 81 6 fromUpgrade Z
0 81 7 prefaceRequired Z
0 81 8 initialOtherSideSettings Ljava/nio/ByteBuffer;
0 81 9 settings Lorg/xnio/OptionMap;
56 59 10 streamHolder Lio/undertow/protocols/http2/Http2Channel$StreamHolder;
65 73 10 parser Lio/undertow/protocols/http2/Http2SettingsParser;
66 69 11 headerParser Lio/undertow/protocols/http2/Http2FrameHeaderParser;
71 73 11 e Ljava/lang/Throwable;
74 81 10 requestParseTimeout I
75 81 11 requestIdleTimeout I
Exception table:
from to target type
65 69 70 Class java.lang.Throwable
MethodParameters:
Name Flags
connectedStreamChannel
protocol
bufferPool
data
clientSide
fromUpgrade
prefaceRequired
initialOtherSideSettings
settings
private void sendSettings();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aload 1
new io.undertow.protocols.http2.Http2Setting
dup
iconst_1
aload 0
getfield io.undertow.protocols.http2.Http2Channel.encoderHeaderTableSize:I
i2l
invokespecial io.undertow.protocols.http2.Http2Setting.<init>:(IJ)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.isClient:()Z
ifeq 7
3: aload 1
4: new io.undertow.protocols.http2.Http2Setting
dup
iconst_2
aload 0
getfield io.undertow.protocols.http2.Http2Channel.pushEnabled:Z
ifeq 5
iconst_1
goto 6
StackMap locals: io.undertow.protocols.http2.Http2Channel java.util.List
StackMap stack: java.util.List new 4 new 4 int
5: iconst_0
StackMap locals: io.undertow.protocols.http2.Http2Channel java.util.List
StackMap stack: java.util.List new 4 new 4 int int
6: i2l
invokespecial io.undertow.protocols.http2.Http2Setting.<init>:(IJ)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: StackMap locals:
StackMap stack:
aload 1
new io.undertow.protocols.http2.Http2Setting
dup
iconst_5
aload 0
getfield io.undertow.protocols.http2.Http2Channel.receiveMaxFrameSize:I
i2l
invokespecial io.undertow.protocols.http2.Http2Setting.<init>:(IJ)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
8: aload 1
new io.undertow.protocols.http2.Http2Setting
dup
iconst_4
aload 0
getfield io.undertow.protocols.http2.Http2Channel.initialReceiveWindowSize:I
i2l
invokespecial io.undertow.protocols.http2.Http2Setting.<init>:(IJ)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
9: aload 0
getfield io.undertow.protocols.http2.Http2Channel.maxHeaderListSize:I
ifle 11
10: aload 1
new io.undertow.protocols.http2.Http2Setting
dup
bipush 6
aload 0
getfield io.undertow.protocols.http2.Http2Channel.maxHeaderListSize:I
i2l
invokespecial io.undertow.protocols.http2.Http2Setting.<init>:(IJ)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
11: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.http2.Http2Channel.receiveMaxConcurrentStreams:I
ifle 13
12: aload 1
new io.undertow.protocols.http2.Http2Setting
dup
iconst_3
aload 0
getfield io.undertow.protocols.http2.Http2Channel.receiveMaxConcurrentStreams:I
i2l
invokespecial io.undertow.protocols.http2.Http2Setting.<init>:(IJ)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
13: StackMap locals:
StackMap stack:
new io.undertow.protocols.http2.Http2SettingsStreamSinkChannel
dup
aload 0
aload 1
invokespecial io.undertow.protocols.http2.Http2SettingsStreamSinkChannel.<init>:(Lio/undertow/protocols/http2/Http2Channel;Ljava/util/List;)V
astore 2
start local 2 14: aload 0
aload 2
invokevirtual io.undertow.protocols.http2.Http2Channel.flushChannelIgnoreFailure:(Lorg/xnio/channels/StreamSinkChannel;)V
15: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lio/undertow/protocols/http2/Http2Channel;
1 16 1 settings Ljava/util/List<Lio/undertow/protocols/http2/Http2Setting;>;
14 16 2 stream Lio/undertow/protocols/http2/Http2SettingsStreamSinkChannel;
private void sendSettingsAck();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.initialSettingsSent:Z
ifne 3
1: aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.sendSettings:()V
2: aload 0
iconst_1
putfield io.undertow.protocols.http2.Http2Channel.initialSettingsSent:Z
3: StackMap locals:
StackMap stack:
new io.undertow.protocols.http2.Http2SettingsStreamSinkChannel
dup
aload 0
invokespecial io.undertow.protocols.http2.Http2SettingsStreamSinkChannel.<init>:(Lio/undertow/protocols/http2/Http2Channel;)V
astore 1
start local 1 4: aload 0
aload 1
invokevirtual io.undertow.protocols.http2.Http2Channel.flushChannelIgnoreFailure:(Lorg/xnio/channels/StreamSinkChannel;)V
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/undertow/protocols/http2/Http2Channel;
4 6 1 stream Lio/undertow/protocols/http2/Http2SettingsStreamSinkChannel;
private void flushChannelIgnoreFailure(org.xnio.channels.StreamSinkChannel);
descriptor: (Lorg/xnio/channels/StreamSinkChannel;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual io.undertow.protocols.http2.Http2Channel.flushChannel:(Lorg/xnio/channels/StreamSinkChannel;)V
1: goto 7
StackMap locals:
StackMap stack: java.io.IOException
2: astore 2
start local 2 3: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
aload 2
invokeinterface io.undertow.UndertowLogger.ioException:(Ljava/io/IOException;)V
end local 2 4: goto 7
5: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
start local 2 6: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
aload 2
invokeinterface io.undertow.UndertowLogger.handleUnexpectedFailure:(Ljava/lang/Throwable;)V
end local 2 7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/undertow/protocols/http2/Http2Channel;
0 8 1 stream Lorg/xnio/channels/StreamSinkChannel;
3 4 2 e Ljava/io/IOException;
6 7 2 t Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.io.IOException
0 1 5 Class java.lang.Throwable
MethodParameters:
Name Flags
stream
private void flushChannel(org.xnio.channels.StreamSinkChannel);
descriptor: (Lorg/xnio/channels/StreamSinkChannel;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface org.xnio.channels.StreamSinkChannel.shutdownWrites:()V
1: aload 1
invokeinterface org.xnio.channels.StreamSinkChannel.flush:()Z
ifne 4
2: aload 1
invokeinterface org.xnio.channels.StreamSinkChannel.getWriteSetter:()Lorg/xnio/ChannelListener$Setter;
aconst_null
aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.writeExceptionHandler:()Lorg/xnio/ChannelExceptionHandler;
invokestatic org.xnio.ChannelListeners.flushingChannelListener:(Lorg/xnio/ChannelListener;Lorg/xnio/ChannelExceptionHandler;)Lorg/xnio/ChannelListener;
invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
3: aload 1
invokeinterface org.xnio.channels.StreamSinkChannel.resumeWrites:()V
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/undertow/protocols/http2/Http2Channel;
0 5 1 stream Lorg/xnio/channels/StreamSinkChannel;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
stream
private void sendPreface();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: new io.undertow.protocols.http2.Http2PrefaceStreamSinkChannel
dup
aload 0
invokespecial io.undertow.protocols.http2.Http2PrefaceStreamSinkChannel.<init>:(Lio/undertow/protocols/http2/Http2Channel;)V
astore 1
start local 1 1: aload 0
aload 1
invokevirtual io.undertow.protocols.http2.Http2Channel.flushChannelIgnoreFailure:(Lorg/xnio/channels/StreamSinkChannel;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/protocols/http2/Http2Channel;
1 3 1 preface Lio/undertow/protocols/http2/Http2PrefaceStreamSinkChannel;
protected io.undertow.protocols.http2.AbstractHttp2StreamSourceChannel (io.undertow.server.protocol.framed.FrameHeaderData, io.undertow.connector.PooledByteBuffer);
descriptor: (Lio/undertow/server/protocol/framed/FrameHeaderData;Lio/undertow/connector/PooledByteBuffer;)Lio/undertow/protocols/http2/AbstractHttp2StreamSourceChannel;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual io.undertow.protocols.http2.Http2Channel.createChannelImpl:(Lio/undertow/server/protocol/framed/FrameHeaderData;Lio/undertow/connector/PooledByteBuffer;)Lio/undertow/protocols/http2/AbstractHttp2StreamSourceChannel;
astore 3
start local 3 1: aload 3
instanceof io.undertow.protocols.http2.Http2StreamSourceChannel
ifeq 8
2: aload 0
getfield io.undertow.protocols.http2.Http2Channel.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
ifnull 8
3: aload 3
ifnull 6
4: aload 0
getfield io.undertow.protocols.http2.Http2Channel.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
invokevirtual io.undertow.server.protocol.ParseTimeoutUpdater.requestStarted:()V
5: goto 8
StackMap locals: io.undertow.protocols.http2.AbstractHttp2StreamSourceChannel
StackMap stack:
6: aload 0
getfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
invokeinterface java.util.Map.isEmpty:()Z
ifeq 8
7: aload 0
getfield io.undertow.protocols.http2.Http2Channel.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
invokevirtual io.undertow.server.protocol.ParseTimeoutUpdater.failedParse:()V
8: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/undertow/protocols/http2/Http2Channel;
0 9 1 frameHeaderData Lio/undertow/server/protocol/framed/FrameHeaderData;
0 9 2 frameData Lio/undertow/connector/PooledByteBuffer;
1 9 3 channel Lio/undertow/protocols/http2/AbstractHttp2StreamSourceChannel;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
frameHeaderData
frameData
protected io.undertow.protocols.http2.AbstractHttp2StreamSourceChannel (io.undertow.server.protocol.framed.FrameHeaderData, io.undertow.connector.PooledByteBuffer);
descriptor: (Lio/undertow/server/protocol/framed/FrameHeaderData;Lio/undertow/connector/PooledByteBuffer;)Lio/undertow/protocols/http2/AbstractHttp2StreamSourceChannel;
flags: (0x0004) ACC_PROTECTED
Code:
stack=9, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast io.undertow.protocols.http2.Http2FrameHeaderParser
astore 3
start local 3 1: aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.type:I
ifne 5
2: aload 0
iconst_1
invokevirtual io.undertow.protocols.http2.Http2Channel.sendGoAway:(I)V
3: getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
ldc "Dropping Frame of length %s for stream %s"
aload 3
invokevirtual io.undertow.protocols.http2.Http2FrameHeaderParser.getFrameLength:()J
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.streamId:I
i2l
invokeinterface io.undertow.UndertowLogger.tracef:(Ljava/lang/String;JJ)V
4: aconst_null
areturn
5: StackMap locals: io.undertow.protocols.http2.Http2FrameHeaderParser
StackMap stack:
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.type:I
tableswitch { // 1 - 9
1: 13
2: 104
3: 59
4: 69
5: 6
6: 80
7: 87
8: 100
9: 6
default: 110
}
6: StackMap locals:
StackMap stack:
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.parser:Lio/undertow/protocols/http2/Http2PushBackParser;
instanceof io.undertow.protocols.http2.Http2PushPromiseParser
ifeq 13
7: aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.isClient:()Z
ifne 10
8: aload 0
iconst_1
invokevirtual io.undertow.protocols.http2.Http2Channel.sendGoAway:(I)V
9: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.serverReceivedPushPromise:()Ljava/io/IOException;
athrow
10: StackMap locals:
StackMap stack:
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.parser:Lio/undertow/protocols/http2/Http2PushBackParser;
checkcast io.undertow.protocols.http2.Http2PushPromiseParser
astore 5
start local 5 11: new io.undertow.protocols.http2.Http2PushPromiseStreamSourceChannel
dup
aload 0
aload 2
aload 3
invokevirtual io.undertow.protocols.http2.Http2FrameHeaderParser.getFrameLength:()J
aload 5
invokevirtual io.undertow.protocols.http2.Http2PushPromiseParser.getHeaderMap:()Lio/undertow/util/HeaderMap;
aload 5
invokevirtual io.undertow.protocols.http2.Http2PushPromiseParser.getPromisedStreamId:()I
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.streamId:I
invokespecial io.undertow.protocols.http2.Http2PushPromiseStreamSourceChannel.<init>:(Lio/undertow/protocols/http2/Http2Channel;Lio/undertow/connector/PooledByteBuffer;JLio/undertow/util/HeaderMap;II)V
astore 4
start local 4 12: goto 113
end local 5 end local 4 13: StackMap locals:
StackMap stack:
aload 0
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.streamId:I
invokevirtual io.undertow.protocols.http2.Http2Channel.isIdle:(I)Z
ifne 24
14: aload 0
getfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.streamId:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast io.undertow.protocols.http2.Http2Channel$StreamHolder
astore 5
start local 5 15: aload 5
ifnull 16
aload 5
getfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sourceClosed:Z
ifeq 19
16: StackMap locals: io.undertow.protocols.http2.Http2Channel io.undertow.server.protocol.framed.FrameHeaderData io.undertow.connector.PooledByteBuffer io.undertow.protocols.http2.Http2FrameHeaderParser top io.undertow.protocols.http2.Http2Channel$StreamHolder
StackMap stack:
aload 0
iconst_1
invokevirtual io.undertow.protocols.http2.Http2Channel.sendGoAway:(I)V
17: aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
18: aconst_null
areturn
19: StackMap locals:
StackMap stack:
aload 5
getfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sourceChannel:Lio/undertow/protocols/http2/Http2StreamSourceChannel;
ifnull 34
20: aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.flags:I
iconst_1
invokestatic org.xnio.Bits.allAreSet:(II)Z
ifne 34
21: aload 0
iconst_1
invokevirtual io.undertow.protocols.http2.Http2Channel.sendGoAway:(I)V
22: aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
23: aconst_null
areturn
end local 5 24: StackMap locals: io.undertow.protocols.http2.Http2Channel io.undertow.server.protocol.framed.FrameHeaderData io.undertow.connector.PooledByteBuffer io.undertow.protocols.http2.Http2FrameHeaderParser
StackMap stack:
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.streamId:I
aload 0
getfield io.undertow.protocols.http2.Http2Channel.lastGoodStreamId:I
if_icmpge 28
25: aload 0
iconst_1
invokevirtual io.undertow.protocols.http2.Http2Channel.sendGoAway:(I)V
26: aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
27: aconst_null
areturn
28: StackMap locals:
StackMap stack:
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.streamId:I
iconst_2
irem
aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.isClient:()Z
ifeq 29
iconst_1
goto 30
StackMap locals:
StackMap stack: int
29: iconst_0
StackMap locals: io.undertow.protocols.http2.Http2Channel io.undertow.server.protocol.framed.FrameHeaderData io.undertow.connector.PooledByteBuffer io.undertow.protocols.http2.Http2FrameHeaderParser
StackMap stack: int int
30: if_icmpne 34
31: aload 0
iconst_1
invokevirtual io.undertow.protocols.http2.Http2Channel.sendGoAway:(I)V
32: aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
33: aconst_null
areturn
34: StackMap locals:
StackMap stack:
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.parser:Lio/undertow/protocols/http2/Http2PushBackParser;
checkcast io.undertow.protocols.http2.Http2HeadersParser
astore 5
start local 5 35: new io.undertow.protocols.http2.Http2StreamSourceChannel
dup
aload 0
aload 2
aload 1
invokeinterface io.undertow.server.protocol.framed.FrameHeaderData.getFrameLength:()J
aload 5
invokevirtual io.undertow.protocols.http2.Http2HeadersParser.getHeaderMap:()Lio/undertow/util/HeaderMap;
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.streamId:I
invokespecial io.undertow.protocols.http2.Http2StreamSourceChannel.<init>:(Lio/undertow/protocols/http2/Http2Channel;Lio/undertow/connector/PooledByteBuffer;JLio/undertow/util/HeaderMap;I)V
astore 4
start local 4 36: aload 0
aload 0
getfield io.undertow.protocols.http2.Http2Channel.lastGoodStreamId:I
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.streamId:I
invokestatic java.lang.Math.max:(II)I
putfield io.undertow.protocols.http2.Http2Channel.lastGoodStreamId:I
37: aload 0
getfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.streamId:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast io.undertow.protocols.http2.Http2Channel$StreamHolder
astore 6
start local 6 38: aload 6
ifnonnull 42
39: getstatic io.undertow.protocols.http2.Http2Channel.receiveConcurrentStreamsAtomicUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.getAndIncrement:(Ljava/lang/Object;)I
pop
40: aload 0
getfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.streamId:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
new io.undertow.protocols.http2.Http2Channel$StreamHolder
dup
aload 4
checkcast io.undertow.protocols.http2.Http2StreamSourceChannel
invokespecial io.undertow.protocols.http2.Http2Channel$StreamHolder.<init>:(Lio/undertow/protocols/http2/Http2StreamSourceChannel;)V
dup
astore 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
41: goto 43
42: StackMap locals: io.undertow.protocols.http2.AbstractHttp2StreamSourceChannel io.undertow.protocols.http2.Http2HeadersParser io.undertow.protocols.http2.Http2Channel$StreamHolder
StackMap stack:
aload 6
aload 4
checkcast io.undertow.protocols.http2.Http2StreamSourceChannel
putfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sourceChannel:Lio/undertow/protocols/http2/Http2StreamSourceChannel;
43: StackMap locals:
StackMap stack:
aload 5
invokevirtual io.undertow.protocols.http2.Http2HeadersParser.isHeadersEndStream:()Z
ifeq 51
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.flags:I
iconst_4
invokestatic org.xnio.Bits.allAreSet:(II)Z
ifeq 51
44: aload 4
invokevirtual io.undertow.protocols.http2.AbstractHttp2StreamSourceChannel.lastFrame:()V
45: aload 6
aconst_null
putfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sourceChannel:Lio/undertow/protocols/http2/Http2StreamSourceChannel;
46: aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.isClient:()Z
ifeq 47
ldc "100"
aload 5
invokevirtual io.undertow.protocols.http2.Http2HeadersParser.getHeaderMap:()Lio/undertow/util/HeaderMap;
getstatic io.undertow.protocols.http2.Http2Channel.STATUS:Lio/undertow/util/HttpString;
invokevirtual io.undertow.util.HeaderMap.getFirst:(Lio/undertow/util/HttpString;)Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 51
47: StackMap locals:
StackMap stack:
aload 6
iconst_1
putfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sourceClosed:Z
48: aload 6
getfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sinkClosed:Z
ifeq 51
49: getstatic io.undertow.protocols.http2.Http2Channel.receiveConcurrentStreamsAtomicUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.getAndDecrement:(Ljava/lang/Object;)I
pop
50: aload 0
getfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.streamId:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
51: StackMap locals:
StackMap stack:
aload 5
invokevirtual io.undertow.protocols.http2.Http2HeadersParser.isInvalid:()Z
ifeq 55
52: aload 4
iconst_1
invokevirtual io.undertow.protocols.http2.AbstractHttp2StreamSourceChannel.rstStream:(I)V
53: aload 0
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.streamId:I
iconst_1
invokevirtual io.undertow.protocols.http2.Http2Channel.sendRstStream:(II)V
54: aconst_null
astore 4
55: StackMap locals:
StackMap stack:
aload 5
invokevirtual io.undertow.protocols.http2.Http2HeadersParser.getDependentStreamId:()I
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.streamId:I
if_icmpne 113
56: aload 0
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.streamId:I
iconst_1
invokevirtual io.undertow.protocols.http2.Http2Channel.sendRstStream:(II)V
57: aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
58: aconst_null
areturn
end local 6 end local 5 end local 4 59: StackMap locals:
StackMap stack:
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.parser:Lio/undertow/protocols/http2/Http2PushBackParser;
checkcast io.undertow.protocols.http2.Http2RstStreamParser
astore 5
start local 5 60: aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.streamId:I
ifne 64
61: aload 2
ifnull 63
62: aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
63: StackMap locals: io.undertow.protocols.http2.Http2Channel io.undertow.server.protocol.framed.FrameHeaderData io.undertow.connector.PooledByteBuffer io.undertow.protocols.http2.Http2FrameHeaderParser top io.undertow.protocols.http2.Http2RstStreamParser
StackMap stack:
new io.undertow.protocols.http2.ConnectionErrorException
dup
iconst_1
getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
iconst_3
invokeinterface io.undertow.UndertowMessages.streamIdMustNotBeZeroForFrameType:(I)Ljava/lang/String;
invokespecial io.undertow.protocols.http2.ConnectionErrorException.<init>:(ILjava/lang/String;)V
athrow
64: StackMap locals:
StackMap stack:
new io.undertow.protocols.http2.Http2RstStreamStreamSourceChannel
dup
aload 0
aload 2
aload 5
invokevirtual io.undertow.protocols.http2.Http2RstStreamParser.getErrorCode:()I
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.streamId:I
invokespecial io.undertow.protocols.http2.Http2RstStreamStreamSourceChannel.<init>:(Lio/undertow/protocols/http2/Http2Channel;Lio/undertow/connector/PooledByteBuffer;II)V
astore 4
start local 4 65: aload 0
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.streamId:I
invokevirtual io.undertow.protocols.http2.Http2Channel.handleRstStream:(I)V
66: aload 0
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.streamId:I
invokevirtual io.undertow.protocols.http2.Http2Channel.isIdle:(I)Z
ifeq 113
67: aload 0
iconst_1
invokevirtual io.undertow.protocols.http2.Http2Channel.sendGoAway:(I)V
68: goto 113
end local 5 end local 4 69: StackMap locals: io.undertow.protocols.http2.Http2Channel io.undertow.server.protocol.framed.FrameHeaderData io.undertow.connector.PooledByteBuffer io.undertow.protocols.http2.Http2FrameHeaderParser
StackMap stack:
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.flags:I
iconst_1
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifne 73
70: aload 0
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.parser:Lio/undertow/protocols/http2/Http2PushBackParser;
checkcast io.undertow.protocols.http2.Http2SettingsParser
invokevirtual io.undertow.protocols.http2.Http2SettingsParser.getSettings:()Ljava/util/List;
invokevirtual io.undertow.protocols.http2.Http2Channel.updateSettings:(Ljava/util/List;)Z
ifeq 77
71: aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.sendSettingsAck:()V
72: goto 77
StackMap locals:
StackMap stack:
73: aload 1
invokeinterface io.undertow.server.protocol.framed.FrameHeaderData.getFrameLength:()J
lconst_0
lcmp
ifeq 77
74: aload 0
bipush 6
invokevirtual io.undertow.protocols.http2.Http2Channel.sendGoAway:(I)V
75: aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
76: aconst_null
areturn
77: StackMap locals:
StackMap stack:
new io.undertow.protocols.http2.Http2SettingsStreamSourceChannel
dup
aload 0
aload 2
aload 3
invokevirtual io.undertow.protocols.http2.Http2FrameHeaderParser.getFrameLength:()J
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.parser:Lio/undertow/protocols/http2/Http2PushBackParser;
checkcast io.undertow.protocols.http2.Http2SettingsParser
invokevirtual io.undertow.protocols.http2.Http2SettingsParser.getSettings:()Ljava/util/List;
invokespecial io.undertow.protocols.http2.Http2SettingsStreamSourceChannel.<init>:(Lio/undertow/protocols/http2/Http2Channel;Lio/undertow/connector/PooledByteBuffer;JLjava/util/List;)V
astore 4
start local 4 78: aload 0
aload 0
getfield io.undertow.protocols.http2.Http2Channel.receiveMaxFrameSize:I
putfield io.undertow.protocols.http2.Http2Channel.unackedReceiveMaxFrameSize:I
79: goto 113
end local 4 80: StackMap locals:
StackMap stack:
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.parser:Lio/undertow/protocols/http2/Http2PushBackParser;
checkcast io.undertow.protocols.http2.Http2PingParser
astore 5
start local 5 81: aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
82: aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.flags:I
iconst_1
invokestatic org.xnio.Bits.anyAreSet:(II)Z
istore 6
start local 6 83: new io.undertow.protocols.http2.Http2PingStreamSourceChannel
dup
aload 0
aload 5
invokevirtual io.undertow.protocols.http2.Http2PingParser.getData:()[B
iload 6
invokespecial io.undertow.protocols.http2.Http2PingStreamSourceChannel.<init>:(Lio/undertow/protocols/http2/Http2Channel;[BZ)V
astore 4
start local 4 84: iload 6
ifne 113
85: aload 0
aload 5
invokevirtual io.undertow.protocols.http2.Http2PingParser.getData:()[B
aconst_null
iconst_1
invokevirtual io.undertow.protocols.http2.Http2Channel.sendPing:([BLorg/xnio/ChannelExceptionHandler;Z)V
86: goto 113
end local 6 end local 5 end local 4 87: StackMap locals:
StackMap stack:
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.parser:Lio/undertow/protocols/http2/Http2PushBackParser;
checkcast io.undertow.protocols.http2.Http2GoAwayParser
astore 5
start local 5 88: new io.undertow.protocols.http2.Http2GoAwayStreamSourceChannel
dup
aload 0
aload 2
aload 3
invokevirtual io.undertow.protocols.http2.Http2FrameHeaderParser.getFrameLength:()J
aload 5
invokevirtual io.undertow.protocols.http2.Http2GoAwayParser.getStatusCode:()I
aload 5
invokevirtual io.undertow.protocols.http2.Http2GoAwayParser.getLastGoodStreamId:()I
invokespecial io.undertow.protocols.http2.Http2GoAwayStreamSourceChannel.<init>:(Lio/undertow/protocols/http2/Http2Channel;Lio/undertow/connector/PooledByteBuffer;JII)V
astore 4
start local 4 89: aload 0
iconst_1
putfield io.undertow.protocols.http2.Http2Channel.peerGoneAway:Z
90: aload 0
getfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 7
goto 96
StackMap locals: io.undertow.protocols.http2.Http2Channel io.undertow.server.protocol.framed.FrameHeaderData io.undertow.connector.PooledByteBuffer io.undertow.protocols.http2.Http2FrameHeaderParser io.undertow.protocols.http2.AbstractHttp2StreamSourceChannel io.undertow.protocols.http2.Http2GoAwayParser top java.util.Iterator
StackMap stack:
91: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.undertow.protocols.http2.Http2Channel$StreamHolder
astore 6
start local 6 92: aload 6
getfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sourceChannel:Lio/undertow/protocols/http2/Http2StreamSourceChannel;
ifnull 94
93: aload 6
getfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sourceChannel:Lio/undertow/protocols/http2/Http2StreamSourceChannel;
invokevirtual io.undertow.protocols.http2.Http2StreamSourceChannel.rstStream:()V
94: StackMap locals: io.undertow.protocols.http2.Http2Channel io.undertow.server.protocol.framed.FrameHeaderData io.undertow.connector.PooledByteBuffer io.undertow.protocols.http2.Http2FrameHeaderParser io.undertow.protocols.http2.AbstractHttp2StreamSourceChannel io.undertow.protocols.http2.Http2GoAwayParser io.undertow.protocols.http2.Http2Channel$StreamHolder java.util.Iterator
StackMap stack:
aload 6
getfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sinkChannel:Lio/undertow/protocols/http2/Http2StreamSinkChannel;
ifnull 96
95: aload 6
getfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sinkChannel:Lio/undertow/protocols/http2/Http2StreamSinkChannel;
invokevirtual io.undertow.protocols.http2.Http2StreamSinkChannel.rstStream:()V
end local 6 96: StackMap locals: io.undertow.protocols.http2.Http2Channel io.undertow.server.protocol.framed.FrameHeaderData io.undertow.connector.PooledByteBuffer io.undertow.protocols.http2.Http2FrameHeaderParser io.undertow.protocols.http2.AbstractHttp2StreamSourceChannel io.undertow.protocols.http2.Http2GoAwayParser top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 91
97: aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
98: aload 0
iconst_0
invokevirtual io.undertow.protocols.http2.Http2Channel.sendGoAway:(I)V
99: goto 113
end local 5 end local 4 100: StackMap locals: io.undertow.protocols.http2.Http2Channel io.undertow.server.protocol.framed.FrameHeaderData io.undertow.connector.PooledByteBuffer io.undertow.protocols.http2.Http2FrameHeaderParser
StackMap stack:
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.parser:Lio/undertow/protocols/http2/Http2PushBackParser;
checkcast io.undertow.protocols.http2.Http2WindowUpdateParser
astore 5
start local 5 101: aload 0
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.streamId:I
aload 5
invokevirtual io.undertow.protocols.http2.Http2WindowUpdateParser.getDeltaWindowSize:()I
invokevirtual io.undertow.protocols.http2.Http2Channel.handleWindowUpdate:(II)V
102: aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
103: aconst_null
areturn
end local 5 104: StackMap locals:
StackMap stack:
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.parser:Lio/undertow/protocols/http2/Http2PushBackParser;
checkcast io.undertow.protocols.http2.Http2PriorityParser
astore 5
start local 5 105: aload 5
invokevirtual io.undertow.protocols.http2.Http2PriorityParser.getStreamDependency:()I
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.streamId:I
if_icmpne 108
106: aload 0
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.streamId:I
iconst_1
invokevirtual io.undertow.protocols.http2.Http2Channel.sendRstStream:(II)V
107: aconst_null
areturn
108: StackMap locals: io.undertow.protocols.http2.Http2Channel io.undertow.server.protocol.framed.FrameHeaderData io.undertow.connector.PooledByteBuffer io.undertow.protocols.http2.Http2FrameHeaderParser top io.undertow.protocols.http2.Http2PriorityParser
StackMap stack:
aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
109: aconst_null
areturn
end local 5 110: StackMap locals: io.undertow.protocols.http2.Http2Channel io.undertow.server.protocol.framed.FrameHeaderData io.undertow.connector.PooledByteBuffer io.undertow.protocols.http2.Http2FrameHeaderParser
StackMap stack:
getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
ldc "Dropping frame of length %s and type %s for stream %s as we do not understand this type of frame"
aload 3
invokevirtual io.undertow.protocols.http2.Http2FrameHeaderParser.getFrameLength:()J
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.type:I
i2l
aload 3
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.streamId:I
i2l
invokeinterface io.undertow.UndertowLogger.tracef:(Ljava/lang/String;JJJ)V
111: aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
112: aconst_null
areturn
start local 4 113: StackMap locals: io.undertow.protocols.http2.AbstractHttp2StreamSourceChannel
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 114 0 this Lio/undertow/protocols/http2/Http2Channel;
0 114 1 frameHeaderData Lio/undertow/server/protocol/framed/FrameHeaderData;
0 114 2 frameData Lio/undertow/connector/PooledByteBuffer;
1 114 3 frameParser Lio/undertow/protocols/http2/Http2FrameHeaderParser;
12 13 4 channel Lio/undertow/protocols/http2/AbstractHttp2StreamSourceChannel;
36 59 4 channel Lio/undertow/protocols/http2/AbstractHttp2StreamSourceChannel;
65 69 4 channel Lio/undertow/protocols/http2/AbstractHttp2StreamSourceChannel;
78 80 4 channel Lio/undertow/protocols/http2/AbstractHttp2StreamSourceChannel;
84 87 4 channel Lio/undertow/protocols/http2/AbstractHttp2StreamSourceChannel;
89 100 4 channel Lio/undertow/protocols/http2/AbstractHttp2StreamSourceChannel;
113 114 4 channel Lio/undertow/protocols/http2/AbstractHttp2StreamSourceChannel;
11 13 5 pushPromiseParser Lio/undertow/protocols/http2/Http2PushPromiseParser;
15 24 5 existing Lio/undertow/protocols/http2/Http2Channel$StreamHolder;
35 59 5 parser Lio/undertow/protocols/http2/Http2HeadersParser;
38 59 6 holder Lio/undertow/protocols/http2/Http2Channel$StreamHolder;
60 69 5 parser Lio/undertow/protocols/http2/Http2RstStreamParser;
81 87 5 pingParser Lio/undertow/protocols/http2/Http2PingParser;
83 87 6 ack Z
88 100 5 http2GoAwayParser Lio/undertow/protocols/http2/Http2GoAwayParser;
92 96 6 holder Lio/undertow/protocols/http2/Http2Channel$StreamHolder;
101 104 5 parser Lio/undertow/protocols/http2/Http2WindowUpdateParser;
105 110 5 parser Lio/undertow/protocols/http2/Http2PriorityParser;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
frameHeaderData
frameData
protected io.undertow.server.protocol.framed.FrameHeaderData (java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Lio/undertow/server/protocol/framed/FrameHeaderData;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.prefaceCount:I
getstatic io.undertow.protocols.http2.Http2Channel.PREFACE_BYTES:[B
arraylength
if_icmpge 7
1: goto 6
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.get:()B
getstatic io.undertow.protocols.http2.Http2Channel.PREFACE_BYTES:[B
aload 0
getfield io.undertow.protocols.http2.Http2Channel.prefaceCount:I
baload
if_icmpeq 5
3: aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.getUnderlyingConnection:()Lorg/xnio/StreamConnection;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
4: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.incorrectHttp2Preface:()Ljava/io/IOException;
athrow
5: StackMap locals:
StackMap stack:
aload 0
dup
getfield io.undertow.protocols.http2.Http2Channel.prefaceCount:I
iconst_1
iadd
putfield io.undertow.protocols.http2.Http2Channel.prefaceCount:I
6: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 7
aload 0
getfield io.undertow.protocols.http2.Http2Channel.prefaceCount:I
getstatic io.undertow.protocols.http2.Http2Channel.PREFACE_BYTES:[B
arraylength
if_icmplt 2
7: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.http2.Http2Channel.frameParser:Lio/undertow/protocols/http2/Http2FrameHeaderParser;
astore 2
start local 2 8: aload 2
ifnonnull 11
9: aload 0
new io.undertow.protocols.http2.Http2FrameHeaderParser
dup
aload 0
aload 0
getfield io.undertow.protocols.http2.Http2Channel.continuationParser:Lio/undertow/protocols/http2/Http2HeadersParser;
invokespecial io.undertow.protocols.http2.Http2FrameHeaderParser.<init>:(Lio/undertow/protocols/http2/Http2Channel;Lio/undertow/protocols/http2/Http2HeadersParser;)V
dup
astore 2
putfield io.undertow.protocols.http2.Http2Channel.frameParser:Lio/undertow/protocols/http2/Http2FrameHeaderParser;
10: aload 0
aconst_null
putfield io.undertow.protocols.http2.Http2Channel.continuationParser:Lio/undertow/protocols/http2/Http2HeadersParser;
11: StackMap locals: io.undertow.protocols.http2.Http2FrameHeaderParser
StackMap stack:
aload 2
aload 1
invokevirtual io.undertow.protocols.http2.Http2FrameHeaderParser.handle:(Ljava/nio/ByteBuffer;)Z
ifne 13
12: aconst_null
areturn
13: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.http2.Http2Channel.initialSettingsReceived:Z
ifne 19
14: aload 2
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.type:I
iconst_4
if_icmpeq 18
15: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
aload 2
getfield io.undertow.protocols.http2.Http2FrameHeaderParser.type:I
invokeinterface io.undertow.UndertowLogger.remoteEndpointFailedToSendInitialSettings:(I)V
16: aload 0
new java.io.IOException
dup
invokespecial java.io.IOException.<init>:()V
invokevirtual io.undertow.protocols.http2.Http2Channel.markReadsBroken:(Ljava/lang/Throwable;)V
17: goto 19
18: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield io.undertow.protocols.http2.Http2Channel.initialSettingsReceived:Z
19: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield io.undertow.protocols.http2.Http2Channel.frameParser:Lio/undertow/protocols/http2/Http2FrameHeaderParser;
20: aload 2
invokevirtual io.undertow.protocols.http2.Http2FrameHeaderParser.getActualLength:()I
aload 0
getfield io.undertow.protocols.http2.Http2Channel.receiveMaxFrameSize:I
if_icmple 23
aload 2
invokevirtual io.undertow.protocols.http2.Http2FrameHeaderParser.getActualLength:()I
aload 0
getfield io.undertow.protocols.http2.Http2Channel.unackedReceiveMaxFrameSize:I
if_icmple 23
21: aload 0
bipush 6
invokevirtual io.undertow.protocols.http2.Http2Channel.sendGoAway:(I)V
22: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.http2FrameTooLarge:()Ljava/io/IOException;
athrow
23: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.undertow.protocols.http2.Http2FrameHeaderParser.getContinuationParser:()Lio/undertow/protocols/http2/Http2HeadersParser;
ifnull 26
24: aload 0
aload 2
invokevirtual io.undertow.protocols.http2.Http2FrameHeaderParser.getContinuationParser:()Lio/undertow/protocols/http2/Http2HeadersParser;
putfield io.undertow.protocols.http2.Http2Channel.continuationParser:Lio/undertow/protocols/http2/Http2HeadersParser;
25: aconst_null
areturn
26: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lio/undertow/protocols/http2/Http2Channel;
0 27 1 data Ljava/nio/ByteBuffer;
8 27 2 frameParser Lio/undertow/protocols/http2/Http2FrameHeaderParser;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
data
protected void lastDataRead();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield io.undertow.protocols.http2.Http2Channel.lastDataRead:Z
1: aload 0
getfield io.undertow.protocols.http2.Http2Channel.peerGoneAway:Z
ifne 4
2: aload 0
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
3: goto 7
4: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield io.undertow.protocols.http2.Http2Channel.peerGoneAway:Z
5: aload 0
getfield io.undertow.protocols.http2.Http2Channel.thisGoneAway:Z
ifne 7
6: aload 0
bipush 10
invokevirtual io.undertow.protocols.http2.Http2Channel.sendGoAway:(I)V
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/undertow/protocols/http2/Http2Channel;
protected boolean isLastFrameReceived();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.lastDataRead:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/http2/Http2Channel;
protected boolean isLastFrameSent();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.thisGoneAway:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/http2/Http2Channel;
protected void handleBrokenSourceChannel(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
aload 1
ldc "Closing HTTP2 channel to %s due to broken read side"
aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.getPeerAddress:()Ljava/net/SocketAddress;
invokeinterface io.undertow.UndertowLogger.debugf:(Ljava/lang/Throwable;Ljava/lang/String;Ljava/lang/Object;)V
1: aload 1
instanceof io.undertow.protocols.http2.ConnectionErrorException
ifeq 4
2: aload 0
aload 1
checkcast io.undertow.protocols.http2.ConnectionErrorException
invokevirtual io.undertow.protocols.http2.ConnectionErrorException.getCode:()I
new io.undertow.protocols.http2.Http2Channel$Http2ControlMessageExceptionHandler
dup
aload 0
invokespecial io.undertow.protocols.http2.Http2Channel$Http2ControlMessageExceptionHandler.<init>:(Lio/undertow/protocols/http2/Http2Channel;)V
invokevirtual io.undertow.protocols.http2.Http2Channel.sendGoAway:(ILorg/xnio/ChannelExceptionHandler;)V
3: goto 7
4: StackMap locals:
StackMap stack:
aload 0
aload 1
instanceof java.nio.channels.ClosedChannelException
ifeq 5
bipush 10
goto 6
StackMap locals:
StackMap stack: io.undertow.protocols.http2.Http2Channel
5: iconst_1
StackMap locals: io.undertow.protocols.http2.Http2Channel java.lang.Throwable
StackMap stack: io.undertow.protocols.http2.Http2Channel int
6: new io.undertow.protocols.http2.Http2Channel$Http2ControlMessageExceptionHandler
dup
aload 0
invokespecial io.undertow.protocols.http2.Http2Channel$Http2ControlMessageExceptionHandler.<init>:(Lio/undertow/protocols/http2/Http2Channel;)V
invokevirtual io.undertow.protocols.http2.Http2Channel.sendGoAway:(ILorg/xnio/ChannelExceptionHandler;)V
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/undertow/protocols/http2/Http2Channel;
0 8 1 e Ljava/lang/Throwable;
MethodParameters:
Name Flags
e
protected void handleBrokenSinkChannel(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
aload 1
ldc "Closing HTTP2 channel to %s due to broken write side"
aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.getPeerAddress:()Ljava/net/SocketAddress;
invokeinterface io.undertow.UndertowLogger.debugf:(Ljava/lang/Throwable;Ljava/lang/String;Ljava/lang/Object;)V
1: aload 0
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/protocols/http2/Http2Channel;
0 3 1 e Ljava/lang/Throwable;
MethodParameters:
Name Flags
e
protected void closeSubChannels();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=6, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
goto 11
StackMap locals: io.undertow.protocols.http2.Http2Channel top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 1
start local 1 2: aload 1
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast io.undertow.protocols.http2.Http2Channel$StreamHolder
astore 3
start local 3 3: aload 3
getfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sourceChannel:Lio/undertow/protocols/http2/Http2StreamSourceChannel;
astore 4
start local 4 4: aload 4
ifnull 6
5: aload 4
invokevirtual io.undertow.protocols.http2.AbstractHttp2StreamSourceChannel.markStreamBroken:()V
6: StackMap locals: io.undertow.protocols.http2.Http2Channel java.util.Map$Entry java.util.Iterator io.undertow.protocols.http2.Http2Channel$StreamHolder io.undertow.protocols.http2.AbstractHttp2StreamSourceChannel
StackMap stack:
aload 3
getfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sinkChannel:Lio/undertow/protocols/http2/Http2StreamSinkChannel;
astore 5
start local 5 7: aload 5
ifnull 11
8: aload 5
invokevirtual io.undertow.protocols.http2.Http2StreamSinkChannel.isWritesShutdown:()Z
ifeq 10
9: aload 5
invokevirtual io.undertow.protocols.http2.Http2StreamSinkChannel.getIoThread:()Lorg/xnio/XnioIoThread;
aload 5
aload 5
invokevirtual io.undertow.protocols.http2.Http2StreamSinkChannel.getWriteSetter:()Lorg/xnio/ChannelListener$Setter;
checkcast org.xnio.ChannelListener$SimpleSetter
invokevirtual org.xnio.ChannelListener$SimpleSetter.get:()Lorg/xnio/ChannelListener;
invokestatic org.xnio.ChannelListeners.invokeChannelListener:(Ljava/util/concurrent/Executor;Ljava/nio/channels/Channel;Lorg/xnio/ChannelListener;)V
10: StackMap locals: io.undertow.protocols.http2.Http2StreamSinkChannel
StackMap stack:
aload 5
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
end local 5 end local 4 end local 3 end local 1 11: StackMap locals: io.undertow.protocols.http2.Http2Channel top java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
12: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lio/undertow/protocols/http2/Http2Channel;
2 11 1 e Ljava/util/Map$Entry<Ljava/lang/Integer;Lio/undertow/protocols/http2/Http2Channel$StreamHolder;>;
3 11 3 holder Lio/undertow/protocols/http2/Http2Channel$StreamHolder;
4 11 4 receiver Lio/undertow/protocols/http2/AbstractHttp2StreamSourceChannel;
7 11 5 sink Lio/undertow/protocols/http2/Http2StreamSinkChannel;
protected java.util.Collection<io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel<io.undertow.protocols.http2.Http2Channel, io.undertow.protocols.http2.AbstractHttp2StreamSourceChannel, io.undertow.protocols.http2.AbstractHttp2StreamSinkChannel>> getReceivers();
descriptor: ()Ljava/util/Collection;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=1
start local 0 0: new java.util.ArrayList
dup
aload 0
getfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 1
start local 1 1: aload 0
getfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: io.undertow.protocols.http2.Http2Channel java.util.List top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 2
start local 2 3: aload 2
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast io.undertow.protocols.http2.Http2Channel$StreamHolder
getfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sourceClosed:Z
ifne 5
4: aload 1
aload 2
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast io.undertow.protocols.http2.Http2Channel$StreamHolder
getfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sourceChannel:Lio/undertow/protocols/http2/Http2StreamSourceChannel;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 2 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/undertow/protocols/http2/Http2Channel;
1 7 1 channels Ljava/util/List<Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel<Lio/undertow/protocols/http2/Http2Channel;Lio/undertow/protocols/http2/AbstractHttp2StreamSourceChannel;Lio/undertow/protocols/http2/AbstractHttp2StreamSinkChannel;>;>;
3 5 2 entry Ljava/util/Map$Entry<Ljava/lang/Integer;Lio/undertow/protocols/http2/Http2Channel$StreamHolder;>;
Signature: ()Ljava/util/Collection<Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel<Lio/undertow/protocols/http2/Http2Channel;Lio/undertow/protocols/http2/AbstractHttp2StreamSourceChannel;Lio/undertow/protocols/http2/AbstractHttp2StreamSinkChannel;>;>;
boolean updateSettings(java.util.List<io.undertow.protocols.http2.Http2Setting>);
descriptor: (Ljava/util/List;)Z
flags: (0x0000)
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 38
StackMap locals: io.undertow.protocols.http2.Http2Channel java.util.List top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.undertow.protocols.http2.Http2Setting
astore 2
start local 2 2: aload 2
invokevirtual io.undertow.protocols.http2.Http2Setting.getId:()I
iconst_4
if_icmpne 13
3: aload 0
getfield io.undertow.protocols.http2.Http2Channel.flowControlLock:Ljava/lang/Object;
dup
astore 4
monitorenter
4: aload 2
invokevirtual io.undertow.protocols.http2.Http2Setting.getValue:()J
ldc 2147483647
lcmp
ifle 8
5: aload 0
iconst_3
invokevirtual io.undertow.protocols.http2.Http2Channel.sendGoAway:(I)V
6: aload 4
monitorexit
7: iconst_0
ireturn
8: StackMap locals: io.undertow.protocols.http2.Http2Channel java.util.List io.undertow.protocols.http2.Http2Setting java.util.Iterator java.lang.Object
StackMap stack:
aload 0
aload 2
invokevirtual io.undertow.protocols.http2.Http2Setting.getValue:()J
l2i
putfield io.undertow.protocols.http2.Http2Channel.initialSendWindowSize:I
9: aload 4
monitorexit
10: goto 38
StackMap locals:
StackMap stack: java.lang.Throwable
11: aload 4
monitorexit
12: athrow
13: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.undertow.protocols.http2.Http2Setting.getId:()I
iconst_5
if_icmpne 20
14: aload 2
invokevirtual io.undertow.protocols.http2.Http2Setting.getValue:()J
ldc 16777215
lcmp
ifgt 15
aload 2
invokevirtual io.undertow.protocols.http2.Http2Setting.getValue:()J
ldc 16384
lcmp
ifge 18
15: StackMap locals:
StackMap stack:
getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
new java.lang.StringBuilder
dup
ldc "Invalid value received for SETTINGS_MAX_FRAME_SIZE "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual io.undertow.protocols.http2.Http2Setting.getValue:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface io.undertow.UndertowLogger.debug:(Ljava/lang/Object;)V
16: aload 0
iconst_1
invokevirtual io.undertow.protocols.http2.Http2Channel.sendGoAway:(I)V
17: iconst_0
ireturn
18: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual io.undertow.protocols.http2.Http2Setting.getValue:()J
l2i
putfield io.undertow.protocols.http2.Http2Channel.sendMaxFrameSize:I
19: goto 38
StackMap locals:
StackMap stack:
20: aload 2
invokevirtual io.undertow.protocols.http2.Http2Setting.getId:()I
iconst_1
if_icmpne 27
21: aload 0
dup
astore 4
monitorenter
22: aload 0
getfield io.undertow.protocols.http2.Http2Channel.encoder:Lio/undertow/protocols/http2/HpackEncoder;
aload 2
invokevirtual io.undertow.protocols.http2.Http2Setting.getValue:()J
l2i
invokevirtual io.undertow.protocols.http2.HpackEncoder.setMaxTableSize:(I)V
23: aload 4
monitorexit
24: goto 38
StackMap locals: io.undertow.protocols.http2.Http2Channel java.util.List io.undertow.protocols.http2.Http2Setting java.util.Iterator io.undertow.protocols.http2.Http2Channel
StackMap stack: java.lang.Throwable
25: aload 4
monitorexit
26: athrow
27: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.undertow.protocols.http2.Http2Setting.getId:()I
iconst_2
if_icmpne 36
28: aload 2
invokevirtual io.undertow.protocols.http2.Http2Setting.getValue:()J
l2i
istore 4
start local 4 29: iload 4
ifne 32
30: aload 0
iconst_0
putfield io.undertow.protocols.http2.Http2Channel.pushEnabled:Z
31: goto 38
StackMap locals: int
StackMap stack:
32: iload 4
iconst_1
if_icmpeq 38
33: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
new java.lang.StringBuilder
dup
ldc "Invalid value received for SETTINGS_ENABLE_PUSH "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface io.undertow.UndertowLogger.debug:(Ljava/lang/Object;)V
34: aload 0
iconst_1
invokevirtual io.undertow.protocols.http2.Http2Channel.sendGoAway:(I)V
35: iconst_0
ireturn
end local 4 36: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.undertow.protocols.http2.Http2Setting.getId:()I
iconst_3
if_icmpne 38
37: aload 0
aload 2
invokevirtual io.undertow.protocols.http2.Http2Setting.getValue:()J
l2i
putfield io.undertow.protocols.http2.Http2Channel.sendMaxConcurrentStreams:I
end local 2 38: StackMap locals: io.undertow.protocols.http2.Http2Channel java.util.List top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
39: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lio/undertow/protocols/http2/Http2Channel;
0 40 1 settings Ljava/util/List<Lio/undertow/protocols/http2/Http2Setting;>;
2 38 2 setting Lio/undertow/protocols/http2/Http2Setting;
29 36 4 result I
Exception table:
from to target type
4 7 11 any
8 10 11 any
11 12 11 any
22 24 25 any
25 26 25 any
Signature: (Ljava/util/List<Lio/undertow/protocols/http2/Http2Setting;>;)Z
MethodParameters:
Name Flags
settings
public int getHttp2Version();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_3
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/http2/Http2Channel;
public int getInitialSendWindowSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.initialSendWindowSize:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/http2/Http2Channel;
public int getInitialReceiveWindowSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.initialReceiveWindowSize:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/http2/Http2Channel;
public int getSendMaxConcurrentStreams();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.sendMaxConcurrentStreams:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/http2/Http2Channel;
public void setSendMaxConcurrentStreams(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield io.undertow.protocols.http2.Http2Channel.sendMaxConcurrentStreams:I
1: aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.sendSettings:()V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/protocols/http2/Http2Channel;
0 3 1 sendMaxConcurrentStreams I
MethodParameters:
Name Flags
sendMaxConcurrentStreams
public int getReceiveMaxConcurrentStreams();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.receiveMaxConcurrentStreams:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/http2/Http2Channel;
public void handleWindowUpdate(int, int);
descriptor: (II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iload 1
ifne 18
1: iload 2
ifne 5
2: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
ldc "Invalid flow-control window increment of 0 received with WINDOW_UPDATE frame for connection"
invokeinterface io.undertow.UndertowLogger.debug:(Ljava/lang/Object;)V
3: aload 0
iconst_1
invokevirtual io.undertow.protocols.http2.Http2Channel.sendGoAway:(I)V
4: return
5: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.http2.Http2Channel.flowControlLock:Ljava/lang/Object;
dup
astore 3
monitorenter
6: aload 0
getfield io.undertow.protocols.http2.Http2Channel.sendWindowSize:J
ldc 2
lcmp
ifgt 7
iconst_1
goto 8
StackMap locals: java.lang.Object
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: istore 4
start local 4 9: aload 0
dup
getfield io.undertow.protocols.http2.Http2Channel.sendWindowSize:J
iload 2
i2l
ladd
putfield io.undertow.protocols.http2.Http2Channel.sendWindowSize:J
10: iload 4
ifeq 12
11: aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.notifyFlowControlAllowed:()V
12: StackMap locals: int
StackMap stack:
aload 0
getfield io.undertow.protocols.http2.Http2Channel.sendWindowSize:J
ldc 2147483647
lcmp
ifle 14
13: aload 0
iconst_3
invokevirtual io.undertow.protocols.http2.Http2Channel.sendGoAway:(I)V
end local 4 14: StackMap locals:
StackMap stack:
aload 3
monitorexit
15: goto 31
StackMap locals:
StackMap stack: java.lang.Throwable
16: aload 3
monitorexit
17: athrow
18: StackMap locals:
StackMap stack:
iload 2
ifne 22
19: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
new java.lang.StringBuilder
dup
ldc "Invalid flow-control window increment of 0 received with WINDOW_UPDATE frame for stream "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface io.undertow.UndertowLogger.debug:(Ljava/lang/Object;)V
20: aload 0
iload 1
iconst_1
invokevirtual io.undertow.protocols.http2.Http2Channel.sendRstStream:(II)V
21: return
22: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast io.undertow.protocols.http2.Http2Channel$StreamHolder
astore 3
start local 3 23: aload 3
ifnull 24
aload 3
getfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sinkChannel:Lio/undertow/protocols/http2/Http2StreamSinkChannel;
goto 25
StackMap locals: io.undertow.protocols.http2.Http2Channel$StreamHolder
StackMap stack:
24: aconst_null
StackMap locals:
StackMap stack: io.undertow.protocols.http2.Http2StreamSinkChannel
25: astore 4
start local 4 26: aload 4
ifnonnull 30
27: aload 0
iload 1
invokevirtual io.undertow.protocols.http2.Http2Channel.isIdle:(I)Z
ifeq 31
28: aload 0
iconst_1
invokevirtual io.undertow.protocols.http2.Http2Channel.sendGoAway:(I)V
29: goto 31
30: StackMap locals: io.undertow.protocols.http2.Http2StreamSinkChannel
StackMap stack:
aload 4
iload 2
invokevirtual io.undertow.protocols.http2.Http2StreamSinkChannel.updateFlowControlWindow:(I)V
end local 4 end local 3 31: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lio/undertow/protocols/http2/Http2Channel;
0 32 1 streamId I
0 32 2 deltaWindowSize I
9 14 4 exhausted Z
23 31 3 holder Lio/undertow/protocols/http2/Http2Channel$StreamHolder;
26 31 4 stream Lio/undertow/protocols/http2/Http2StreamSinkChannel;
Exception table:
from to target type
6 15 16 any
16 17 16 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
streamId
deltaWindowSize
synchronized void notifyFlowControlAllowed();
descriptor: ()V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel.recalculateHeldFrames:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/protocols/http2/Http2Channel;
Exceptions:
throws java.io.IOException
public void sendPing(byte[]);
descriptor: ([B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
new io.undertow.protocols.http2.Http2Channel$Http2ControlMessageExceptionHandler
dup
aload 0
invokespecial io.undertow.protocols.http2.Http2Channel$Http2ControlMessageExceptionHandler.<init>:(Lio/undertow/protocols/http2/Http2Channel;)V
invokevirtual io.undertow.protocols.http2.Http2Channel.sendPing:([BLorg/xnio/ChannelExceptionHandler;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/protocols/http2/Http2Channel;
0 2 1 data [B
MethodParameters:
Name Flags
data
public void sendPing(byte[], org.xnio.ChannelExceptionHandler<io.undertow.protocols.http2.AbstractHttp2StreamSinkChannel>);
descriptor: ([BLorg/xnio/ChannelExceptionHandler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
iconst_0
invokevirtual io.undertow.protocols.http2.Http2Channel.sendPing:([BLorg/xnio/ChannelExceptionHandler;Z)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/protocols/http2/Http2Channel;
0 2 1 data [B
0 2 2 exceptionHandler Lorg/xnio/ChannelExceptionHandler<Lio/undertow/protocols/http2/AbstractHttp2StreamSinkChannel;>;
Signature: ([BLorg/xnio/ChannelExceptionHandler<Lio/undertow/protocols/http2/AbstractHttp2StreamSinkChannel;>;)V
MethodParameters:
Name Flags
data
exceptionHandler final
void sendPing(byte[], org.xnio.ChannelExceptionHandler<io.undertow.protocols.http2.AbstractHttp2StreamSinkChannel>, );
descriptor: ([BLorg/xnio/ChannelExceptionHandler;Z)V
flags: (0x0000)
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new io.undertow.protocols.http2.Http2PingStreamSinkChannel
dup
aload 0
aload 1
iload 3
invokespecial io.undertow.protocols.http2.Http2PingStreamSinkChannel.<init>:(Lio/undertow/protocols/http2/Http2Channel;[BZ)V
astore 4
start local 4 1: aload 4
invokevirtual io.undertow.protocols.http2.Http2PingStreamSinkChannel.shutdownWrites:()V
2: aload 4
invokevirtual io.undertow.protocols.http2.Http2PingStreamSinkChannel.flush:()Z
ifne 17
3: aload 4
invokevirtual io.undertow.protocols.http2.Http2PingStreamSinkChannel.getWriteSetter:()Lorg/xnio/ChannelListener$Setter;
aconst_null
aload 2
invokestatic org.xnio.ChannelListeners.flushingChannelListener:(Lorg/xnio/ChannelListener;Lorg/xnio/ChannelExceptionHandler;)Lorg/xnio/ChannelListener;
invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
4: aload 4
invokevirtual io.undertow.protocols.http2.Http2PingStreamSinkChannel.resumeWrites:()V
5: goto 17
StackMap locals: io.undertow.protocols.http2.Http2Channel byte[] org.xnio.ChannelExceptionHandler int io.undertow.protocols.http2.Http2PingStreamSinkChannel
StackMap stack: java.io.IOException
6: astore 5
start local 5 7: aload 2
ifnull 10
8: aload 2
aload 4
aload 5
invokeinterface org.xnio.ChannelExceptionHandler.handleException:(Ljava/nio/channels/Channel;Ljava/io/IOException;)V
9: goto 17
10: StackMap locals: java.io.IOException
StackMap stack:
getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
ldc "Failed to send ping and no exception handler set"
aload 5
invokeinterface io.undertow.UndertowLogger.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 5 11: goto 17
12: StackMap locals: io.undertow.protocols.http2.Http2Channel byte[] org.xnio.ChannelExceptionHandler int io.undertow.protocols.http2.Http2PingStreamSinkChannel
StackMap stack: java.lang.Throwable
astore 5
start local 5 13: aload 2
ifnull 16
14: aload 2
aload 4
new java.io.IOException
dup
aload 5
invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
invokeinterface org.xnio.ChannelExceptionHandler.handleException:(Ljava/nio/channels/Channel;Ljava/io/IOException;)V
15: goto 17
16: StackMap locals: java.lang.Throwable
StackMap stack:
getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
ldc "Failed to send ping and no exception handler set"
aload 5
invokeinterface io.undertow.UndertowLogger.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 5 17: StackMap locals:
StackMap stack:
return
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/protocols/http2/Http2Channel;
0 18 1 data [B
0 18 2 exceptionHandler Lorg/xnio/ChannelExceptionHandler<Lio/undertow/protocols/http2/AbstractHttp2StreamSinkChannel;>;
0 18 3 ack Z
1 18 4 ping Lio/undertow/protocols/http2/Http2PingStreamSinkChannel;
7 11 5 e Ljava/io/IOException;
13 17 5 t Ljava/lang/Throwable;
Exception table:
from to target type
1 5 6 Class java.io.IOException
1 5 12 Class java.lang.Throwable
Signature: ([BLorg/xnio/ChannelExceptionHandler<Lio/undertow/protocols/http2/AbstractHttp2StreamSinkChannel;>;Z)V
MethodParameters:
Name Flags
data
exceptionHandler final
ack
public void sendGoAway(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
new io.undertow.protocols.http2.Http2Channel$Http2ControlMessageExceptionHandler
dup
aload 0
invokespecial io.undertow.protocols.http2.Http2Channel$Http2ControlMessageExceptionHandler.<init>:(Lio/undertow/protocols/http2/Http2Channel;)V
invokevirtual io.undertow.protocols.http2.Http2Channel.sendGoAway:(ILorg/xnio/ChannelExceptionHandler;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/protocols/http2/Http2Channel;
0 2 1 status I
MethodParameters:
Name Flags
status
public void sendGoAway(int, org.xnio.ChannelExceptionHandler<io.undertow.protocols.http2.AbstractHttp2StreamSinkChannel>);
descriptor: (ILorg/xnio/ChannelExceptionHandler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.thisGoneAway:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield io.undertow.protocols.http2.Http2Channel.thisGoneAway:Z
3: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
invokeinterface io.undertow.UndertowLogger.isTraceEnabled:()Z
ifeq 5
4: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
ldc "Sending goaway on channel %s"
aload 0
invokeinterface io.undertow.UndertowLogger.tracef:(Ljava/lang/Throwable;Ljava/lang/String;Ljava/lang/Object;)V
5: StackMap locals:
StackMap stack:
new io.undertow.protocols.http2.Http2GoAwayStreamSinkChannel
dup
aload 0
iload 1
aload 0
getfield io.undertow.protocols.http2.Http2Channel.lastGoodStreamId:I
invokespecial io.undertow.protocols.http2.Http2GoAwayStreamSinkChannel.<init>:(Lio/undertow/protocols/http2/Http2Channel;II)V
astore 3
start local 3 6: aload 3
invokevirtual io.undertow.protocols.http2.Http2GoAwayStreamSinkChannel.shutdownWrites:()V
7: aload 3
invokevirtual io.undertow.protocols.http2.Http2GoAwayStreamSinkChannel.flush:()Z
ifne 13
8: aload 3
invokevirtual io.undertow.protocols.http2.Http2GoAwayStreamSinkChannel.getWriteSetter:()Lorg/xnio/ChannelListener$Setter;
new io.undertow.protocols.http2.Http2Channel$3
dup
aload 0
invokespecial io.undertow.protocols.http2.Http2Channel$3.<init>:(Lio/undertow/protocols/http2/Http2Channel;)V
9: aload 2
10: invokestatic org.xnio.ChannelListeners.flushingChannelListener:(Lorg/xnio/ChannelListener;Lorg/xnio/ChannelExceptionHandler;)Lorg/xnio/ChannelListener;
invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
11: aload 3
invokevirtual io.undertow.protocols.http2.Http2GoAwayStreamSinkChannel.resumeWrites:()V
12: goto 20
13: StackMap locals: io.undertow.protocols.http2.Http2GoAwayStreamSinkChannel
StackMap stack:
aload 0
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
14: goto 20
StackMap locals:
StackMap stack: java.io.IOException
15: astore 4
start local 4 16: aload 2
aload 3
aload 4
invokeinterface org.xnio.ChannelExceptionHandler.handleException:(Ljava/nio/channels/Channel;Ljava/io/IOException;)V
end local 4 17: goto 20
18: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
start local 4 19: aload 2
aload 3
new java.io.IOException
dup
aload 4
invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
invokeinterface org.xnio.ChannelExceptionHandler.handleException:(Ljava/nio/channels/Channel;Ljava/io/IOException;)V
end local 4 20: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lio/undertow/protocols/http2/Http2Channel;
0 21 1 status I
0 21 2 exceptionHandler Lorg/xnio/ChannelExceptionHandler<Lio/undertow/protocols/http2/AbstractHttp2StreamSinkChannel;>;
6 21 3 goAway Lio/undertow/protocols/http2/Http2GoAwayStreamSinkChannel;
16 17 4 e Ljava/io/IOException;
19 20 4 t Ljava/lang/Throwable;
Exception table:
from to target type
6 14 15 Class java.io.IOException
6 14 18 Class java.lang.Throwable
Signature: (ILorg/xnio/ChannelExceptionHandler<Lio/undertow/protocols/http2/AbstractHttp2StreamSinkChannel;>;)V
MethodParameters:
Name Flags
status
exceptionHandler final
public void sendUpdateWindowSize(int, int);
descriptor: (II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new io.undertow.protocols.http2.Http2WindowUpdateStreamSinkChannel
dup
aload 0
iload 1
iload 2
invokespecial io.undertow.protocols.http2.Http2WindowUpdateStreamSinkChannel.<init>:(Lio/undertow/protocols/http2/Http2Channel;II)V
astore 3
start local 3 1: aload 0
aload 3
invokevirtual io.undertow.protocols.http2.Http2Channel.flushChannel:(Lorg/xnio/channels/StreamSinkChannel;)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/protocols/http2/Http2Channel;
0 3 1 streamId I
0 3 2 delta I
1 3 3 windowUpdateStreamSinkChannel Lio/undertow/protocols/http2/Http2WindowUpdateStreamSinkChannel;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
streamId
delta
public javax.net.ssl.SSLSession getSslSession();
descriptor: ()Ljavax/net/ssl/SSLSession;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.getUnderlyingConnection:()Lorg/xnio/StreamConnection;
astore 1
start local 1 1: aload 1
instanceof org.xnio.ssl.SslConnection
ifeq 3
2: aload 1
checkcast org.xnio.ssl.SslConnection
invokevirtual org.xnio.ssl.SslConnection.getSslSession:()Ljavax/net/ssl/SSLSession;
areturn
3: StackMap locals: org.xnio.StreamConnection
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/undertow/protocols/http2/Http2Channel;
1 4 1 con Lorg/xnio/StreamConnection;
public void updateReceiveFlowControlWindow(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: iload 1
ifgt 2
1: return
2: StackMap locals:
StackMap stack:
iconst_m1
istore 2
start local 2 3: aload 0
getfield io.undertow.protocols.http2.Http2Channel.flowControlLock:Ljava/lang/Object;
dup
astore 3
monitorenter
4: aload 0
dup
getfield io.undertow.protocols.http2.Http2Channel.receiveWindowSize:I
iload 1
isub
putfield io.undertow.protocols.http2.Http2Channel.receiveWindowSize:I
5: aload 0
getfield io.undertow.protocols.http2.Http2Channel.initialReceiveWindowSize:I
istore 4
start local 4 6: aload 0
getfield io.undertow.protocols.http2.Http2Channel.receiveWindowSize:I
iload 4
iconst_2
idiv
if_icmpge 9
7: iload 4
aload 0
getfield io.undertow.protocols.http2.Http2Channel.receiveWindowSize:I
isub
istore 2
8: aload 0
dup
getfield io.undertow.protocols.http2.Http2Channel.receiveWindowSize:I
iload 2
iadd
putfield io.undertow.protocols.http2.Http2Channel.receiveWindowSize:I
end local 4 9: StackMap locals: int java.lang.Object
StackMap stack:
aload 3
monitorexit
10: goto 13
StackMap locals:
StackMap stack: java.lang.Throwable
11: aload 3
monitorexit
12: athrow
13: StackMap locals:
StackMap stack:
iload 2
ifle 15
14: aload 0
iconst_0
iload 2
invokevirtual io.undertow.protocols.http2.Http2Channel.sendUpdateWindowSize:(II)V
15: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lio/undertow/protocols/http2/Http2Channel;
0 16 1 read I
3 16 2 delta I
6 9 4 initialWindowSize I
Exception table:
from to target type
4 10 11 any
11 12 11 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
read
public synchronized io.undertow.protocols.http2.Http2HeadersStreamSinkChannel (io.undertow.util.HeaderMap);
descriptor: (Lio/undertow/util/HeaderMap;)Lio/undertow/protocols/http2/Http2HeadersStreamSinkChannel;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.isClient:()Z
ifne 2
1: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.headersStreamCanOnlyBeCreatedByClient:()Ljava/io/IOException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.isOpen:()Z
ifne 4
3: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.channelIsClosed:()Ljava/nio/channels/ClosedChannelException;
athrow
4: StackMap locals:
StackMap stack:
getstatic io.undertow.protocols.http2.Http2Channel.sendConcurrentStreamsAtomicUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.incrementAndGet:(Ljava/lang/Object;)I
pop
5: aload 0
getfield io.undertow.protocols.http2.Http2Channel.sendMaxConcurrentStreams:I
ifle 7
aload 0
getfield io.undertow.protocols.http2.Http2Channel.sendConcurrentStreams:I
aload 0
getfield io.undertow.protocols.http2.Http2Channel.sendMaxConcurrentStreams:I
if_icmple 7
6: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.streamLimitExceeded:()Ljava/io/IOException;
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.http2.Http2Channel.streamIdCounter:I
istore 2
start local 2 8: aload 0
dup
getfield io.undertow.protocols.http2.Http2Channel.streamIdCounter:I
iconst_2
iadd
putfield io.undertow.protocols.http2.Http2Channel.streamIdCounter:I
9: new io.undertow.protocols.http2.Http2HeadersStreamSinkChannel
dup
aload 0
iload 2
aload 1
invokespecial io.undertow.protocols.http2.Http2HeadersStreamSinkChannel.<init>:(Lio/undertow/protocols/http2/Http2Channel;ILio/undertow/util/HeaderMap;)V
astore 3
start local 3 10: aload 0
getfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
new io.undertow.protocols.http2.Http2Channel$StreamHolder
dup
aload 3
invokespecial io.undertow.protocols.http2.Http2Channel$StreamHolder.<init>:(Lio/undertow/protocols/http2/Http2StreamSinkChannel;)V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/undertow/protocols/http2/Http2Channel;
0 12 1 requestHeaders Lio/undertow/util/HeaderMap;
8 12 2 streamId I
10 12 3 http2SynStreamStreamSinkChannel Lio/undertow/protocols/http2/Http2HeadersStreamSinkChannel;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
requestHeaders
public synchronized io.undertow.protocols.http2.Http2HeadersStreamSinkChannel (int, io.undertow.util.HeaderMap, io.undertow.util.HeaderMap);
descriptor: (ILio/undertow/util/HeaderMap;Lio/undertow/util/HeaderMap;)Lio/undertow/protocols/http2/Http2HeadersStreamSinkChannel;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=6, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.isOpen:()Z
ifne 2
1: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.channelIsClosed:()Ljava/nio/channels/ClosedChannelException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.isClient:()Z
ifeq 4
3: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.pushPromiseCanOnlyBeCreatedByServer:()Ljava/io/IOException;
athrow
4: StackMap locals:
StackMap stack:
getstatic io.undertow.protocols.http2.Http2Channel.sendConcurrentStreamsAtomicUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.incrementAndGet:(Ljava/lang/Object;)I
pop
5: aload 0
getfield io.undertow.protocols.http2.Http2Channel.sendMaxConcurrentStreams:I
ifle 7
aload 0
getfield io.undertow.protocols.http2.Http2Channel.sendConcurrentStreams:I
aload 0
getfield io.undertow.protocols.http2.Http2Channel.sendMaxConcurrentStreams:I
if_icmple 7
6: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.streamLimitExceeded:()Ljava/io/IOException;
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.http2.Http2Channel.streamIdCounter:I
istore 4
start local 4 8: aload 0
dup
getfield io.undertow.protocols.http2.Http2Channel.streamIdCounter:I
iconst_2
iadd
putfield io.undertow.protocols.http2.Http2Channel.streamIdCounter:I
9: new io.undertow.protocols.http2.Http2PushPromiseStreamSinkChannel
dup
aload 0
aload 2
iload 1
iload 4
invokespecial io.undertow.protocols.http2.Http2PushPromiseStreamSinkChannel.<init>:(Lio/undertow/protocols/http2/Http2Channel;Lio/undertow/util/HeaderMap;II)V
astore 5
start local 5 10: aload 0
aload 5
invokevirtual io.undertow.protocols.http2.Http2Channel.flushChannel:(Lorg/xnio/channels/StreamSinkChannel;)V
11: new io.undertow.protocols.http2.Http2HeadersStreamSinkChannel
dup
aload 0
iload 4
aload 3
invokespecial io.undertow.protocols.http2.Http2HeadersStreamSinkChannel.<init>:(Lio/undertow/protocols/http2/Http2Channel;ILio/undertow/util/HeaderMap;)V
astore 6
start local 6 12: aload 0
getfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
new io.undertow.protocols.http2.Http2Channel$StreamHolder
dup
aload 6
invokespecial io.undertow.protocols.http2.Http2Channel$StreamHolder.<init>:(Lio/undertow/protocols/http2/Http2StreamSinkChannel;)V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
13: aload 6
areturn
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 14 0 this Lio/undertow/protocols/http2/Http2Channel;
0 14 1 associatedStreamId I
0 14 2 requestHeaders Lio/undertow/util/HeaderMap;
0 14 3 responseHeaders Lio/undertow/util/HeaderMap;
8 14 4 streamId I
10 14 5 pushPromise Lio/undertow/protocols/http2/Http2PushPromiseStreamSinkChannel;
12 14 6 http2SynStreamStreamSinkChannel Lio/undertow/protocols/http2/Http2HeadersStreamSinkChannel;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
associatedStreamId
requestHeaders
responseHeaders
int grabFlowControlBytes(int);
descriptor: (I)I
flags: (0x0000)
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: iload 1
ifgt 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.http2.Http2Channel.flowControlLock:Ljava/lang/Object;
dup
astore 3
monitorenter
3: iload 1
i2l
aload 0
getfield io.undertow.protocols.http2.Http2Channel.sendWindowSize:J
invokestatic java.lang.Math.min:(JJ)J
l2i
istore 2
start local 2 4: iload 1
iconst_2
if_icmple 7
iload 2
iconst_2
if_icmpgt 7
5: aload 3
monitorexit
6: iconst_0
ireturn
7: StackMap locals: int java.lang.Object
StackMap stack:
aload 0
getfield io.undertow.protocols.http2.Http2Channel.sendMaxFrameSize:I
iload 2
invokestatic java.lang.Math.min:(II)I
istore 2
8: aload 0
dup
getfield io.undertow.protocols.http2.Http2Channel.sendWindowSize:J
iload 2
i2l
lsub
putfield io.undertow.protocols.http2.Http2Channel.sendWindowSize:J
9: aload 3
monitorexit
10: goto 13
end local 2 StackMap locals: io.undertow.protocols.http2.Http2Channel int top java.lang.Object
StackMap stack: java.lang.Throwable
11: aload 3
monitorexit
12: athrow
start local 2 13: StackMap locals: io.undertow.protocols.http2.Http2Channel int int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lio/undertow/protocols/http2/Http2Channel;
0 14 1 bytesToGrab I
4 11 2 min I
13 14 2 min I
Exception table:
from to target type
3 6 11 any
7 10 11 any
11 12 11 any
MethodParameters:
Name Flags
bytesToGrab
void (io.undertow.protocols.http2.Http2HeadersStreamSinkChannel);
descriptor: (Lio/undertow/protocols/http2/Http2HeadersStreamSinkChannel;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
aload 1
invokevirtual io.undertow.protocols.http2.Http2HeadersStreamSinkChannel.getStreamId:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast io.undertow.protocols.http2.Http2Channel$StreamHolder
astore 2
start local 2 1: aload 2
ifnonnull 3
2: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.streamNotRegistered:()Ljava/lang/IllegalStateException;
athrow
3: StackMap locals: io.undertow.protocols.http2.Http2Channel$StreamHolder
StackMap stack:
aload 2
aload 1
putfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sinkChannel:Lio/undertow/protocols/http2/Http2StreamSinkChannel;
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/undertow/protocols/http2/Http2Channel;
0 5 1 synResponse Lio/undertow/protocols/http2/Http2HeadersStreamSinkChannel;
1 5 2 existing Lio/undertow/protocols/http2/Http2Channel$StreamHolder;
MethodParameters:
Name Flags
synResponse
void removeStreamSink(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast io.undertow.protocols.http2.Http2Channel$StreamHolder
astore 2
start local 2 1: aload 2
ifnonnull 3
2: return
3: StackMap locals: io.undertow.protocols.http2.Http2Channel$StreamHolder
StackMap stack:
aload 2
iconst_1
putfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sinkClosed:Z
4: aload 2
aconst_null
putfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sinkChannel:Lio/undertow/protocols/http2/Http2StreamSinkChannel;
5: aload 2
getfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sourceClosed:Z
ifeq 13
6: iload 1
iconst_2
irem
aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.isClient:()Z
ifeq 7
iconst_1
goto 8
StackMap locals:
StackMap stack: int
7: iconst_0
StackMap locals: io.undertow.protocols.http2.Http2Channel int io.undertow.protocols.http2.Http2Channel$StreamHolder
StackMap stack: int int
8: if_icmpne 11
9: getstatic io.undertow.protocols.http2.Http2Channel.sendConcurrentStreamsAtomicUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.getAndDecrement:(Ljava/lang/Object;)I
pop
10: goto 12
11: StackMap locals:
StackMap stack:
getstatic io.undertow.protocols.http2.Http2Channel.receiveConcurrentStreamsAtomicUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.getAndDecrement:(Ljava/lang/Object;)I
pop
12: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
13: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.isLastFrameReceived:()Z
ifeq 16
aload 0
getfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
invokeinterface java.util.Map.isEmpty:()Z
ifeq 16
14: aload 0
iconst_0
invokevirtual io.undertow.protocols.http2.Http2Channel.sendGoAway:(I)V
15: goto 18
StackMap locals:
StackMap stack:
16: aload 0
getfield io.undertow.protocols.http2.Http2Channel.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
ifnull 18
aload 0
getfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
invokeinterface java.util.Map.isEmpty:()Z
ifeq 18
17: aload 0
getfield io.undertow.protocols.http2.Http2Channel.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
invokevirtual io.undertow.server.protocol.ParseTimeoutUpdater.connectionIdle:()V
18: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lio/undertow/protocols/http2/Http2Channel;
0 19 1 streamId I
1 19 2 existing Lio/undertow/protocols/http2/Http2Channel$StreamHolder;
MethodParameters:
Name Flags
streamId
public boolean isClient();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.streamIdCounter:I
iconst_2
irem
iconst_1
if_icmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/protocols/http2/Http2Channel;
io.undertow.protocols.http2.HpackEncoder getEncoder();
descriptor: ()Lio/undertow/protocols/http2/HpackEncoder;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.encoder:Lio/undertow/protocols/http2/HpackEncoder;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/http2/Http2Channel;
io.undertow.protocols.http2.HpackDecoder getDecoder();
descriptor: ()Lio/undertow/protocols/http2/HpackDecoder;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.decoder:Lio/undertow/protocols/http2/HpackDecoder;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/http2/Http2Channel;
int ();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.maxHeaders:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/http2/Http2Channel;
int getPaddingBytes();
descriptor: ()I
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.paddingRandom:Ljava/util/Random;
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.http2.Http2Channel.paddingRandom:Ljava/util/Random;
aload 0
getfield io.undertow.protocols.http2.Http2Channel.maxPadding:I
invokevirtual java.util.Random.nextInt:(I)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/protocols/http2/Http2Channel;
public <T> T getAttachment(io.undertow.util.AttachmentKey<T>);
descriptor: (Lio/undertow/util/AttachmentKey;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
ldc "key"
invokeinterface io.undertow.UndertowMessages.argumentCannotBeNull:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.http2.Http2Channel.attachments:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/protocols/http2/Http2Channel;
0 3 1 key Lio/undertow/util/AttachmentKey<TT;>;
Signature: <T:Ljava/lang/Object;>(Lio/undertow/util/AttachmentKey<TT;>;)TT;
MethodParameters:
Name Flags
key
public <T> java.util.List<T> getAttachmentList(io.undertow.util.AttachmentKey<? extends java.util.List<T>>);
descriptor: (Lio/undertow/util/AttachmentKey;)Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
ldc "key"
invokeinterface io.undertow.UndertowMessages.argumentCannotBeNull:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.http2.Http2Channel.attachments:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 3: aload 2
ifnonnull 5
4: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
5: StackMap locals: java.lang.Object
StackMap stack:
aload 2
checkcast java.util.List
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/undertow/protocols/http2/Http2Channel;
0 6 1 key Lio/undertow/util/AttachmentKey<+Ljava/util/List<TT;>;>;
3 6 2 o Ljava/lang/Object;
Signature: <T:Ljava/lang/Object;>(Lio/undertow/util/AttachmentKey<+Ljava/util/List<TT;>;>;)Ljava/util/List<TT;>;
MethodParameters:
Name Flags
key
public <T> T putAttachment(io.undertow.util.AttachmentKey<T>, );
descriptor: (Lio/undertow/util/AttachmentKey;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
ldc "key"
invokeinterface io.undertow.UndertowMessages.argumentCannotBeNull:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
athrow
2: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield io.undertow.protocols.http2.Http2Channel.attachments:Ljava/util/Map;
aload 1
aload 1
aload 2
invokevirtual io.undertow.util.AttachmentKey.cast:(Ljava/lang/Object;)Ljava/lang/Object;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual io.undertow.util.AttachmentKey.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/protocols/http2/Http2Channel;
0 3 1 key Lio/undertow/util/AttachmentKey<TT;>;
0 3 2 value TT;
Signature: <T:Ljava/lang/Object;>(Lio/undertow/util/AttachmentKey<TT;>;TT;)TT;
MethodParameters:
Name Flags
key
value
public <T> T removeAttachment(io.undertow.util.AttachmentKey<T>);
descriptor: (Lio/undertow/util/AttachmentKey;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield io.undertow.protocols.http2.Http2Channel.attachments:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual io.undertow.util.AttachmentKey.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/http2/Http2Channel;
0 1 1 key Lio/undertow/util/AttachmentKey<TT;>;
Signature: <T:Ljava/lang/Object;>(Lio/undertow/util/AttachmentKey<TT;>;)TT;
MethodParameters:
Name Flags
key
public <T> void addToAttachmentList(io.undertow.util.AttachmentKey<io.undertow.util.AttachmentList<T>>, );
descriptor: (Lio/undertow/util/AttachmentKey;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
ldc "key"
invokeinterface io.undertow.UndertowMessages.argumentCannotBeNull:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.http2.Http2Channel.attachments:Ljava/util/Map;
astore 3
start local 3 3: aload 3
dup
astore 4
monitorenter
4: aload 1
aload 3
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual io.undertow.util.AttachmentKey.cast:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 5
start local 5 5: aload 5
ifnonnull 10
6: new io.undertow.util.AttachmentList
dup
ldc Ljava/lang/Object;
invokespecial io.undertow.util.AttachmentList.<init>:(Ljava/lang/Class;)V
astore 6
start local 6 7: aload 3
aload 1
aload 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: aload 6
aload 2
invokevirtual io.undertow.util.AttachmentList.add:(Ljava/lang/Object;)Z
pop
end local 6 9: goto 11
10: StackMap locals: java.util.Map java.util.Map java.util.List
StackMap stack:
aload 5
aload 2
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 11: StackMap locals:
StackMap stack:
aload 4
monitorexit
12: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
13: aload 4
monitorexit
14: athrow
15: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lio/undertow/protocols/http2/Http2Channel;
0 16 1 key Lio/undertow/util/AttachmentKey<Lio/undertow/util/AttachmentList<TT;>;>;
0 16 2 value TT;
3 16 3 attachments Ljava/util/Map<Lio/undertow/util/AttachmentKey<*>;Ljava/lang/Object;>;
5 11 5 list Ljava/util/List<TT;>;
7 9 6 newList Lio/undertow/util/AttachmentList<TT;>;
Exception table:
from to target type
4 12 13 any
13 14 13 any
Signature: <T:Ljava/lang/Object;>(Lio/undertow/util/AttachmentKey<Lio/undertow/util/AttachmentList<TT;>;>;TT;)V
MethodParameters:
Name Flags
key
value
public void sendRstStream(int, int);
descriptor: (II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.isOpen:()Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual io.undertow.protocols.http2.Http2Channel.handleRstStream:(I)V
3: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
invokeinterface io.undertow.UndertowLogger.isDebugEnabled:()Z
ifeq 5
4: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
ldc "Sending rststream on channel %s stream %s"
aload 0
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface io.undertow.UndertowLogger.debugf:(Ljava/lang/Throwable;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
5: StackMap locals:
StackMap stack:
new io.undertow.protocols.http2.Http2RstStreamSinkChannel
dup
aload 0
iload 1
iload 2
invokespecial io.undertow.protocols.http2.Http2RstStreamSinkChannel.<init>:(Lio/undertow/protocols/http2/Http2Channel;II)V
astore 3
start local 3 6: aload 0
aload 3
invokevirtual io.undertow.protocols.http2.Http2Channel.flushChannelIgnoreFailure:(Lorg/xnio/channels/StreamSinkChannel;)V
7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/undertow/protocols/http2/Http2Channel;
0 8 1 streamId I
0 8 2 statusCode I
6 8 3 channel Lio/undertow/protocols/http2/Http2RstStreamSinkChannel;
MethodParameters:
Name Flags
streamId
statusCode
private void handleRstStream(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast io.undertow.protocols.http2.Http2Channel$StreamHolder
astore 2
start local 2 1: aload 2
ifnull 12
2: iload 1
iconst_2
irem
aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.isClient:()Z
ifeq 3
iconst_1
goto 4
StackMap locals: io.undertow.protocols.http2.Http2Channel int io.undertow.protocols.http2.Http2Channel$StreamHolder
StackMap stack: int
3: iconst_0
StackMap locals: io.undertow.protocols.http2.Http2Channel int io.undertow.protocols.http2.Http2Channel$StreamHolder
StackMap stack: int int
4: if_icmpne 7
5: getstatic io.undertow.protocols.http2.Http2Channel.sendConcurrentStreamsAtomicUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.getAndDecrement:(Ljava/lang/Object;)I
pop
6: goto 8
7: StackMap locals:
StackMap stack:
getstatic io.undertow.protocols.http2.Http2Channel.receiveConcurrentStreamsAtomicUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.getAndDecrement:(Ljava/lang/Object;)I
pop
8: StackMap locals:
StackMap stack:
aload 2
getfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sinkChannel:Lio/undertow/protocols/http2/Http2StreamSinkChannel;
ifnull 10
9: aload 2
getfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sinkChannel:Lio/undertow/protocols/http2/Http2StreamSinkChannel;
invokevirtual io.undertow.protocols.http2.Http2StreamSinkChannel.rstStream:()V
10: StackMap locals:
StackMap stack:
aload 2
getfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sourceChannel:Lio/undertow/protocols/http2/Http2StreamSourceChannel;
ifnull 12
11: aload 2
getfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sourceChannel:Lio/undertow/protocols/http2/Http2StreamSourceChannel;
invokevirtual io.undertow.protocols.http2.Http2StreamSourceChannel.rstStream:()V
12: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lio/undertow/protocols/http2/Http2Channel;
0 13 1 streamId I
1 13 2 holder Lio/undertow/protocols/http2/Http2Channel$StreamHolder;
MethodParameters:
Name Flags
streamId
public io.undertow.protocols.http2.Http2HeadersStreamSinkChannel ();
descriptor: ()Lio/undertow/protocols/http2/Http2HeadersStreamSinkChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.lastGoodStreamId:I
ifeq 2
1: new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield io.undertow.protocols.http2.Http2Channel.lastGoodStreamId:I
3: new io.undertow.protocols.http2.Http2HeadersStreamSinkChannel
dup
aload 0
iconst_1
invokespecial io.undertow.protocols.http2.Http2HeadersStreamSinkChannel.<init>:(Lio/undertow/protocols/http2/Http2Channel;I)V
astore 1
start local 1 4: new io.undertow.protocols.http2.Http2Channel$StreamHolder
dup
aload 1
invokespecial io.undertow.protocols.http2.Http2Channel$StreamHolder.<init>:(Lio/undertow/protocols/http2/Http2StreamSinkChannel;)V
astore 2
start local 2 5: aload 2
iconst_1
putfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sourceClosed:Z
6: aload 0
getfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: getstatic io.undertow.protocols.http2.Http2Channel.receiveConcurrentStreamsAtomicUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.getAndIncrement:(Ljava/lang/Object;)I
pop
8: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/undertow/protocols/http2/Http2Channel;
4 9 1 stream Lio/undertow/protocols/http2/Http2HeadersStreamSinkChannel;
5 9 2 streamHolder Lio/undertow/protocols/http2/Http2Channel$StreamHolder;
public boolean isPushEnabled();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.pushEnabled:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/http2/Http2Channel;
public boolean isPeerGoneAway();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.peerGoneAway:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/http2/Http2Channel;
public boolean isThisGoneAway();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.thisGoneAway:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/http2/Http2Channel;
io.undertow.protocols.http2.Http2StreamSourceChannel removeStreamSource(int);
descriptor: (I)Lio/undertow/protocols/http2/Http2StreamSourceChannel;
flags: (0x0000)
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast io.undertow.protocols.http2.Http2Channel$StreamHolder
astore 2
start local 2 1: aload 2
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: io.undertow.protocols.http2.Http2Channel$StreamHolder
StackMap stack:
aload 2
iconst_1
putfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sourceClosed:Z
4: aload 2
getfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sourceChannel:Lio/undertow/protocols/http2/Http2StreamSourceChannel;
astore 3
start local 3 5: aload 2
aconst_null
putfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sourceChannel:Lio/undertow/protocols/http2/Http2StreamSourceChannel;
6: aload 2
getfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sinkClosed:Z
ifeq 14
7: iload 1
iconst_2
irem
aload 0
invokevirtual io.undertow.protocols.http2.Http2Channel.isClient:()Z
ifeq 8
iconst_1
goto 9
StackMap locals: io.undertow.protocols.http2.Http2Channel int io.undertow.protocols.http2.Http2Channel$StreamHolder io.undertow.protocols.http2.Http2StreamSourceChannel
StackMap stack: int
8: iconst_0
StackMap locals: io.undertow.protocols.http2.Http2Channel int io.undertow.protocols.http2.Http2Channel$StreamHolder io.undertow.protocols.http2.Http2StreamSourceChannel
StackMap stack: int int
9: if_icmpne 12
10: getstatic io.undertow.protocols.http2.Http2Channel.sendConcurrentStreamsAtomicUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.getAndDecrement:(Ljava/lang/Object;)I
pop
11: goto 13
12: StackMap locals:
StackMap stack:
getstatic io.undertow.protocols.http2.Http2Channel.receiveConcurrentStreamsAtomicUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.getAndDecrement:(Ljava/lang/Object;)I
pop
13: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
14: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lio/undertow/protocols/http2/Http2Channel;
0 15 1 streamId I
1 15 2 existing Lio/undertow/protocols/http2/Http2Channel$StreamHolder;
5 15 3 ret Lio/undertow/protocols/http2/Http2StreamSourceChannel;
MethodParameters:
Name Flags
streamId
io.undertow.protocols.http2.Http2StreamSourceChannel getIncomingStream(int);
descriptor: (I)Lio/undertow/protocols/http2/Http2StreamSourceChannel;
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.currentStreams:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast io.undertow.protocols.http2.Http2Channel$StreamHolder
astore 2
start local 2 1: aload 2
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: io.undertow.protocols.http2.Http2Channel$StreamHolder
StackMap stack:
aload 2
getfield io.undertow.protocols.http2.Http2Channel$StreamHolder.sourceChannel:Lio/undertow/protocols/http2/Http2StreamSourceChannel;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/undertow/protocols/http2/Http2Channel;
0 4 1 streamId I
1 4 2 existing Lio/undertow/protocols/http2/Http2Channel$StreamHolder;
MethodParameters:
Name Flags
streamId
public int getReceiveMaxFrameSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.receiveMaxFrameSize:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/http2/Http2Channel;
public int getSendMaxFrameSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.sendMaxFrameSize:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/http2/Http2Channel;
public java.lang.String getProtocol();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.protocol:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/http2/Http2Channel;
private synchronized boolean isIdle(int);
descriptor: (I)Z
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
iconst_2
irem
aload 0
getfield io.undertow.protocols.http2.Http2Channel.streamIdCounter:I
iconst_2
irem
if_icmpne 3
1: iload 1
aload 0
getfield io.undertow.protocols.http2.Http2Channel.streamIdCounter:I
if_icmplt 2
iconst_1
ireturn
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
iload 1
aload 0
getfield io.undertow.protocols.http2.Http2Channel.lastGoodStreamId:I
if_icmple 4
iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/undertow/protocols/http2/Http2Channel;
0 5 1 streamNo I
MethodParameters:
Name Flags
streamNo
int ();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2Channel.maxHeaderListSize:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/http2/Http2Channel;
protected io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel (io.undertow.server.protocol.framed.FrameHeaderData, io.undertow.connector.PooledByteBuffer);
descriptor: (Lio/undertow/server/protocol/framed/FrameHeaderData;Lio/undertow/connector/PooledByteBuffer;)Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
aload 2
invokevirtual io.undertow.protocols.http2.Http2Channel.createChannel:(Lio/undertow/server/protocol/framed/FrameHeaderData;Lio/undertow/connector/PooledByteBuffer;)Lio/undertow/protocols/http2/AbstractHttp2StreamSourceChannel;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
}
Signature: Lio/undertow/server/protocol/framed/AbstractFramedChannel<Lio/undertow/protocols/http2/Http2Channel;Lio/undertow/protocols/http2/AbstractHttp2StreamSourceChannel;Lio/undertow/protocols/http2/AbstractHttp2StreamSinkChannel;>;Lio/undertow/util/Attachable;
SourceFile: "Http2Channel.java"
NestMembers:
io.undertow.protocols.http2.Http2Channel$1 io.undertow.protocols.http2.Http2Channel$1$1 io.undertow.protocols.http2.Http2Channel$2 io.undertow.protocols.http2.Http2Channel$3 io.undertow.protocols.http2.Http2Channel$Http2ControlMessageExceptionHandler io.undertow.protocols.http2.Http2Channel$StreamHolder
InnerClasses:
io.undertow.protocols.http2.Http2Channel$1
io.undertow.protocols.http2.Http2Channel$2
io.undertow.protocols.http2.Http2Channel$3
private Http2ControlMessageExceptionHandler = io.undertow.protocols.http2.Http2Channel$Http2ControlMessageExceptionHandler of io.undertow.protocols.http2.Http2Channel
private final StreamHolder = io.undertow.protocols.http2.Http2Channel$StreamHolder of io.undertow.protocols.http2.Http2Channel
public abstract Entry = java.util.Map$Entry of java.util.Map
public abstract Setter = org.xnio.ChannelListener$Setter of org.xnio.ChannelListener
public SimpleSetter = org.xnio.ChannelListener$SimpleSetter of org.xnio.ChannelListener