public class io.undertow.conduits.PreChunkedStreamSinkConduit 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.PreChunkedStreamSinkConduit
super_class: org.xnio.conduits.AbstractStreamSinkConduit
{
private final io.undertow.conduits.ConduitListener<? super io.undertow.conduits.PreChunkedStreamSinkConduit> finishListener;
descriptor: Lio/undertow/conduits/ConduitListener;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/undertow/conduits/ConduitListener<-Lio/undertow/conduits/PreChunkedStreamSinkConduit;>;
private static final int FLAG_WRITES_SHUTDOWN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int FLAG_FINISHED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
int state;
descriptor: I
flags: (0x0000)
final io.undertow.conduits.ChunkReader<io.undertow.conduits.PreChunkedStreamSinkConduit> chunkReader;
descriptor: Lio/undertow/conduits/ChunkReader;
flags: (0x0010) ACC_FINAL
Signature: Lio/undertow/conduits/ChunkReader<Lio/undertow/conduits/PreChunkedStreamSinkConduit;>;
public void <init>(org.xnio.conduits.StreamSinkConduit, io.undertow.conduits.ConduitListener<? super io.undertow.conduits.PreChunkedStreamSinkConduit>, io.undertow.util.Attachable);
descriptor: (Lorg/xnio/conduits/StreamSinkConduit;Lio/undertow/conduits/ConduitListener;Lio/undertow/util/Attachable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 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.PreChunkedStreamSinkConduit.state:I
2: aload 0
new io.undertow.conduits.ChunkReader
dup
aload 3
getstatic io.undertow.server.protocol.http.HttpAttachments.RESPONSE_TRAILERS:Lio/undertow/util/AttachmentKey;
aload 0
invokespecial io.undertow.conduits.ChunkReader.<init>:(Lio/undertow/util/Attachable;Lio/undertow/util/AttachmentKey;Lorg/xnio/conduits/Conduit;)V
putfield io.undertow.conduits.PreChunkedStreamSinkConduit.chunkReader:Lio/undertow/conduits/ChunkReader;
3: aload 0
aload 2
putfield io.undertow.conduits.PreChunkedStreamSinkConduit.finishListener:Lio/undertow/conduits/ConduitListener;
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/undertow/conduits/PreChunkedStreamSinkConduit;
0 5 1 next Lorg/xnio/conduits/StreamSinkConduit;
0 5 2 finishListener Lio/undertow/conduits/ConduitListener<-Lio/undertow/conduits/PreChunkedStreamSinkConduit;>;
0 5 3 attachable Lio/undertow/util/Attachable;
Signature: (Lorg/xnio/conduits/StreamSinkConduit;Lio/undertow/conduits/ConduitListener<-Lio/undertow/conduits/PreChunkedStreamSinkConduit;>;Lio/undertow/util/Attachable;)V
MethodParameters:
Name Flags
next final
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.PreChunkedStreamSinkConduit.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/PreChunkedStreamSinkConduit;
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=5, locals=11, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.conduits.PreChunkedStreamSinkConduit.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 0
getfield io.undertow.conduits.PreChunkedStreamSinkConduit.chunkReader:Lio/undertow/conduits/ChunkReader;
invokevirtual io.undertow.conduits.ChunkReader.getChunkRemaining:()J
ldc -1
lcmp
ifne 4
3: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.extraDataWrittenAfterChunkEnd:()Ljava/io/IOException;
athrow
4: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
ifne 6
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
istore 2
start local 2 7: aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
istore 3
start local 3 8: aload 0
getfield io.undertow.conduits.PreChunkedStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
aload 1
invokeinterface org.xnio.conduits.StreamSinkConduit.write:(Ljava/nio/ByteBuffer;)I
istore 4
start local 4 9: iload 4
ifne 11
10: iload 4
ireturn
11: StackMap locals: int int int
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
istore 5
start local 5 12: aload 1
iload 2
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
13: aload 1
iload 2
iload 4
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
14: StackMap locals: int
StackMap stack:
aload 0
getfield io.undertow.conduits.PreChunkedStreamSinkConduit.chunkReader:Lio/undertow/conduits/ChunkReader;
aload 1
invokevirtual io.undertow.conduits.ChunkReader.readChunk:(Ljava/nio/ByteBuffer;)J
lstore 6
start local 6 15: lload 6
ldc -1
lcmp
ifne 22
16: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
ifne 21
17: iload 4
istore 10
18: aload 1
iload 5
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
19: aload 1
iload 3
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
20: iload 10
ireturn
21: StackMap locals: long
StackMap stack:
getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.extraDataWrittenAfterChunkEnd:()Ljava/io/IOException;
athrow
22: StackMap locals:
StackMap stack:
lload 6
lconst_0
lcmp
ifne 27
23: iload 4
istore 10
24: aload 1
iload 5
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
25: aload 1
iload 3
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
26: iload 10
ireturn
27: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
lload 6
lcmp
iflt 31
28: aload 1
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
i2l
lload 6
ladd
l2i
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
29: iconst_0
istore 8
start local 8 30: goto 33
end local 8 31: StackMap locals:
StackMap stack:
lload 6
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
lsub
l2i
istore 8
start local 8 32: aload 1
aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
33: StackMap locals: int
StackMap stack:
aload 0
getfield io.undertow.conduits.PreChunkedStreamSinkConduit.chunkReader:Lio/undertow/conduits/ChunkReader;
iload 8
i2l
invokevirtual io.undertow.conduits.ChunkReader.setChunkRemaining:(J)V
34: aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 14
end local 8 end local 6 35: goto 40
StackMap locals: io.undertow.conduits.PreChunkedStreamSinkConduit java.nio.ByteBuffer int int int int
StackMap stack: java.lang.Throwable
36: astore 9
37: aload 1
iload 5
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
38: aload 1
iload 3
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
39: aload 9
athrow
40: StackMap locals:
StackMap stack:
aload 1
iload 5
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
41: aload 1
iload 3
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
42: iload 4
ireturn
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 43 0 this Lio/undertow/conduits/PreChunkedStreamSinkConduit;
0 43 1 src Ljava/nio/ByteBuffer;
7 43 2 oldPos I
8 43 3 oldLimit I
9 43 4 ret I
12 43 5 newPos I
15 35 6 chunkRemaining J
30 31 8 remaining I
32 35 8 remaining I
Exception table:
from to target type
14 18 36 any
21 24 36 any
27 36 36 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src final
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.PreChunkedStreamSinkConduit.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/PreChunkedStreamSinkConduit;
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/PreChunkedStreamSinkConduit;
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=3, 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.PreChunkedStreamSinkConduit.terminateWrites:()V
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual io.undertow.conduits.PreChunkedStreamSinkConduit.doWrite:(Ljava/nio/ByteBuffer;)I
istore 2
start local 2 4: aload 0
invokevirtual io.undertow.conduits.PreChunkedStreamSinkConduit.terminateWrites:()V
5: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/undertow/conduits/PreChunkedStreamSinkConduit;
0 6 1 src Ljava/nio/ByteBuffer;
4 6 2 ret I
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.PreChunkedStreamSinkConduit.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/PreChunkedStreamSinkConduit;
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.PreChunkedStreamSinkConduit.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/PreChunkedStreamSinkConduit;
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=2, locals=2, args_size=1
start local 0 0: aload 0
getfield io.undertow.conduits.PreChunkedStreamSinkConduit.state:I
iconst_1
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 5
1: aload 0
getfield io.undertow.conduits.PreChunkedStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
invokeinterface org.xnio.conduits.StreamSinkConduit.flush:()Z
istore 1
start local 1 2: iload 1
ifeq 4
aload 0
getfield io.undertow.conduits.PreChunkedStreamSinkConduit.state:I
iconst_4
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 4
3: aload 0
invokevirtual io.undertow.conduits.PreChunkedStreamSinkConduit.invokeFinishListener:()V
4: StackMap locals: int
StackMap stack:
iload 1
ireturn
end local 1 5: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.conduits.PreChunkedStreamSinkConduit.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 6 0 this Lio/undertow/conduits/PreChunkedStreamSinkConduit;
2 5 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.PreChunkedStreamSinkConduit.state:I
iconst_4
ior
putfield io.undertow.conduits.PreChunkedStreamSinkConduit.state:I
1: aload 0
getfield io.undertow.conduits.PreChunkedStreamSinkConduit.finishListener:Lio/undertow/conduits/ConduitListener;
ifnull 3
2: aload 0
getfield io.undertow.conduits.PreChunkedStreamSinkConduit.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/PreChunkedStreamSinkConduit;
public void terminateWrites();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.conduits.PreChunkedStreamSinkConduit.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.PreChunkedStreamSinkConduit.chunkReader:Lio/undertow/conduits/ChunkReader;
invokevirtual io.undertow.conduits.ChunkReader.getChunkRemaining:()J
ldc -1
lcmp
ifeq 4
3: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.chunkedChannelClosedMidChunk:()Ljava/io/IOException;
athrow
4: StackMap locals:
StackMap stack:
aload 0
dup
getfield io.undertow.conduits.PreChunkedStreamSinkConduit.state:I
iconst_1
ior
putfield io.undertow.conduits.PreChunkedStreamSinkConduit.state:I
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/undertow/conduits/PreChunkedStreamSinkConduit;
Exceptions:
throws java.io.IOException
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.PreChunkedStreamSinkConduit.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/PreChunkedStreamSinkConduit;
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.PreChunkedStreamSinkConduit.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/PreChunkedStreamSinkConduit;
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
}
Signature: Lorg/xnio/conduits/AbstractStreamSinkConduit<Lorg/xnio/conduits/StreamSinkConduit;>;
SourceFile: "PreChunkedStreamSinkConduit.java"