public class io.undertow.protocols.http2.Http2DataStreamSinkChannel extends io.undertow.protocols.http2.Http2StreamSinkChannel implements io.undertow.protocols.http2.Http2Stream
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.undertow.protocols.http2.Http2DataStreamSinkChannel
super_class: io.undertow.protocols.http2.Http2StreamSinkChannel
{
private final io.undertow.util.HeaderMap ;
descriptor: Lio/undertow/util/HeaderMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean first;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final io.undertow.protocols.http2.HpackEncoder encoder;
descriptor: Lio/undertow/protocols/http2/HpackEncoder;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private org.xnio.ChannelListener<io.undertow.protocols.http2.Http2DataStreamSinkChannel> completionListener;
descriptor: Lorg/xnio/ChannelListener;
flags: (0x0002) ACC_PRIVATE
Signature: Lorg/xnio/ChannelListener<Lio/undertow/protocols/http2/Http2DataStreamSinkChannel;>;
private final int frameType;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean completionListenerReady;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private io.undertow.protocols.http2.Http2DataStreamSinkChannel$TrailersProducer trailersProducer;
descriptor: Lio/undertow/protocols/http2/Http2DataStreamSinkChannel$TrailersProducer;
flags: (0x0002) ACC_PRIVATE
void <init>(io.undertow.protocols.http2.Http2Channel, int, int);
descriptor: (Lio/undertow/protocols/http2/Http2Channel;II)V
flags: (0x0000)
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
new io.undertow.util.HeaderMap
dup
invokespecial io.undertow.util.HeaderMap.<init>:()V
iload 3
invokespecial io.undertow.protocols.http2.Http2DataStreamSinkChannel.<init>:(Lio/undertow/protocols/http2/Http2Channel;ILio/undertow/util/HeaderMap;I)V
1: return
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/Http2DataStreamSinkChannel;
0 2 1 channel Lio/undertow/protocols/http2/Http2Channel;
0 2 2 streamId I
0 2 3 frameType I
MethodParameters:
Name Flags
channel
streamId
frameType
void (io.undertow.protocols.http2.Http2Channel, int, io.undertow.util.HeaderMap, int);
descriptor: (Lio/undertow/protocols/http2/Http2Channel;ILio/undertow/util/HeaderMap;I)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
iload 2
invokespecial io.undertow.protocols.http2.Http2StreamSinkChannel.<init>:(Lio/undertow/protocols/http2/Http2Channel;I)V
1: aload 0
iconst_1
putfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.first:Z
2: aload 0
aload 1
invokevirtual io.undertow.protocols.http2.Http2Channel.getEncoder:()Lio/undertow/protocols/http2/HpackEncoder;
putfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.encoder:Lio/undertow/protocols/http2/HpackEncoder;
3: aload 0
aload 3
putfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.headers:Lio/undertow/util/HeaderMap;
4: aload 0
iload 4
putfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.frameType:I
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/undertow/protocols/http2/Http2DataStreamSinkChannel;
0 6 1 channel Lio/undertow/protocols/http2/Http2Channel;
0 6 2 streamId I
0 6 3 headers Lio/undertow/util/HeaderMap;
0 6 4 frameType I
MethodParameters:
Name Flags
channel
streamId
headers
frameType
public io.undertow.protocols.http2.Http2DataStreamSinkChannel$TrailersProducer getTrailersProducer();
descriptor: ()Lio/undertow/protocols/http2/Http2DataStreamSinkChannel$TrailersProducer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.trailersProducer:Lio/undertow/protocols/http2/Http2DataStreamSinkChannel$TrailersProducer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/http2/Http2DataStreamSinkChannel;
public void setTrailersProducer(io.undertow.protocols.http2.Http2DataStreamSinkChannel$TrailersProducer);
descriptor: (Lio/undertow/protocols/http2/Http2DataStreamSinkChannel$TrailersProducer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.trailersProducer:Lio/undertow/protocols/http2/Http2DataStreamSinkChannel$TrailersProducer;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/protocols/http2/Http2DataStreamSinkChannel;
0 2 1 trailersProducer Lio/undertow/protocols/http2/Http2DataStreamSinkChannel$TrailersProducer;
MethodParameters:
Name Flags
trailersProducer
protected io.undertow.server.protocol.framed.SendFrameHeader ();
descriptor: ()Lio/undertow/server/protocol/framed/SendFrameHeader;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=21, args_size=1
start local 0 0: aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.getChannel:()Lio/undertow/server/protocol/framed/AbstractFramedChannel;
checkcast io.undertow.protocols.http2.Http2Channel
invokevirtual io.undertow.protocols.http2.Http2Channel.getPaddingBytes:()I
istore 1
start local 1 1: aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
iload 1
iadd
iload 1
ifle 2
iconst_1
goto 3
StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int
StackMap stack: int
2: iconst_0
StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int
StackMap stack: int int
3: iadd
istore 2
start local 2 4: aload 0
iload 2
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.grabFlowControlBytes:(I)I
istore 3
start local 3 5: iload 3
ifne 7
aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 7
6: new io.undertow.server.protocol.framed.SendFrameHeader
dup
aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
aconst_null
invokespecial io.undertow.server.protocol.framed.SendFrameHeader.<init>:(ILio/undertow/connector/PooledByteBuffer;)V
areturn
7: StackMap locals: int int
StackMap stack:
iload 3
iload 1
iconst_1
iadd
if_icmpgt 15
8: aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
iload 3
if_icmplt 11
9: iconst_0
istore 1
10: goto 15
StackMap locals:
StackMap stack:
11: aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
iload 1
if_icmpne 14
12: iconst_1
istore 1
13: goto 15
14: StackMap locals:
StackMap stack:
iload 3
aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
isub
iconst_1
isub
istore 1
15: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.isFinalFrameQueued:()Z
ifeq 18
iload 3
aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
iload 1
ifle 16
iload 1
iconst_1
iadd
goto 17
StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int
StackMap stack: int int
16: iconst_0
StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int
StackMap stack: int int int
17: iadd
if_icmplt 18
iconst_1
goto 19
StackMap locals:
StackMap stack:
18: iconst_0
StackMap locals:
StackMap stack: int
19: istore 4
start local 4 20: aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.getChannel:()Lio/undertow/server/protocol/framed/AbstractFramedChannel;
checkcast io.undertow.protocols.http2.Http2Channel
invokevirtual io.undertow.protocols.http2.Http2Channel.getBufferPool:()Lio/undertow/connector/ByteBufferPool;
invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
astore 5
start local 5 21: aconst_null
astore 6
start local 6 22: aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
astore 7
start local 7 23: iconst_0
istore 8
start local 8 24: aconst_null
astore 9
start local 9 25: iload 4
ifeq 29
aload 0
getfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.trailersProducer:Lio/undertow/protocols/http2/Http2DataStreamSinkChannel$TrailersProducer;
ifnull 29
26: aload 0
getfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.trailersProducer:Lio/undertow/protocols/http2/Http2DataStreamSinkChannel$TrailersProducer;
invokeinterface io.undertow.protocols.http2.Http2DataStreamSinkChannel$TrailersProducer.getTrailers:()Lio/undertow/util/HeaderMap;
astore 9
27: aload 9
ifnull 29
aload 9
invokevirtual io.undertow.util.HeaderMap.size:()I
ifne 29
28: aconst_null
astore 9
29: StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int int io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer[] java.nio.ByteBuffer int io.undertow.util.HeaderMap
StackMap stack:
aload 0
getfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.first:Z
ifeq 71
30: iconst_1
istore 8
31: aload 0
iconst_0
putfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.first:Z
32: aload 7
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
33: aload 7
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
34: aload 7
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
35: aload 7
aload 0
getfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.frameType:I
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
36: aload 7
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
37: aload 7
aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.getStreamId:()I
invokestatic io.undertow.protocols.http2.Http2ProtocolUtils.putInt:(Ljava/nio/ByteBuffer;I)V
38: aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.getChannel:()Lio/undertow/server/protocol/framed/AbstractFramedChannel;
checkcast io.undertow.protocols.http2.Http2Channel
invokevirtual io.undertow.protocols.http2.Http2Channel.getPaddingBytes:()I
istore 10
start local 10 39: iload 10
ifle 41
40: aload 7
iload 10
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
41: StackMap locals: int
StackMap stack:
aload 0
aload 7
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.writeBeforeHeaderBlock:(Ljava/nio/ByteBuffer;)V
42: aload 0
getfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.headers:Lio/undertow/util/HeaderMap;
astore 11
start local 11 43: aload 0
getfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.encoder:Lio/undertow/protocols/http2/HpackEncoder;
aload 11
aload 7
invokevirtual io.undertow.protocols.http2.HpackEncoder.encode:(Lio/undertow/util/HeaderMap;Ljava/nio/ByteBuffer;)Lio/undertow/protocols/http2/HpackEncoder$State;
astore 12
start local 12 44: aload 5
astore 13
start local 13 45: aload 7
invokevirtual java.nio.ByteBuffer.position:()I
bipush 9
isub
iload 10
iadd
istore 14
start local 14 46: aload 7
iconst_0
iload 14
bipush 16
ishr
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
47: aload 7
iconst_1
iload 14
bipush 8
ishr
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
48: aload 7
iconst_2
iload 14
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
49: aload 7
iconst_4
aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.isFinalFrameQueued:()Z
ifeq 50
aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 50
aload 0
getfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.frameType:I
iconst_1
if_icmpne 50
aload 9
ifnonnull 50
iconst_1
goto 51
StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int int io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer[] java.nio.ByteBuffer int io.undertow.util.HeaderMap int io.undertow.util.HeaderMap io.undertow.protocols.http2.HpackEncoder$State io.undertow.connector.PooledByteBuffer int
StackMap stack: java.nio.ByteBuffer int
50: iconst_0
StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int int io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer[] java.nio.ByteBuffer int io.undertow.util.HeaderMap int io.undertow.util.HeaderMap io.undertow.protocols.http2.HpackEncoder$State io.undertow.connector.PooledByteBuffer int
StackMap stack: java.nio.ByteBuffer int int
51: aload 12
getstatic io.undertow.protocols.http2.HpackEncoder$State.COMPLETE:Lio/undertow/protocols/http2/HpackEncoder$State;
if_acmpne 52
iconst_4
goto 53
StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int int io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer[] java.nio.ByteBuffer int io.undertow.util.HeaderMap int io.undertow.util.HeaderMap io.undertow.protocols.http2.HpackEncoder$State io.undertow.connector.PooledByteBuffer int
StackMap stack: java.nio.ByteBuffer int int
52: iconst_0
StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int int io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer[] java.nio.ByteBuffer int io.undertow.util.HeaderMap int io.undertow.util.HeaderMap io.undertow.protocols.http2.HpackEncoder$State io.undertow.connector.PooledByteBuffer int
StackMap stack: java.nio.ByteBuffer int int int
53: ior
iload 10
ifle 54
bipush 8
goto 55
StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int int io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer[] java.nio.ByteBuffer int io.undertow.util.HeaderMap int io.undertow.util.HeaderMap io.undertow.protocols.http2.HpackEncoder$State io.undertow.connector.PooledByteBuffer int
StackMap stack: java.nio.ByteBuffer int int
54: iconst_0
StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int int io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer[] java.nio.ByteBuffer int io.undertow.util.HeaderMap int io.undertow.util.HeaderMap io.undertow.protocols.http2.HpackEncoder$State io.undertow.connector.PooledByteBuffer int
StackMap stack: java.nio.ByteBuffer int int int
55: ior
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
56: aload 7
astore 15
start local 15 57: aload 15
invokevirtual java.nio.ByteBuffer.remaining:()I
iload 10
if_icmpge 61
58: aload 0
aload 6
aload 13
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.allocateAll:([Lio/undertow/connector/PooledByteBuffer;Lio/undertow/connector/PooledByteBuffer;)[Lio/undertow/connector/PooledByteBuffer;
astore 6
59: aload 6
aload 6
arraylength
iconst_1
isub
aaload
astore 13
60: aload 13
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
astore 15
61: StackMap locals: java.nio.ByteBuffer
StackMap stack:
iconst_0
istore 16
start local 16 62: goto 65
63: StackMap locals: int
StackMap stack:
aload 15
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
64: iinc 16 1
StackMap locals:
StackMap stack:
65: iload 16
iload 10
if_icmplt 63
end local 16 66: goto 70
67: StackMap locals:
StackMap stack:
aload 0
aload 6
aload 13
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.allocateAll:([Lio/undertow/connector/PooledByteBuffer;Lio/undertow/connector/PooledByteBuffer;)[Lio/undertow/connector/PooledByteBuffer;
astore 6
68: aload 6
aload 6
arraylength
iconst_1
isub
aaload
astore 13
69: aload 0
aload 11
aload 13
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.encodeContinuationFrame:(Lio/undertow/util/HeaderMap;Lio/undertow/connector/PooledByteBuffer;)Lio/undertow/protocols/http2/HpackEncoder$State;
astore 12
70: StackMap locals:
StackMap stack:
aload 12
getstatic io.undertow.protocols.http2.HpackEncoder$State.COMPLETE:Lio/undertow/protocols/http2/HpackEncoder$State;
if_acmpne 67
end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 71: StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int int io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer[] java.nio.ByteBuffer int io.undertow.util.HeaderMap
StackMap stack:
aload 6
ifnonnull 72
aload 5
goto 73
StackMap locals:
StackMap stack:
72: aload 6
aload 6
arraylength
iconst_1
isub
aaload
StackMap locals:
StackMap stack: io.undertow.connector.PooledByteBuffer
73: astore 10
start local 10 74: aload 10
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
astore 11
start local 11 75: aconst_null
astore 12
start local 12 76: iconst_0
istore 13
start local 13 77: iconst_0
istore 14
start local 14 78: aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
ifle 114
79: iload 3
ifle 112
80: aload 11
invokevirtual java.nio.ByteBuffer.remaining:()I
bipush 10
if_icmpge 86
81: aload 0
aload 6
aload 10
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.allocateAll:([Lio/undertow/connector/PooledByteBuffer;Lio/undertow/connector/PooledByteBuffer;)[Lio/undertow/connector/PooledByteBuffer;
astore 6
82: aload 6
ifnonnull 83
aload 5
goto 84
StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int int io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer[] java.nio.ByteBuffer int io.undertow.util.HeaderMap io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer java.nio.ByteBuffer int int
StackMap stack:
83: aload 6
aload 6
arraylength
iconst_1
isub
aaload
StackMap locals:
StackMap stack: io.undertow.connector.PooledByteBuffer
84: astore 10
85: aload 10
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
astore 11
86: StackMap locals:
StackMap stack:
iload 3
iload 1
isub
iload 1
ifle 87
iconst_1
goto 88
StackMap locals:
StackMap stack: int
87: iconst_0
StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int int io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer[] java.nio.ByteBuffer int io.undertow.util.HeaderMap io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer java.nio.ByteBuffer int int
StackMap stack: int int
88: isub
istore 15
start local 15 89: aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
iload 15
isub
istore 13
90: aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.getBuffer:()Ljava/nio/ByteBuffer;
aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
iload 15
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
91: aload 11
iload 3
bipush 16
ishr
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
92: aload 11
iload 3
bipush 8
ishr
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
93: aload 11
iload 3
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
94: aload 11
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
95: aload 9
ifnonnull 102
96: aload 11
iload 4
ifeq 97
iconst_1
goto 98
StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int int io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer[] java.nio.ByteBuffer int io.undertow.util.HeaderMap io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer java.nio.ByteBuffer int int int
StackMap stack: java.nio.ByteBuffer
97: iconst_0
StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int int io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer[] java.nio.ByteBuffer int io.undertow.util.HeaderMap io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer java.nio.ByteBuffer int int int
StackMap stack: java.nio.ByteBuffer int
98: iload 1
ifle 99
bipush 8
goto 100
StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int int io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer[] java.nio.ByteBuffer int io.undertow.util.HeaderMap io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer java.nio.ByteBuffer int int int
StackMap stack: java.nio.ByteBuffer int
99: iconst_0
StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int int io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer[] java.nio.ByteBuffer int io.undertow.util.HeaderMap io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer java.nio.ByteBuffer int int int
StackMap stack: java.nio.ByteBuffer int int
100: ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
101: goto 107
102: StackMap locals:
StackMap stack:
iload 4
ifeq 104
103: iconst_1
istore 14
104: StackMap locals:
StackMap stack:
aload 11
iload 1
ifle 105
bipush 8
goto 106
StackMap locals:
StackMap stack: java.nio.ByteBuffer
105: iconst_0
StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int int io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer[] java.nio.ByteBuffer int io.undertow.util.HeaderMap io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer java.nio.ByteBuffer int int int
StackMap stack: java.nio.ByteBuffer int
106: i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
107: StackMap locals:
StackMap stack:
aload 11
aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.getStreamId:()I
invokestatic io.undertow.protocols.http2.Http2ProtocolUtils.putInt:(Ljava/nio/ByteBuffer;I)V
108: iload 1
ifle 135
109: aload 11
iload 1
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
110: iload 1
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 12
end local 15 111: goto 135
112: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 13
113: goto 135
StackMap locals:
StackMap stack:
114: iload 4
ifeq 133
iload 8
ifne 133
115: aload 11
iload 3
bipush 16
ishr
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
116: aload 11
iload 3
bipush 8
ishr
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
117: aload 11
iload 3
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
118: aload 11
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
119: aload 9
ifnonnull 124
120: aload 11
iconst_1
iload 1
ifle 121
bipush 8
goto 122
StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int int io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer[] java.nio.ByteBuffer int io.undertow.util.HeaderMap io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer java.nio.ByteBuffer int int
StackMap stack: java.nio.ByteBuffer int
121: iconst_0
StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int int io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer[] java.nio.ByteBuffer int io.undertow.util.HeaderMap io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer java.nio.ByteBuffer int int
StackMap stack: java.nio.ByteBuffer int int
122: ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
123: goto 128
124: StackMap locals:
StackMap stack:
iconst_1
istore 14
125: aload 11
iload 1
ifle 126
bipush 8
goto 127
StackMap locals:
StackMap stack: java.nio.ByteBuffer
126: iconst_0
StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int int io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer[] java.nio.ByteBuffer int io.undertow.util.HeaderMap io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer java.nio.ByteBuffer int int
StackMap stack: java.nio.ByteBuffer int
127: i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
128: StackMap locals:
StackMap stack:
aload 11
aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.getStreamId:()I
invokestatic io.undertow.protocols.http2.Http2ProtocolUtils.putInt:(Ljava/nio/ByteBuffer;I)V
129: iload 1
ifle 135
130: aload 11
iload 1
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
131: iload 1
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 12
132: goto 135
StackMap locals:
StackMap stack:
133: iload 4
ifeq 135
aload 9
ifnull 135
134: iconst_1
istore 14
135: StackMap locals:
StackMap stack:
iload 14
ifeq 158
136: aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.getChannel:()Lio/undertow/server/protocol/framed/AbstractFramedChannel;
checkcast io.undertow.protocols.http2.Http2Channel
invokevirtual io.undertow.protocols.http2.Http2Channel.getBufferPool:()Lio/undertow/connector/ByteBufferPool;
invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
astore 15
start local 15 137: aload 12
ifnull 139
138: aload 15
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
aload 12
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
139: StackMap locals: io.undertow.connector.PooledByteBuffer
StackMap stack:
aload 15
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
140: aload 15
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
141: aload 15
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
142: aload 15
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
iconst_1
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
143: aload 15
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
iconst_5
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
144: aload 15
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.getStreamId:()I
invokestatic io.undertow.protocols.http2.Http2ProtocolUtils.putInt:(Ljava/nio/ByteBuffer;I)V
145: aload 0
getfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.encoder:Lio/undertow/protocols/http2/HpackEncoder;
aload 9
aload 15
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual io.undertow.protocols.http2.HpackEncoder.encode:(Lio/undertow/util/HeaderMap;Ljava/nio/ByteBuffer;)Lio/undertow/protocols/http2/HpackEncoder$State;
astore 16
start local 16 146: aload 16
getstatic io.undertow.protocols.http2.HpackEncoder$State.COMPLETE:Lio/undertow/protocols/http2/HpackEncoder$State;
if_acmpeq 148
147: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.http2TrailerToLargeForSingleBuffer:()Ljava/lang/RuntimeException;
athrow
148: StackMap locals: io.undertow.protocols.http2.HpackEncoder$State
StackMap stack:
aload 15
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
bipush 9
isub
istore 17
start local 17 149: aload 15
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
iconst_0
iload 17
bipush 16
ishr
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
150: aload 15
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
iconst_1
iload 17
bipush 8
ishr
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
151: aload 15
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
iconst_2
iload 17
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
152: aload 15
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
153: aload 15
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 18
start local 18 154: iload 18
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 12
155: aload 12
aload 15
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
156: aload 12
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
157: aload 15
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
end local 18 end local 17 end local 16 end local 15 158: StackMap locals:
StackMap stack:
aload 6
ifnonnull 161
159: aload 11
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
160: new io.undertow.server.protocol.framed.SendFrameHeader
dup
iload 13
aload 10
iconst_0
aload 12
invokespecial io.undertow.server.protocol.framed.SendFrameHeader.<init>:(ILio/undertow/connector/PooledByteBuffer;ZLjava/nio/ByteBuffer;)V
areturn
161: StackMap locals:
StackMap stack:
iconst_0
istore 15
start local 15 162: iconst_0
istore 16
start local 16 163: goto 167
164: StackMap locals: int int
StackMap stack:
iload 15
aload 6
iload 16
aaload
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
iadd
istore 15
165: aload 6
iload 16
aaload
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
166: iinc 16 1
StackMap locals:
StackMap stack:
167: iload 16
aload 6
arraylength
if_icmplt 164
end local 16 168: iload 15
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 16
start local 16 169: iconst_0
istore 17
start local 17 170: goto 173
171: StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int int io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer[] java.nio.ByteBuffer int io.undertow.util.HeaderMap io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer java.nio.ByteBuffer int int int java.nio.ByteBuffer int
StackMap stack:
aload 16
aload 6
iload 17
aaload
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
172: iinc 17 1
StackMap locals:
StackMap stack:
173: iload 17
aload 6
arraylength
if_icmplt 171
end local 17 174: aload 16
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
175: new io.undertow.server.protocol.framed.SendFrameHeader
dup
iload 13
new io.undertow.util.ImmediatePooledByteBuffer
dup
aload 16
invokespecial io.undertow.util.ImmediatePooledByteBuffer.<init>:(Ljava/nio/ByteBuffer;)V
iconst_0
aload 12
invokespecial io.undertow.server.protocol.framed.SendFrameHeader.<init>:(ILio/undertow/connector/PooledByteBuffer;ZLjava/nio/ByteBuffer;)V
astore 19
176: iconst_0
istore 20
start local 20 177: goto 180
178: StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int int io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer[] java.nio.ByteBuffer int io.undertow.util.HeaderMap io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer java.nio.ByteBuffer int int int java.nio.ByteBuffer top top io.undertow.server.protocol.framed.SendFrameHeader int
StackMap stack:
aload 6
iload 20
aaload
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
179: iinc 20 1
StackMap locals:
StackMap stack:
180: iload 20
aload 6
arraylength
if_icmplt 178
end local 20 181: aload 19
areturn
end local 16 182: StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int int io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer[] java.nio.ByteBuffer int io.undertow.util.HeaderMap io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer java.nio.ByteBuffer int int int
StackMap stack: java.lang.Throwable
astore 18
183: iconst_0
istore 20
start local 20 184: goto 187
185: StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel int int int int io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer[] java.nio.ByteBuffer int io.undertow.util.HeaderMap io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer java.nio.ByteBuffer int int int top top java.lang.Throwable top int
StackMap stack:
aload 6
iload 20
aaload
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
186: iinc 20 1
StackMap locals:
StackMap stack:
187: iload 20
aload 6
arraylength
if_icmplt 185
end local 20 188: aload 18
athrow
end local 15 end local 14 end local 13 end local 12 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 189 0 this Lio/undertow/protocols/http2/Http2DataStreamSinkChannel;
1 189 1 dataPaddingBytes I
4 189 2 attempted I
5 189 3 fcWindow I
20 189 4 finalFrame Z
21 189 5 firstHeaderBuffer Lio/undertow/connector/PooledByteBuffer;
22 189 6 allHeaderBuffers [Lio/undertow/connector/PooledByteBuffer;
23 189 7 firstBuffer Ljava/nio/ByteBuffer;
24 189 8 firstFrame Z
25 189 9 trailers Lio/undertow/util/HeaderMap;
39 71 10 paddingBytes I
43 71 11 headers Lio/undertow/util/HeaderMap;
44 71 12 result Lio/undertow/protocols/http2/HpackEncoder$State;
45 71 13 current Lio/undertow/connector/PooledByteBuffer;
46 71 14 headerFrameLength I
57 71 15 currentBuffer Ljava/nio/ByteBuffer;
62 66 16 i I
74 189 10 currentPooled Lio/undertow/connector/PooledByteBuffer;
75 189 11 currentBuffer Ljava/nio/ByteBuffer;
76 189 12 trailer Ljava/nio/ByteBuffer;
77 189 13 remainingInBuffer I
78 189 14 requiresTrailers Z
89 111 15 toSend I
137 158 15 firstTrailerBuffer Lio/undertow/connector/PooledByteBuffer;
146 158 16 result Lio/undertow/protocols/http2/HpackEncoder$State;
149 158 17 headerFrameLength I
154 158 18 size I
162 189 15 length I
163 168 16 i I
169 182 16 newBuf Ljava/nio/ByteBuffer;
170 174 17 i I
177 181 20 i I
184 188 20 i I
Exception table:
from to target type
168 176 182 any
private io.undertow.protocols.http2.HpackEncoder$State (io.undertow.util.HeaderMap, io.undertow.connector.PooledByteBuffer);
descriptor: (Lio/undertow/util/HeaderMap;Lio/undertow/connector/PooledByteBuffer;)Lio/undertow/protocols/http2/HpackEncoder$State;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
astore 3
start local 3 1: aload 3
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
2: aload 3
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
3: aload 3
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
4: aload 3
bipush 9
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
5: aload 3
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
6: aload 3
aload 0
invokevirtual io.undertow.protocols.http2.Http2DataStreamSinkChannel.getStreamId:()I
invokestatic io.undertow.protocols.http2.Http2ProtocolUtils.putInt:(Ljava/nio/ByteBuffer;I)V
7: aload 0
getfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.encoder:Lio/undertow/protocols/http2/HpackEncoder;
aload 1
aload 3
invokevirtual io.undertow.protocols.http2.HpackEncoder.encode:(Lio/undertow/util/HeaderMap;Ljava/nio/ByteBuffer;)Lio/undertow/protocols/http2/HpackEncoder$State;
astore 4
start local 4 8: aload 3
invokevirtual java.nio.ByteBuffer.position:()I
bipush 9
isub
istore 5
start local 5 9: aload 3
iconst_0
iload 5
bipush 16
ishr
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
10: aload 3
iconst_1
iload 5
bipush 8
ishr
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
11: aload 3
iconst_2
iload 5
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
12: aload 3
iconst_4
aload 4
getstatic io.undertow.protocols.http2.HpackEncoder$State.COMPLETE:Lio/undertow/protocols/http2/HpackEncoder$State;
if_acmpne 13
iconst_4
goto 14
StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel io.undertow.util.HeaderMap io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer io.undertow.protocols.http2.HpackEncoder$State int
StackMap stack: java.nio.ByteBuffer int
13: iconst_0
StackMap locals: io.undertow.protocols.http2.Http2DataStreamSinkChannel io.undertow.util.HeaderMap io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer io.undertow.protocols.http2.HpackEncoder$State int
StackMap stack: java.nio.ByteBuffer int int
14: i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
15: aload 4
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lio/undertow/protocols/http2/Http2DataStreamSinkChannel;
0 16 1 headers Lio/undertow/util/HeaderMap;
0 16 2 current Lio/undertow/connector/PooledByteBuffer;
1 16 3 currentBuffer Ljava/nio/ByteBuffer;
8 16 4 result Lio/undertow/protocols/http2/HpackEncoder$State;
9 16 5 contFrameLength I
MethodParameters:
Name Flags
headers
current
public boolean flush();
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.Http2DataStreamSinkChannel.completionListenerReady:Z
ifeq 3
aload 0
getfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.completionListener:Lorg/xnio/ChannelListener;
ifnull 3
1: aload 0
aload 0
getfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.completionListener:Lorg/xnio/ChannelListener;
invokestatic org.xnio.ChannelListeners.invokeChannelListener:(Ljava/nio/channels/Channel;Lorg/xnio/ChannelListener;)Z
pop
2: aload 0
aconst_null
putfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.completionListener:Lorg/xnio/ChannelListener;
3: StackMap locals:
StackMap stack:
aload 0
invokespecial io.undertow.protocols.http2.Http2StreamSinkChannel.flush:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/undertow/protocols/http2/Http2DataStreamSinkChannel;
Exceptions:
throws java.io.IOException
protected void (java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/http2/Http2DataStreamSinkChannel;
0 1 1 buffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
buffer
protected boolean isFlushRequiredOnEmptyBuffer();
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.Http2DataStreamSinkChannel.first:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/http2/Http2DataStreamSinkChannel;
public io.undertow.util.HeaderMap ();
descriptor: ()Lio/undertow/util/HeaderMap;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.headers:Lio/undertow/util/HeaderMap;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/http2/Http2DataStreamSinkChannel;
protected void handleFlushComplete(boolean);
descriptor: (Z)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokespecial io.undertow.protocols.http2.Http2StreamSinkChannel.handleFlushComplete:(Z)V
1: iload 1
ifeq 4
2: aload 0
getfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.completionListener:Lorg/xnio/ChannelListener;
ifnull 4
3: aload 0
iconst_1
putfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.completionListenerReady:Z
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/Http2DataStreamSinkChannel;
0 5 1 finalFrame Z
MethodParameters:
Name Flags
finalFrame
protected void channelForciblyClosed();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial io.undertow.protocols.http2.Http2StreamSinkChannel.channelForciblyClosed:()V
1: aload 0
getfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.completionListener:Lorg/xnio/ChannelListener;
ifnull 4
2: aload 0
aload 0
getfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.completionListener:Lorg/xnio/ChannelListener;
invokestatic org.xnio.ChannelListeners.invokeChannelListener:(Ljava/nio/channels/Channel;Lorg/xnio/ChannelListener;)Z
pop
3: aload 0
aconst_null
putfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.completionListener:Lorg/xnio/ChannelListener;
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/undertow/protocols/http2/Http2DataStreamSinkChannel;
Exceptions:
throws java.io.IOException
public org.xnio.ChannelListener<io.undertow.protocols.http2.Http2DataStreamSinkChannel> getCompletionListener();
descriptor: ()Lorg/xnio/ChannelListener;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.completionListener:Lorg/xnio/ChannelListener;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/http2/Http2DataStreamSinkChannel;
Signature: ()Lorg/xnio/ChannelListener<Lio/undertow/protocols/http2/Http2DataStreamSinkChannel;>;
public void setCompletionListener(org.xnio.ChannelListener<io.undertow.protocols.http2.Http2DataStreamSinkChannel>);
descriptor: (Lorg/xnio/ChannelListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield io.undertow.protocols.http2.Http2DataStreamSinkChannel.completionListener:Lorg/xnio/ChannelListener;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/protocols/http2/Http2DataStreamSinkChannel;
0 2 1 completionListener Lorg/xnio/ChannelListener<Lio/undertow/protocols/http2/Http2DataStreamSinkChannel;>;
Signature: (Lorg/xnio/ChannelListener<Lio/undertow/protocols/http2/Http2DataStreamSinkChannel;>;)V
MethodParameters:
Name Flags
completionListener
}
SourceFile: "Http2DataStreamSinkChannel.java"
NestMembers:
io.undertow.protocols.http2.Http2DataStreamSinkChannel$TrailersProducer
InnerClasses:
public final State = io.undertow.protocols.http2.HpackEncoder$State of io.undertow.protocols.http2.HpackEncoder
public abstract TrailersProducer = io.undertow.protocols.http2.Http2DataStreamSinkChannel$TrailersProducer of io.undertow.protocols.http2.Http2DataStreamSinkChannel