public class io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit 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.server.protocol.http.PipeliningBufferingStreamSinkConduit
super_class: org.xnio.conduits.AbstractStreamSinkConduit
{
private static final int SHUTDOWN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int DELEGATE_SHUTDOWN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int FLUSHING;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private int state;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final io.undertow.connector.ByteBufferPool pool;
descriptor: Lio/undertow/connector/ByteBufferPool;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private io.undertow.connector.PooledByteBuffer buffer;
descriptor: Lio/undertow/connector/PooledByteBuffer;
flags: (0x0002) ACC_PRIVATE
public void <init>(org.xnio.conduits.StreamSinkConduit, io.undertow.connector.ByteBufferPool);
descriptor: (Lorg/xnio/conduits/StreamSinkConduit;Lio/undertow/connector/ByteBufferPool;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokespecial org.xnio.conduits.AbstractStreamSinkConduit.<init>:(Lorg/xnio/conduits/StreamSinkConduit;)V
1: aload 0
aload 2
putfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.pool:Lio/undertow/connector/ByteBufferPool;
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/server/protocol/http/PipeliningBufferingStreamSinkConduit;
0 3 1 next Lorg/xnio/conduits/StreamSinkConduit;
0 3 2 pool Lio/undertow/connector/ByteBufferPool;
MethodParameters:
Name Flags
next
pool final
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.server.protocol.http.PipeliningBufferingStreamSinkConduit.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/server/protocol/http/PipeliningBufferingStreamSinkConduit;
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
position
count
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 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 1 0 this Lio/undertow/server/protocol/http/PipeliningBufferingStreamSinkConduit;
0 1 1 source Lorg/xnio/channels/StreamSourceChannel;
0 1 2 count J
0 1 4 throughBuffer Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source
count
throughBuffer
public long write(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.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.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
bipush 8
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 6
3: aload 0
invokevirtual io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.flushBuffer:()Z
istore 4
start local 4 4: iload 4
ifne 6
5: lconst_0
lreturn
end local 4 6: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
astore 4
start local 4 7: aload 4
ifnonnull 9
8: aload 0
aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.pool:Lio/undertow/connector/ByteBufferPool;
invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
dup
astore 4
putfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
9: StackMap locals: io.undertow.connector.PooledByteBuffer
StackMap stack:
aload 4
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
astore 5
start local 5 10: aload 1
iload 2
iload 3
invokestatic org.xnio.Buffers.remaining:([Ljava/nio/Buffer;II)J
lstore 6
start local 6 11: aload 5
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
lload 6
lcmp
ifle 15
12: lload 6
lstore 8
start local 8 13: aload 5
aload 1
iload 2
iload 3
invokestatic org.xnio.Buffers.copy:(Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;II)I
pop
14: lload 8
lreturn
end local 8 15: StackMap locals: java.nio.ByteBuffer long
StackMap stack:
aload 0
aload 1
iload 2
iload 3
invokevirtual io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.flushBufferWithUserData:([Ljava/nio/ByteBuffer;II)J
lreturn
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 16 0 this Lio/undertow/server/protocol/http/PipeliningBufferingStreamSinkConduit;
0 16 1 srcs [Ljava/nio/ByteBuffer;
0 16 2 offset I
0 16 3 length I
4 6 4 res Z
7 16 4 pooled Lio/undertow/connector/PooledByteBuffer;
10 16 5 buffer Ljava/nio/ByteBuffer;
11 16 6 total J
13 15 8 put J
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
srcs
offset
length
public int write(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.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.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
bipush 8
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 6
3: aload 0
invokevirtual io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.flushBuffer:()Z
istore 2
start local 2 4: iload 2
ifne 6
5: iconst_0
ireturn
end local 2 6: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
astore 2
start local 2 7: aload 2
ifnonnull 9
8: aload 0
aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.pool:Lio/undertow/connector/ByteBufferPool;
invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
dup
astore 2
putfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
9: StackMap locals: io.undertow.connector.PooledByteBuffer
StackMap stack:
aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
astore 3
start local 3 10: aload 3
invokevirtual java.nio.ByteBuffer.remaining:()I
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
if_icmple 14
11: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 4
start local 4 12: aload 3
aload 1
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
13: iload 4
ireturn
end local 4 14: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 0
iconst_1
anewarray java.nio.ByteBuffer
dup
iconst_0
aload 1
aastore
iconst_0
iconst_1
invokevirtual io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.flushBufferWithUserData:([Ljava/nio/ByteBuffer;II)J
l2i
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lio/undertow/server/protocol/http/PipeliningBufferingStreamSinkConduit;
0 15 1 src Ljava/nio/ByteBuffer;
4 6 2 res Z
7 15 2 pooled Lio/undertow/connector/PooledByteBuffer;
10 15 3 buffer Ljava/nio/ByteBuffer;
12 14 4 put I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src
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 0
aload 1
invokestatic org.xnio.conduits.Conduits.writeFinalBasic:(Lorg/xnio/conduits/StreamSinkConduit;Ljava/nio/ByteBuffer;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/http/PipeliningBufferingStreamSinkConduit;
0 1 1 src Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src
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/server/protocol/http/PipeliningBufferingStreamSinkConduit;
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
private long flushBufferWithUserData(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=13, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
astore 4
start local 4 1: aload 4
invokevirtual java.nio.ByteBuffer.position:()I
ifne 10
2: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
aload 1
iload 2
iload 3
invokeinterface org.xnio.conduits.StreamSinkConduit.write:([Ljava/nio/ByteBuffer;II)J
lstore 6
3: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
4: aload 0
aconst_null
putfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
5: lload 6
lreturn
6: StackMap locals: io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit java.nio.ByteBuffer[] int int java.nio.ByteBuffer
StackMap stack: java.lang.Throwable
astore 5
7: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
8: aload 0
aconst_null
putfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
9: aload 5
athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
bipush 8
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifne 13
11: aload 0
dup
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
bipush 8
ior
putfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
12: aload 4
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
13: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 5
start local 5 14: iload 5
i2l
lstore 6
start local 6 15: iload 3
iconst_1
iadd
anewarray java.nio.ByteBuffer
astore 8
start local 8 16: aload 8
iconst_0
aload 4
aastore
17: iload 2
istore 9
start local 9 18: goto 22
19: StackMap locals: io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit java.nio.ByteBuffer[] int int java.nio.ByteBuffer int long java.nio.ByteBuffer[] int
StackMap stack:
aload 8
iload 9
iconst_1
iadd
iload 2
isub
aload 1
iload 9
aaload
aastore
20: lload 6
aload 1
iload 9
aaload
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
ladd
lstore 6
21: iinc 9 1
StackMap locals:
StackMap stack:
22: iload 9
iload 2
iload 3
iadd
if_icmplt 19
end local 9 23: lconst_0
lstore 9
start local 9 24: lconst_0
lstore 11
start local 11 25: StackMap locals: io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit java.nio.ByteBuffer[] int int java.nio.ByteBuffer int long java.nio.ByteBuffer[] long long
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
aload 8
iconst_0
aload 8
arraylength
invokeinterface org.xnio.conduits.StreamSinkConduit.write:([Ljava/nio/ByteBuffer;II)J
lstore 9
26: lload 11
lload 9
ladd
lstore 11
27: lload 9
lconst_0
lcmp
ifne 34
28: lload 11
iload 5
i2l
lcmp
ifle 33
29: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
30: aload 0
aconst_null
putfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
31: aload 0
dup
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
bipush -9
iand
putfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
32: lload 11
iload 5
i2l
lsub
lreturn
33: StackMap locals:
StackMap stack:
lconst_0
lreturn
34: StackMap locals:
StackMap stack:
lload 11
lload 6
35: lcmp
iflt 25
36: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
37: aload 0
aconst_null
putfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
38: aload 0
dup
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
bipush -9
iand
putfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
39: lload 11
iload 5
i2l
lsub
lreturn
end local 11 end local 9 end local 8 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 40 0 this Lio/undertow/server/protocol/http/PipeliningBufferingStreamSinkConduit;
0 40 1 byteBuffers [Ljava/nio/ByteBuffer;
0 40 2 offset I
0 40 3 length I
1 40 4 byteBuffer Ljava/nio/ByteBuffer;
14 40 5 originalBufferedRemaining I
15 40 6 toWrite J
16 40 8 writeBufs [Ljava/nio/ByteBuffer;
18 23 9 i I
24 40 9 res J
25 40 11 written J
Exception table:
from to target type
2 3 6 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
byteBuffers final
offset
length
public boolean flushPipelinedData();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
ifnull 1
aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
ifne 2
aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
bipush 8
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 2
1: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
invokeinterface org.xnio.conduits.StreamSinkConduit.flush:()Z
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.flushBuffer:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/server/protocol/http/PipeliningBufferingStreamSinkConduit;
Exceptions:
throws java.io.IOException
public void setupPipelineBuffer(io.undertow.server.HttpServerExchange);
descriptor: (Lio/undertow/server/HttpServerExchange;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
checkcast io.undertow.server.protocol.http.HttpServerConnection
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
aload 0
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.setConduit:(Lorg/xnio/conduits/StreamSinkConduit;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/protocol/http/PipeliningBufferingStreamSinkConduit;
0 2 1 exchange Lio/undertow/server/HttpServerExchange;
MethodParameters:
Name Flags
exchange final
private boolean flushBuffer();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
ifnonnull 2
1: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
invokeinterface org.xnio.conduits.StreamSinkConduit.flush:()Z
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
astore 1
start local 1 3: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
bipush 8
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifne 9
4: aload 0
dup
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
bipush 8
ior
putfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
5: aload 1
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
6: goto 9
7: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
aload 1
invokeinterface org.xnio.conduits.StreamSinkConduit.write:(Ljava/nio/ByteBuffer;)I
ifne 9
8: iconst_0
ireturn
9: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 7
10: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
invokeinterface org.xnio.conduits.StreamSinkConduit.flush:()Z
ifne 12
11: iconst_0
ireturn
12: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
13: aload 0
aconst_null
putfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
14: aload 0
dup
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
bipush -9
iand
putfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
15: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lio/undertow/server/protocol/http/PipeliningBufferingStreamSinkConduit;
3 16 1 byteBuffer Ljava/nio/ByteBuffer;
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.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
ifnull 3
1: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.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
4: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/undertow/server/protocol/http/PipeliningBufferingStreamSinkConduit;
0 5 1 time J
0 5 3 timeUnit Ljava/util/concurrent/TimeUnit;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
time
timeUnit
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.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
ifnull 4
1: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
invokeinterface org.xnio.conduits.StreamSinkConduit.awaitWritable:()V
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/undertow/server/protocol/http/PipeliningBufferingStreamSinkConduit;
Exceptions:
throws java.io.IOException
public boolean flush();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
iconst_1
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 8
1: aload 0
invokevirtual io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.flushBuffer:()Z
ifne 3
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
iconst_1
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 7
4: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
iconst_2
invokestatic org.xnio.Bits.anyAreClear:(II)Z
ifeq 7
5: aload 0
dup
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
iconst_2
ior
putfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
6: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
invokeinterface org.xnio.conduits.StreamSinkConduit.terminateWrites:()V
7: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
invokeinterface org.xnio.conduits.StreamSinkConduit.flush:()Z
ireturn
8: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/undertow/server/protocol/http/PipeliningBufferingStreamSinkConduit;
Exceptions:
throws java.io.IOException
public void terminateWrites();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
iconst_1
ior
putfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
1: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
ifnonnull 4
2: aload 0
dup
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
iconst_2
ior
putfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.state:I
3: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
invokeinterface org.xnio.conduits.StreamSinkConduit.terminateWrites:()V
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/undertow/server/protocol/http/PipeliningBufferingStreamSinkConduit;
Exceptions:
throws java.io.IOException
public void truncateWrites();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
invokeinterface org.xnio.conduits.StreamSinkConduit.truncateWrites:()V
1: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
2: astore 1
3: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
ifnull 5
4: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
5: StackMap locals: java.lang.Throwable
StackMap stack:
aload 1
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
ifnull 8
7: aload 0
getfield io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.buffer:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/undertow/server/protocol/http/PipeliningBufferingStreamSinkConduit;
Exception table:
from to target type
0 2 2 any
Exceptions:
throws java.io.IOException
public void exchangeComplete(io.undertow.server.HttpServerExchange);
descriptor: (Lio/undertow/server/HttpServerExchange;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
checkcast io.undertow.server.protocol.http.HttpServerConnection
astore 2
start local 2 1: aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getExtraBytes:()Lio/undertow/connector/PooledByteBuffer;
ifnull 2
aload 1
invokevirtual io.undertow.server.HttpServerExchange.isUpgrade:()Z
ifeq 4
2: StackMap locals: io.undertow.server.protocol.http.HttpServerConnection
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.performFlush:(Lio/undertow/server/HttpServerExchange;Lio/undertow/server/protocol/http/HttpServerConnection;)V
3: goto 5
4: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getReadListener:()Lio/undertow/server/protocol/http/HttpReadListener;
aload 1
invokevirtual io.undertow.server.protocol.http.HttpReadListener.exchangeComplete:(Lio/undertow/server/HttpServerExchange;)V
5: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/undertow/server/protocol/http/PipeliningBufferingStreamSinkConduit;
0 6 1 exchange Lio/undertow/server/HttpServerExchange;
1 6 2 connection Lio/undertow/server/protocol/http/HttpServerConnection;
MethodParameters:
Name Flags
exchange final
void performFlush(io.undertow.server.HttpServerExchange, io.undertow.server.protocol.http.HttpServerConnection);
descriptor: (Lio/undertow/server/HttpServerExchange;Lio/undertow/server/protocol/http/HttpServerConnection;)V
flags: (0x0000)
Code:
stack=8, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.resetChannel:()Lio/undertow/server/AbstractServerConnection$ConduitState;
astore 3
start local 3 1: aload 0
invokevirtual io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit.flushPipelinedData:()Z
ifne 6
2: aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
astore 4
start local 4 3: aload 4
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
new io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit$1
dup
aload 0
aload 4
aload 2
aload 3
aload 1
invokespecial io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit$1.<init>:(Lio/undertow/server/protocol/http/PipeliningBufferingStreamSinkConduit;Lorg/xnio/StreamConnection;Lio/undertow/server/protocol/http/HttpServerConnection;Lio/undertow/server/AbstractServerConnection$ConduitState;Lio/undertow/server/HttpServerExchange;)V
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.setWriteListener:(Lorg/xnio/ChannelListener;)V
4: aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.resumeWrites:()V
5: return
end local 4 6: StackMap locals: io.undertow.server.AbstractServerConnection$ConduitState
StackMap stack:
aload 2
aload 3
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.restoreChannel:(Lio/undertow/server/AbstractServerConnection$ConduitState;)V
7: aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getReadListener:()Lio/undertow/server/protocol/http/HttpReadListener;
aload 1
invokevirtual io.undertow.server.protocol.http.HttpReadListener.exchangeComplete:(Lio/undertow/server/HttpServerExchange;)V
end local 3 8: goto 16
StackMap locals: io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit io.undertow.server.HttpServerExchange io.undertow.server.protocol.http.HttpServerConnection
StackMap stack: java.io.IOException
9: astore 3
start local 3 10: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
aload 3
invokeinterface io.undertow.UndertowLogger.ioException:(Ljava/io/IOException;)V
11: aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
end local 3 12: goto 16
13: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
start local 3 14: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
aload 3
invokeinterface io.undertow.UndertowLogger.handleUnexpectedFailure:(Ljava/lang/Throwable;)V
15: aload 2
invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
end local 3 16: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lio/undertow/server/protocol/http/PipeliningBufferingStreamSinkConduit;
0 17 1 exchange Lio/undertow/server/HttpServerExchange;
0 17 2 connection Lio/undertow/server/protocol/http/HttpServerConnection;
1 8 3 oldState Lio/undertow/server/AbstractServerConnection$ConduitState;
3 6 4 channel Lorg/xnio/StreamConnection;
10 12 3 e Ljava/io/IOException;
14 16 3 t Ljava/lang/Throwable;
Exception table:
from to target type
0 5 9 Class java.io.IOException
6 8 9 Class java.io.IOException
0 5 13 Class java.lang.Throwable
6 8 13 Class java.lang.Throwable
MethodParameters:
Name Flags
exchange final
connection final
}
Signature: Lorg/xnio/conduits/AbstractStreamSinkConduit<Lorg/xnio/conduits/StreamSinkConduit;>;
SourceFile: "PipeliningBufferingStreamSinkConduit.java"
NestMembers:
io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit$1
InnerClasses:
public ConduitState = io.undertow.server.AbstractServerConnection$ConduitState of io.undertow.server.AbstractServerConnection
io.undertow.server.protocol.http.PipeliningBufferingStreamSinkConduit$1