public class io.undertow.conduits.ChunkedStreamSourceConduit extends org.xnio.conduits.AbstractStreamSourceConduit<org.xnio.conduits.StreamSourceConduit>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.undertow.conduits.ChunkedStreamSourceConduit
super_class: org.xnio.conduits.AbstractStreamSourceConduit
{
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.conduits.ChunkedStreamSourceConduit$BufferWrapper bufferWrapper;
descriptor: Lio/undertow/conduits/ChunkedStreamSourceConduit$BufferWrapper;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.undertow.conduits.ConduitListener<? super io.undertow.conduits.ChunkedStreamSourceConduit> finishListener;
descriptor: Lio/undertow/conduits/ConduitListener;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/undertow/conduits/ConduitListener<-Lio/undertow/conduits/ChunkedStreamSourceConduit;>;
private final io.undertow.server.HttpServerExchange exchange;
descriptor: Lio/undertow/server/HttpServerExchange;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.io.Closeable closeable;
descriptor: Ljava/io/Closeable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean closed;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean finishListenerInvoked;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private long remainingAllowed;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private final io.undertow.conduits.ChunkReader chunkReader;
descriptor: Lio/undertow/conduits/ChunkReader;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic io.undertow.server.protocol.http.HttpAttachments.REQUEST_TRAILERS:Lio/undertow/util/AttachmentKey;
putstatic io.undertow.conduits.ChunkedStreamSourceConduit.TRAILERS:Lio/undertow/util/AttachmentKey;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.xnio.conduits.StreamSourceConduit, org.xnio.conduits.PushBackStreamSourceConduit, io.undertow.connector.ByteBufferPool, io.undertow.conduits.ConduitListener<? super io.undertow.conduits.ChunkedStreamSourceConduit>, io.undertow.util.Attachable, java.io.Closeable);
descriptor: (Lorg/xnio/conduits/StreamSourceConduit;Lorg/xnio/conduits/PushBackStreamSourceConduit;Lio/undertow/connector/ByteBufferPool;Lio/undertow/conduits/ConduitListener;Lio/undertow/util/Attachable;Ljava/io/Closeable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
aload 1
new io.undertow.conduits.ChunkedStreamSourceConduit$1
dup
aload 3
aload 2
invokespecial io.undertow.conduits.ChunkedStreamSourceConduit$1.<init>:(Lio/undertow/connector/ByteBufferPool;Lorg/xnio/conduits/PushBackStreamSourceConduit;)V
1: aload 4
aload 5
aconst_null
aload 6
invokespecial io.undertow.conduits.ChunkedStreamSourceConduit.<init>:(Lorg/xnio/conduits/StreamSourceConduit;Lio/undertow/conduits/ChunkedStreamSourceConduit$BufferWrapper;Lio/undertow/conduits/ConduitListener;Lio/undertow/util/Attachable;Lio/undertow/server/HttpServerExchange;Ljava/io/Closeable;)V
2: 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 3 0 this Lio/undertow/conduits/ChunkedStreamSourceConduit;
0 3 1 next Lorg/xnio/conduits/StreamSourceConduit;
0 3 2 channel Lorg/xnio/conduits/PushBackStreamSourceConduit;
0 3 3 pool Lio/undertow/connector/ByteBufferPool;
0 3 4 finishListener Lio/undertow/conduits/ConduitListener<-Lio/undertow/conduits/ChunkedStreamSourceConduit;>;
0 3 5 attachable Lio/undertow/util/Attachable;
0 3 6 closeable Ljava/io/Closeable;
Signature: (Lorg/xnio/conduits/StreamSourceConduit;Lorg/xnio/conduits/PushBackStreamSourceConduit;Lio/undertow/connector/ByteBufferPool;Lio/undertow/conduits/ConduitListener<-Lio/undertow/conduits/ChunkedStreamSourceConduit;>;Lio/undertow/util/Attachable;Ljava/io/Closeable;)V
MethodParameters:
Name Flags
next final
channel final
pool final
finishListener final
attachable
closeable
public void <init>(org.xnio.conduits.StreamSourceConduit, io.undertow.server.HttpServerExchange, io.undertow.conduits.ConduitListener<? super io.undertow.conduits.ChunkedStreamSourceConduit>);
descriptor: (Lorg/xnio/conduits/StreamSourceConduit;Lio/undertow/server/HttpServerExchange;Lio/undertow/conduits/ConduitListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
new io.undertow.conduits.ChunkedStreamSourceConduit$2
dup
aload 2
invokespecial io.undertow.conduits.ChunkedStreamSourceConduit$2.<init>:(Lio/undertow/server/HttpServerExchange;)V
1: aload 3
aload 2
aload 2
aload 2
invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
invokespecial io.undertow.conduits.ChunkedStreamSourceConduit.<init>:(Lorg/xnio/conduits/StreamSourceConduit;Lio/undertow/conduits/ChunkedStreamSourceConduit$BufferWrapper;Lio/undertow/conduits/ConduitListener;Lio/undertow/util/Attachable;Lio/undertow/server/HttpServerExchange;Ljava/io/Closeable;)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/conduits/ChunkedStreamSourceConduit;
0 3 1 next Lorg/xnio/conduits/StreamSourceConduit;
0 3 2 exchange Lio/undertow/server/HttpServerExchange;
0 3 3 finishListener Lio/undertow/conduits/ConduitListener<-Lio/undertow/conduits/ChunkedStreamSourceConduit;>;
Signature: (Lorg/xnio/conduits/StreamSourceConduit;Lio/undertow/server/HttpServerExchange;Lio/undertow/conduits/ConduitListener<-Lio/undertow/conduits/ChunkedStreamSourceConduit;>;)V
MethodParameters:
Name Flags
next final
exchange final
finishListener final
protected void <init>(org.xnio.conduits.StreamSourceConduit, io.undertow.conduits.ChunkedStreamSourceConduit$BufferWrapper, io.undertow.conduits.ConduitListener<? super io.undertow.conduits.ChunkedStreamSourceConduit>, io.undertow.util.Attachable, io.undertow.server.HttpServerExchange, java.io.Closeable);
descriptor: (Lorg/xnio/conduits/StreamSourceConduit;Lio/undertow/conduits/ChunkedStreamSourceConduit$BufferWrapper;Lio/undertow/conduits/ConduitListener;Lio/undertow/util/Attachable;Lio/undertow/server/HttpServerExchange;Ljava/io/Closeable;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
aload 1
invokespecial org.xnio.conduits.AbstractStreamSourceConduit.<init>:(Lorg/xnio/conduits/StreamSourceConduit;)V
1: aload 0
aload 2
putfield io.undertow.conduits.ChunkedStreamSourceConduit.bufferWrapper:Lio/undertow/conduits/ChunkedStreamSourceConduit$BufferWrapper;
2: aload 0
aload 3
putfield io.undertow.conduits.ChunkedStreamSourceConduit.finishListener:Lio/undertow/conduits/ConduitListener;
3: aload 0
ldc -9223372036854775808
putfield io.undertow.conduits.ChunkedStreamSourceConduit.remainingAllowed:J
4: aload 0
new io.undertow.conduits.ChunkReader
dup
aload 4
getstatic io.undertow.server.protocol.http.HttpAttachments.REQUEST_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.ChunkedStreamSourceConduit.chunkReader:Lio/undertow/conduits/ChunkReader;
5: aload 0
aload 5
putfield io.undertow.conduits.ChunkedStreamSourceConduit.exchange:Lio/undertow/server/HttpServerExchange;
6: aload 0
aload 6
putfield io.undertow.conduits.ChunkedStreamSourceConduit.closeable:Ljava/io/Closeable;
7: 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 8 0 this Lio/undertow/conduits/ChunkedStreamSourceConduit;
0 8 1 next Lorg/xnio/conduits/StreamSourceConduit;
0 8 2 bufferWrapper Lio/undertow/conduits/ChunkedStreamSourceConduit$BufferWrapper;
0 8 3 finishListener Lio/undertow/conduits/ConduitListener<-Lio/undertow/conduits/ChunkedStreamSourceConduit;>;
0 8 4 attachable Lio/undertow/util/Attachable;
0 8 5 exchange Lio/undertow/server/HttpServerExchange;
0 8 6 closeable Ljava/io/Closeable;
Signature: (Lorg/xnio/conduits/StreamSourceConduit;Lio/undertow/conduits/ChunkedStreamSourceConduit$BufferWrapper;Lio/undertow/conduits/ConduitListener<-Lio/undertow/conduits/ChunkedStreamSourceConduit;>;Lio/undertow/util/Attachable;Lio/undertow/server/HttpServerExchange;Ljava/io/Closeable;)V
MethodParameters:
Name Flags
next final
bufferWrapper final
finishListener final
attachable final
exchange final
closeable final
public long transferTo(long, long, java.nio.channels.FileChannel);
descriptor: (JJLjava/nio/channels/FileChannel;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=4
start local 0 start local 1 start local 3 start local 5 0: aload 5
new org.xnio.conduits.ConduitReadableByteChannel
dup
aload 0
invokespecial org.xnio.conduits.ConduitReadableByteChannel.<init>:(Lorg/xnio/conduits/StreamSourceConduit;)V
lload 1
lload 3
invokevirtual java.nio.channels.FileChannel.transferFrom:(Ljava/nio/channels/ReadableByteChannel;JJ)J
1: lreturn
2: StackMap locals:
StackMap stack: java.lang.Throwable
astore 6
start local 6 3: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.closeable:Ljava/io/Closeable;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
4: aload 6
athrow
end local 6 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/undertow/conduits/ChunkedStreamSourceConduit;
0 5 1 position J
0 5 3 count J
0 5 5 target Ljava/nio/channels/FileChannel;
3 5 6 e Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.io.IOException
0 1 2 Class java.lang.RuntimeException
0 1 2 Class java.lang.Error
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
position final
count final
target final
private void updateRemainingAllowed(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.remainingAllowed:J
ldc -9223372036854775808
lcmp
ifne 7
1: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.exchange:Lio/undertow/server/HttpServerExchange;
ifnonnull 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getMaxEntitySize:()J
lstore 2
start local 2 4: lload 2
lconst_0
lcmp
ifgt 6
5: return
6: StackMap locals: long
StackMap stack:
aload 0
lload 2
putfield io.undertow.conduits.ChunkedStreamSourceConduit.remainingAllowed:J
end local 2 7: StackMap locals:
StackMap stack:
aload 0
dup
getfield io.undertow.conduits.ChunkedStreamSourceConduit.remainingAllowed:J
iload 1
i2l
lsub
putfield io.undertow.conduits.ChunkedStreamSourceConduit.remainingAllowed:J
8: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.remainingAllowed:J
lconst_0
lcmp
ifge 14
9: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.exchange:Lio/undertow/server/HttpServerExchange;
invokestatic io.undertow.server.Connectors.terminateRequest:(Lio/undertow/server/HttpServerExchange;)V
10: aload 0
iconst_1
putfield io.undertow.conduits.ChunkedStreamSourceConduit.closed:Z
11: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.exchange:Lio/undertow/server/HttpServerExchange;
iconst_0
invokevirtual io.undertow.server.HttpServerExchange.setPersistent:(Z)Lio/undertow/server/HttpServerExchange;
pop
12: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.finishListener:Lio/undertow/conduits/ConduitListener;
aload 0
invokeinterface io.undertow.conduits.ConduitListener.handleEvent:(Lorg/xnio/conduits/Conduit;)V
13: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getMaxEntitySize:()J
invokeinterface io.undertow.UndertowMessages.requestEntityWasTooLarge:(J)Lio/undertow/server/RequestTooBigException;
athrow
14: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lio/undertow/conduits/ChunkedStreamSourceConduit;
0 15 1 written I
4 7 2 maxEntitySize J
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
written final
public long transferTo(long, java.nio.ByteBuffer, org.xnio.channels.StreamSinkChannel);
descriptor: (JLjava/nio/ByteBuffer;Lorg/xnio/channels/StreamSinkChannel;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 3 start local 4 0: new org.xnio.conduits.ConduitReadableByteChannel
dup
aload 0
invokespecial org.xnio.conduits.ConduitReadableByteChannel.<init>:(Lorg/xnio/conduits/StreamSourceConduit;)V
lload 1
aload 3
aload 4
invokestatic org.xnio.IoUtils.transfer:(Ljava/nio/channels/ReadableByteChannel;JLjava/nio/ByteBuffer;Ljava/nio/channels/WritableByteChannel;)J
1: lreturn
2: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
start local 5 3: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.closeable:Ljava/io/Closeable;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
4: aload 5
athrow
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/undertow/conduits/ChunkedStreamSourceConduit;
0 5 1 count J
0 5 3 throughBuffer Ljava/nio/ByteBuffer;
0 5 4 target Lorg/xnio/channels/StreamSinkChannel;
3 5 5 e Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.io.IOException
0 1 2 Class java.lang.RuntimeException
0 1 2 Class java.lang.Error
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
count final
throughBuffer final
target final
public long read(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.ChunkedStreamSourceConduit.read:(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/ChunkedStreamSourceConduit;
0 7 1 dsts [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
dsts final
offset final
length final
public void terminateReads();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual io.undertow.conduits.ChunkedStreamSourceConduit.isFinished:()Z
ifne 4
1: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.exchange:Lio/undertow/server/HttpServerExchange;
iconst_0
invokevirtual io.undertow.server.HttpServerExchange.setPersistent:(Z)Lio/undertow/server/HttpServerExchange;
pop
2: aload 0
invokespecial org.xnio.conduits.AbstractStreamSourceConduit.terminateReads:()V
3: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.chunkedChannelClosedMidChunk:()Ljava/io/IOException;
athrow
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/undertow/conduits/ChunkedStreamSourceConduit;
Exceptions:
throws java.io.IOException
public int read(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=22, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.chunkReader:Lio/undertow/conduits/ChunkReader;
invokevirtual io.undertow.conduits.ChunkReader.getChunkRemaining:()J
lstore 3
start local 3 2: lload 3
ldc -1
lcmp
ifne 9
3: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.finishListenerInvoked:Z
ifne 5
4: iconst_1
istore 2
5: StackMap locals: int long
StackMap stack:
iload 2
ifeq 8
6: aload 0
iconst_1
putfield io.undertow.conduits.ChunkedStreamSourceConduit.finishListenerInvoked:Z
7: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.finishListener:Lio/undertow/conduits/ConduitListener;
aload 0
invokeinterface io.undertow.conduits.ConduitListener.handleEvent:(Lorg/xnio/conduits/Conduit;)V
8: StackMap locals:
StackMap stack:
iconst_m1
ireturn
9: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.closed:Z
ifeq 11
10: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.bufferWrapper:Lio/undertow/conduits/ChunkedStreamSourceConduit$BufferWrapper;
invokeinterface io.undertow.conduits.ChunkedStreamSourceConduit$BufferWrapper.allocate:()Lio/undertow/connector/PooledByteBuffer;
astore 5
start local 5 12: aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
astore 6
start local 6 13: iconst_1
istore 7
start local 7 14: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSourceConduit
aload 6
invokeinterface org.xnio.conduits.StreamSourceConduit.read:(Ljava/nio/ByteBuffer;)I
istore 8
start local 8 15: aload 6
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
16: iload 8
iconst_m1
if_icmpne 18
17: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
18: StackMap locals: io.undertow.conduits.ChunkedStreamSourceConduit java.nio.ByteBuffer int long io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int int
StackMap stack:
iload 8
ifne 29
19: lload 3
lconst_0
lcmp
iflt 21
20: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.chunkReader:Lio/undertow/conduits/ChunkReader;
lload 3
invokevirtual io.undertow.conduits.ChunkReader.setChunkRemaining:(J)V
21: StackMap locals:
StackMap stack:
iload 7
ifne 24
aload 6
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 24
22: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.bufferWrapper:Lio/undertow/conduits/ChunkedStreamSourceConduit$BufferWrapper;
aload 5
invokeinterface io.undertow.conduits.ChunkedStreamSourceConduit$BufferWrapper.pushBack:(Lio/undertow/connector/PooledByteBuffer;)V
23: goto 25
24: StackMap locals:
StackMap stack:
aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
25: StackMap locals:
StackMap stack:
iload 2
ifeq 28
26: aload 0
iconst_1
putfield io.undertow.conduits.ChunkedStreamSourceConduit.finishListenerInvoked:Z
27: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.finishListener:Lio/undertow/conduits/ConduitListener;
aload 0
invokeinterface io.undertow.conduits.ConduitListener.handleEvent:(Lorg/xnio/conduits/Conduit;)V
28: StackMap locals:
StackMap stack:
iconst_0
ireturn
29: StackMap locals:
StackMap stack:
lload 3
lconst_0
lcmp
ifne 47
30: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.chunkReader:Lio/undertow/conduits/ChunkReader;
aload 6
invokevirtual io.undertow.conduits.ChunkReader.readChunk:(Ljava/nio/ByteBuffer;)J
lstore 3
31: lload 3
lconst_0
lcmp
ifgt 47
32: aload 6
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 34
33: iconst_0
istore 7
34: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.finishListenerInvoked:Z
ifne 36
lload 3
lconst_0
lcmp
ifge 36
35: iconst_1
istore 2
36: StackMap locals:
StackMap stack:
lload 3
l2i
istore 20
37: lload 3
lconst_0
lcmp
iflt 39
38: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.chunkReader:Lio/undertow/conduits/ChunkReader;
lload 3
invokevirtual io.undertow.conduits.ChunkReader.setChunkRemaining:(J)V
39: StackMap locals: io.undertow.conduits.ChunkedStreamSourceConduit java.nio.ByteBuffer int long io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int int top top top top top top top top top top top int
StackMap stack:
iload 7
ifne 42
aload 6
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 42
40: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.bufferWrapper:Lio/undertow/conduits/ChunkedStreamSourceConduit$BufferWrapper;
aload 5
invokeinterface io.undertow.conduits.ChunkedStreamSourceConduit$BufferWrapper.pushBack:(Lio/undertow/connector/PooledByteBuffer;)V
41: goto 43
42: StackMap locals:
StackMap stack:
aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
43: StackMap locals:
StackMap stack:
iload 2
ifeq 46
44: aload 0
iconst_1
putfield io.undertow.conduits.ChunkedStreamSourceConduit.finishListenerInvoked:Z
45: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.finishListener:Lio/undertow/conduits/ConduitListener;
aload 0
invokeinterface io.undertow.conduits.ConduitListener.handleEvent:(Lorg/xnio/conduits/Conduit;)V
46: StackMap locals:
StackMap stack:
iload 20
ireturn
47: StackMap locals: io.undertow.conduits.ChunkedStreamSourceConduit java.nio.ByteBuffer int long io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int int
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
istore 9
start local 9 48: iconst_0
istore 10
start local 10 49: aload 6
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
lload 3
invokestatic java.lang.Math.min:(JJ)J
lstore 11
start local 11 50: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 13
start local 13 51: lload 11
iload 13
i2l
lcmp
ifle 71
52: aload 6
invokevirtual java.nio.ByteBuffer.limit:()I
istore 14
start local 14 53: aload 6
aload 6
invokevirtual java.nio.ByteBuffer.position:()I
iload 13
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
54: aload 1
aload 6
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
55: aload 6
iload 14
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
56: lload 3
iload 13
i2l
lsub
lstore 3
57: aload 0
iload 13
invokevirtual io.undertow.conduits.ChunkedStreamSourceConduit.updateRemainingAllowed:(I)V
58: iconst_0
istore 7
59: iload 13
istore 18
60: aload 1
iload 9
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
61: lload 3
lconst_0
lcmp
iflt 63
62: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.chunkReader:Lio/undertow/conduits/ChunkReader;
lload 3
invokevirtual io.undertow.conduits.ChunkReader.setChunkRemaining:(J)V
63: StackMap locals: io.undertow.conduits.ChunkedStreamSourceConduit java.nio.ByteBuffer int long io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int int int int long int int top top top int
StackMap stack:
iload 7
ifne 66
aload 6
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 66
64: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.bufferWrapper:Lio/undertow/conduits/ChunkedStreamSourceConduit$BufferWrapper;
aload 5
invokeinterface io.undertow.conduits.ChunkedStreamSourceConduit$BufferWrapper.pushBack:(Lio/undertow/connector/PooledByteBuffer;)V
65: goto 67
66: StackMap locals:
StackMap stack:
aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
67: StackMap locals:
StackMap stack:
iload 2
ifeq 70
68: aload 0
iconst_1
putfield io.undertow.conduits.ChunkedStreamSourceConduit.finishListenerInvoked:Z
69: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.finishListener:Lio/undertow/conduits/ConduitListener;
aload 0
invokeinterface io.undertow.conduits.ConduitListener.handleEvent:(Lorg/xnio/conduits/Conduit;)V
70: StackMap locals:
StackMap stack:
iload 18
ireturn
end local 14 71: StackMap locals: io.undertow.conduits.ChunkedStreamSourceConduit java.nio.ByteBuffer int long io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int int int int long int
StackMap stack:
aload 6
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 82
72: aload 6
invokevirtual java.nio.ByteBuffer.limit:()I
istore 14
start local 14 73: aload 6
iload 14
i2l
aload 6
invokevirtual java.nio.ByteBuffer.position:()I
i2l
lload 11
ladd
invokestatic java.lang.Math.min:(JJ)J
l2i
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
74: aload 1
aload 6
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
75: goto 79
StackMap locals: io.undertow.conduits.ChunkedStreamSourceConduit java.nio.ByteBuffer int long io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int int int int long int int
StackMap stack: java.lang.Throwable
76: astore 15
77: aload 6
iload 14
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
78: aload 15
athrow
79: StackMap locals:
StackMap stack:
aload 6
iload 14
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
80: iload 10
i2l
lload 11
ladd
l2i
istore 10
81: lload 3
lload 11
lsub
lstore 3
end local 14 82: StackMap locals:
StackMap stack:
lload 3
lconst_0
lcmp
ifle 100
83: aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
istore 14
start local 14 84: lload 3
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
lcmp
ifge 86
85: aload 1
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
i2l
lload 3
ladd
l2i
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
86: StackMap locals: int
StackMap stack:
iconst_0
istore 15
start local 15 87: StackMap locals: int
StackMap stack:
aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSourceConduit
aload 1
invokeinterface org.xnio.conduits.StreamSourceConduit.read:(Ljava/nio/ByteBuffer;)I
istore 15
88: iload 15
ifle 91
89: iload 10
iload 15
iadd
istore 10
90: lload 3
iload 15
i2l
lsub
lstore 3
91: StackMap locals:
StackMap stack:
iload 15
ifle 93
lload 3
lconst_0
92: lcmp
ifgt 87
93: StackMap locals:
StackMap stack:
iload 15
iconst_m1
if_icmpne 98
94: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
end local 15 95: StackMap locals: io.undertow.conduits.ChunkedStreamSourceConduit java.nio.ByteBuffer int long io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int int int int long int int
StackMap stack: java.lang.Throwable
astore 16
96: aload 1
iload 14
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
97: aload 16
athrow
98: StackMap locals:
StackMap stack:
aload 1
iload 14
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
end local 14 99: goto 101
100: StackMap locals:
StackMap stack:
iconst_0
istore 7
101: StackMap locals:
StackMap stack:
aload 0
iload 10
invokevirtual io.undertow.conduits.ChunkedStreamSourceConduit.updateRemainingAllowed:(I)V
102: iload 10
istore 18
103: aload 1
iload 9
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
104: lload 3
lconst_0
lcmp
iflt 106
105: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.chunkReader:Lio/undertow/conduits/ChunkReader;
lload 3
invokevirtual io.undertow.conduits.ChunkReader.setChunkRemaining:(J)V
106: StackMap locals: io.undertow.conduits.ChunkedStreamSourceConduit java.nio.ByteBuffer int long io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int int int int long int top top top top int
StackMap stack:
iload 7
ifne 109
aload 6
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 109
107: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.bufferWrapper:Lio/undertow/conduits/ChunkedStreamSourceConduit$BufferWrapper;
aload 5
invokeinterface io.undertow.conduits.ChunkedStreamSourceConduit$BufferWrapper.pushBack:(Lio/undertow/connector/PooledByteBuffer;)V
108: goto 110
109: StackMap locals:
StackMap stack:
aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
110: StackMap locals:
StackMap stack:
iload 2
ifeq 113
111: aload 0
iconst_1
putfield io.undertow.conduits.ChunkedStreamSourceConduit.finishListenerInvoked:Z
112: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.finishListener:Lio/undertow/conduits/ConduitListener;
aload 0
invokeinterface io.undertow.conduits.ConduitListener.handleEvent:(Lorg/xnio/conduits/Conduit;)V
113: StackMap locals:
StackMap stack:
iload 18
ireturn
end local 13 end local 11 end local 10 114: StackMap locals: io.undertow.conduits.ChunkedStreamSourceConduit java.nio.ByteBuffer int long io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int int int
StackMap stack: java.lang.Throwable
astore 17
115: aload 1
iload 9
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
116: aload 17
athrow
end local 9 end local 8 117: StackMap locals: io.undertow.conduits.ChunkedStreamSourceConduit java.nio.ByteBuffer int long io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int
StackMap stack: java.lang.Throwable
astore 19
118: lload 3
lconst_0
lcmp
iflt 120
119: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.chunkReader:Lio/undertow/conduits/ChunkReader;
lload 3
invokevirtual io.undertow.conduits.ChunkReader.setChunkRemaining:(J)V
120: StackMap locals: io.undertow.conduits.ChunkedStreamSourceConduit java.nio.ByteBuffer int long io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int top top top top top top top top top top top java.lang.Throwable
StackMap stack:
iload 7
ifne 123
aload 6
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 123
121: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.bufferWrapper:Lio/undertow/conduits/ChunkedStreamSourceConduit$BufferWrapper;
aload 5
invokeinterface io.undertow.conduits.ChunkedStreamSourceConduit$BufferWrapper.pushBack:(Lio/undertow/connector/PooledByteBuffer;)V
122: goto 124
123: StackMap locals:
StackMap stack:
aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
124: StackMap locals:
StackMap stack:
aload 19
athrow
end local 7 end local 6 end local 5 end local 3 125: StackMap locals: io.undertow.conduits.ChunkedStreamSourceConduit java.nio.ByteBuffer int
StackMap stack: java.lang.Throwable
astore 3
start local 3 126: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.closeable:Ljava/io/Closeable;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
127: aload 3
athrow
end local 3 128: StackMap locals:
StackMap stack: java.lang.Throwable
astore 21
129: iload 2
ifeq 132
130: aload 0
iconst_1
putfield io.undertow.conduits.ChunkedStreamSourceConduit.finishListenerInvoked:Z
131: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.finishListener:Lio/undertow/conduits/ConduitListener;
aload 0
invokeinterface io.undertow.conduits.ConduitListener.handleEvent:(Lorg/xnio/conduits/Conduit;)V
132: StackMap locals: io.undertow.conduits.ChunkedStreamSourceConduit java.nio.ByteBuffer int top top top top top top top top top top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 21
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 133 0 this Lio/undertow/conduits/ChunkedStreamSourceConduit;
0 133 1 dst Ljava/nio/ByteBuffer;
1 133 2 invokeFinishListener Z
2 125 3 chunkRemaining J
12 125 5 pooled Lio/undertow/connector/PooledByteBuffer;
13 125 6 buf Ljava/nio/ByteBuffer;
14 125 7 free Z
15 117 8 r I
48 117 9 originalLimit I
49 114 10 read I
50 114 11 chunkInBuffer J
51 114 13 remaining I
53 71 14 orig I
73 82 14 old I
84 99 14 old I
87 95 15 c I
126 128 3 e Ljava/lang/Throwable;
Exception table:
from to target type
74 76 76 any
84 95 95 any
48 60 114 any
71 103 114 any
14 19 117 any
29 37 117 any
47 61 117 any
71 104 117 any
114 117 117 any
1 5 125 Class java.io.IOException
9 25 125 Class java.io.IOException
29 43 125 Class java.io.IOException
47 67 125 Class java.io.IOException
71 110 125 Class java.io.IOException
114 125 125 Class java.io.IOException
1 5 125 Class java.lang.RuntimeException
9 25 125 Class java.lang.RuntimeException
29 43 125 Class java.lang.RuntimeException
47 67 125 Class java.lang.RuntimeException
71 110 125 Class java.lang.RuntimeException
114 125 125 Class java.lang.RuntimeException
1 5 125 Class java.lang.Error
9 25 125 Class java.lang.Error
29 43 125 Class java.lang.Error
47 67 125 Class java.lang.Error
71 110 125 Class java.lang.Error
114 125 125 Class java.lang.Error
1 5 128 any
9 25 128 any
29 43 128 any
47 67 128 any
71 110 128 any
114 128 128 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dst final
public boolean isFinished();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.closed:Z
ifne 1
aload 0
getfield io.undertow.conduits.ChunkedStreamSourceConduit.chunkReader:Lio/undertow/conduits/ChunkReader;
invokevirtual io.undertow.conduits.ChunkReader.getChunkRemaining:()J
ldc -1
lcmp
ifeq 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/conduits/ChunkedStreamSourceConduit;
}
Signature: Lorg/xnio/conduits/AbstractStreamSourceConduit<Lorg/xnio/conduits/StreamSourceConduit;>;
SourceFile: "ChunkedStreamSourceConduit.java"
NestMembers:
io.undertow.conduits.ChunkedStreamSourceConduit$1 io.undertow.conduits.ChunkedStreamSourceConduit$2 io.undertow.conduits.ChunkedStreamSourceConduit$BufferWrapper
InnerClasses:
io.undertow.conduits.ChunkedStreamSourceConduit$1
io.undertow.conduits.ChunkedStreamSourceConduit$2
abstract BufferWrapper = io.undertow.conduits.ChunkedStreamSourceConduit$BufferWrapper of io.undertow.conduits.ChunkedStreamSourceConduit