public final class io.undertow.conduits.StoredResponseStreamSinkConduit extends org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: io.undertow.conduits.StoredResponseStreamSinkConduit
super_class: org.xnio.conduits.AbstractStreamSinkConduit
{
public static final io.undertow.util.AttachmentKey<byte[]> RESPONSE;
descriptor: Lio/undertow/util/AttachmentKey;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lio/undertow/util/AttachmentKey<[B>;
private java.io.ByteArrayOutputStream outputStream;
descriptor: Ljava/io/ByteArrayOutputStream;
flags: (0x0002) ACC_PRIVATE
private final io.undertow.server.HttpServerExchange exchange;
descriptor: Lio/undertow/server/HttpServerExchange;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc [B
invokestatic io.undertow.util.AttachmentKey.create:(Ljava/lang/Class;)Lio/undertow/util/AttachmentKey;
putstatic io.undertow.conduits.StoredResponseStreamSinkConduit.RESPONSE:Lio/undertow/util/AttachmentKey;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.xnio.conduits.StreamSinkConduit, io.undertow.server.HttpServerExchange);
descriptor: (Lorg/xnio/conduits/StreamSinkConduit;Lio/undertow/server/HttpServerExchange;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, 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.conduits.StoredResponseStreamSinkConduit.exchange:Lio/undertow/server/HttpServerExchange;
2: aload 2
invokevirtual io.undertow.server.HttpServerExchange.getResponseContentLength:()J
lstore 3
start local 3 3: lload 3
lconst_0
lcmp
ifgt 6
4: aload 0
new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
putfield io.undertow.conduits.StoredResponseStreamSinkConduit.outputStream:Ljava/io/ByteArrayOutputStream;
5: goto 9
6: StackMap locals: io.undertow.conduits.StoredResponseStreamSinkConduit org.xnio.conduits.StreamSinkConduit io.undertow.server.HttpServerExchange long
StackMap stack:
lload 3
ldc 2147483647
lcmp
ifle 8
7: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
lload 3
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface io.undertow.UndertowMessages.responseTooLargeToBuffer:(Ljava/lang/Long;)Ljava/lang/IllegalStateException;
athrow
8: StackMap locals:
StackMap stack:
aload 0
new java.io.ByteArrayOutputStream
dup
lload 3
l2i
invokespecial java.io.ByteArrayOutputStream.<init>:(I)V
putfield io.undertow.conduits.StoredResponseStreamSinkConduit.outputStream:Ljava/io/ByteArrayOutputStream;
9: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lio/undertow/conduits/StoredResponseStreamSinkConduit;
0 10 1 next Lorg/xnio/conduits/StreamSinkConduit;
0 10 2 exchange Lio/undertow/server/HttpServerExchange;
3 10 3 length J
MethodParameters:
Name Flags
next
exchange
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/conduits/StoredResponseStreamSinkConduit;
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 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 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 1 0 this Lio/undertow/conduits/StoredResponseStreamSinkConduit;
0 1 1 src Ljava/nio/channels/FileChannel;
0 1 2 position J
0 1 4 count J
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src
position
count
public int write(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.nio.ByteBuffer.position:()I
istore 2
start local 2 1: aload 0
aload 1
invokespecial org.xnio.conduits.AbstractStreamSinkConduit.write:(Ljava/nio/ByteBuffer;)I
istore 3
start local 3 2: iload 2
istore 4
start local 4 3: goto 6
4: StackMap locals: int int int
StackMap stack:
aload 0
getfield io.undertow.conduits.StoredResponseStreamSinkConduit.outputStream:Ljava/io/ByteArrayOutputStream;
aload 1
iload 4
invokevirtual java.nio.ByteBuffer.get:(I)B
invokevirtual java.io.ByteArrayOutputStream.write:(I)V
5: iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
iload 2
iload 3
iadd
if_icmplt 4
end local 4 7: iload 3
ireturn
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/StoredResponseStreamSinkConduit;
0 8 1 src Ljava/nio/ByteBuffer;
1 8 2 start I
2 8 3 ret I
3 7 4 i I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src
public long write(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 3
newarray 10
astore 4
start local 4 1: iconst_0
istore 5
start local 5 2: goto 5
3: StackMap locals: int[] int
StackMap stack:
aload 4
iload 5
aload 1
iload 5
iload 2
iadd
aaload
invokevirtual java.nio.ByteBuffer.position:()I
iastore
4: iinc 5 1
StackMap locals:
StackMap stack:
5: iload 5
iload 3
if_icmplt 3
end local 5 6: aload 0
aload 1
iload 2
iload 3
invokespecial org.xnio.conduits.AbstractStreamSinkConduit.write:([Ljava/nio/ByteBuffer;II)J
lstore 5
start local 5 7: lload 5
lstore 7
start local 7 8: iconst_0
istore 9
start local 9 9: goto 18
10: StackMap locals: io.undertow.conduits.StoredResponseStreamSinkConduit java.nio.ByteBuffer[] int int int[] long long int
StackMap stack:
aload 1
iload 9
iload 2
iadd
aaload
astore 10
start local 10 11: aload 4
iload 9
iaload
istore 11
start local 11 12: goto 16
13: StackMap locals: java.nio.ByteBuffer int
StackMap stack:
aload 0
getfield io.undertow.conduits.StoredResponseStreamSinkConduit.outputStream:Ljava/io/ByteArrayOutputStream;
aload 10
iload 11
invokevirtual java.nio.ByteBuffer.get:(I)B
invokevirtual java.io.ByteArrayOutputStream.write:(I)V
14: iinc 11 1
15: lload 7
lconst_1
lsub
lstore 7
16: StackMap locals:
StackMap stack:
lload 7
lconst_0
lcmp
ifle 17
iload 11
aload 10
invokevirtual java.nio.ByteBuffer.position:()I
if_icmple 13
end local 11 end local 10 17: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
18: iload 9
iload 3
if_icmplt 10
end local 9 19: lload 5
lreturn
end local 7 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 20 0 this Lio/undertow/conduits/StoredResponseStreamSinkConduit;
0 20 1 srcs [Ljava/nio/ByteBuffer;
0 20 2 offs I
0 20 3 len I
1 20 4 starts [I
2 6 5 i I
7 20 5 ret J
8 20 7 rem J
9 19 9 i I
11 17 10 buf Ljava/nio/ByteBuffer;
12 17 11 pos I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
srcs
offs
len
public int writeFinal(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.nio.ByteBuffer.position:()I
istore 2
start local 2 1: aload 0
aload 1
invokespecial org.xnio.conduits.AbstractStreamSinkConduit.writeFinal:(Ljava/nio/ByteBuffer;)I
istore 3
start local 3 2: iload 2
istore 4
start local 4 3: goto 6
4: StackMap locals: int int int
StackMap stack:
aload 0
getfield io.undertow.conduits.StoredResponseStreamSinkConduit.outputStream:Ljava/io/ByteArrayOutputStream;
aload 1
iload 4
invokevirtual java.nio.ByteBuffer.get:(I)B
invokevirtual java.io.ByteArrayOutputStream.write:(I)V
5: iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
iload 2
iload 3
iadd
if_icmplt 4
end local 4 7: aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 10
8: aload 0
getfield io.undertow.conduits.StoredResponseStreamSinkConduit.exchange:Lio/undertow/server/HttpServerExchange;
getstatic io.undertow.conduits.StoredResponseStreamSinkConduit.RESPONSE:Lio/undertow/util/AttachmentKey;
aload 0
getfield io.undertow.conduits.StoredResponseStreamSinkConduit.outputStream:Ljava/io/ByteArrayOutputStream;
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
invokevirtual io.undertow.server.HttpServerExchange.putAttachment:(Lio/undertow/util/AttachmentKey;Ljava/lang/Object;)Ljava/lang/Object;
pop
9: aload 0
aconst_null
putfield io.undertow.conduits.StoredResponseStreamSinkConduit.outputStream:Ljava/io/ByteArrayOutputStream;
10: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/undertow/conduits/StoredResponseStreamSinkConduit;
0 11 1 src Ljava/nio/ByteBuffer;
1 11 2 start I
2 11 3 ret I
3 7 4 i I
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=5, locals=14, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 3
newarray 10
astore 4
start local 4 1: lconst_0
lstore 5
start local 5 2: iconst_0
istore 7
start local 7 3: goto 7
4: StackMap locals: int[] long int
StackMap stack:
aload 4
iload 7
aload 1
iload 7
iload 2
iadd
aaload
invokevirtual java.nio.ByteBuffer.position:()I
iastore
5: lload 5
aload 1
iload 7
iload 2
iadd
aaload
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
ladd
lstore 5
6: iinc 7 1
StackMap locals:
StackMap stack:
7: iload 7
iload 3
if_icmplt 4
end local 7 8: aload 0
aload 1
iload 2
iload 3
invokespecial org.xnio.conduits.AbstractStreamSinkConduit.write:([Ljava/nio/ByteBuffer;II)J
lstore 7
start local 7 9: lload 7
lstore 9
start local 9 10: iconst_0
istore 11
start local 11 11: goto 20
12: StackMap locals: io.undertow.conduits.StoredResponseStreamSinkConduit java.nio.ByteBuffer[] int int int[] long long long int
StackMap stack:
aload 1
iload 11
iload 2
iadd
aaload
astore 12
start local 12 13: aload 4
iload 11
iaload
istore 13
start local 13 14: goto 18
15: StackMap locals: java.nio.ByteBuffer int
StackMap stack:
aload 0
getfield io.undertow.conduits.StoredResponseStreamSinkConduit.outputStream:Ljava/io/ByteArrayOutputStream;
aload 12
iload 13
invokevirtual java.nio.ByteBuffer.get:(I)B
invokevirtual java.io.ByteArrayOutputStream.write:(I)V
16: iinc 13 1
17: lload 9
lconst_1
lsub
lstore 9
18: StackMap locals:
StackMap stack:
lload 9
lconst_0
lcmp
ifle 19
iload 13
aload 12
invokevirtual java.nio.ByteBuffer.position:()I
if_icmple 15
end local 13 end local 12 19: StackMap locals:
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
20: iload 11
iload 3
if_icmplt 12
end local 11 21: lload 5
lload 7
lcmp
ifne 24
22: aload 0
getfield io.undertow.conduits.StoredResponseStreamSinkConduit.exchange:Lio/undertow/server/HttpServerExchange;
getstatic io.undertow.conduits.StoredResponseStreamSinkConduit.RESPONSE:Lio/undertow/util/AttachmentKey;
aload 0
getfield io.undertow.conduits.StoredResponseStreamSinkConduit.outputStream:Ljava/io/ByteArrayOutputStream;
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
invokevirtual io.undertow.server.HttpServerExchange.putAttachment:(Lio/undertow/util/AttachmentKey;Ljava/lang/Object;)Ljava/lang/Object;
pop
23: aload 0
aconst_null
putfield io.undertow.conduits.StoredResponseStreamSinkConduit.outputStream:Ljava/io/ByteArrayOutputStream;
24: StackMap locals:
StackMap stack:
lload 7
lreturn
end local 9 end local 7 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 25 0 this Lio/undertow/conduits/StoredResponseStreamSinkConduit;
0 25 1 srcs [Ljava/nio/ByteBuffer;
0 25 2 offs I
0 25 3 len I
1 25 4 starts [I
2 25 5 toWrite J
3 8 7 i I
9 25 7 ret J
10 25 9 rem J
11 21 11 i I
13 19 12 buf Ljava/nio/ByteBuffer;
14 19 13 pos I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
srcs
offs
len
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.StoredResponseStreamSinkConduit.exchange:Lio/undertow/server/HttpServerExchange;
getstatic io.undertow.conduits.StoredResponseStreamSinkConduit.RESPONSE:Lio/undertow/util/AttachmentKey;
aload 0
getfield io.undertow.conduits.StoredResponseStreamSinkConduit.outputStream:Ljava/io/ByteArrayOutputStream;
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
invokevirtual io.undertow.server.HttpServerExchange.putAttachment:(Lio/undertow/util/AttachmentKey;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
aconst_null
putfield io.undertow.conduits.StoredResponseStreamSinkConduit.outputStream:Ljava/io/ByteArrayOutputStream;
2: aload 0
invokespecial org.xnio.conduits.AbstractStreamSinkConduit.terminateWrites:()V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/undertow/conduits/StoredResponseStreamSinkConduit;
Exceptions:
throws java.io.IOException
}
Signature: Lorg/xnio/conduits/AbstractStreamSinkConduit<Lorg/xnio/conduits/StreamSinkConduit;>;
SourceFile: "StoredResponseStreamSinkConduit.java"