public class io.undertow.protocols.ajp.AjpClientChannel extends io.undertow.server.protocol.framed.AbstractFramedChannel<io.undertow.protocols.ajp.AjpClientChannel, io.undertow.protocols.ajp.AbstractAjpClientStreamSourceChannel, io.undertow.protocols.ajp.AbstractAjpClientStreamSinkChannel>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.undertow.protocols.ajp.AjpClientChannel
super_class: io.undertow.server.protocol.framed.AbstractFramedChannel
{
private final io.undertow.protocols.ajp.AjpResponseParser ajpParser;
descriptor: Lio/undertow/protocols/ajp/AjpResponseParser;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel source;
descriptor: Lio/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel;
flags: (0x0002) ACC_PRIVATE
private io.undertow.protocols.ajp.AjpClientRequestClientStreamSinkChannel sink;
descriptor: Lio/undertow/protocols/ajp/AjpClientRequestClientStreamSinkChannel;
flags: (0x0002) ACC_PRIVATE
private final java.util.List<io.undertow.client.ClientConnection$PingListener> pingListeners;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lio/undertow/client/ClientConnection$PingListener;>;
boolean sinkDone;
descriptor: Z
flags: (0x0000)
boolean sourceDone;
descriptor: Z
flags: (0x0000)
private boolean lastFrameSent;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean lastFrameReceived;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
public void <init>(org.xnio.StreamConnection, io.undertow.connector.ByteBufferPool, org.xnio.OptionMap);
descriptor: (Lorg/xnio/StreamConnection;Lio/undertow/connector/ByteBufferPool;Lorg/xnio/OptionMap;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
getstatic io.undertow.protocols.ajp.AjpClientFramePriority.INSTANCE:Lio/undertow/protocols/ajp/AjpClientFramePriority;
aconst_null
aload 3
invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel.<init>:(Lorg/xnio/StreamConnection;Lio/undertow/connector/ByteBufferPool;Lio/undertow/server/protocol/framed/FramePriority;Lio/undertow/connector/PooledByteBuffer;Lorg/xnio/OptionMap;)V
1: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield io.undertow.protocols.ajp.AjpClientChannel.pingListeners:Ljava/util/List;
2: aload 0
iconst_1
putfield io.undertow.protocols.ajp.AjpClientChannel.sinkDone:Z
3: aload 0
iconst_1
putfield io.undertow.protocols.ajp.AjpClientChannel.sourceDone:Z
4: aload 0
new io.undertow.protocols.ajp.AjpResponseParser
dup
invokespecial io.undertow.protocols.ajp.AjpResponseParser.<init>:()V
putfield io.undertow.protocols.ajp.AjpClientChannel.ajpParser:Lio/undertow/protocols/ajp/AjpResponseParser;
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/undertow/protocols/ajp/AjpClientChannel;
0 6 1 connectedStreamChannel Lorg/xnio/StreamConnection;
0 6 2 bufferPool Lio/undertow/connector/ByteBufferPool;
0 6 3 settings Lorg/xnio/OptionMap;
MethodParameters:
Name Flags
connectedStreamChannel
bufferPool
settings
protected io.undertow.protocols.ajp.AbstractAjpClientStreamSourceChannel (io.undertow.server.protocol.framed.FrameHeaderData, io.undertow.connector.PooledByteBuffer);
descriptor: (Lio/undertow/server/protocol/framed/FrameHeaderData;Lio/undertow/connector/PooledByteBuffer;)Lio/undertow/protocols/ajp/AbstractAjpClientStreamSourceChannel;
flags: (0x0004) ACC_PROTECTED
Code:
stack=9, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof io.undertow.protocols.ajp.AjpClientChannel$SendHeadersResponse
ifeq 5
1: aload 1
checkcast io.undertow.protocols.ajp.AjpClientChannel$SendHeadersResponse
astore 3
start local 3 2: new io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel
dup
aload 0
aload 3
getfield io.undertow.protocols.ajp.AjpClientChannel$SendHeadersResponse.headers:Lio/undertow/util/HeaderMap;
aload 3
getfield io.undertow.protocols.ajp.AjpClientChannel$SendHeadersResponse.statusCode:I
aload 3
getfield io.undertow.protocols.ajp.AjpClientChannel$SendHeadersResponse.reasonPhrase:Ljava/lang/String;
aload 2
aload 1
invokeinterface io.undertow.server.protocol.framed.FrameHeaderData.getFrameLength:()J
l2i
invokespecial io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel.<init>:(Lio/undertow/protocols/ajp/AjpClientChannel;Lio/undertow/util/HeaderMap;ILjava/lang/String;Lio/undertow/connector/PooledByteBuffer;I)V
astore 4
start local 4 3: aload 0
aload 4
putfield io.undertow.protocols.ajp.AjpClientChannel.source:Lio/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel;
4: aload 4
areturn
end local 4 end local 3 5: StackMap locals:
StackMap stack:
aload 1
instanceof io.undertow.protocols.ajp.AjpClientChannel$RequestBodyChunk
ifeq 10
6: aload 1
checkcast io.undertow.protocols.ajp.AjpClientChannel$RequestBodyChunk
astore 3
start local 3 7: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.sink:Lio/undertow/protocols/ajp/AjpClientRequestClientStreamSinkChannel;
aload 3
invokevirtual io.undertow.protocols.ajp.AjpClientChannel$RequestBodyChunk.getLength:()I
invokevirtual io.undertow.protocols.ajp.AjpClientRequestClientStreamSinkChannel.chunkRequested:(I)V
8: aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
9: aconst_null
areturn
end local 3 10: StackMap locals:
StackMap stack:
aload 1
instanceof io.undertow.protocols.ajp.AjpClientChannel$CpongResponse
ifeq 25
11: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.pingListeners:Ljava/util/List;
dup
astore 3
monitorenter
12: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.pingListeners:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 18
StackMap locals: io.undertow.protocols.ajp.AjpClientChannel io.undertow.server.protocol.framed.FrameHeaderData io.undertow.connector.PooledByteBuffer java.util.List top java.util.Iterator
StackMap stack:
13: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.undertow.client.ClientConnection$PingListener
astore 4
start local 4 14: aload 4
invokeinterface io.undertow.client.ClientConnection$PingListener.acknowledged:()V
15: goto 18
StackMap locals: io.undertow.protocols.ajp.AjpClientChannel io.undertow.server.protocol.framed.FrameHeaderData io.undertow.connector.PooledByteBuffer java.util.List io.undertow.client.ClientConnection$PingListener java.util.Iterator
StackMap stack: java.lang.Throwable
16: astore 6
start local 6 17: getstatic io.undertow.UndertowLogger.ROOT_LOGGER:Lio/undertow/UndertowLogger;
ldc "Exception notifying ping listener"
aload 6
invokeinterface io.undertow.UndertowLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
end local 6 end local 4 18: StackMap locals: io.undertow.protocols.ajp.AjpClientChannel io.undertow.server.protocol.framed.FrameHeaderData io.undertow.connector.PooledByteBuffer java.util.List top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
19: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.pingListeners:Ljava/util/List;
invokeinterface java.util.List.clear:()V
20: aload 3
monitorexit
21: goto 24
StackMap locals: io.undertow.protocols.ajp.AjpClientChannel io.undertow.server.protocol.framed.FrameHeaderData io.undertow.connector.PooledByteBuffer java.util.List
StackMap stack: java.lang.Throwable
22: aload 3
monitorexit
23: athrow
24: StackMap locals:
StackMap stack:
aconst_null
areturn
25: StackMap locals:
StackMap stack:
aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
26: new java.lang.RuntimeException
dup
ldc "TODO: unknown frame"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lio/undertow/protocols/ajp/AjpClientChannel;
0 27 1 frameHeaderData Lio/undertow/server/protocol/framed/FrameHeaderData;
0 27 2 frameData Lio/undertow/connector/PooledByteBuffer;
2 5 3 h Lio/undertow/protocols/ajp/AjpClientChannel$SendHeadersResponse;
3 5 4 sourceChannel Lio/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel;
7 10 3 r Lio/undertow/protocols/ajp/AjpClientChannel$RequestBodyChunk;
14 18 4 i Lio/undertow/client/ClientConnection$PingListener;
17 18 6 t Ljava/lang/Throwable;
Exception table:
from to target type
14 15 16 Class java.lang.Throwable
12 21 22 any
22 23 22 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
frameHeaderData
frameData
protected io.undertow.server.protocol.framed.FrameHeaderData (java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Lio/undertow/server/protocol/framed/FrameHeaderData;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.ajpParser:Lio/undertow/protocols/ajp/AjpResponseParser;
aload 1
invokevirtual io.undertow.protocols.ajp.AjpResponseParser.parse:(Ljava/nio/ByteBuffer;)V
1: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.ajpParser:Lio/undertow/protocols/ajp/AjpResponseParser;
invokevirtual io.undertow.protocols.ajp.AjpResponseParser.isComplete:()Z
ifeq 35
2: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.ajpParser:Lio/undertow/protocols/ajp/AjpResponseParser;
astore 2
start local 2 3: aload 2
getfield io.undertow.protocols.ajp.AjpResponseParser.prefix:B
iconst_4
if_icmpne 7
4: new io.undertow.protocols.ajp.AjpClientChannel$SendHeadersResponse
dup
aload 0
aload 2
getfield io.undertow.protocols.ajp.AjpResponseParser.statusCode:I
aload 2
getfield io.undertow.protocols.ajp.AjpResponseParser.reasonPhrase:Ljava/lang/String;
aload 2
getfield io.undertow.protocols.ajp.AjpResponseParser.headers:Lio/undertow/util/HeaderMap;
invokespecial io.undertow.protocols.ajp.AjpClientChannel$SendHeadersResponse.<init>:(Lio/undertow/protocols/ajp/AjpClientChannel;ILjava/lang/String;Lio/undertow/util/HeaderMap;)V
astore 5
5: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.ajpParser:Lio/undertow/protocols/ajp/AjpResponseParser;
invokevirtual io.undertow.protocols.ajp.AjpResponseParser.reset:()V
6: aload 5
areturn
7: StackMap locals: io.undertow.protocols.ajp.AjpResponseParser
StackMap stack:
aload 2
getfield io.undertow.protocols.ajp.AjpResponseParser.prefix:B
bipush 6
if_icmpne 11
8: new io.undertow.protocols.ajp.AjpClientChannel$RequestBodyChunk
dup
aload 0
aload 2
getfield io.undertow.protocols.ajp.AjpResponseParser.readBodyChunkSize:I
invokespecial io.undertow.protocols.ajp.AjpClientChannel$RequestBodyChunk.<init>:(Lio/undertow/protocols/ajp/AjpClientChannel;I)V
astore 5
9: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.ajpParser:Lio/undertow/protocols/ajp/AjpResponseParser;
invokevirtual io.undertow.protocols.ajp.AjpResponseParser.reset:()V
10: aload 5
areturn
11: StackMap locals:
StackMap stack:
aload 2
getfield io.undertow.protocols.ajp.AjpResponseParser.prefix:B
iconst_3
if_icmpne 15
12: new io.undertow.protocols.ajp.AjpClientChannel$SendBodyChunk
dup
aload 0
aload 2
getfield io.undertow.protocols.ajp.AjpResponseParser.currentIntegerPart:I
iconst_1
iadd
invokespecial io.undertow.protocols.ajp.AjpClientChannel$SendBodyChunk.<init>:(Lio/undertow/protocols/ajp/AjpClientChannel;I)V
astore 5
13: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.ajpParser:Lio/undertow/protocols/ajp/AjpResponseParser;
invokevirtual io.undertow.protocols.ajp.AjpResponseParser.reset:()V
14: aload 5
areturn
15: StackMap locals:
StackMap stack:
aload 2
getfield io.undertow.protocols.ajp.AjpResponseParser.prefix:B
iconst_5
if_icmpne 25
16: aload 2
getfield io.undertow.protocols.ajp.AjpResponseParser.currentIntegerPart:I
ifeq 17
iconst_1
goto 18
StackMap locals:
StackMap stack:
17: iconst_0
StackMap locals:
StackMap stack: int
18: istore 3
start local 3 19: iload 3
ifne 22
20: aload 0
iconst_1
putfield io.undertow.protocols.ajp.AjpClientChannel.lastFrameReceived:Z
21: aload 0
iconst_1
putfield io.undertow.protocols.ajp.AjpClientChannel.lastFrameSent:Z
22: StackMap locals: int
StackMap stack:
new io.undertow.protocols.ajp.AjpClientChannel$EndResponse
dup
aload 0
invokespecial io.undertow.protocols.ajp.AjpClientChannel$EndResponse.<init>:(Lio/undertow/protocols/ajp/AjpClientChannel;)V
astore 5
23: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.ajpParser:Lio/undertow/protocols/ajp/AjpResponseParser;
invokevirtual io.undertow.protocols.ajp.AjpResponseParser.reset:()V
24: aload 5
areturn
end local 3 25: StackMap locals:
StackMap stack:
aload 2
getfield io.undertow.protocols.ajp.AjpResponseParser.prefix:B
bipush 9
if_icmpne 29
26: new io.undertow.protocols.ajp.AjpClientChannel$CpongResponse
dup
aload 0
invokespecial io.undertow.protocols.ajp.AjpClientChannel$CpongResponse.<init>:(Lio/undertow/protocols/ajp/AjpClientChannel;)V
astore 5
27: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.ajpParser:Lio/undertow/protocols/ajp/AjpResponseParser;
invokevirtual io.undertow.protocols.ajp.AjpResponseParser.reset:()V
28: aload 5
areturn
29: StackMap locals:
StackMap stack:
getstatic io.undertow.UndertowLogger.ROOT_LOGGER:Lio/undertow/UndertowLogger;
ldc "UNKOWN FRAME"
invokeinterface io.undertow.UndertowLogger.debug:(Ljava/lang/Object;)V
end local 2 30: goto 34
StackMap locals: io.undertow.protocols.ajp.AjpClientChannel java.nio.ByteBuffer
StackMap stack: java.lang.Throwable
31: astore 4
32: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.ajpParser:Lio/undertow/protocols/ajp/AjpResponseParser;
invokevirtual io.undertow.protocols.ajp.AjpResponseParser.reset:()V
33: aload 4
athrow
34: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.ajpParser:Lio/undertow/protocols/ajp/AjpResponseParser;
invokevirtual io.undertow.protocols.ajp.AjpResponseParser.reset:()V
35: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lio/undertow/protocols/ajp/AjpClientChannel;
0 36 1 data Ljava/nio/ByteBuffer;
3 30 2 parser Lio/undertow/protocols/ajp/AjpResponseParser;
19 25 3 persistent Z
Exception table:
from to target type
2 5 31 any
7 9 31 any
11 13 31 any
15 23 31 any
25 27 31 any
29 31 31 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
data
public io.undertow.protocols.ajp.AjpClientRequestClientStreamSinkChannel sendRequest(io.undertow.util.HttpString, java.lang.String, io.undertow.util.HttpString, io.undertow.util.HeaderMap, io.undertow.util.Attachable, org.xnio.ChannelListener<io.undertow.protocols.ajp.AjpClientRequestClientStreamSinkChannel>);
descriptor: (Lio/undertow/util/HttpString;Ljava/lang/String;Lio/undertow/util/HttpString;Lio/undertow/util/HeaderMap;Lio/undertow/util/Attachable;Lorg/xnio/ChannelListener;)Lio/undertow/protocols/ajp/AjpClientRequestClientStreamSinkChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=8, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.sinkDone:Z
ifeq 1
aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.sourceDone:Z
ifne 2
1: StackMap locals:
StackMap stack:
getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.ajpRequestAlreadyInProgress:()Ljava/lang/IllegalStateException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield io.undertow.protocols.ajp.AjpClientChannel.sinkDone:Z
3: aload 0
iconst_0
putfield io.undertow.protocols.ajp.AjpClientChannel.sourceDone:Z
4: new io.undertow.protocols.ajp.AjpClientRequestClientStreamSinkChannel
dup
aload 0
aload 6
aload 4
aload 2
aload 1
aload 3
aload 5
invokespecial io.undertow.protocols.ajp.AjpClientRequestClientStreamSinkChannel.<init>:(Lio/undertow/protocols/ajp/AjpClientChannel;Lorg/xnio/ChannelListener;Lio/undertow/util/HeaderMap;Ljava/lang/String;Lio/undertow/util/HttpString;Lio/undertow/util/HttpString;Lio/undertow/util/Attachable;)V
astore 7
start local 7 5: aload 0
aload 7
putfield io.undertow.protocols.ajp.AjpClientChannel.sink:Lio/undertow/protocols/ajp/AjpClientRequestClientStreamSinkChannel;
6: aload 0
aconst_null
putfield io.undertow.protocols.ajp.AjpClientChannel.source:Lio/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel;
7: aload 7
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/undertow/protocols/ajp/AjpClientChannel;
0 8 1 method Lio/undertow/util/HttpString;
0 8 2 path Ljava/lang/String;
0 8 3 protocol Lio/undertow/util/HttpString;
0 8 4 headers Lio/undertow/util/HeaderMap;
0 8 5 attachable Lio/undertow/util/Attachable;
0 8 6 finishListener Lorg/xnio/ChannelListener<Lio/undertow/protocols/ajp/AjpClientRequestClientStreamSinkChannel;>;
5 8 7 ajpClientRequestStreamSinkChannel Lio/undertow/protocols/ajp/AjpClientRequestClientStreamSinkChannel;
Signature: (Lio/undertow/util/HttpString;Ljava/lang/String;Lio/undertow/util/HttpString;Lio/undertow/util/HeaderMap;Lio/undertow/util/Attachable;Lorg/xnio/ChannelListener<Lio/undertow/protocols/ajp/AjpClientRequestClientStreamSinkChannel;>;)Lio/undertow/protocols/ajp/AjpClientRequestClientStreamSinkChannel;
MethodParameters:
Name Flags
method final
path final
protocol final
headers final
attachable final
finishListener
protected boolean isLastFrameReceived();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.lastFrameReceived:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ajp/AjpClientChannel;
protected boolean isLastFrameSent();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.lastFrameSent:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ajp/AjpClientChannel;
protected void lastDataRead();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.lastFrameSent:Z
ifne 3
1: aload 0
new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
invokevirtual io.undertow.protocols.ajp.AjpClientChannel.markReadsBroken:(Ljava/lang/Throwable;)V
2: aload 0
new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
invokevirtual io.undertow.protocols.ajp.AjpClientChannel.markWritesBroken:(Ljava/lang/Throwable;)V
3: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield io.undertow.protocols.ajp.AjpClientChannel.lastFrameReceived:Z
4: aload 0
iconst_1
putfield io.undertow.protocols.ajp.AjpClientChannel.lastFrameSent:Z
5: aload 0
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/undertow/protocols/ajp/AjpClientChannel;
protected void handleBrokenSourceChannel(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ajp/AjpClientChannel;
0 1 1 e Ljava/lang/Throwable;
MethodParameters:
Name Flags
e
protected void handleBrokenSinkChannel(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ajp/AjpClientChannel;
0 1 1 e Ljava/lang/Throwable;
MethodParameters:
Name Flags
e
protected void closeSubChannels();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=1, args_size=1
start local 0 0: iconst_2
anewarray java.io.Closeable
dup
iconst_0
1: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.source:Lio/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel;
aastore
dup
iconst_1
aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.sink:Lio/undertow/protocols/ajp/AjpClientRequestClientStreamSinkChannel;
aastore
invokestatic org.xnio.IoUtils.safeClose:([Ljava/io/Closeable;)V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/protocols/ajp/AjpClientChannel;
protected java.util.Collection<io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel<io.undertow.protocols.ajp.AjpClientChannel, io.undertow.protocols.ajp.AbstractAjpClientStreamSourceChannel, io.undertow.protocols.ajp.AbstractAjpClientStreamSinkChannel>> getReceivers();
descriptor: ()Ljava/util/Collection;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.source:Lio/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel;
ifnonnull 2
1: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.source:Lio/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel;
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/protocols/ajp/AjpClientChannel;
Signature: ()Ljava/util/Collection<Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel<Lio/undertow/protocols/ajp/AjpClientChannel;Lio/undertow/protocols/ajp/AbstractAjpClientStreamSourceChannel;Lio/undertow/protocols/ajp/AbstractAjpClientStreamSinkChannel;>;>;
protected org.xnio.OptionMap getSettings();
descriptor: ()Lorg/xnio/OptionMap;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel.getSettings:()Lorg/xnio/OptionMap;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ajp/AjpClientChannel;
void sinkDone();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield io.undertow.protocols.ajp.AjpClientChannel.sinkDone:Z
1: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.sourceDone:Z
ifeq 4
2: aload 0
aconst_null
putfield io.undertow.protocols.ajp.AjpClientChannel.sink:Lio/undertow/protocols/ajp/AjpClientRequestClientStreamSinkChannel;
3: aload 0
aconst_null
putfield io.undertow.protocols.ajp.AjpClientChannel.source:Lio/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel;
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/undertow/protocols/ajp/AjpClientChannel;
void sourceDone();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield io.undertow.protocols.ajp.AjpClientChannel.sourceDone:Z
1: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.sinkDone:Z
ifeq 5
2: aload 0
aconst_null
putfield io.undertow.protocols.ajp.AjpClientChannel.sink:Lio/undertow/protocols/ajp/AjpClientRequestClientStreamSinkChannel;
3: aload 0
aconst_null
putfield io.undertow.protocols.ajp.AjpClientChannel.source:Lio/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel;
4: goto 6
5: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.sink:Lio/undertow/protocols/ajp/AjpClientRequestClientStreamSinkChannel;
invokevirtual io.undertow.protocols.ajp.AjpClientRequestClientStreamSinkChannel.startDiscard:()V
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/undertow/protocols/ajp/AjpClientChannel;
public boolean isOpen();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel.isOpen:()Z
ifeq 1
aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.lastFrameSent:Z
ifne 1
aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.lastFrameReceived:Z
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/protocols/ajp/AjpClientChannel;
protected synchronized void recalculateHeldFrames();
descriptor: ()V
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel.recalculateHeldFrames:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/protocols/ajp/AjpClientChannel;
Exceptions:
throws java.io.IOException
public void sendPing(io.undertow.client.ClientConnection$PingListener, long, java.util.concurrent.TimeUnit);
descriptor: (Lio/undertow/client/ClientConnection$PingListener;JLjava/util/concurrent/TimeUnit;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 4 0: new io.undertow.protocols.ajp.AjpClientCPingStreamSinkChannel
dup
aload 0
invokespecial io.undertow.protocols.ajp.AjpClientCPingStreamSinkChannel.<init>:(Lio/undertow/protocols/ajp/AjpClientChannel;)V
astore 5
start local 5 1: aload 5
invokevirtual io.undertow.protocols.ajp.AjpClientCPingStreamSinkChannel.shutdownWrites:()V
2: aload 5
invokevirtual io.undertow.protocols.ajp.AjpClientCPingStreamSinkChannel.flush:()Z
ifne 9
3: aload 5
invokevirtual io.undertow.protocols.ajp.AjpClientCPingStreamSinkChannel.getWriteSetter:()Lorg/xnio/ChannelListener$Setter;
aconst_null
new io.undertow.protocols.ajp.AjpClientChannel$1
dup
aload 0
aload 1
invokespecial io.undertow.protocols.ajp.AjpClientChannel$1.<init>:(Lio/undertow/protocols/ajp/AjpClientChannel;Lio/undertow/client/ClientConnection$PingListener;)V
invokestatic org.xnio.ChannelListeners.flushingChannelListener:(Lorg/xnio/ChannelListener;Lorg/xnio/ChannelExceptionHandler;)Lorg/xnio/ChannelListener;
invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
4: aload 5
invokevirtual io.undertow.protocols.ajp.AjpClientCPingStreamSinkChannel.resumeWrites:()V
5: goto 9
StackMap locals: io.undertow.protocols.ajp.AjpClientChannel io.undertow.client.ClientConnection$PingListener long java.util.concurrent.TimeUnit io.undertow.protocols.ajp.AjpClientCPingStreamSinkChannel
StackMap stack: java.io.IOException
6: astore 6
start local 6 7: aload 1
aload 6
invokeinterface io.undertow.client.ClientConnection$PingListener.failed:(Ljava/io/IOException;)V
8: return
end local 6 9: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.pingListeners:Ljava/util/List;
dup
astore 6
monitorenter
10: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.pingListeners:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
11: aload 6
monitorexit
12: goto 15
StackMap locals: io.undertow.protocols.ajp.AjpClientChannel io.undertow.client.ClientConnection$PingListener long java.util.concurrent.TimeUnit io.undertow.protocols.ajp.AjpClientCPingStreamSinkChannel java.util.List
StackMap stack: java.lang.Throwable
13: aload 6
monitorexit
14: athrow
15: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.undertow.protocols.ajp.AjpClientChannel.getIoThread:()Lorg/xnio/XnioIoThread;
aload 0
aload 1
invokedynamic run(Lio/undertow/protocols/ajp/AjpClientChannel;Lio/undertow/client/ClientConnection$PingListener;)Ljava/lang/Runnable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()V
io/undertow/protocols/ajp/AjpClientChannel.lambda$0(Lio/undertow/client/ClientConnection$PingListener;)V (7)
()V
16: lload 2
aload 4
17: invokevirtual org.xnio.XnioIoThread.executeAfter:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lorg/xnio/XnioExecutor$Key;
pop
18: return
end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lio/undertow/protocols/ajp/AjpClientChannel;
0 19 1 pingListener Lio/undertow/client/ClientConnection$PingListener;
0 19 2 timeout J
0 19 4 timeUnit Ljava/util/concurrent/TimeUnit;
1 19 5 pingChannel Lio/undertow/protocols/ajp/AjpClientCPingStreamSinkChannel;
7 9 6 e Ljava/io/IOException;
Exception table:
from to target type
1 5 6 Class java.io.IOException
10 12 13 any
13 14 13 any
MethodParameters:
Name Flags
pingListener
timeout
timeUnit
protected io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel (io.undertow.server.protocol.framed.FrameHeaderData, io.undertow.connector.PooledByteBuffer);
descriptor: (Lio/undertow/server/protocol/framed/FrameHeaderData;Lio/undertow/connector/PooledByteBuffer;)Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
aload 2
invokevirtual io.undertow.protocols.ajp.AjpClientChannel.createChannel:(Lio/undertow/server/protocol/framed/FrameHeaderData;Lio/undertow/connector/PooledByteBuffer;)Lio/undertow/protocols/ajp/AbstractAjpClientStreamSourceChannel;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
private void lambda$0(io.undertow.client.ClientConnection$PingListener);
descriptor: (Lio/undertow/client/ClientConnection$PingListener;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=3, args_size=2
start local 0 0: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.pingListeners:Ljava/util/List;
dup
astore 2
monitorenter
1: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.pingListeners:Ljava/util/List;
aload 1
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifeq 4
2: aload 0
getfield io.undertow.protocols.ajp.AjpClientChannel.pingListeners:Ljava/util/List;
aload 1
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
3: aload 1
getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.pingTimeout:()Ljava/io/IOException;
invokeinterface io.undertow.client.ClientConnection$PingListener.failed:(Ljava/io/IOException;)V
4: StackMap locals: java.util.List
StackMap stack:
aload 2
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 2
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/undertow/protocols/ajp/AjpClientChannel;
Exception table:
from to target type
1 5 6 any
6 7 6 any
}
Signature: Lio/undertow/server/protocol/framed/AbstractFramedChannel<Lio/undertow/protocols/ajp/AjpClientChannel;Lio/undertow/protocols/ajp/AbstractAjpClientStreamSourceChannel;Lio/undertow/protocols/ajp/AbstractAjpClientStreamSinkChannel;>;
SourceFile: "AjpClientChannel.java"
NestMembers:
io.undertow.protocols.ajp.AjpClientChannel$1 io.undertow.protocols.ajp.AjpClientChannel$CpongResponse io.undertow.protocols.ajp.AjpClientChannel$EndResponse io.undertow.protocols.ajp.AjpClientChannel$RequestBodyChunk io.undertow.protocols.ajp.AjpClientChannel$SendBodyChunk io.undertow.protocols.ajp.AjpClientChannel$SendHeadersResponse
InnerClasses:
public abstract PingListener = io.undertow.client.ClientConnection$PingListener of io.undertow.client.ClientConnection
io.undertow.protocols.ajp.AjpClientChannel$1
CpongResponse = io.undertow.protocols.ajp.AjpClientChannel$CpongResponse of io.undertow.protocols.ajp.AjpClientChannel
EndResponse = io.undertow.protocols.ajp.AjpClientChannel$EndResponse of io.undertow.protocols.ajp.AjpClientChannel
RequestBodyChunk = io.undertow.protocols.ajp.AjpClientChannel$RequestBodyChunk of io.undertow.protocols.ajp.AjpClientChannel
SendBodyChunk = io.undertow.protocols.ajp.AjpClientChannel$SendBodyChunk of io.undertow.protocols.ajp.AjpClientChannel
SendHeadersResponse = io.undertow.protocols.ajp.AjpClientChannel$SendHeadersResponse of io.undertow.protocols.ajp.AjpClientChannel
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Setter = org.xnio.ChannelListener$Setter of org.xnio.ChannelListener
public abstract Key = org.xnio.XnioExecutor$Key of org.xnio.XnioExecutor