final class io.undertow.server.protocol.ajp.AjpServerResponseConduit extends io.undertow.conduits.AbstractFramedStreamSinkConduit
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.undertow.server.protocol.ajp.AjpServerResponseConduit
super_class: io.undertow.conduits.AbstractFramedStreamSinkConduit
{
private static final org.jboss.logging.Logger log;
descriptor: Lorg/jboss/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int DEFAULT_MAX_DATA_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8192
private static final java.util.Map<io.undertow.util.HttpString, java.lang.Integer> ;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Lio/undertow/util/HttpString;Ljava/lang/Integer;>;
private static final java.nio.ByteBuffer FLUSH_PACKET;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int FLAG_START;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int FLAG_WRITE_RESUMED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int FLAG_WRITE_READ_BODY_CHUNK_FROM_LISTENER;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int FLAG_WRITE_SHUTDOWN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private static final int FLAG_READS_DONE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32
private static final int FLAG_FLUSH_QUEUED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 64
private static final java.nio.ByteBuffer CLOSE_FRAME_PERSISTENT;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.nio.ByteBuffer CLOSE_FRAME_NON_PERSISTENT;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final io.undertow.connector.ByteBufferPool pool;
descriptor: Lio/undertow/connector/ByteBufferPool;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int state;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final io.undertow.server.HttpServerExchange exchange;
descriptor: Lio/undertow/server/HttpServerExchange;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.undertow.conduits.ConduitListener<? super io.undertow.server.protocol.ajp.AjpServerResponseConduit> finishListener;
descriptor: Lio/undertow/conduits/ConduitListener;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/undertow/conduits/ConduitListener<-Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;>;
private final boolean headRequest;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: ldc "io.undertow.server.channel.ajp.response"
invokestatic org.jboss.logging.Logger.getLogger:(Ljava/lang/String;)Lorg/jboss/logging/Logger;
putstatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.log:Lorg/jboss/logging/Logger;
1: bipush 8
invokestatic java.nio.ByteBuffer.allocateDirect:(I)Ljava/nio/ByteBuffer;
putstatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.FLUSH_PACKET:Ljava/nio/ByteBuffer;
2: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 0
start local 0 3: aload 0
getstatic io.undertow.util.Headers.CONTENT_TYPE:Lio/undertow/util/HttpString;
ldc 40961
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 0
getstatic io.undertow.util.Headers.CONTENT_LANGUAGE:Lio/undertow/util/HttpString;
ldc 40962
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: aload 0
getstatic io.undertow.util.Headers.CONTENT_LENGTH:Lio/undertow/util/HttpString;
ldc 40963
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 0
getstatic io.undertow.util.Headers.DATE:Lio/undertow/util/HttpString;
ldc 40964
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: aload 0
getstatic io.undertow.util.Headers.LAST_MODIFIED:Lio/undertow/util/HttpString;
ldc 40965
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: aload 0
getstatic io.undertow.util.Headers.LOCATION:Lio/undertow/util/HttpString;
ldc 40966
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
9: aload 0
getstatic io.undertow.util.Headers.SET_COOKIE:Lio/undertow/util/HttpString;
ldc 40967
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
10: aload 0
getstatic io.undertow.util.Headers.SET_COOKIE2:Lio/undertow/util/HttpString;
ldc 40968
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: aload 0
getstatic io.undertow.util.Headers.SERVLET_ENGINE:Lio/undertow/util/HttpString;
ldc 40969
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: aload 0
getstatic io.undertow.util.Headers.STATUS:Lio/undertow/util/HttpString;
ldc 40970
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
13: aload 0
getstatic io.undertow.util.Headers.WWW_AUTHENTICATE:Lio/undertow/util/HttpString;
ldc 40971
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
14: aload 0
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
putstatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.HEADER_MAP:Ljava/util/Map;
15: getstatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.FLUSH_PACKET:Ljava/nio/ByteBuffer;
bipush 65
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
16: getstatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.FLUSH_PACKET:Ljava/nio/ByteBuffer;
bipush 66
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
17: getstatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.FLUSH_PACKET:Ljava/nio/ByteBuffer;
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
18: getstatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.FLUSH_PACKET:Ljava/nio/ByteBuffer;
iconst_4
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
19: getstatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.FLUSH_PACKET:Ljava/nio/ByteBuffer;
iconst_3
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
20: getstatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.FLUSH_PACKET:Ljava/nio/ByteBuffer;
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
21: getstatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.FLUSH_PACKET:Ljava/nio/ByteBuffer;
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
22: getstatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.FLUSH_PACKET:Ljava/nio/ByteBuffer;
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
23: getstatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.FLUSH_PACKET:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
end local 0 24: bipush 6
newarray 8
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
astore 0
start local 0 25: aload 0
bipush 65
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
26: aload 0
bipush 66
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
27: aload 0
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
28: aload 0
iconst_2
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
29: aload 0
iconst_5
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
30: aload 0
iconst_1
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
31: aload 0
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
32: aload 0
putstatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.CLOSE_FRAME_PERSISTENT:Ljava/nio/ByteBuffer;
33: bipush 6
newarray 8
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
astore 0
34: aload 0
getstatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.CLOSE_FRAME_PERSISTENT:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
35: aload 0
iconst_5
iconst_0
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
36: aload 0
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
37: aload 0
putstatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.CLOSE_FRAME_NON_PERSISTENT:Ljava/nio/ByteBuffer;
end local 0 38: return
LocalVariableTable:
Start End Slot Name Signature
3 24 0 headers Ljava/util/Map<Lio/undertow/util/HttpString;Ljava/lang/Integer;>;
25 38 0 buffer Ljava/nio/ByteBuffer;
void <init>(org.xnio.conduits.StreamSinkConduit, io.undertow.connector.ByteBufferPool, io.undertow.server.HttpServerExchange, io.undertow.conduits.ConduitListener<? super io.undertow.server.protocol.ajp.AjpServerResponseConduit>, );
descriptor: (Lorg/xnio/conduits/StreamSinkConduit;Lio/undertow/connector/ByteBufferPool;Lio/undertow/server/HttpServerExchange;Lio/undertow/conduits/ConduitListener;Z)V
flags: (0x0000)
Code:
stack=2, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
invokespecial io.undertow.conduits.AbstractFramedStreamSinkConduit.<init>:(Lorg/xnio/conduits/StreamSinkConduit;)V
1: aload 0
iconst_1
putfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.state:I
2: aload 0
aload 2
putfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.pool:Lio/undertow/connector/ByteBufferPool;
3: aload 0
aload 3
putfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.exchange:Lio/undertow/server/HttpServerExchange;
4: aload 0
aload 4
putfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.finishListener:Lio/undertow/conduits/ConduitListener;
5: aload 0
iload 5
putfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.headRequest:Z
6: aload 0
iconst_1
putfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.state:I
7: return
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/server/protocol/ajp/AjpServerResponseConduit;
0 8 1 next Lorg/xnio/conduits/StreamSinkConduit;
0 8 2 pool Lio/undertow/connector/ByteBufferPool;
0 8 3 exchange Lio/undertow/server/HttpServerExchange;
0 8 4 finishListener Lio/undertow/conduits/ConduitListener<-Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;>;
0 8 5 headRequest Z
Signature: (Lorg/xnio/conduits/StreamSinkConduit;Lio/undertow/connector/ByteBufferPool;Lio/undertow/server/HttpServerExchange;Lio/undertow/conduits/ConduitListener<-Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;>;Z)V
MethodParameters:
Name Flags
next final
pool final
exchange final
finishListener
headRequest
private static void putInt(java.nio.ByteBuffer, int);
descriptor: (Ljava/nio/ByteBuffer;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
bipush 8
ishr
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
1: aload 0
iload 1
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 buf Ljava/nio/ByteBuffer;
0 3 1 value I
MethodParameters:
Name Flags
buf final
value
private static void putString(java.nio.ByteBuffer, java.lang.String);
descriptor: (Ljava/nio/ByteBuffer;Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.String.length:()I
istore 2
start local 2 1: aload 0
iload 2
invokestatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.putInt:(Ljava/nio/ByteBuffer;I)V
2: iconst_0
istore 3
start local 3 3: goto 10
4: StackMap locals: int int
StackMap stack:
aload 1
iload 3
invokevirtual java.lang.String.charAt:(I)C
istore 4
start local 4 5: iload 4
bipush 13
if_icmpeq 8
iload 4
bipush 10
if_icmpeq 8
6: aload 0
iload 4
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
7: goto 9
8: StackMap locals: int
StackMap stack:
aload 0
bipush 32
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
end local 4 9: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
iload 2
if_icmplt 4
end local 3 11: aload 0
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
12: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 buf Ljava/nio/ByteBuffer;
0 13 1 value Ljava/lang/String;
1 13 2 length I
3 11 3 i I
5 9 4 c C
MethodParameters:
Name Flags
buf final
value
private void putHttpString(java.nio.ByteBuffer, io.undertow.util.HttpString);
descriptor: (Ljava/nio/ByteBuffer;Lio/undertow/util/HttpString;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual io.undertow.util.HttpString.length:()I
istore 3
start local 3 1: aload 1
iload 3
invokestatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.putInt:(Ljava/nio/ByteBuffer;I)V
2: aload 2
aload 1
invokevirtual io.undertow.util.HttpString.appendTo:(Ljava/nio/ByteBuffer;)V
3: aload 1
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
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/server/protocol/ajp/AjpServerResponseConduit;
0 5 1 buf Ljava/nio/ByteBuffer;
0 5 2 value Lio/undertow/util/HttpString;
1 5 3 length I
MethodParameters:
Name Flags
buf final
value
private void ();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=13, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.state:I
istore 1
start local 1 1: iload 1
iconst_1
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 69
2: aconst_null
astore 2
start local 2 3: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.exchange:Lio/undertow/server/HttpServerExchange;
invokestatic io.undertow.server.Connectors.flattenCookies:(Lio/undertow/server/HttpServerExchange;)V
4: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.pool:Lio/undertow/connector/ByteBufferPool;
invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
astore 3
start local 3 5: aload 3
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
astore 4
start local 4 6: aload 4
bipush 65
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
7: aload 4
bipush 66
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
8: aload 4
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
9: aload 4
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
10: aload 4
iconst_4
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
11: aload 4
aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getStatusCode:()I
invokestatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.putInt:(Ljava/nio/ByteBuffer;I)V
12: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getReasonPhrase:()Ljava/lang/String;
astore 5
start local 5 13: aload 5
ifnonnull 15
14: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getStatusCode:()I
invokestatic io.undertow.util.StatusCodes.getReason:(I)Ljava/lang/String;
astore 5
15: StackMap locals: io.undertow.server.protocol.ajp.AjpServerResponseConduit int io.undertow.connector.PooledByteBuffer[] io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer java.lang.String
StackMap stack:
aload 5
invokevirtual java.lang.String.length:()I
iconst_4
iadd
aload 4
invokevirtual java.nio.ByteBuffer.remaining:()I
if_icmple 18
16: aload 3
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
17: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
aload 5
invokeinterface io.undertow.UndertowMessages.reasonPhraseToLargeForBuffer:(Ljava/lang/String;)Ljava/lang/IllegalStateException;
athrow
18: StackMap locals:
StackMap stack:
aload 4
aload 5
invokestatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.putString:(Ljava/nio/ByteBuffer;Ljava/lang/String;)V
19: iconst_0
istore 6
start local 6 20: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getResponseHeaders:()Lio/undertow/util/HeaderMap;
astore 7
start local 7 21: aload 7
invokevirtual io.undertow.util.HeaderMap.getHeaderNames:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 9
goto 24
StackMap locals: io.undertow.server.protocol.ajp.AjpServerResponseConduit int io.undertow.connector.PooledByteBuffer[] io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer java.lang.String int io.undertow.util.HeaderMap top java.util.Iterator
StackMap stack:
22: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.undertow.util.HttpString
astore 8
start local 8 23: iload 6
aload 7
aload 8
invokevirtual io.undertow.util.HeaderMap.get:(Lio/undertow/util/HttpString;)Lio/undertow/util/HeaderValues;
invokevirtual io.undertow.util.HeaderValues.size:()I
iadd
istore 6
end local 8 24: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 22
25: aload 4
iload 6
invokestatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.putInt:(Ljava/nio/ByteBuffer;I)V
26: aload 7
invokevirtual io.undertow.util.HeaderMap.getHeaderNames:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 9
goto 49
StackMap locals:
StackMap stack:
27: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.undertow.util.HttpString
astore 8
start local 8 28: aload 7
aload 8
invokevirtual io.undertow.util.HeaderMap.get:(Lio/undertow/util/HttpString;)Lio/undertow/util/HeaderValues;
invokevirtual io.undertow.util.HeaderValues.iterator:()Ljava/util/Iterator;
astore 11
goto 48
StackMap locals: io.undertow.server.protocol.ajp.AjpServerResponseConduit int io.undertow.connector.PooledByteBuffer[] io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer java.lang.String int io.undertow.util.HeaderMap io.undertow.util.HttpString java.util.Iterator top java.util.Iterator
StackMap stack:
29: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 10
start local 10 30: aload 4
invokevirtual java.nio.ByteBuffer.remaining:()I
aload 8
invokevirtual io.undertow.util.HttpString.length:()I
aload 10
invokevirtual java.lang.String.length:()I
iadd
bipush 6
iadd
if_icmpge 42
31: aload 4
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
32: aload 2
ifnonnull 36
33: iconst_2
anewarray io.undertow.connector.PooledByteBuffer
astore 2
34: aload 2
iconst_0
aload 3
aastore
35: goto 39
36: StackMap locals: io.undertow.server.protocol.ajp.AjpServerResponseConduit int io.undertow.connector.PooledByteBuffer[] io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer java.lang.String int io.undertow.util.HeaderMap io.undertow.util.HttpString java.util.Iterator java.lang.String java.util.Iterator
StackMap stack:
aload 2
astore 12
start local 12 37: aload 12
arraylength
iconst_1
iadd
anewarray io.undertow.connector.PooledByteBuffer
astore 2
38: aload 12
iconst_0
aload 2
iconst_0
aload 12
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
end local 12 39: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.pool:Lio/undertow/connector/ByteBufferPool;
invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
astore 3
40: aload 2
aload 2
arraylength
iconst_1
isub
aload 3
aastore
41: aload 3
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
astore 4
42: StackMap locals:
StackMap stack:
getstatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.HEADER_MAP:Ljava/util/Map;
aload 8
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 12
start local 12 43: aload 12
ifnull 46
44: aload 4
aload 12
invokevirtual java.lang.Integer.intValue:()I
invokestatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.putInt:(Ljava/nio/ByteBuffer;I)V
45: goto 47
46: StackMap locals: java.lang.Integer
StackMap stack:
aload 0
aload 4
aload 8
invokevirtual io.undertow.server.protocol.ajp.AjpServerResponseConduit.putHttpString:(Ljava/nio/ByteBuffer;Lio/undertow/util/HttpString;)V
47: StackMap locals:
StackMap stack:
aload 4
aload 10
invokestatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.putString:(Ljava/nio/ByteBuffer;Ljava/lang/String;)V
end local 12 end local 10 48: StackMap locals: io.undertow.server.protocol.ajp.AjpServerResponseConduit int io.undertow.connector.PooledByteBuffer[] io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer java.lang.String int io.undertow.util.HeaderMap io.undertow.util.HttpString java.util.Iterator top java.util.Iterator
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 29
end local 8 49: StackMap locals: io.undertow.server.protocol.ajp.AjpServerResponseConduit int io.undertow.connector.PooledByteBuffer[] io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer java.lang.String int io.undertow.util.HeaderMap top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 27
50: aload 2
ifnonnull 57
51: aload 4
invokevirtual java.nio.ByteBuffer.position:()I
iconst_4
isub
istore 8
start local 8 52: aload 4
iconst_2
iload 8
bipush 8
ishr
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
53: aload 4
iconst_3
iload 8
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
54: aload 4
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
55: aload 0
new io.undertow.conduits.AbstractFramedStreamSinkConduit$PooledBufferFrameCallback
dup
aload 3
invokespecial io.undertow.conduits.AbstractFramedStreamSinkConduit$PooledBufferFrameCallback.<init>:(Lio/undertow/connector/PooledByteBuffer;)V
iconst_1
anewarray java.nio.ByteBuffer
dup
iconst_0
aload 4
aastore
invokevirtual io.undertow.server.protocol.ajp.AjpServerResponseConduit.queueFrame:(Lio/undertow/conduits/AbstractFramedStreamSinkConduit$FrameCallBack;[Ljava/nio/ByteBuffer;)V
end local 8 56: goto 68
57: StackMap locals: io.undertow.server.protocol.ajp.AjpServerResponseConduit int io.undertow.connector.PooledByteBuffer[] io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer java.lang.String int io.undertow.util.HeaderMap
StackMap stack:
aload 2
arraylength
anewarray java.nio.ByteBuffer
astore 8
start local 8 58: iconst_0
istore 9
start local 9 59: goto 62
60: StackMap locals: java.nio.ByteBuffer[] int
StackMap stack:
aload 8
iload 9
aload 2
iload 9
aaload
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
aastore
61: iinc 9 1
StackMap locals:
StackMap stack:
62: iload 9
aload 8
arraylength
if_icmplt 60
end local 9 63: aload 8
invokestatic org.xnio.Buffers.remaining:([Ljava/nio/Buffer;)J
ldc 4
lsub
l2i
istore 9
start local 9 64: aload 8
iconst_0
aaload
iconst_2
iload 9
bipush 8
ishr
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
65: aload 8
iconst_0
aaload
iconst_3
iload 9
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
66: aload 4
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
67: aload 0
new io.undertow.conduits.AbstractFramedStreamSinkConduit$PooledBuffersFrameCallback
dup
aload 2
invokespecial io.undertow.conduits.AbstractFramedStreamSinkConduit$PooledBuffersFrameCallback.<init>:([Lio/undertow/connector/PooledByteBuffer;)V
aload 8
invokevirtual io.undertow.server.protocol.ajp.AjpServerResponseConduit.queueFrame:(Lio/undertow/conduits/AbstractFramedStreamSinkConduit$FrameCallBack;[Ljava/nio/ByteBuffer;)V
end local 9 end local 8 68: StackMap locals:
StackMap stack:
aload 0
dup
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.state:I
bipush -2
iand
putfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.state:I
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 69: StackMap locals: io.undertow.server.protocol.ajp.AjpServerResponseConduit int
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 70 0 this Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;
1 70 1 oldState I
3 69 2 byteBuffers [Lio/undertow/connector/PooledByteBuffer;
5 69 3 pooled Lio/undertow/connector/PooledByteBuffer;
6 69 4 buffer Ljava/nio/ByteBuffer;
13 69 5 reason Ljava/lang/String;
20 69 6 headers I
21 69 7 responseHeaders Lio/undertow/util/HeaderMap;
23 24 8 name Lio/undertow/util/HttpString;
28 49 8 header Lio/undertow/util/HttpString;
30 48 10 headerValue Ljava/lang/String;
37 39 12 old [Lio/undertow/connector/PooledByteBuffer;
43 48 12 headerCode Ljava/lang/Integer;
52 56 8 dataLength I
58 68 8 bufs [Ljava/nio/ByteBuffer;
59 63 9 i I
64 68 9 dataLength I
protected void queueCloseFrames();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual io.undertow.server.protocol.ajp.AjpServerResponseConduit.processAJPHeader:()V
1: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.isPersistent:()Z
ifeq 2
getstatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.CLOSE_FRAME_PERSISTENT:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
goto 3
StackMap locals:
StackMap stack:
2: getstatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.CLOSE_FRAME_NON_PERSISTENT:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
StackMap locals:
StackMap stack: java.nio.ByteBuffer
3: astore 1
start local 1 4: aload 0
aconst_null
iconst_1
anewarray java.nio.ByteBuffer
dup
iconst_0
aload 1
aastore
invokevirtual io.undertow.server.protocol.ajp.AjpServerResponseConduit.queueFrame:(Lio/undertow/conduits/AbstractFramedStreamSinkConduit$FrameCallBack;[Ljava/nio/ByteBuffer;)V
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;
4 6 1 buffer Ljava/nio/ByteBuffer;
public int write(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=14, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual io.undertow.server.protocol.ajp.AjpServerResponseConduit.queuedDataLength:()J
lconst_0
lcmp
ifle 3
1: aload 0
invokevirtual io.undertow.server.protocol.ajp.AjpServerResponseConduit.flushQueuedData:()Z
ifne 3
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.undertow.server.protocol.ajp.AjpServerResponseConduit.processAJPHeader:()V
4: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.headRequest:Z
ifeq 8
5: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 2
start local 2 6: aload 1
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
iload 2
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
7: iload 2
ireturn
end local 2 8: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
istore 2
start local 2 9: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
invokevirtual io.undertow.server.ServerConnection.getUndertowOptions:()Lorg/xnio/OptionMap;
getstatic io.undertow.UndertowOptions.MAX_AJP_PACKET_SIZE:Lorg/xnio/Option;
sipush 8192
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
bipush 8
isub
istore 3
start local 3 10: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
iload 3
if_icmple 12
11: aload 1
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
iload 3
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
12: StackMap locals: int int
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 4
start local 4 13: aload 0
aload 1
invokevirtual io.undertow.server.protocol.ajp.AjpServerResponseConduit.createHeader:(Ljava/nio/ByteBuffer;)[Ljava/nio/ByteBuffer;
astore 5
start local 5 14: iconst_0
istore 6
start local 6 15: aload 5
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 19
StackMap locals: io.undertow.server.protocol.ajp.AjpServerResponseConduit java.nio.ByteBuffer int int int java.nio.ByteBuffer[] int top int int java.nio.ByteBuffer[]
StackMap stack:
16: aload 10
iload 8
aaload
astore 7
start local 7 17: iload 6
aload 7
invokevirtual java.nio.ByteBuffer.remaining:()I
iadd
istore 6
end local 7 18: iinc 8 1
StackMap locals:
StackMap stack:
19: iload 8
iload 9
if_icmplt 16
20: iload 4
istore 7
start local 7 21: lconst_0
lstore 8
start local 8 22: StackMap locals: io.undertow.server.protocol.ajp.AjpServerResponseConduit java.nio.ByteBuffer int int int java.nio.ByteBuffer[] int int long
StackMap stack:
aload 0
aload 5
iconst_0
aload 5
arraylength
invokespecial io.undertow.conduits.AbstractFramedStreamSinkConduit.write:([Ljava/nio/ByteBuffer;II)J
lstore 8
23: iload 6
i2l
lload 8
lsub
l2i
istore 6
24: lload 8
ldc -1
lcmp
ifne 26
25: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
26: StackMap locals:
StackMap stack:
lload 8
lconst_0
lcmp
ifne 40
27: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.pool:Lio/undertow/connector/ByteBufferPool;
invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
astore 10
start local 10 28: goto 30
29: StackMap locals: io.undertow.connector.PooledByteBuffer
StackMap stack:
aload 10
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
aload 1
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
30: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 29
31: aload 10
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
32: iconst_3
anewarray java.nio.ByteBuffer
astore 11
start local 11 33: aload 11
iconst_0
aload 5
iconst_0
aaload
aastore
34: aload 11
iconst_1
aload 10
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
aastore
35: aload 11
iconst_2
aload 5
iconst_2
aaload
aastore
36: aload 0
new io.undertow.conduits.AbstractFramedStreamSinkConduit$PooledBufferFrameCallback
dup
aload 10
invokespecial io.undertow.conduits.AbstractFramedStreamSinkConduit$PooledBufferFrameCallback.<init>:(Lio/undertow/connector/PooledByteBuffer;)V
aload 11
invokevirtual io.undertow.server.protocol.ajp.AjpServerResponseConduit.queueFrame:(Lio/undertow/conduits/AbstractFramedStreamSinkConduit$FrameCallBack;[Ljava/nio/ByteBuffer;)V
37: iload 7
istore 13
38: aload 1
iload 2
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
39: iload 13
ireturn
end local 11 end local 10 40: StackMap locals:
StackMap stack:
iload 6
41: ifgt 22
42: iload 7
istore 13
43: aload 1
iload 2
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
44: iload 13
ireturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 45: StackMap locals: io.undertow.server.protocol.ajp.AjpServerResponseConduit java.nio.ByteBuffer int
StackMap stack: java.lang.Exception
astore 3
start local 3 46: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
47: aload 3
athrow
end local 3 48: StackMap locals:
StackMap stack: java.lang.Throwable
astore 12
49: aload 1
iload 2
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
50: aload 12
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 51 0 this Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;
0 51 1 src Ljava/nio/ByteBuffer;
6 8 2 remaining I
9 51 2 limit I
10 45 3 maxData I
13 45 4 writeSize I
14 45 5 buffers [Ljava/nio/ByteBuffer;
15 45 6 toWrite I
17 18 7 buffer Ljava/nio/ByteBuffer;
21 45 7 originalPayloadSize I
22 45 8 r J
28 40 10 newPooledBuffer Lio/undertow/connector/PooledByteBuffer;
33 40 11 savedBuffers [Ljava/nio/ByteBuffer;
46 48 3 e Ljava/lang/Exception;
Exception table:
from to target type
9 38 45 Class java.io.IOException
40 43 45 Class java.io.IOException
9 38 45 Class java.lang.RuntimeException
40 43 45 Class java.lang.RuntimeException
9 38 48 any
40 43 48 any
45 48 48 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src final
private java.nio.ByteBuffer[] (java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)[Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 2
start local 2 1: iload 2
iconst_4
iadd
istore 3
start local 3 2: bipush 7
newarray 8
astore 4
start local 4 3: aload 4
iconst_0
bipush 65
bastore
4: aload 4
iconst_1
bipush 66
bastore
5: aload 4
iconst_2
iload 3
bipush 8
ishr
sipush 255
iand
i2b
bastore
6: aload 4
iconst_3
iload 3
sipush 255
iand
i2b
bastore
7: aload 4
iconst_4
iconst_3
bastore
8: aload 4
iconst_5
iload 2
bipush 8
ishr
sipush 255
iand
i2b
bastore
9: aload 4
bipush 6
iload 2
sipush 255
iand
i2b
bastore
10: iconst_1
newarray 8
astore 5
start local 5 11: aload 5
iconst_0
iconst_0
bastore
12: iconst_3
anewarray java.nio.ByteBuffer
astore 6
start local 6 13: aload 6
iconst_0
aload 4
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
aastore
14: aload 6
iconst_1
aload 1
aastore
15: aload 6
iconst_2
aload 5
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
aastore
16: aload 6
areturn
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 17 0 this Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;
0 17 1 src Ljava/nio/ByteBuffer;
1 17 2 remaining I
2 17 3 chunkSize I
3 17 4 header [B
11 17 5 footer [B
13 17 6 buffers [Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
src final
public long write(java.nio.ByteBuffer[]);
descriptor: ([Ljava/nio/ByteBuffer;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
aload 1
arraylength
invokevirtual io.undertow.server.protocol.ajp.AjpServerResponseConduit.write:([Ljava/nio/ByteBuffer;II)J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;
0 1 1 srcs [Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
srcs final
public long write(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: lconst_0
lstore 4
start local 4 1: iload 2
istore 6
start local 6 2: goto 9
3: StackMap locals: long int
StackMap stack:
aload 0
aload 1
iload 6
aaload
invokevirtual io.undertow.server.protocol.ajp.AjpServerResponseConduit.write:(Ljava/nio/ByteBuffer;)I
istore 7
start local 7 4: iload 7
ifne 6
5: lload 4
lreturn
6: StackMap locals: int
StackMap stack:
lload 4
iload 7
i2l
ladd
lstore 4
end local 7 7: StackMap locals:
StackMap stack:
aload 1
iload 6
aaload
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 3
8: iinc 6 1
StackMap locals:
StackMap stack:
9: iload 6
iload 2
iload 3
iadd
if_icmplt 7
end local 6 10: lload 4
lreturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;
0 11 1 srcs [Ljava/nio/ByteBuffer;
0 11 2 offset I
0 11 3 length I
1 11 4 total J
2 10 6 i I
4 7 7 written I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
srcs final
offset final
length 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 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/server/protocol/ajp/AjpServerResponseConduit;
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 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 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/ajp/AjpServerResponseConduit;
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 final
count final
throughBuffer final
protected void finished();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.finishListener:Lio/undertow/conduits/ConduitListener;
ifnull 2
1: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.finishListener:Lio/undertow/conduits/ConduitListener;
aload 0
invokeinterface io.undertow.conduits.ConduitListener.handleEvent:(Lorg/xnio/conduits/Conduit;)V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;
public void setWriteReadyHandler(org.xnio.conduits.WriteReadyHandler);
descriptor: (Lorg/xnio/conduits/WriteReadyHandler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
new io.undertow.server.protocol.ajp.AjpServerResponseConduit$AjpServerWriteReadyHandler
dup
aload 0
aload 1
invokespecial io.undertow.server.protocol.ajp.AjpServerResponseConduit$AjpServerWriteReadyHandler.<init>:(Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;Lorg/xnio/conduits/WriteReadyHandler;)V
invokeinterface org.xnio.conduits.StreamSinkConduit.setWriteReadyHandler:(Lorg/xnio/conduits/WriteReadyHandler;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;
0 2 1 handler Lorg/xnio/conduits/WriteReadyHandler;
MethodParameters:
Name Flags
handler
public void suspendWrites();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.log:Lorg/jboss/logging/Logger;
ldc "suspend"
invokevirtual org.jboss.logging.Logger.trace:(Ljava/lang/Object;)V
1: aload 0
dup
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.state:I
bipush -5
iand
putfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.state:I
2: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.state:I
bipush 8
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 4
3: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
invokeinterface org.xnio.conduits.StreamSinkConduit.suspendWrites:()V
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;
public void resumeWrites();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.log:Lorg/jboss/logging/Logger;
ldc "resume"
invokevirtual org.jboss.logging.Logger.trace:(Ljava/lang/Object;)V
1: aload 0
dup
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.state:I
iconst_4
ior
putfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.state:I
2: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
invokeinterface org.xnio.conduits.StreamSinkConduit.resumeWrites:()V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;
public boolean flush();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual io.undertow.server.protocol.ajp.AjpServerResponseConduit.processAJPHeader:()V
1: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.state:I
bipush 64
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 6
aload 0
invokevirtual io.undertow.server.protocol.ajp.AjpServerResponseConduit.isWritesTerminated:()Z
ifne 6
2: aload 0
new io.undertow.server.protocol.ajp.AjpServerResponseConduit$1
dup
aload 0
invokespecial io.undertow.server.protocol.ajp.AjpServerResponseConduit$1.<init>:(Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;)V
iconst_1
anewarray java.nio.ByteBuffer
dup
iconst_0
3: getstatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.FLUSH_PACKET:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
aastore
4: invokevirtual io.undertow.server.protocol.ajp.AjpServerResponseConduit.queueFrame:(Lio/undertow/conduits/AbstractFramedStreamSinkConduit$FrameCallBack;[Ljava/nio/ByteBuffer;)V
5: aload 0
dup
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.state:I
bipush 64
ior
putfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.state:I
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.undertow.server.protocol.ajp.AjpServerResponseConduit.flushQueuedData:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;
Exceptions:
throws java.io.IOException
public boolean isWriteResumed();
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.ajp.AjpServerResponseConduit.state:I
iconst_4
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;
public void wakeupWrites();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic io.undertow.server.protocol.ajp.AjpServerResponseConduit.log:Lorg/jboss/logging/Logger;
ldc "wakeup"
invokevirtual org.jboss.logging.Logger.trace:(Ljava/lang/Object;)V
1: aload 0
dup
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.state:I
iconst_4
ior
putfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.state:I
2: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
invokeinterface org.xnio.conduits.StreamSinkConduit.wakeupWrites:()V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;
protected void doTerminateWrites();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.isPersistent:()Z
ifne 2
1: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
invokeinterface org.xnio.conduits.StreamSinkConduit.terminateWrites:()V
2: StackMap locals:
StackMap stack:
aload 0
dup
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.state:I
bipush 16
ior
putfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.state:I
3: goto 7
StackMap locals:
StackMap stack: java.lang.Exception
4: astore 1
start local 1 5: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
6: aload 1
athrow
end local 1 7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;
5 7 1 e Ljava/lang/Exception;
Exception table:
from to target type
0 3 4 Class java.io.IOException
0 3 4 Class java.lang.RuntimeException
Exceptions:
throws java.io.IOException
public boolean isWriteShutdown();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial io.undertow.conduits.AbstractFramedStreamSinkConduit.isWriteShutdown:()Z
ifne 1
aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.state:I
bipush 16
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifne 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/server/protocol/ajp/AjpServerResponseConduit;
boolean doGetRequestBodyChunk(java.nio.ByteBuffer, io.undertow.server.protocol.ajp.AjpServerRequestConduit);
descriptor: (Ljava/nio/ByteBuffer;Lio/undertow/server/protocol/ajp/AjpServerRequestConduit;)Z
flags: (0x0000)
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual io.undertow.server.protocol.ajp.AjpServerResponseConduit.isWriteShutdown:()Z
ifeq 2
1: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.channelIsClosed:()Ljava/nio/channels/ClosedChannelException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial io.undertow.conduits.AbstractFramedStreamSinkConduit.write:(Ljava/nio/ByteBuffer;)I
pop
3: aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 10
4: aload 0
dup
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.state:I
bipush 8
ior
putfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.state:I
5: aload 0
new io.undertow.server.protocol.ajp.AjpServerResponseConduit$2
dup
aload 0
aload 2
invokespecial io.undertow.server.protocol.ajp.AjpServerResponseConduit$2.<init>:(Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;Lio/undertow/server/protocol/ajp/AjpServerRequestConduit;)V
iconst_1
anewarray java.nio.ByteBuffer
dup
iconst_0
6: aload 1
aastore
7: invokevirtual io.undertow.server.protocol.ajp.AjpServerResponseConduit.queueFrame:(Lio/undertow/conduits/AbstractFramedStreamSinkConduit$FrameCallBack;[Ljava/nio/ByteBuffer;)V
8: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.next:Lorg/xnio/conduits/Conduit;
checkcast org.xnio.conduits.StreamSinkConduit
invokeinterface org.xnio.conduits.StreamSinkConduit.resumeWrites:()V
9: iconst_0
ireturn
10: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;
0 11 1 buffer Ljava/nio/ByteBuffer;
0 11 2 requestChannel Lio/undertow/server/protocol/ajp/AjpServerRequestConduit;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
buffer
requestChannel final
static boolean access$0(io.undertow.server.protocol.ajp.AjpServerResponseConduit);
descriptor: (Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;)Z
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual io.undertow.server.protocol.ajp.AjpServerResponseConduit.flushQueuedData:()Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
static org.xnio.conduits.Conduit access$1(io.undertow.server.protocol.ajp.AjpServerResponseConduit);
descriptor: (Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;)Lorg/xnio/conduits/Conduit;
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
getfield io.undertow.server.protocol.ajp.AjpServerResponseConduit.next:Lorg/xnio/conduits/Conduit;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "AjpServerResponseConduit.java"
NestMembers:
io.undertow.server.protocol.ajp.AjpServerResponseConduit$1 io.undertow.server.protocol.ajp.AjpServerResponseConduit$2 io.undertow.server.protocol.ajp.AjpServerResponseConduit$AjpServerWriteReadyHandler
InnerClasses:
public abstract FrameCallBack = io.undertow.conduits.AbstractFramedStreamSinkConduit$FrameCallBack of io.undertow.conduits.AbstractFramedStreamSinkConduit
protected PooledBufferFrameCallback = io.undertow.conduits.AbstractFramedStreamSinkConduit$PooledBufferFrameCallback of io.undertow.conduits.AbstractFramedStreamSinkConduit
protected PooledBuffersFrameCallback = io.undertow.conduits.AbstractFramedStreamSinkConduit$PooledBuffersFrameCallback of io.undertow.conduits.AbstractFramedStreamSinkConduit
io.undertow.server.protocol.ajp.AjpServerResponseConduit$1
io.undertow.server.protocol.ajp.AjpServerResponseConduit$2
private final AjpServerWriteReadyHandler = io.undertow.server.protocol.ajp.AjpServerResponseConduit$AjpServerWriteReadyHandler of io.undertow.server.protocol.ajp.AjpServerResponseConduit