public class io.undertow.conduits.ChunkedStreamSinkConduit extends org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.undertow.conduits.ChunkedStreamSinkConduit
super_class: org.xnio.conduits.AbstractStreamSinkConduit
{
public static final io.undertow.util.AttachmentKey<io.undertow.util.HeaderMap> TRAILERS;
descriptor: Lio/undertow/util/AttachmentKey;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lio/undertow/util/AttachmentKey<Lio/undertow/util/HeaderMap;>;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
private final io.undertow.util.HeaderMap ;
descriptor: Lio/undertow/util/HeaderMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.undertow.conduits.ConduitListener<? super io.undertow.conduits.ChunkedStreamSinkConduit> finishListener;
descriptor: Lio/undertow/conduits/ConduitListener;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/undertow/conduits/ConduitListener<-Lio/undertow/conduits/ChunkedStreamSinkConduit;>;
private final int config;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.undertow.connector.ByteBufferPool bufferPool;
descriptor: Lio/undertow/connector/ByteBufferPool;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final byte[] LAST_CHUNK;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] CRLF;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final io.undertow.util.Attachable attachable;
descriptor: Lio/undertow/util/Attachable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int state;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int chunkleft;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final java.nio.ByteBuffer chunkingBuffer;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.nio.ByteBuffer chunkingSepBuffer;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private io.undertow.connector.PooledByteBuffer lastChunkBuffer;
descriptor: Lio/undertow/connector/PooledByteBuffer;
flags: (0x0002) ACC_PRIVATE
private static final int CONF_FLAG_CONFIGURABLE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int CONF_FLAG_PASS_CLOSE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int FLAG_WRITES_SHUTDOWN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int FLAG_NEXT_SHUTDOWN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int FLAG_WRITTEN_FIRST_CHUNK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int FLAG_FIRST_DATA_WRITTEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private static final int FLAG_FINISHED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32
private static final byte[] DIGITS;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: getstatic io.undertow.server.protocol.http.HttpAttachments.RESPONSE_TRAILERS:Lio/undertow/util/AttachmentKey;
putstatic io.undertow.conduits.ChunkedStreamSinkConduit.TRAILERS:Lio/undertow/util/AttachmentKey;
1: iconst_3
newarray 8
dup
iconst_0
bipush 48
bastore
dup
iconst_1
bipush 13
bastore
dup
iconst_2
bipush 10
bastore
putstatic io.undertow.conduits.ChunkedStreamSinkConduit.LAST_CHUNK:[B
2: iconst_2
newarray 8
dup
iconst_0
bipush 13
bastore
dup
iconst_1
bipush 10
bastore
putstatic io.undertow.conduits.ChunkedStreamSinkConduit.CRLF:[B
3: bipush 16
newarray 8
dup
iconst_0
4: bipush 48
bastore
dup
iconst_1
bipush 49
bastore
dup
iconst_2
bipush 50
bastore
dup
iconst_3
bipush 51
bastore
dup
iconst_4
bipush 52
bastore
dup
iconst_5
bipush 53
bastore
dup
bipush 6
5: bipush 54
bastore
dup
bipush 7
bipush 55
bastore
dup
bipush 8
bipush 56
bastore
dup
bipush 9
bipush 57
bastore
dup
bipush 10
bipush 97
bastore
dup
bipush 11
bipush 98
bastore
dup
bipush 12
6: bipush 99
bastore
dup
bipush 13
bipush 100
bastore
dup
bipush 14
bipush 101
bastore
dup
bipush 15
bipush 102
bastore
7: putstatic io.undertow.conduits.ChunkedStreamSinkConduit.DIGITS:[B
8: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.xnio.conduits.StreamSinkConduit, io.undertow.connector.ByteBufferPool, boolean, boolean, io.undertow.util.HeaderMap, io.undertow.conduits.ConduitListener<? super io.undertow.conduits.ChunkedStreamSinkConduit>, io.undertow.util.Attachable);
descriptor: (Lorg/xnio/conduits/StreamSinkConduit;Lio/undertow/connector/ByteBufferPool;ZZLio/undertow/util/HeaderMap;Lio/undertow/conduits/ConduitListener;Lio/undertow/util/Attachable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, 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
invokespecial org.xnio.conduits.AbstractStreamSinkConduit.<init>:(Lorg/xnio/conduits/StreamSinkConduit;)V
1: aload 0
iconst_0
putfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkleft:I
2: aload 0
bipush 12
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
putfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkingBuffer:Ljava/nio/ByteBuffer;
3: aload 0
aload 2
putfield io.undertow.conduits.ChunkedStreamSinkConduit.bufferPool:Lio/undertow/connector/ByteBufferPool;
4: aload 0
aload 5
putfield io.undertow.conduits.ChunkedStreamSinkConduit.responseHeaders:Lio/undertow/util/HeaderMap;
5: aload 0
aload 6
putfield io.undertow.conduits.ChunkedStreamSinkConduit.finishListener:Lio/undertow/conduits/ConduitListener;
6: aload 0
aload 7
putfield io.undertow.conduits.ChunkedStreamSinkConduit.attachable:Lio/undertow/util/Attachable;
7: aload 0
iload 3
ifeq 8
iconst_1
goto 9
StackMap locals: io.undertow.conduits.ChunkedStreamSinkConduit org.xnio.conduits.StreamSinkConduit io.undertow.connector.ByteBufferPool int int io.undertow.util.HeaderMap io.undertow.conduits.ConduitListener io.undertow.util.Attachable
StackMap stack: io.undertow.conduits.ChunkedStreamSinkConduit
8: iconst_0
StackMap locals: io.undertow.conduits.ChunkedStreamSinkConduit org.xnio.conduits.StreamSinkConduit io.undertow.connector.ByteBufferPool int int io.undertow.util.HeaderMap io.undertow.conduits.ConduitListener io.undertow.util.Attachable
StackMap stack: io.undertow.conduits.ChunkedStreamSinkConduit int
9: iload 4
ifeq 10
iconst_2
goto 11
StackMap locals: io.undertow.conduits.ChunkedStreamSinkConduit org.xnio.conduits.StreamSinkConduit io.undertow.connector.ByteBufferPool int int io.undertow.util.HeaderMap io.undertow.conduits.ConduitListener io.undertow.util.Attachable
StackMap stack: io.undertow.conduits.ChunkedStreamSinkConduit int
10: iconst_0
StackMap locals: io.undertow.conduits.ChunkedStreamSinkConduit org.xnio.conduits.StreamSinkConduit io.undertow.connector.ByteBufferPool int int io.undertow.util.HeaderMap io.undertow.conduits.ConduitListener io.undertow.util.Attachable
StackMap stack: io.undertow.conduits.ChunkedStreamSinkConduit int int
11: ior
putfield io.undertow.conduits.ChunkedStreamSinkConduit.config:I
12: aload 0
iconst_2
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
putfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkingSepBuffer:Ljava/nio/ByteBuffer;
13: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkingSepBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
14: 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 15 0 this Lio/undertow/conduits/ChunkedStreamSinkConduit;
0 15 1 next Lorg/xnio/conduits/StreamSinkConduit;
0 15 2 bufferPool Lio/undertow/connector/ByteBufferPool;
0 15 3 configurable Z
0 15 4 passClose Z
0 15 5 responseHeaders Lio/undertow/util/HeaderMap;
0 15 6 finishListener Lio/undertow/conduits/ConduitListener<-Lio/undertow/conduits/ChunkedStreamSinkConduit;>;
0 15 7 attachable Lio/undertow/util/Attachable;
Signature: (Lorg/xnio/conduits/StreamSinkConduit;Lio/undertow/connector/ByteBufferPool;ZZLio/undertow/util/HeaderMap;Lio/undertow/conduits/ConduitListener<-Lio/undertow/conduits/ChunkedStreamSinkConduit;>;Lio/undertow/util/Attachable;)V
MethodParameters:
Name Flags
next final
bufferPool final
configurable final
passClose final
responseHeaders
finishListener final
attachable final
public int write(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual io.undertow.conduits.ChunkedStreamSinkConduit.doWrite:(Ljava/nio/ByteBuffer;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/conduits/ChunkedStreamSinkConduit;
0 1 1 src Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src final
int doWrite(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0000)
Code:
stack=4, locals=12, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
iconst_1
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 2
1: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 0
dup
getfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
bipush 16
ior
putfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
5: aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
istore 2
start local 2 6: iconst_0
istore 3
start local 3 7: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkleft:I
ifne 18
aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkingSepBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 18
8: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkingBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
pop
9: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkingBuffer:Ljava/nio/ByteBuffer;
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
invokestatic io.undertow.conduits.ChunkedStreamSinkConduit.putIntAsHexString:(Ljava/nio/ByteBuffer;I)V
10: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkingBuffer:Ljava/nio/ByteBuffer;
getstatic io.undertow.conduits.ChunkedStreamSinkConduit.CRLF:[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
11: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkingBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
12: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkingSepBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
pop
13: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkingSepBuffer:Ljava/nio/ByteBuffer;
getstatic io.undertow.conduits.ChunkedStreamSinkConduit.CRLF:[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
14: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkingSepBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
15: aload 0
dup
getfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
bipush 8
ior
putfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
16: aload 0
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
putfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkleft:I
17: goto 21
18: StackMap locals: int int
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkleft:I
if_icmple 21
19: iconst_1
istore 3
20: aload 1
aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkleft:I
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
21: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkingBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 4
start local 4 22: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkingSepBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 5
start local 5 23: iload 4
ifgt 24
iload 5
ifgt 24
aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.lastChunkBuffer:Lio/undertow/connector/PooledByteBuffer;
ifnull 47
24: StackMap locals: int int
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 6
start local 6 25: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.lastChunkBuffer:Lio/undertow/connector/PooledByteBuffer;
ifnull 26
iload 3
ifeq 29
26: StackMap locals: int
StackMap stack:
iconst_3
anewarray java.nio.ByteBuffer
dup
iconst_0
aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkingBuffer:Ljava/nio/ByteBuffer;
aastore
dup
iconst_1
aload 1
aastore
dup
iconst_2
aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkingSepBuffer:Ljava/nio/ByteBuffer;
aastore
astore 9
start local 9 27: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
aload 9
iconst_0
aload 9
arraylength
invokeinterface org.xnio.conduits.StreamSinkConduit.write:([Ljava/nio/ByteBuffer;II)J
lstore 7
end local 9 start local 7 28: goto 39
end local 7 29: StackMap locals:
StackMap stack:
iconst_3
anewarray java.nio.ByteBuffer
dup
iconst_0
aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkingBuffer:Ljava/nio/ByteBuffer;
aastore
dup
iconst_1
aload 1
aastore
dup
iconst_2
aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.lastChunkBuffer:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
aastore
astore 9
start local 9 30: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
iconst_2
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 33
31: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
aload 9
iconst_0
aload 9
arraylength
invokeinterface org.xnio.conduits.StreamSinkConduit.writeFinal:([Ljava/nio/ByteBuffer;II)J
lstore 7
start local 7 32: goto 34
end local 7 33: StackMap locals: io.undertow.conduits.ChunkedStreamSinkConduit java.nio.ByteBuffer int int int int int top top java.nio.ByteBuffer[]
StackMap stack:
aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
aload 9
iconst_0
aload 9
arraylength
invokeinterface org.xnio.conduits.StreamSinkConduit.write:([Ljava/nio/ByteBuffer;II)J
lstore 7
start local 7 34: StackMap locals: io.undertow.conduits.ChunkedStreamSinkConduit java.nio.ByteBuffer int int int int int long java.nio.ByteBuffer[]
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 36
35: aload 0
dup
getfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
iconst_1
ior
putfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
36: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.lastChunkBuffer:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 39
37: aload 0
dup
getfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
iconst_4
ior
putfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
38: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.lastChunkBuffer:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
end local 9 39: StackMap locals:
StackMap stack:
iload 6
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
isub
istore 9
start local 9 40: aload 0
dup
getfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkleft:I
iload 9
isub
putfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkleft:I
41: lload 7
iload 4
i2l
lcmp
ifge 44
42: aload 1
iload 2
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
43: iconst_0
ireturn
44: StackMap locals: int
StackMap stack:
iload 9
istore 11
45: aload 1
iload 2
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
46: iload 11
ireturn
end local 9 end local 7 end local 6 47: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
aload 1
invokeinterface org.xnio.conduits.StreamSinkConduit.write:(Ljava/nio/ByteBuffer;)I
istore 6
start local 6 48: aload 0
dup
getfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkleft:I
iload 6
isub
putfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkleft:I
49: iload 6
istore 11
50: aload 1
iload 2
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
51: iload 11
ireturn
end local 6 end local 5 end local 4 52: StackMap locals: io.undertow.conduits.ChunkedStreamSinkConduit java.nio.ByteBuffer int int
StackMap stack: java.lang.Throwable
astore 10
53: aload 1
iload 2
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
54: aload 10
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 55 0 this Lio/undertow/conduits/ChunkedStreamSinkConduit;
0 55 1 src Ljava/nio/ByteBuffer;
6 55 2 oldLimit I
7 55 3 dataRemaining Z
22 52 4 chunkingSize I
23 52 5 chunkingSepSize I
25 47 6 originalRemaining I
28 29 7 result J
32 33 7 result J
34 47 7 result J
27 28 9 buf [Ljava/nio/ByteBuffer;
30 39 9 buf [Ljava/nio/ByteBuffer;
40 47 9 srcWritten I
48 52 6 result I
Exception table:
from to target type
21 42 52 any
44 45 52 any
47 50 52 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src final
public void truncateWrites();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.lastChunkBuffer:Lio/undertow/connector/PooledByteBuffer;
ifnull 2
1: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.lastChunkBuffer:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
bipush 32
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 8
3: aload 0
invokevirtual io.undertow.conduits.ChunkedStreamSinkConduit.invokeFinishListener:()V
4: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
5: astore 1
6: aload 0
invokespecial org.xnio.conduits.AbstractStreamSinkConduit.truncateWrites:()V
7: aload 1
athrow
8: StackMap locals:
StackMap stack:
aload 0
invokespecial org.xnio.conduits.AbstractStreamSinkConduit.truncateWrites:()V
9: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lio/undertow/conduits/ChunkedStreamSinkConduit;
Exception table:
from to target type
0 5 5 any
Exceptions:
throws java.io.IOException
public long write(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
istore 4
start local 4 1: goto 5
2: StackMap locals: int
StackMap stack:
aload 1
iload 4
aaload
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 4
3: aload 0
aload 1
iload 4
aaload
invokevirtual io.undertow.conduits.ChunkedStreamSinkConduit.write:(Ljava/nio/ByteBuffer;)I
i2l
lreturn
4: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
5: iload 4
iload 3
if_icmplt 2
end local 4 6: lconst_0
lreturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/undertow/conduits/ChunkedStreamSinkConduit;
0 7 1 srcs [Ljava/nio/ByteBuffer;
0 7 2 offset I
0 7 3 length I
1 6 4 i I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
srcs final
offset final
length final
public long writeFinal(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
iload 3
invokestatic org.xnio.conduits.Conduits.writeFinalBasic:(Lorg/xnio/conduits/StreamSinkConduit;[Ljava/nio/ByteBuffer;II)J
lreturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/conduits/ChunkedStreamSinkConduit;
0 1 1 srcs [Ljava/nio/ByteBuffer;
0 1 2 offset I
0 1 3 length I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
srcs
offset
length
public int writeFinal(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 3
1: aload 0
invokevirtual io.undertow.conduits.ChunkedStreamSinkConduit.terminateWrites:()V
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.lastChunkBuffer:Lio/undertow/connector/PooledByteBuffer;
ifnonnull 5
4: aload 0
iconst_1
invokevirtual io.undertow.conduits.ChunkedStreamSinkConduit.createLastChunk:(Z)V
5: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual io.undertow.conduits.ChunkedStreamSinkConduit.doWrite:(Ljava/nio/ByteBuffer;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/undertow/conduits/ChunkedStreamSinkConduit;
0 6 1 src Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src
public long transferFrom(java.nio.channels.FileChannel, long, long);
descriptor: (Ljava/nio/channels/FileChannel;JJ)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
iconst_1
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 2
1: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 1
lload 2
lload 4
new org.xnio.conduits.ConduitWritableByteChannel
dup
aload 0
invokespecial org.xnio.conduits.ConduitWritableByteChannel.<init>:(Lorg/xnio/conduits/StreamSinkConduit;)V
invokevirtual java.nio.channels.FileChannel.transferTo:(JJLjava/nio/channels/WritableByteChannel;)J
lreturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/conduits/ChunkedStreamSinkConduit;
0 3 1 src Ljava/nio/channels/FileChannel;
0 3 2 position J
0 3 4 count J
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src final
position final
count final
public long transferFrom(org.xnio.channels.StreamSourceChannel, long, java.nio.ByteBuffer);
descriptor: (Lorg/xnio/channels/StreamSourceChannel;JLjava/nio/ByteBuffer;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
iconst_1
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 2
1: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 1
lload 2
aload 4
new org.xnio.conduits.ConduitWritableByteChannel
dup
aload 0
invokespecial org.xnio.conduits.ConduitWritableByteChannel.<init>:(Lorg/xnio/conduits/StreamSinkConduit;)V
invokestatic org.xnio.IoUtils.transfer:(Ljava/nio/channels/ReadableByteChannel;JLjava/nio/ByteBuffer;Ljava/nio/channels/WritableByteChannel;)J
lreturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/conduits/ChunkedStreamSinkConduit;
0 3 1 source Lorg/xnio/channels/StreamSourceChannel;
0 3 2 count J
0 3 4 throughBuffer Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source final
count final
throughBuffer final
public boolean flush();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
dup
getfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
bipush 16
ior
putfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
1: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
iconst_1
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 18
2: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
iconst_4
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 7
3: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
invokeinterface org.xnio.conduits.StreamSinkConduit.flush:()Z
istore 1
start local 1 4: iload 1
ifeq 6
aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
bipush 32
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 6
5: aload 0
invokevirtual io.undertow.conduits.ChunkedStreamSinkConduit.invokeFinishListener:()V
6: StackMap locals: int
StackMap stack:
iload 1
ireturn
end local 1 7: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.lastChunkBuffer:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokeinterface org.xnio.conduits.StreamSinkConduit.write:(Ljava/nio/ByteBuffer;)I
pop
8: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.lastChunkBuffer:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 17
9: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.lastChunkBuffer:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
10: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.config:I
iconst_2
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 12
11: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
invokeinterface org.xnio.conduits.StreamSinkConduit.terminateWrites:()V
12: StackMap locals:
StackMap stack:
aload 0
dup
getfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
iconst_4
ior
putfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
13: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
invokeinterface org.xnio.conduits.StreamSinkConduit.flush:()Z
istore 1
start local 1 14: iload 1
ifeq 16
aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
bipush 32
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 16
15: aload 0
invokevirtual io.undertow.conduits.ChunkedStreamSinkConduit.invokeFinishListener:()V
16: StackMap locals: int
StackMap stack:
iload 1
ireturn
end local 1 17: StackMap locals:
StackMap stack:
iconst_0
ireturn
18: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
invokeinterface org.xnio.conduits.StreamSinkConduit.flush:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lio/undertow/conduits/ChunkedStreamSinkConduit;
4 7 1 val Z
14 17 1 val Z
Exceptions:
throws java.io.IOException
private void invokeFinishListener();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
bipush 32
ior
putfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
1: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.finishListener:Lio/undertow/conduits/ConduitListener;
ifnull 3
2: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.finishListener:Lio/undertow/conduits/ConduitListener;
aload 0
invokeinterface io.undertow.conduits.ConduitListener.handleEvent:(Lorg/xnio/conduits/Conduit;)V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/undertow/conduits/ChunkedStreamSinkConduit;
public void terminateWrites();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
iconst_1
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkleft:I
ifeq 5
3: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
ldc "Channel closed mid-chunk"
iconst_0
anewarray java.lang.Object
invokeinterface io.undertow.UndertowLogger.debugf:(Ljava/lang/String;[Ljava/lang/Object;)V
4: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
invokeinterface org.xnio.conduits.StreamSinkConduit.truncateWrites:()V
5: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
bipush 16
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifne 12
6: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.responseHeaders:Lio/undertow/util/HeaderMap;
getstatic io.undertow.util.Headers.CONTENT_LENGTH:Lio/undertow/util/HttpString;
ldc "0"
invokevirtual io.undertow.util.HeaderMap.put:(Lio/undertow/util/HttpString;Ljava/lang/String;)Lio/undertow/util/HeaderMap;
pop
7: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.responseHeaders:Lio/undertow/util/HeaderMap;
getstatic io.undertow.util.Headers.TRANSFER_ENCODING:Lio/undertow/util/HttpString;
invokevirtual io.undertow.util.HeaderMap.remove:(Lio/undertow/util/HttpString;)Ljava/util/Collection;
pop
8: aload 0
dup
getfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
iconst_5
ior
putfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
9: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
iconst_2
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 14
10: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
invokeinterface org.xnio.conduits.StreamSinkConduit.terminateWrites:()V
11: goto 14
12: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual io.undertow.conduits.ChunkedStreamSinkConduit.createLastChunk:(Z)V
13: aload 0
dup
getfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
iconst_1
ior
putfield io.undertow.conduits.ChunkedStreamSinkConduit.state:I
14: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lio/undertow/conduits/ChunkedStreamSinkConduit;
Exceptions:
throws java.io.IOException
private void createLastChunk(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=11, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.bufferPool:Lio/undertow/connector/ByteBufferPool;
invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
astore 2
start local 2 1: aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
astore 3
start local 3 2: iload 1
ifeq 5
3: aload 3
getstatic io.undertow.conduits.ChunkedStreamSinkConduit.CRLF:[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
4: goto 7
StackMap locals: io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer
StackMap stack:
5: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkingSepBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 7
6: aload 3
aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.chunkingSepBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
7: StackMap locals:
StackMap stack:
aload 3
getstatic io.undertow.conduits.ChunkedStreamSinkConduit.LAST_CHUNK:[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
8: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.attachable:Lio/undertow/util/Attachable;
getstatic io.undertow.server.protocol.http.HttpAttachments.RESPONSE_TRAILERS:Lio/undertow/util/AttachmentKey;
invokeinterface io.undertow.util.Attachable.getAttachment:(Lio/undertow/util/AttachmentKey;)Ljava/lang/Object;
checkcast io.undertow.util.HeaderMap
astore 4
start local 4 9: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.attachable:Lio/undertow/util/Attachable;
getstatic io.undertow.server.protocol.http.HttpAttachments.RESPONSE_TRAILER_SUPPLIER:Lio/undertow/util/AttachmentKey;
invokeinterface io.undertow.util.Attachable.getAttachment:(Lio/undertow/util/AttachmentKey;)Ljava/lang/Object;
checkcast java.util.function.Supplier
astore 6
start local 6 10: aload 4
ifnull 13
aload 6
ifnonnull 13
11: aload 4
astore 5
start local 5 12: goto 25
end local 5 StackMap locals: io.undertow.conduits.ChunkedStreamSinkConduit int io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer io.undertow.util.HeaderMap top java.util.function.Supplier
StackMap stack:
13: aload 4
ifnonnull 16
aload 6
ifnull 16
14: aload 6
invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
checkcast io.undertow.util.HeaderMap
astore 5
start local 5 15: goto 25
end local 5 StackMap locals:
StackMap stack:
16: aload 4
ifnull 24
17: aload 6
invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
checkcast io.undertow.util.HeaderMap
astore 7
start local 7 18: aload 7
invokevirtual io.undertow.util.HeaderMap.iterator:()Ljava/util/Iterator;
astore 9
goto 21
StackMap locals: io.undertow.conduits.ChunkedStreamSinkConduit int io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer io.undertow.util.HeaderMap top java.util.function.Supplier io.undertow.util.HeaderMap top java.util.Iterator
StackMap stack:
19: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.undertow.util.HeaderValues
astore 8
start local 8 20: aload 4
aload 8
invokevirtual io.undertow.util.HeaderValues.getHeaderName:()Lio/undertow/util/HttpString;
aload 8
invokevirtual io.undertow.util.HeaderMap.putAll:(Lio/undertow/util/HttpString;Ljava/util/Collection;)Lio/undertow/util/HeaderMap;
pop
end local 8 21: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 19
22: aload 4
astore 5
end local 7 start local 5 23: goto 25
end local 5 24: StackMap locals: io.undertow.conduits.ChunkedStreamSinkConduit int io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer io.undertow.util.HeaderMap top java.util.function.Supplier
StackMap stack:
aconst_null
astore 5
start local 5 25: StackMap locals: io.undertow.conduits.ChunkedStreamSinkConduit int io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer io.undertow.util.HeaderMap io.undertow.util.HeaderMap java.util.function.Supplier
StackMap stack:
aload 5
ifnull 39
aload 5
invokevirtual io.undertow.util.HeaderMap.size:()I
ifeq 39
26: aload 5
invokevirtual io.undertow.util.HeaderMap.iterator:()Ljava/util/Iterator;
astore 8
goto 36
StackMap locals: io.undertow.conduits.ChunkedStreamSinkConduit int io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer io.undertow.util.HeaderMap io.undertow.util.HeaderMap java.util.function.Supplier top java.util.Iterator
StackMap stack:
27: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.undertow.util.HeaderValues
astore 7
start local 7 28: aload 7
invokevirtual io.undertow.util.HeaderValues.iterator:()Ljava/util/Iterator;
astore 10
goto 35
StackMap locals: io.undertow.conduits.ChunkedStreamSinkConduit int io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer io.undertow.util.HeaderMap io.undertow.util.HeaderMap java.util.function.Supplier io.undertow.util.HeaderValues java.util.Iterator top java.util.Iterator
StackMap stack:
29: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 9
start local 9 30: aload 7
invokevirtual io.undertow.util.HeaderValues.getHeaderName:()Lio/undertow/util/HttpString;
aload 3
invokevirtual io.undertow.util.HttpString.appendTo:(Ljava/nio/ByteBuffer;)V
31: aload 3
bipush 58
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
32: aload 3
bipush 32
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
33: aload 3
aload 9
getstatic java.nio.charset.StandardCharsets.US_ASCII:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
34: aload 3
getstatic io.undertow.conduits.ChunkedStreamSinkConduit.CRLF:[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
end local 9 35: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 29
end local 7 36: StackMap locals: io.undertow.conduits.ChunkedStreamSinkConduit int io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer io.undertow.util.HeaderMap io.undertow.util.HeaderMap java.util.function.Supplier top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 27
37: aload 3
getstatic io.undertow.conduits.ChunkedStreamSinkConduit.CRLF:[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
38: goto 40
39: StackMap locals: io.undertow.conduits.ChunkedStreamSinkConduit int io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer io.undertow.util.HeaderMap io.undertow.util.HeaderMap java.util.function.Supplier
StackMap stack:
aload 3
getstatic io.undertow.conduits.ChunkedStreamSinkConduit.CRLF:[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
40: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
41: aload 3
invokevirtual java.nio.ByteBuffer.remaining:()I
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 7
start local 7 42: aload 7
aload 3
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
43: aload 7
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
44: aload 0
new io.undertow.util.ImmediatePooledByteBuffer
dup
aload 7
invokespecial io.undertow.util.ImmediatePooledByteBuffer.<init>:(Ljava/nio/ByteBuffer;)V
putfield io.undertow.conduits.ChunkedStreamSinkConduit.lastChunkBuffer:Lio/undertow/connector/PooledByteBuffer;
45: aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
46: 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 47 0 this Lio/undertow/conduits/ChunkedStreamSinkConduit;
0 47 1 writeFinal Z
1 47 2 lastChunkBufferPooled Lio/undertow/connector/PooledByteBuffer;
2 47 3 lastChunkBuffer Ljava/nio/ByteBuffer;
9 47 4 attachment Lio/undertow/util/HeaderMap;
12 13 5 trailers Lio/undertow/util/HeaderMap;
15 16 5 trailers Lio/undertow/util/HeaderMap;
23 24 5 trailers Lio/undertow/util/HeaderMap;
25 47 5 trailers Lio/undertow/util/HeaderMap;
10 47 6 supplier Ljava/util/function/Supplier<Lio/undertow/util/HeaderMap;>;
18 23 7 supplied Lio/undertow/util/HeaderMap;
20 21 8 k Lio/undertow/util/HeaderValues;
28 36 7 trailer Lio/undertow/util/HeaderValues;
30 35 9 val Ljava/lang/String;
42 47 7 data Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.UnsupportedEncodingException
MethodParameters:
Name Flags
writeFinal final
public void awaitWritable();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
invokeinterface org.xnio.conduits.StreamSinkConduit.awaitWritable:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/conduits/ChunkedStreamSinkConduit;
Exceptions:
throws java.io.IOException
public void awaitWritable(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
getfield io.undertow.conduits.ChunkedStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
lload 1
aload 3
invokeinterface org.xnio.conduits.StreamSinkConduit.awaitWritable:(JLjava/util/concurrent/TimeUnit;)V
1: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/conduits/ChunkedStreamSinkConduit;
0 2 1 time J
0 2 3 timeUnit Ljava/util/concurrent/TimeUnit;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
time final
timeUnit final
private static void putIntAsHexString(java.nio.ByteBuffer, int);
descriptor: (Ljava/nio/ByteBuffer;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: iload 1
bipush 24
ishr
i2b
istore 2
start local 2 1: iload 1
bipush 16
ishr
i2b
istore 3
start local 3 2: iload 1
bipush 8
ishr
i2b
istore 4
start local 4 3: iload 1
i2b
istore 5
start local 5 4: iconst_0
istore 6
start local 6 5: iload 2
ifeq 9
6: aload 0
getstatic io.undertow.conduits.ChunkedStreamSinkConduit.DIGITS:[B
sipush 240
iload 2
iand
iconst_4
iushr
baload
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
7: getstatic io.undertow.conduits.ChunkedStreamSinkConduit.DIGITS:[B
bipush 15
iload 2
iand
baload
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
8: iconst_1
istore 6
9: StackMap locals: java.nio.ByteBuffer int int int int int int
StackMap stack:
iload 6
ifne 10
iload 3
ifeq 13
10: StackMap locals:
StackMap stack:
aload 0
getstatic io.undertow.conduits.ChunkedStreamSinkConduit.DIGITS:[B
sipush 240
iload 3
iand
iconst_4
iushr
baload
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
11: getstatic io.undertow.conduits.ChunkedStreamSinkConduit.DIGITS:[B
bipush 15
iload 3
iand
baload
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
12: iconst_1
istore 6
13: StackMap locals:
StackMap stack:
iload 6
ifne 14
iload 4
ifeq 16
14: StackMap locals:
StackMap stack:
aload 0
getstatic io.undertow.conduits.ChunkedStreamSinkConduit.DIGITS:[B
sipush 240
iload 4
iand
iconst_4
iushr
baload
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
15: getstatic io.undertow.conduits.ChunkedStreamSinkConduit.DIGITS:[B
bipush 15
iload 4
iand
baload
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
16: StackMap locals:
StackMap stack:
aload 0
getstatic io.undertow.conduits.ChunkedStreamSinkConduit.DIGITS:[B
sipush 240
iload 5
iand
iconst_4
iushr
baload
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
17: getstatic io.undertow.conduits.ChunkedStreamSinkConduit.DIGITS:[B
bipush 15
iload 5
iand
baload
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
18: return
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 19 0 buf Ljava/nio/ByteBuffer;
0 19 1 v I
1 19 2 int3 B
2 19 3 int2 B
3 19 4 int1 B
4 19 5 int0 B
5 19 6 nonZeroFound Z
MethodParameters:
Name Flags
buf final
v final
}
Signature: Lorg/xnio/conduits/AbstractStreamSinkConduit<Lorg/xnio/conduits/StreamSinkConduit;>;
SourceFile: "ChunkedStreamSinkConduit.java"