public class org.apache.coyote.ajp.AjpProcessor extends org.apache.coyote.AbstractProcessor
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.coyote.ajp.AjpProcessor
super_class: org.apache.coyote.AbstractProcessor
{
private static final org.apache.juli.logging.Log log;
descriptor: Lorg/apache/juli/logging/Log;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.apache.tomcat.util.res.StringManager sm;
descriptor: Lorg/apache/tomcat/util/res/StringManager;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] endMessageArray;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] endAndCloseMessageArray;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] flushMessageArray;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] pongMessageArray;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.Map<java.lang.String, java.lang.String> jakartaAttributeMapping;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
private static final java.util.Set<java.lang.String> iisTlsAttributes;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
private final org.apache.coyote.ajp.AbstractAjpProtocol<?> protocol;
descriptor: Lorg/apache/coyote/ajp/AbstractAjpProtocol;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/apache/coyote/ajp/AbstractAjpProtocol<*>;
private final byte[] getBodyMessageArray;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int outputMaxChunkSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.coyote.ajp.AjpMessage ;
descriptor: Lorg/apache/coyote/ajp/AjpMessage;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.coyote.ajp.AjpMessage responseMessage;
descriptor: Lorg/apache/coyote/ajp/AjpMessage;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int responseMsgPos;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final org.apache.coyote.ajp.AjpMessage bodyMessage;
descriptor: Lorg/apache/coyote/ajp/AjpMessage;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.tomcat.util.buf.MessageBytes bodyBytes;
descriptor: Lorg/apache/tomcat/util/buf/MessageBytes;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.tomcat.util.buf.MessageBytes tmpMB;
descriptor: Lorg/apache/tomcat/util/buf/MessageBytes;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.tomcat.util.buf.MessageBytes certificates;
descriptor: Lorg/apache/tomcat/util/buf/MessageBytes;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean endOfStream;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean empty;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean first;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean waitingForBodyMessage;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean replay;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean swallowResponse;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean responseFinished;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private long bytesWritten;
descriptor: J
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=6, args_size=0
0: ldc Lorg/apache/coyote/ajp/AjpProcessor;
invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
putstatic org.apache.coyote.ajp.AjpProcessor.log:Lorg/apache/juli/logging/Log;
1: ldc Lorg/apache/coyote/ajp/AjpProcessor;
invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/Class;)Lorg/apache/tomcat/util/res/StringManager;
putstatic org.apache.coyote.ajp.AjpProcessor.sm:Lorg/apache/tomcat/util/res/StringManager;
2: new org.apache.coyote.ajp.AjpMessage
dup
bipush 16
invokespecial org.apache.coyote.ajp.AjpMessage.<init>:(I)V
astore 0
start local 0 3: aload 0
invokevirtual org.apache.coyote.ajp.AjpMessage.reset:()V
4: aload 0
iconst_5
invokevirtual org.apache.coyote.ajp.AjpMessage.appendByte:(I)V
5: aload 0
iconst_1
invokevirtual org.apache.coyote.ajp.AjpMessage.appendByte:(I)V
6: aload 0
invokevirtual org.apache.coyote.ajp.AjpMessage.end:()V
7: aload 0
invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
newarray 8
putstatic org.apache.coyote.ajp.AjpProcessor.endMessageArray:[B
8: aload 0
invokevirtual org.apache.coyote.ajp.AjpMessage.getBuffer:()[B
iconst_0
getstatic org.apache.coyote.ajp.AjpProcessor.endMessageArray:[B
iconst_0
9: aload 0
invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
10: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
11: new org.apache.coyote.ajp.AjpMessage
dup
bipush 16
invokespecial org.apache.coyote.ajp.AjpMessage.<init>:(I)V
astore 1
start local 1 12: aload 1
invokevirtual org.apache.coyote.ajp.AjpMessage.reset:()V
13: aload 1
iconst_5
invokevirtual org.apache.coyote.ajp.AjpMessage.appendByte:(I)V
14: aload 1
iconst_0
invokevirtual org.apache.coyote.ajp.AjpMessage.appendByte:(I)V
15: aload 1
invokevirtual org.apache.coyote.ajp.AjpMessage.end:()V
16: aload 1
invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
newarray 8
putstatic org.apache.coyote.ajp.AjpProcessor.endAndCloseMessageArray:[B
17: aload 1
invokevirtual org.apache.coyote.ajp.AjpMessage.getBuffer:()[B
iconst_0
getstatic org.apache.coyote.ajp.AjpProcessor.endAndCloseMessageArray:[B
iconst_0
18: aload 1
invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
19: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
20: new org.apache.coyote.ajp.AjpMessage
dup
bipush 16
invokespecial org.apache.coyote.ajp.AjpMessage.<init>:(I)V
astore 2
start local 2 21: aload 2
invokevirtual org.apache.coyote.ajp.AjpMessage.reset:()V
22: aload 2
iconst_3
invokevirtual org.apache.coyote.ajp.AjpMessage.appendByte:(I)V
23: aload 2
iconst_0
invokevirtual org.apache.coyote.ajp.AjpMessage.appendInt:(I)V
24: aload 2
iconst_0
invokevirtual org.apache.coyote.ajp.AjpMessage.appendByte:(I)V
25: aload 2
invokevirtual org.apache.coyote.ajp.AjpMessage.end:()V
26: aload 2
invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
newarray 8
putstatic org.apache.coyote.ajp.AjpProcessor.flushMessageArray:[B
27: aload 2
invokevirtual org.apache.coyote.ajp.AjpMessage.getBuffer:()[B
iconst_0
getstatic org.apache.coyote.ajp.AjpProcessor.flushMessageArray:[B
iconst_0
28: aload 2
invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
29: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
30: new org.apache.coyote.ajp.AjpMessage
dup
bipush 16
invokespecial org.apache.coyote.ajp.AjpMessage.<init>:(I)V
astore 3
start local 3 31: aload 3
invokevirtual org.apache.coyote.ajp.AjpMessage.reset:()V
32: aload 3
bipush 9
invokevirtual org.apache.coyote.ajp.AjpMessage.appendByte:(I)V
33: aload 3
invokevirtual org.apache.coyote.ajp.AjpMessage.end:()V
34: aload 3
invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
newarray 8
putstatic org.apache.coyote.ajp.AjpProcessor.pongMessageArray:[B
35: aload 3
invokevirtual org.apache.coyote.ajp.AjpMessage.getBuffer:()[B
iconst_0
getstatic org.apache.coyote.ajp.AjpProcessor.pongMessageArray:[B
36: iconst_0
aload 3
invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
37: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
38: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 4
start local 4 39: aload 4
ldc "jakarta.servlet.request.cipher_suite"
ldc "jakarta.servlet.request.cipher_suite"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
40: aload 4
ldc "jakarta.servlet.request.key_size"
ldc "jakarta.servlet.request.key_size"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
41: aload 4
ldc "jakarta.servlet.request.ssl_session"
ldc "jakarta.servlet.request.ssl_session"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
42: aload 4
ldc "jakarta.servlet.request.X509Certificate"
ldc "jakarta.servlet.request.X509Certificate"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
43: aload 4
ldc "javax.servlet.request.cipher_suite"
ldc "jakarta.servlet.request.cipher_suite"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
44: aload 4
ldc "javax.servlet.request.key_size"
ldc "jakarta.servlet.request.key_size"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
45: aload 4
ldc "javax.servlet.request.ssl_session"
ldc "jakarta.servlet.request.ssl_session"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
46: aload 4
ldc "javax.servlet.request.X509Certificate"
ldc "jakarta.servlet.request.X509Certificate"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
47: aload 4
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
putstatic org.apache.coyote.ajp.AjpProcessor.jakartaAttributeMapping:Ljava/util/Map;
48: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 5
start local 5 49: aload 5
ldc "CERT_ISSUER"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
50: aload 5
ldc "CERT_SUBJECT"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
51: aload 5
ldc "CERT_COOKIE"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
52: aload 5
ldc "HTTPS_SERVER_SUBJECT"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
53: aload 5
ldc "CERT_FLAGS"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
54: aload 5
ldc "HTTPS_SECRETKEYSIZE"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
55: aload 5
ldc "CERT_SERIALNUMBER"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
56: aload 5
ldc "HTTPS_SERVER_ISSUER"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
57: aload 5
ldc "HTTPS_KEYSIZE"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
58: aload 5
invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
putstatic org.apache.coyote.ajp.AjpProcessor.iisTlsAttributes:Ljava/util/Set;
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 59: return
LocalVariableTable:
Start End Slot Name Signature
3 59 0 endMessage Lorg/apache/coyote/ajp/AjpMessage;
12 59 1 endAndCloseMessage Lorg/apache/coyote/ajp/AjpMessage;
21 59 2 flushMessage Lorg/apache/coyote/ajp/AjpMessage;
31 59 3 pongMessage Lorg/apache/coyote/ajp/AjpMessage;
39 59 4 m Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
49 59 5 s Ljava/util/Set<Ljava/lang/String;>;
public void <init>(org.apache.coyote.ajp.AbstractAjpProtocol<?>, org.apache.coyote.Adapter);
descriptor: (Lorg/apache/coyote/ajp/AbstractAjpProtocol;Lorg/apache/coyote/Adapter;)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 2
invokespecial org.apache.coyote.AbstractProcessor.<init>:(Lorg/apache/coyote/Adapter;)V
1: aload 0
iconst_m1
putfield org.apache.coyote.ajp.AjpProcessor.responseMsgPos:I
2: aload 0
invokestatic org.apache.tomcat.util.buf.MessageBytes.newInstance:()Lorg/apache/tomcat/util/buf/MessageBytes;
putfield org.apache.coyote.ajp.AjpProcessor.bodyBytes:Lorg/apache/tomcat/util/buf/MessageBytes;
3: aload 0
invokestatic org.apache.tomcat.util.buf.MessageBytes.newInstance:()Lorg/apache/tomcat/util/buf/MessageBytes;
putfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
4: aload 0
invokestatic org.apache.tomcat.util.buf.MessageBytes.newInstance:()Lorg/apache/tomcat/util/buf/MessageBytes;
putfield org.apache.coyote.ajp.AjpProcessor.certificates:Lorg/apache/tomcat/util/buf/MessageBytes;
5: aload 0
iconst_0
putfield org.apache.coyote.ajp.AjpProcessor.endOfStream:Z
6: aload 0
iconst_1
putfield org.apache.coyote.ajp.AjpProcessor.empty:Z
7: aload 0
iconst_1
putfield org.apache.coyote.ajp.AjpProcessor.first:Z
8: aload 0
iconst_0
putfield org.apache.coyote.ajp.AjpProcessor.waitingForBodyMessage:Z
9: aload 0
iconst_0
putfield org.apache.coyote.ajp.AjpProcessor.replay:Z
10: aload 0
iconst_0
putfield org.apache.coyote.ajp.AjpProcessor.swallowResponse:Z
11: aload 0
iconst_0
putfield org.apache.coyote.ajp.AjpProcessor.responseFinished:Z
12: aload 0
lconst_0
putfield org.apache.coyote.ajp.AjpProcessor.bytesWritten:J
13: aload 0
aload 1
putfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
14: aload 1
invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getPacketSize:()I
istore 3
start local 3 15: aload 0
iload 3
bipush 8
isub
putfield org.apache.coyote.ajp.AjpProcessor.outputMaxChunkSize:I
16: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
new org.apache.coyote.ajp.AjpProcessor$SocketInputBuffer
dup
aload 0
invokespecial org.apache.coyote.ajp.AjpProcessor$SocketInputBuffer.<init>:(Lorg/apache/coyote/ajp/AjpProcessor;)V
invokevirtual org.apache.coyote.Request.setInputBuffer:(Lorg/apache/coyote/InputBuffer;)V
17: aload 0
new org.apache.coyote.ajp.AjpMessage
dup
iload 3
invokespecial org.apache.coyote.ajp.AjpMessage.<init>:(I)V
putfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
18: aload 0
new org.apache.coyote.ajp.AjpMessage
dup
iload 3
invokespecial org.apache.coyote.ajp.AjpMessage.<init>:(I)V
putfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
19: aload 0
new org.apache.coyote.ajp.AjpMessage
dup
iload 3
invokespecial org.apache.coyote.ajp.AjpMessage.<init>:(I)V
putfield org.apache.coyote.ajp.AjpProcessor.bodyMessage:Lorg/apache/coyote/ajp/AjpMessage;
20: new org.apache.coyote.ajp.AjpMessage
dup
bipush 16
invokespecial org.apache.coyote.ajp.AjpMessage.<init>:(I)V
astore 4
start local 4 21: aload 4
invokevirtual org.apache.coyote.ajp.AjpMessage.reset:()V
22: aload 4
bipush 6
invokevirtual org.apache.coyote.ajp.AjpMessage.appendByte:(I)V
23: aload 4
sipush 8186
iload 3
iadd
24: sipush 8192
isub
25: invokevirtual org.apache.coyote.ajp.AjpMessage.appendInt:(I)V
26: aload 4
invokevirtual org.apache.coyote.ajp.AjpMessage.end:()V
27: aload 0
aload 4
invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
newarray 8
putfield org.apache.coyote.ajp.AjpProcessor.getBodyMessageArray:[B
28: aload 4
invokevirtual org.apache.coyote.ajp.AjpMessage.getBuffer:()[B
iconst_0
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.getBodyMessageArray:[B
29: iconst_0
aload 4
invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
30: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
31: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
new org.apache.coyote.ajp.AjpProcessor$SocketOutputBuffer
dup
aload 0
invokespecial org.apache.coyote.ajp.AjpProcessor$SocketOutputBuffer.<init>:(Lorg/apache/coyote/ajp/AjpProcessor;)V
invokevirtual org.apache.coyote.Response.setOutputBuffer:(Lorg/apache/coyote/OutputBuffer;)V
32: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lorg/apache/coyote/ajp/AjpProcessor;
0 33 1 protocol Lorg/apache/coyote/ajp/AbstractAjpProtocol<*>;
0 33 2 adapter Lorg/apache/coyote/Adapter;
15 33 3 packetSize I
21 33 4 getBodyMessage Lorg/apache/coyote/ajp/AjpMessage;
Signature: (Lorg/apache/coyote/ajp/AbstractAjpProtocol<*>;Lorg/apache/coyote/Adapter;)V
MethodParameters:
Name Flags
protocol
adapter
protected boolean flushBufferedWrite();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.hasDataToWrite:()Z
ifeq 5
1: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
iconst_0
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.flush:(Z)Z
pop
2: aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.hasDataToWrite:()Z
ifeq 5
3: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.checkRegisterForWrite:()Z
pop
4: iconst_1
ireturn
5: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/coyote/ajp/AjpProcessor;
Exceptions:
throws java.io.IOException
protected void dispatchNonBlockingRead();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual org.apache.coyote.ajp.AjpProcessor.available:(Z)I
ifle 2
1: aload 0
invokespecial org.apache.coyote.AbstractProcessor.dispatchNonBlockingRead:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/coyote/ajp/AjpProcessor;
protected org.apache.tomcat.util.net.AbstractEndpoint$Handler$SocketState dispatchEndRequest();
descriptor: ()Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getKeepAliveTimeout:()I
i2l
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.setReadTimeout:(J)V
1: aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.recycle:()V
2: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.isPaused:()Z
ifeq 4
3: getstatic org.apache.tomcat.util.net.AbstractEndpoint$Handler$SocketState.CLOSED:Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;
areturn
4: StackMap locals:
StackMap stack:
getstatic org.apache.tomcat.util.net.AbstractEndpoint$Handler$SocketState.OPEN:Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/coyote/ajp/AjpProcessor;
Signature: ()Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;
public org.apache.tomcat.util.net.AbstractEndpoint$Handler$SocketState service(org.apache.tomcat.util.net.SocketWrapperBase<?>);
descriptor: (Lorg/apache/tomcat/util/net/SocketWrapperBase;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.getRequestProcessor:()Lorg/apache/coyote/RequestInfo;
astore 2
start local 2 1: aload 2
iconst_1
invokevirtual org.apache.coyote.RequestInfo.setStage:(I)V
2: aload 0
aload 1
putfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
3: iconst_0
istore 3
start local 3 4: iconst_1
istore 4
start local 4 5: goto 84
6: StackMap locals: org.apache.coyote.RequestInfo int int
StackMap stack:
aload 0
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
iload 4
invokevirtual org.apache.coyote.ajp.AjpProcessor.readMessage:(Lorg/apache/coyote/ajp/AjpMessage;Z)Z
ifne 8
7: goto 85
8: StackMap locals:
StackMap stack:
iconst_0
istore 4
9: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getConnectionTimeout:()I
i2l
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.setReadTimeout:(J)V
10: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
invokevirtual org.apache.coyote.ajp.AjpMessage.getByte:()B
istore 5
start local 5 11: iload 5
bipush 10
if_icmpne 25
12: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.isPaused:()Z
ifeq 15
13: aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.recycle:()V
14: goto 85
15: StackMap locals: int
StackMap stack:
iconst_1
istore 3
16: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
iconst_1
getstatic org.apache.coyote.ajp.AjpProcessor.pongMessageArray:[B
iconst_0
getstatic org.apache.coyote.ajp.AjpProcessor.pongMessageArray:[B
arraylength
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.write:(Z[BII)V
17: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
iconst_1
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.flush:(Z)Z
pop
18: goto 23
StackMap locals:
StackMap stack: java.io.IOException
19: astore 6
start local 6 20: aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.getLog:()Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 22
21: aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.getLog:()Lorg/apache/juli/logging/Log;
ldc "Pong message failed"
aload 6
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
22: StackMap locals: java.io.IOException
StackMap stack:
aload 0
getstatic org.apache.coyote.ErrorState.CLOSE_CONNECTION_NOW:Lorg/apache/coyote/ErrorState;
aload 6
invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
end local 6 23: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.recycle:()V
24: goto 84
25: StackMap locals:
StackMap stack:
iload 5
iconst_2
if_icmpeq 30
26: aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.getLog:()Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 28
27: aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.getLog:()Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc "Unexpected message: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
28: StackMap locals:
StackMap stack:
aload 0
getstatic org.apache.coyote.ErrorState.CLOSE_CONNECTION_NOW:Lorg/apache/coyote/ErrorState;
aconst_null
invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
29: goto 85
30: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokestatic java.lang.System.nanoTime:()J
invokevirtual org.apache.coyote.Request.setStartTimeNanos:(J)V
end local 5 31: goto 40
StackMap locals: org.apache.coyote.ajp.AjpProcessor org.apache.tomcat.util.net.SocketWrapperBase org.apache.coyote.RequestInfo int int
StackMap stack: java.io.IOException
32: astore 5
start local 5 33: aload 0
getstatic org.apache.coyote.ErrorState.CLOSE_CONNECTION_NOW:Lorg/apache/coyote/ErrorState;
aload 5
invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
34: goto 85
end local 5 35: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
start local 5 36: aload 5
invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
37: aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.getLog:()Lorg/apache/juli/logging/Log;
getstatic org.apache.coyote.ajp.AjpProcessor.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "ajpprocessor.header.error"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
aload 5
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
38: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
sipush 400
invokevirtual org.apache.coyote.Response.setStatus:(I)V
39: aload 0
getstatic org.apache.coyote.ErrorState.CLOSE_CLEAN:Lorg/apache/coyote/ErrorState;
aload 5
invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
end local 5 40: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.getErrorState:()Lorg/apache/coyote/ErrorState;
invokevirtual org.apache.coyote.ErrorState.isIoAllowed:()Z
ifeq 49
41: aload 2
iconst_2
invokevirtual org.apache.coyote.RequestInfo.setStage:(I)V
42: aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.prepareRequest:()V
43: goto 49
StackMap locals:
StackMap stack: java.lang.Throwable
44: astore 5
start local 5 45: aload 5
invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
46: aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.getLog:()Lorg/apache/juli/logging/Log;
getstatic org.apache.coyote.ajp.AjpProcessor.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "ajpprocessor.request.prepare"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
aload 5
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
47: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
sipush 500
invokevirtual org.apache.coyote.Response.setStatus:(I)V
48: aload 0
getstatic org.apache.coyote.ErrorState.CLOSE_CLEAN:Lorg/apache/coyote/ErrorState;
aload 5
invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
end local 5 49: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.getErrorState:()Lorg/apache/coyote/ErrorState;
invokevirtual org.apache.coyote.ErrorState.isIoAllowed:()Z
ifeq 52
iload 3
ifne 52
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.isPaused:()Z
ifeq 52
50: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
sipush 503
invokevirtual org.apache.coyote.Response.setStatus:(I)V
51: aload 0
getstatic org.apache.coyote.ErrorState.CLOSE_CLEAN:Lorg/apache/coyote/ErrorState;
aconst_null
invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
52: StackMap locals:
StackMap stack:
iconst_0
istore 3
53: aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.getErrorState:()Lorg/apache/coyote/ErrorState;
invokevirtual org.apache.coyote.ErrorState.isIoAllowed:()Z
ifeq 66
54: aload 2
iconst_3
invokevirtual org.apache.coyote.RequestInfo.setStage:(I)V
55: aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.getAdapter:()Lorg/apache/coyote/Adapter;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
invokeinterface org.apache.coyote.Adapter.service:(Lorg/apache/coyote/Request;Lorg/apache/coyote/Response;)V
56: goto 66
StackMap locals:
StackMap stack: java.io.InterruptedIOException
57: astore 5
start local 5 58: aload 0
getstatic org.apache.coyote.ErrorState.CLOSE_CONNECTION_NOW:Lorg/apache/coyote/ErrorState;
aload 5
invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
end local 5 59: goto 66
60: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
start local 5 61: aload 5
invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
62: aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.getLog:()Lorg/apache/juli/logging/Log;
getstatic org.apache.coyote.ajp.AjpProcessor.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "ajpprocessor.request.process"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
aload 5
invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
63: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
sipush 500
invokevirtual org.apache.coyote.Response.setStatus:(I)V
64: aload 0
getstatic org.apache.coyote.ErrorState.CLOSE_CLEAN:Lorg/apache/coyote/ErrorState;
aload 5
invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
65: aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.getAdapter:()Lorg/apache/coyote/Adapter;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
lconst_0
invokeinterface org.apache.coyote.Adapter.log:(Lorg/apache/coyote/Request;Lorg/apache/coyote/Response;J)V
end local 5 66: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.isAsync:()Z
ifeq 68
aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.getErrorState:()Lorg/apache/coyote/ErrorState;
invokevirtual org.apache.coyote.ErrorState.isError:()Z
ifne 68
67: goto 85
68: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.responseFinished:Z
ifne 78
aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.getErrorState:()Lorg/apache/coyote/ErrorState;
invokevirtual org.apache.coyote.ErrorState.isIoAllowed:()Z
ifeq 78
69: aload 0
getstatic org.apache.coyote.ActionCode.COMMIT:Lorg/apache/coyote/ActionCode;
aconst_null
invokevirtual org.apache.coyote.ajp.AjpProcessor.action:(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V
70: aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.finishResponse:()V
71: goto 78
StackMap locals:
StackMap stack: java.io.IOException
72: astore 5
start local 5 73: aload 0
getstatic org.apache.coyote.ErrorState.CLOSE_CONNECTION_NOW:Lorg/apache/coyote/ErrorState;
aload 5
invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
end local 5 74: goto 78
75: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
start local 5 76: aload 5
invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
77: aload 0
getstatic org.apache.coyote.ErrorState.CLOSE_NOW:Lorg/apache/coyote/ErrorState;
aload 5
invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
end local 5 78: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.getErrorState:()Lorg/apache/coyote/ErrorState;
invokevirtual org.apache.coyote.ErrorState.isError:()Z
ifeq 80
79: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
sipush 500
invokevirtual org.apache.coyote.Response.setStatus:(I)V
80: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.updateCounters:()V
81: aload 2
bipush 6
invokevirtual org.apache.coyote.RequestInfo.setStage:(I)V
82: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getKeepAliveTimeout:()I
i2l
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.setReadTimeout:(J)V
83: aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.recycle:()V
84: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.getErrorState:()Lorg/apache/coyote/ErrorState;
invokevirtual org.apache.coyote.ErrorState.isError:()Z
ifne 85
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.isPaused:()Z
ifeq 6
85: StackMap locals:
StackMap stack:
aload 2
bipush 7
invokevirtual org.apache.coyote.RequestInfo.setStage:(I)V
86: aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.getErrorState:()Lorg/apache/coyote/ErrorState;
invokevirtual org.apache.coyote.ErrorState.isError:()Z
ifne 87
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.isPaused:()Z
ifeq 88
87: StackMap locals:
StackMap stack:
getstatic org.apache.tomcat.util.net.AbstractEndpoint$Handler$SocketState.CLOSED:Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;
areturn
88: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.isAsync:()Z
ifeq 90
89: getstatic org.apache.tomcat.util.net.AbstractEndpoint$Handler$SocketState.LONG:Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;
areturn
90: StackMap locals:
StackMap stack:
getstatic org.apache.tomcat.util.net.AbstractEndpoint$Handler$SocketState.OPEN:Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 91 0 this Lorg/apache/coyote/ajp/AjpProcessor;
0 91 1 socket Lorg/apache/tomcat/util/net/SocketWrapperBase<*>;
1 91 2 rp Lorg/apache/coyote/RequestInfo;
4 91 3 cping Z
5 91 4 firstRead Z
11 31 5 type I
20 23 6 e Ljava/io/IOException;
33 35 5 e Ljava/io/IOException;
36 40 5 t Ljava/lang/Throwable;
45 49 5 t Ljava/lang/Throwable;
58 59 5 e Ljava/io/InterruptedIOException;
61 66 5 t Ljava/lang/Throwable;
73 74 5 ioe Ljava/io/IOException;
76 78 5 t Ljava/lang/Throwable;
Exception table:
from to target type
16 18 19 Class java.io.IOException
6 7 32 Class java.io.IOException
8 14 32 Class java.io.IOException
15 24 32 Class java.io.IOException
25 29 32 Class java.io.IOException
30 31 32 Class java.io.IOException
6 7 35 Class java.lang.Throwable
8 14 35 Class java.lang.Throwable
15 24 35 Class java.lang.Throwable
25 29 35 Class java.lang.Throwable
30 31 35 Class java.lang.Throwable
42 43 44 Class java.lang.Throwable
54 56 57 Class java.io.InterruptedIOException
54 56 60 Class java.lang.Throwable
69 71 72 Class java.io.IOException
69 71 75 Class java.lang.Throwable
Exceptions:
throws java.io.IOException
Signature: (Lorg/apache/tomcat/util/net/SocketWrapperBase<*>;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;
MethodParameters:
Name Flags
socket
public void recycle();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.getAdapter:()Lorg/apache/coyote/Adapter;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
invokeinterface org.apache.coyote.Adapter.checkRecycled:(Lorg/apache/coyote/Request;Lorg/apache/coyote/Response;)V
1: aload 0
invokespecial org.apache.coyote.AbstractProcessor.recycle:()V
2: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.recycle:()V
3: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.recycle:()V
4: aload 0
iconst_1
putfield org.apache.coyote.ajp.AjpProcessor.first:Z
5: aload 0
iconst_0
putfield org.apache.coyote.ajp.AjpProcessor.endOfStream:Z
6: aload 0
iconst_0
putfield org.apache.coyote.ajp.AjpProcessor.waitingForBodyMessage:Z
7: aload 0
iconst_1
putfield org.apache.coyote.ajp.AjpProcessor.empty:Z
8: aload 0
iconst_0
putfield org.apache.coyote.ajp.AjpProcessor.replay:Z
9: aload 0
iconst_0
putfield org.apache.coyote.ajp.AjpProcessor.responseFinished:Z
10: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.certificates:Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.tomcat.util.buf.MessageBytes.recycle:()V
11: aload 0
iconst_0
putfield org.apache.coyote.ajp.AjpProcessor.swallowResponse:Z
12: aload 0
lconst_0
putfield org.apache.coyote.ajp.AjpProcessor.bytesWritten:J
13: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/apache/coyote/ajp/AjpProcessor;
public void pause();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/coyote/ajp/AjpProcessor;
private boolean receive(boolean);
descriptor: (Z)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.bodyMessage:Lorg/apache/coyote/ajp/AjpMessage;
invokevirtual org.apache.coyote.ajp.AjpMessage.reset:()V
1: aload 0
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.bodyMessage:Lorg/apache/coyote/ajp/AjpMessage;
iload 1
invokevirtual org.apache.coyote.ajp.AjpProcessor.readMessage:(Lorg/apache/coyote/ajp/AjpMessage;Z)Z
ifne 3
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield org.apache.coyote.ajp.AjpProcessor.waitingForBodyMessage:Z
4: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.bodyMessage:Lorg/apache/coyote/ajp/AjpMessage;
invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
ifne 6
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.bodyMessage:Lorg/apache/coyote/ajp/AjpMessage;
invokevirtual org.apache.coyote.ajp.AjpMessage.peekInt:()I
istore 2
start local 2 7: iload 2
ifne 9
8: iconst_0
ireturn
9: StackMap locals: int
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.bodyMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.bodyBytes:Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBodyBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
10: aload 0
iconst_0
putfield org.apache.coyote.ajp.AjpProcessor.empty:Z
11: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/apache/coyote/ajp/AjpProcessor;
0 12 1 block Z
7 12 2 blen I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
block
private boolean readMessage(org.apache.coyote.ajp.AjpMessage, boolean);
descriptor: (Lorg/apache/coyote/ajp/AjpMessage;Z)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.apache.coyote.ajp.AjpMessage.getBuffer:()[B
astore 3
start local 3 1: aload 0
aload 3
iconst_0
iconst_4
iload 2
invokevirtual org.apache.coyote.ajp.AjpProcessor.read:([BIIZ)Z
ifne 3
2: iconst_0
ireturn
3: StackMap locals: byte[]
StackMap stack:
aload 1
iconst_1
invokevirtual org.apache.coyote.ajp.AjpMessage.processHeader:(Z)I
istore 4
start local 4 4: iload 4
ifge 8
5: new java.io.IOException
dup
getstatic org.apache.coyote.ajp.AjpProcessor.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "ajpmessage.invalidLength"
iconst_1
anewarray java.lang.Object
dup
iconst_0
6: iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
7: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: int
StackMap stack:
iload 4
ifne 10
9: iconst_1
ireturn
10: StackMap locals:
StackMap stack:
iload 4
aload 1
invokevirtual org.apache.coyote.ajp.AjpMessage.getBuffer:()[B
arraylength
if_icmple 16
11: getstatic org.apache.coyote.ajp.AjpProcessor.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "ajpprocessor.header.tooLong"
iconst_2
anewarray java.lang.Object
dup
iconst_0
12: iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 3
arraylength
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
13: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 5
start local 5 14: getstatic org.apache.coyote.ajp.AjpProcessor.log:Lorg/apache/juli/logging/Log;
aload 5
invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
15: new java.lang.IllegalArgumentException
dup
aload 5
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 5 16: StackMap locals:
StackMap stack:
aload 0
aload 3
iconst_4
iload 4
iconst_1
invokevirtual org.apache.coyote.ajp.AjpProcessor.read:([BIIZ)Z
pop
17: iconst_1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/apache/coyote/ajp/AjpProcessor;
0 18 1 message Lorg/apache/coyote/ajp/AjpMessage;
0 18 2 block Z
1 18 3 buf [B
4 18 4 messageLength I
14 16 5 msg Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
message
block
protected boolean refillReadBuffer(boolean);
descriptor: (Z)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.replay:Z
ifeq 2
1: aload 0
iconst_1
putfield org.apache.coyote.ajp.AjpProcessor.endOfStream:Z
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.endOfStream:Z
ifeq 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.first:Z
ifeq 13
5: aload 0
iconst_0
putfield org.apache.coyote.ajp.AjpProcessor.first:Z
6: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.getContentLengthLong:()J
lstore 2
start local 2 7: lload 2
lconst_0
lcmp
ifle 10
8: aload 0
iconst_1
putfield org.apache.coyote.ajp.AjpProcessor.waitingForBodyMessage:Z
9: goto 13
StackMap locals: long
StackMap stack:
10: lload 2
lconst_0
lcmp
ifne 13
11: aload 0
iconst_1
putfield org.apache.coyote.ajp.AjpProcessor.endOfStream:Z
12: iconst_0
ireturn
end local 2 13: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.waitingForBodyMessage:Z
ifne 17
14: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
iconst_1
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.getBodyMessageArray:[B
iconst_0
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.getBodyMessageArray:[B
arraylength
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.write:(Z[BII)V
15: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
iconst_1
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.flush:(Z)Z
pop
16: aload 0
iconst_1
putfield org.apache.coyote.ajp.AjpProcessor.waitingForBodyMessage:Z
17: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual org.apache.coyote.ajp.AjpProcessor.receive:(Z)Z
istore 2
start local 2 18: iload 2
ifne 20
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.waitingForBodyMessage:Z
ifne 20
19: aload 0
iconst_1
putfield org.apache.coyote.ajp.AjpProcessor.endOfStream:Z
20: StackMap locals: int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/apache/coyote/ajp/AjpProcessor;
0 21 1 block Z
7 13 2 contentLength J
18 21 2 moreData Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
block
private void prepareRequest();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=15, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
invokevirtual org.apache.coyote.ajp.AjpMessage.getByte:()B
istore 1
start local 1 1: iload 1
iconst_m1
if_icmpeq 4
2: iload 1
iconst_1
isub
invokestatic org.apache.coyote.ajp.Constants.getMethodForCode:(I)Ljava/lang/String;
astore 2
start local 2 3: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.method:()Lorg/apache/tomcat/util/buf/MessageBytes;
aload 2
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
end local 2 4: StackMap locals: int
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.protocol:()Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
5: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.requestURI:()Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
6: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.remoteAddr:()Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
7: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.remoteHost:()Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
8: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.localName:()Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
9: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
invokevirtual org.apache.coyote.ajp.AjpMessage.getInt:()I
invokevirtual org.apache.coyote.Request.setLocalPort:(I)V
10: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
invokevirtual org.apache.coyote.ajp.AjpMessage.getByte:()B
ifeq 11
iconst_1
goto 12
StackMap locals:
StackMap stack:
11: iconst_0
StackMap locals:
StackMap stack: int
12: istore 2
start local 2 13: iload 2
ifeq 15
14: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.scheme:()Lorg/apache/tomcat/util/buf/MessageBytes;
ldc "https"
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
15: StackMap locals: int
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.getMimeHeaders:()Lorg/apache/tomcat/util/http/MimeHeaders;
astore 3
start local 3 16: aload 3
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getMaxHeaderCount:()I
invokevirtual org.apache.tomcat.util.http.MimeHeaders.setLimit:(I)V
17: iconst_0
istore 4
start local 4 18: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
invokevirtual org.apache.coyote.ajp.AjpMessage.getInt:()I
istore 5
start local 5 19: iconst_0
istore 6
start local 6 20: goto 56
21: StackMap locals: org.apache.coyote.ajp.AjpProcessor int int org.apache.tomcat.util.http.MimeHeaders int int int
StackMap stack:
aconst_null
astore 7
start local 7 22: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
invokevirtual org.apache.coyote.ajp.AjpMessage.peekInt:()I
istore 8
start local 8 23: iload 8
sipush 255
iand
istore 9
start local 9 24: aconst_null
astore 10
start local 10 25: iload 8
ldc 65280
iand
istore 8
26: ldc 40960
iload 8
if_icmpne 31
27: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
invokevirtual org.apache.coyote.ajp.AjpMessage.getInt:()I
pop
28: iload 9
iconst_1
isub
invokestatic org.apache.coyote.ajp.Constants.getHeaderForCode:(I)Ljava/lang/String;
astore 7
29: aload 3
aload 7
invokevirtual org.apache.tomcat.util.http.MimeHeaders.addValue:(Ljava/lang/String;)Lorg/apache/tomcat/util/buf/MessageBytes;
astore 10
30: goto 37
31: StackMap locals: org.apache.coyote.ajp.AjpProcessor int int org.apache.tomcat.util.http.MimeHeaders int int int java.lang.String int int org.apache.tomcat.util.buf.MessageBytes
StackMap stack:
iconst_m1
istore 9
32: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
33: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.tomcat.util.buf.MessageBytes.getByteChunk:()Lorg/apache/tomcat/util/buf/ByteChunk;
astore 11
start local 11 34: aload 3
aload 11
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getBuffer:()[B
35: aload 11
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getStart:()I
aload 11
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLength:()I
36: invokevirtual org.apache.tomcat.util.http.MimeHeaders.addValue:([BII)Lorg/apache/tomcat/util/buf/MessageBytes;
astore 10
end local 11 37: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 10
invokevirtual org.apache.coyote.ajp.AjpMessage.getBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
38: iload 9
bipush 8
if_icmpeq 40
39: iload 9
iconst_m1
if_icmpne 48
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
ldc "Content-Length"
invokevirtual org.apache.tomcat.util.buf.MessageBytes.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 48
40: StackMap locals:
StackMap stack:
aload 10
invokevirtual org.apache.tomcat.util.buf.MessageBytes.getLong:()J
lstore 11
start local 11 41: iload 4
ifeq 45
42: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
sipush 400
invokevirtual org.apache.coyote.Response.setStatus:(I)V
43: aload 0
getstatic org.apache.coyote.ErrorState.CLOSE_CLEAN:Lorg/apache/coyote/ErrorState;
aconst_null
invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
44: goto 55
45: StackMap locals: long
StackMap stack:
iconst_1
istore 4
46: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
lload 11
invokevirtual org.apache.coyote.Request.setContentLength:(J)V
end local 11 47: goto 55
StackMap locals:
StackMap stack:
48: iload 9
bipush 7
if_icmpeq 50
49: iload 9
iconst_m1
if_icmpne 55
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
ldc "Content-Type"
invokevirtual org.apache.tomcat.util.buf.MessageBytes.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 55
50: StackMap locals:
StackMap stack:
aload 10
invokevirtual org.apache.tomcat.util.buf.MessageBytes.getByteChunk:()Lorg/apache/tomcat/util/buf/ByteChunk;
astore 11
start local 11 51: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.contentType:()Lorg/apache/tomcat/util/buf/MessageBytes;
aload 11
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getBytes:()[B
52: aload 11
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getOffset:()I
53: aload 11
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLength:()I
54: invokevirtual org.apache.tomcat.util.buf.MessageBytes.setBytes:([BII)V
end local 11 end local 10 end local 9 end local 8 end local 7 55: StackMap locals: org.apache.coyote.ajp.AjpProcessor int int org.apache.tomcat.util.http.MimeHeaders int int int
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
56: iload 6
iload 5
if_icmplt 21
end local 6 57: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getSecret:()Ljava/lang/String;
astore 6
start local 6 58: iconst_0
istore 7
start local 7 59: goto 138
start local 8 60: StackMap locals: org.apache.coyote.ajp.AjpProcessor int int org.apache.tomcat.util.http.MimeHeaders int int java.lang.String int int
StackMap stack:
iload 8
tableswitch { // 1 - 13
1: 93
2: 95
3: 97
4: 104
5: 109
6: 111
7: 113
8: 115
9: 120
10: 61
11: 125
12: 131
13: 129
default: 138
}
61: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
62: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.tomcat.util.buf.MessageBytes.toString:()Ljava/lang/String;
astore 9
start local 9 63: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
64: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.tomcat.util.buf.MessageBytes.toString:()Ljava/lang/String;
astore 10
start local 10 65: aload 9
ldc "AJP_LOCAL_ADDR"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 68
66: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.localAddr:()Lorg/apache/tomcat/util/buf/MessageBytes;
aload 10
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
67: goto 138
StackMap locals: java.lang.String java.lang.String
StackMap stack:
68: aload 9
ldc "AJP_REMOTE_PORT"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 73
69: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
aload 10
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
invokevirtual org.apache.coyote.Request.setRemotePort:(I)V
70: goto 138
StackMap locals:
StackMap stack: java.lang.NumberFormatException
71: pop
72: goto 138
StackMap locals:
StackMap stack:
73: aload 9
ldc "AJP_SSL_PROTOCOL"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 76
74: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
ldc "org.apache.tomcat.util.net.secure_protocol_version"
aload 10
invokevirtual org.apache.coyote.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
75: goto 138
StackMap locals:
StackMap stack:
76: aload 9
ldc "JK_LB_ACTIVATION"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 79
77: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
aload 9
aload 10
invokevirtual org.apache.coyote.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
78: goto 138
StackMap locals:
StackMap stack:
79: getstatic org.apache.coyote.ajp.AjpProcessor.jakartaAttributeMapping:Ljava/util/Map;
aload 9
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 82
80: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
getstatic org.apache.coyote.ajp.AjpProcessor.jakartaAttributeMapping:Ljava/util/Map;
aload 9
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
aload 10
invokevirtual org.apache.coyote.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
81: goto 138
StackMap locals:
StackMap stack:
82: getstatic org.apache.coyote.ajp.AjpProcessor.iisTlsAttributes:Ljava/util/Set;
aload 9
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 85
83: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
aload 9
aload 10
invokevirtual org.apache.coyote.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
84: goto 138
85: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getAllowedRequestAttributesPatternInternal:()Ljava/util/regex/Pattern;
astore 11
start local 11 86: aload 11
ifnull 89
aload 11
aload 9
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
invokevirtual java.util.regex.Matcher.matches:()Z
ifeq 89
87: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
aload 9
aload 10
invokevirtual org.apache.coyote.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
88: goto 138
89: StackMap locals: java.util.regex.Pattern
StackMap stack:
getstatic org.apache.coyote.ajp.AjpProcessor.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.coyote.ajp.AjpProcessor.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "ajpprocessor.unknownAttribute"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 9
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
90: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
sipush 403
invokevirtual org.apache.coyote.Response.setStatus:(I)V
91: aload 0
getstatic org.apache.coyote.ErrorState.CLOSE_CLEAN:Lorg/apache/coyote/ErrorState;
aconst_null
invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
end local 11 92: goto 138
end local 10 end local 9 93: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
94: goto 138
95: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
96: goto 138
97: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getTomcatAuthorization:()Z
istore 11
start local 11 98: iload 11
ifne 99
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getTomcatAuthentication:()Z
ifne 102
99: StackMap locals: org.apache.coyote.ajp.AjpProcessor int int org.apache.tomcat.util.http.MimeHeaders int int java.lang.String int int top top int
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.getRemoteUser:()Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
100: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
iload 11
invokevirtual org.apache.coyote.Request.setRemoteUserNeedsAuthorization:(Z)V
101: goto 138
102: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
103: goto 138
end local 11 104: StackMap locals: org.apache.coyote.ajp.AjpProcessor int int org.apache.tomcat.util.http.MimeHeaders int int java.lang.String int int
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getTomcatAuthentication:()Z
ifeq 107
105: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
106: goto 138
107: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.getAuthType:()Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
108: goto 138
109: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.queryString:()Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
110: goto 138
111: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
112: goto 138
113: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.certificates:Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
114: goto 138
115: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
116: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
ldc "jakarta.servlet.request.cipher_suite"
117: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.tomcat.util.buf.MessageBytes.toString:()Ljava/lang/String;
118: invokevirtual org.apache.coyote.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
119: goto 138
120: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
121: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
ldc "jakarta.servlet.request.ssl_session_id"
122: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.tomcat.util.buf.MessageBytes.toString:()Ljava/lang/String;
123: invokevirtual org.apache.coyote.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
124: goto 138
125: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
ldc "jakarta.servlet.request.key_size"
126: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
invokevirtual org.apache.coyote.ajp.AjpMessage.getInt:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
127: invokevirtual org.apache.coyote.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
128: goto 138
129: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.method:()Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
130: goto 138
131: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
132: aload 6
ifnull 138
aload 6
invokevirtual java.lang.String.length:()I
ifle 138
133: iconst_1
istore 7
134: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
aload 6
invokevirtual org.apache.tomcat.util.buf.MessageBytes.equals:(Ljava/lang/String;)Z
ifne 138
135: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
sipush 403
invokevirtual org.apache.coyote.Response.setStatus:(I)V
136: aload 0
getstatic org.apache.coyote.ErrorState.CLOSE_CLEAN:Lorg/apache/coyote/ErrorState;
aconst_null
invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
137: goto 138
end local 8 138: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
invokevirtual org.apache.coyote.ajp.AjpMessage.getByte:()B
dup
istore 8
start local 8 139: iconst_m1
140: if_icmpne 60
141: aload 6
ifnull 144
aload 6
invokevirtual java.lang.String.length:()I
ifle 144
iload 7
ifne 144
142: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
sipush 403
invokevirtual org.apache.coyote.Response.setStatus:(I)V
143: aload 0
getstatic org.apache.coyote.ErrorState.CLOSE_CLEAN:Lorg/apache/coyote/ErrorState;
aconst_null
invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
144: StackMap locals: int
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.requestURI:()Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.tomcat.util.buf.MessageBytes.getByteChunk:()Lorg/apache/tomcat/util/buf/ByteChunk;
astore 9
start local 9 145: aload 9
ldc "http"
iconst_0
invokevirtual org.apache.tomcat.util.buf.ByteChunk.startsWithIgnoreCase:(Ljava/lang/String;I)Z
ifeq 166
146: aload 9
ldc "://"
iconst_0
iconst_3
iconst_4
invokevirtual org.apache.tomcat.util.buf.ByteChunk.indexOf:(Ljava/lang/String;III)I
istore 10
start local 10 147: aload 9
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getStart:()I
istore 11
start local 11 148: iconst_m1
istore 12
start local 12 149: iload 10
iconst_m1
if_icmpeq 166
150: aload 9
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getBytes:()[B
astore 13
start local 13 151: aload 9
bipush 47
iload 10
iconst_3
iadd
invokevirtual org.apache.tomcat.util.buf.ByteChunk.indexOf:(CI)I
istore 12
152: iload 12
iconst_m1
if_icmpne 158
153: aload 9
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLength:()I
istore 12
154: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.requestURI:()Lorg/apache/tomcat/util/buf/MessageBytes;
155: aload 13
iload 11
iload 10
iadd
iconst_1
iadd
iconst_1
156: invokevirtual org.apache.tomcat.util.buf.MessageBytes.setBytes:([BII)V
157: goto 162
158: StackMap locals: org.apache.coyote.ajp.AjpProcessor int int org.apache.tomcat.util.http.MimeHeaders int int java.lang.String int int org.apache.tomcat.util.buf.ByteChunk int int int byte[]
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.requestURI:()Lorg/apache/tomcat/util/buf/MessageBytes;
159: aload 13
iload 11
iload 12
iadd
160: aload 9
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLength:()I
iload 12
isub
161: invokevirtual org.apache.tomcat.util.buf.MessageBytes.setBytes:([BII)V
162: StackMap locals:
StackMap stack:
aload 3
ldc "host"
invokevirtual org.apache.tomcat.util.http.MimeHeaders.setValue:(Ljava/lang/String;)Lorg/apache/tomcat/util/buf/MessageBytes;
astore 14
start local 14 163: aload 14
aload 13
iload 11
iload 10
iadd
iconst_3
iadd
164: iload 12
iload 10
isub
iconst_3
isub
165: invokevirtual org.apache.tomcat.util.buf.MessageBytes.setBytes:([BII)V
end local 14 end local 13 end local 12 end local 11 end local 10 166: StackMap locals: org.apache.coyote.ajp.AjpProcessor int int org.apache.tomcat.util.http.MimeHeaders int int java.lang.String int int org.apache.tomcat.util.buf.ByteChunk
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.getMimeHeaders:()Lorg/apache/tomcat/util/http/MimeHeaders;
ldc "host"
invokevirtual org.apache.tomcat.util.http.MimeHeaders.getValue:(Ljava/lang/String;)Lorg/apache/tomcat/util/buf/MessageBytes;
astore 10
start local 10 167: aload 0
aload 10
invokevirtual org.apache.coyote.ajp.AjpProcessor.parseHost:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
168: aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.getErrorState:()Lorg/apache/coyote/ErrorState;
invokevirtual org.apache.coyote.ErrorState.isIoAllowed:()Z
ifne 170
169: aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.getAdapter:()Lorg/apache/coyote/Adapter;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
lconst_0
invokeinterface org.apache.coyote.Adapter.log:(Lorg/apache/coyote/Request;Lorg/apache/coyote/Response;J)V
170: StackMap locals: org.apache.tomcat.util.buf.MessageBytes
StackMap stack:
return
end local 10 end local 9 end local 8 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 171 0 this Lorg/apache/coyote/ajp/AjpProcessor;
1 171 1 methodCode B
3 4 2 methodName Ljava/lang/String;
13 171 2 isSSL Z
16 171 3 headers Lorg/apache/tomcat/util/http/MimeHeaders;
18 171 4 contentLengthSet Z
19 171 5 hCount I
20 57 6 i I
22 55 7 hName Ljava/lang/String;
23 55 8 isc I
24 55 9 hId I
25 55 10 vMB Lorg/apache/tomcat/util/buf/MessageBytes;
34 37 11 bc Lorg/apache/tomcat/util/buf/ByteChunk;
41 47 11 cl J
51 55 11 bchunk Lorg/apache/tomcat/util/buf/ByteChunk;
58 171 6 secret Ljava/lang/String;
59 171 7 secretPresentInRequest Z
60 138 8 attributeCode B
139 171 8 attributeCode B
63 93 9 n Ljava/lang/String;
65 93 10 v Ljava/lang/String;
86 92 11 pattern Ljava/util/regex/Pattern;
98 104 11 tomcatAuthorization Z
145 171 9 uriBC Lorg/apache/tomcat/util/buf/ByteChunk;
147 166 10 pos I
148 166 11 uriBCStart I
149 166 12 slashPos I
151 166 13 uriB [B
163 166 14 hostMB Lorg/apache/tomcat/util/buf/MessageBytes;
167 171 10 valueMB Lorg/apache/tomcat/util/buf/MessageBytes;
Exception table:
from to target type
69 70 71 Class java.lang.NumberFormatException
protected void populateHost();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.serverName:()Lorg/apache/tomcat/util/buf/MessageBytes;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.localName:()Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.tomcat.util.buf.MessageBytes.duplicate:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
1: goto 5
StackMap locals:
StackMap stack: java.io.IOException
2: astore 1
start local 1 3: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
sipush 400
invokevirtual org.apache.coyote.Response.setStatus:(I)V
4: aload 0
getstatic org.apache.coyote.ErrorState.CLOSE_CLEAN:Lorg/apache/coyote/ErrorState;
aload 1
invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
end local 1 5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/coyote/ajp/AjpProcessor;
3 5 1 e Ljava/io/IOException;
Exception table:
from to target type
0 1 2 Class java.io.IOException
protected void populatePort();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.getLocalPort:()I
invokevirtual org.apache.coyote.Request.setServerPort:(I)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/coyote/ajp/AjpProcessor;
protected final void prepareResponse();
descriptor: ()V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=5, locals=13, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
iconst_1
invokevirtual org.apache.coyote.Response.setCommitted:(Z)V
1: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.tomcat.util.buf.MessageBytes.recycle:()V
2: aload 0
iconst_m1
putfield org.apache.coyote.ajp.AjpProcessor.responseMsgPos:I
3: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
invokevirtual org.apache.coyote.ajp.AjpMessage.reset:()V
4: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
iconst_4
invokevirtual org.apache.coyote.ajp.AjpMessage.appendByte:(I)V
5: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.getStatus:()I
istore 1
start local 1 6: iload 1
sipush 200
if_icmplt 8
iload 1
sipush 204
if_icmpeq 8
iload 1
sipush 205
if_icmpeq 8
7: iload 1
sipush 304
if_icmpne 9
8: StackMap locals: int
StackMap stack:
aload 0
iconst_1
putfield org.apache.coyote.ajp.AjpProcessor.swallowResponse:Z
9: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.method:()Lorg/apache/tomcat/util/buf/MessageBytes;
astore 2
start local 2 10: aload 2
ldc "HEAD"
invokevirtual org.apache.tomcat.util.buf.MessageBytes.equals:(Ljava/lang/String;)Z
ifeq 12
11: aload 0
iconst_1
putfield org.apache.coyote.ajp.AjpProcessor.swallowResponse:Z
12: StackMap locals: org.apache.tomcat.util.buf.MessageBytes
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
iload 1
invokevirtual org.apache.coyote.ajp.AjpMessage.appendInt:(I)V
13: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.getStatus:()I
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
14: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.coyote.ajp.AjpMessage.appendBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
15: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.getMimeHeaders:()Lorg/apache/tomcat/util/http/MimeHeaders;
astore 3
start local 3 16: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.getContentType:()Ljava/lang/String;
astore 4
start local 4 17: aload 4
ifnull 19
18: aload 3
ldc "Content-Type"
invokevirtual org.apache.tomcat.util.http.MimeHeaders.setValue:(Ljava/lang/String;)Lorg/apache/tomcat/util/buf/MessageBytes;
aload 4
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
19: StackMap locals: org.apache.tomcat.util.http.MimeHeaders java.lang.String
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.getContentLanguage:()Ljava/lang/String;
astore 5
start local 5 20: aload 5
ifnull 22
21: aload 3
ldc "Content-Language"
invokevirtual org.apache.tomcat.util.http.MimeHeaders.setValue:(Ljava/lang/String;)Lorg/apache/tomcat/util/buf/MessageBytes;
aload 5
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
22: StackMap locals: java.lang.String
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.getContentLengthLong:()J
lstore 6
start local 6 23: lload 6
lconst_0
lcmp
iflt 25
24: aload 3
ldc "Content-Length"
invokevirtual org.apache.tomcat.util.http.MimeHeaders.setValue:(Ljava/lang/String;)Lorg/apache/tomcat/util/buf/MessageBytes;
lload 6
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setLong:(J)V
25: StackMap locals: long
StackMap stack:
aload 3
invokevirtual org.apache.tomcat.util.http.MimeHeaders.size:()I
istore 8
start local 8 26: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
iload 8
invokevirtual org.apache.coyote.ajp.AjpMessage.appendInt:(I)V
27: iconst_0
istore 9
start local 9 28: goto 38
29: StackMap locals: int int
StackMap stack:
aload 3
iload 9
invokevirtual org.apache.tomcat.util.http.MimeHeaders.getName:(I)Lorg/apache/tomcat/util/buf/MessageBytes;
astore 10
start local 10 30: aload 10
invokevirtual org.apache.tomcat.util.buf.MessageBytes.toString:()Ljava/lang/String;
invokestatic org.apache.coyote.ajp.Constants.getResponseAjpIndex:(Ljava/lang/String;)I
istore 11
start local 11 31: iload 11
ifle 34
32: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
iload 11
invokevirtual org.apache.coyote.ajp.AjpMessage.appendInt:(I)V
33: goto 35
34: StackMap locals: org.apache.tomcat.util.buf.MessageBytes int
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 10
invokevirtual org.apache.coyote.ajp.AjpMessage.appendBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
35: StackMap locals:
StackMap stack:
aload 3
iload 9
invokevirtual org.apache.tomcat.util.http.MimeHeaders.getValue:(I)Lorg/apache/tomcat/util/buf/MessageBytes;
astore 12
start local 12 36: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 12
invokevirtual org.apache.coyote.ajp.AjpMessage.appendBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
end local 12 end local 11 end local 10 37: iinc 9 1
StackMap locals:
StackMap stack:
38: iload 9
iload 8
if_icmplt 29
end local 9 39: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
invokevirtual org.apache.coyote.ajp.AjpMessage.end:()V
40: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
iconst_1
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBuffer:()[B
iconst_0
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.write:(Z[BII)V
41: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
iconst_1
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.flush:(Z)Z
pop
42: return
end local 8 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lorg/apache/coyote/ajp/AjpProcessor;
6 43 1 statusCode I
10 43 2 methodMB Lorg/apache/tomcat/util/buf/MessageBytes;
16 43 3 headers Lorg/apache/tomcat/util/http/MimeHeaders;
17 43 4 contentType Ljava/lang/String;
20 43 5 contentLanguage Ljava/lang/String;
23 43 6 contentLength J
26 43 8 numHeaders I
28 39 9 i I
30 37 10 hN Lorg/apache/tomcat/util/buf/MessageBytes;
31 37 11 hC I
36 37 12 hV Lorg/apache/tomcat/util/buf/MessageBytes;
Exceptions:
throws java.io.IOException
protected final void flush();
descriptor: ()V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.responseFinished:Z
ifne 4
1: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getAjpFlush:()Z
ifeq 3
2: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
iconst_1
getstatic org.apache.coyote.ajp.AjpProcessor.flushMessageArray:[B
iconst_0
getstatic org.apache.coyote.ajp.AjpProcessor.flushMessageArray:[B
arraylength
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.write:(Z[BII)V
3: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
iconst_1
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.flush:(Z)Z
pop
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/coyote/ajp/AjpProcessor;
Exceptions:
throws java.io.IOException
protected final void finishResponse();
descriptor: ()V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.responseFinished:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.apache.coyote.ajp.AjpProcessor.responseFinished:Z
3: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.waitingForBodyMessage:Z
ifne 4
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.first:Z
ifeq 5
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.getContentLengthLong:()J
lconst_0
lcmp
ifle 5
4: StackMap locals:
StackMap stack:
aload 0
iconst_1
invokevirtual org.apache.coyote.ajp.AjpProcessor.refillReadBuffer:(Z)Z
pop
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.getErrorState:()Lorg/apache/coyote/ErrorState;
invokevirtual org.apache.coyote.ErrorState.isError:()Z
ifeq 8
6: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
iconst_1
getstatic org.apache.coyote.ajp.AjpProcessor.endAndCloseMessageArray:[B
iconst_0
getstatic org.apache.coyote.ajp.AjpProcessor.endAndCloseMessageArray:[B
arraylength
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.write:(Z[BII)V
7: goto 9
8: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
iconst_1
getstatic org.apache.coyote.ajp.AjpProcessor.endMessageArray:[B
iconst_0
getstatic org.apache.coyote.ajp.AjpProcessor.endMessageArray:[B
arraylength
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.write:(Z[BII)V
9: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
iconst_1
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.flush:(Z)Z
pop
10: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/coyote/ajp/AjpProcessor;
Exceptions:
throws java.io.IOException
protected final void ack(org.apache.coyote.ContinueResponseTiming);
descriptor: (Lorg/apache/coyote/ContinueResponseTiming;)V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
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 Lorg/apache/coyote/ajp/AjpProcessor;
0 1 1 continueResponseTiming Lorg/apache/coyote/ContinueResponseTiming;
MethodParameters:
Name Flags
continueResponseTiming
protected final int available(boolean);
descriptor: (Z)I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.endOfStream:Z
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.empty:Z
ifeq 7
iload 1
ifeq 7
3: aload 0
iconst_0
invokevirtual org.apache.coyote.ajp.AjpProcessor.refillReadBuffer:(Z)Z
pop
4: goto 7
StackMap locals:
StackMap stack: java.io.IOException
5: pop
6: iconst_1
ireturn
7: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.empty:Z
ifeq 9
8: iconst_0
ireturn
9: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.getInputBuffer:()Lorg/apache/coyote/InputBuffer;
invokeinterface org.apache.coyote.InputBuffer.available:()I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/coyote/ajp/AjpProcessor;
0 10 1 doRead Z
Exception table:
from to target type
3 4 5 Class java.io.IOException
MethodParameters:
Name Flags
doRead
protected final void setRequestBody(org.apache.tomcat.util.buf.ByteChunk);
descriptor: (Lorg/apache/tomcat/util/buf/ByteChunk;)V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLength:()I
istore 2
start local 2 1: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.bodyBytes:Lorg/apache/tomcat/util/buf/MessageBytes;
aload 1
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getBytes:()[B
aload 1
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getStart:()I
iload 2
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setBytes:([BII)V
2: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
iload 2
i2l
invokevirtual org.apache.coyote.Request.setContentLength:(J)V
3: aload 0
iconst_0
putfield org.apache.coyote.ajp.AjpProcessor.first:Z
4: aload 0
iconst_0
putfield org.apache.coyote.ajp.AjpProcessor.empty:Z
5: aload 0
iconst_1
putfield org.apache.coyote.ajp.AjpProcessor.replay:Z
6: aload 0
iconst_0
putfield org.apache.coyote.ajp.AjpProcessor.endOfStream:Z
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/coyote/ajp/AjpProcessor;
0 8 1 body Lorg/apache/tomcat/util/buf/ByteChunk;
1 8 2 length I
MethodParameters:
Name Flags
body
protected final void setSwallowResponse();
descriptor: ()V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield org.apache.coyote.ajp.AjpProcessor.swallowResponse:Z
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/coyote/ajp/AjpProcessor;
protected final void disableSwallowRequest();
descriptor: ()V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/coyote/ajp/AjpProcessor;
protected final boolean getPopulateRequestAttributesFromSocket();
descriptor: ()Z
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/coyote/ajp/AjpProcessor;
protected final void populateRequestAttributeRemoteHost();
descriptor: ()V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.remoteHost:()Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.tomcat.util.buf.MessageBytes.isNull:()Z
ifeq 8
1: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.remoteHost:()Lorg/apache/tomcat/util/buf/MessageBytes;
2: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.remoteAddr:()Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.tomcat.util.buf.MessageBytes.toString:()Ljava/lang/String;
3: invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
4: invokevirtual java.net.InetAddress.getHostName:()Ljava/lang/String;
5: invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
6: goto 8
StackMap locals:
StackMap stack: java.io.IOException
7: pop
8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/coyote/ajp/AjpProcessor;
Exception table:
from to target type
1 6 7 Class java.io.IOException
protected final void populateSslRequestAttributes();
descriptor: ()V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=5, locals=8, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.certificates:Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.tomcat.util.buf.MessageBytes.isNull:()Z
ifne 35
1: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.certificates:Lorg/apache/tomcat/util/buf/MessageBytes;
invokevirtual org.apache.tomcat.util.buf.MessageBytes.getByteChunk:()Lorg/apache/tomcat/util/buf/ByteChunk;
astore 1
start local 1 2: aconst_null
astore 2
start local 2 3: new java.io.ByteArrayInputStream
dup
aload 1
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getBytes:()[B
4: aload 1
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getStart:()I
5: aload 1
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLength:()I
6: invokespecial java.io.ByteArrayInputStream.<init>:([BII)V
7: astore 3
start local 3 8: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getClientCertProvider:()Ljava/lang/String;
astore 5
start local 5 9: aload 5
ifnonnull 12
10: ldc "X.509"
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 4
start local 4 11: goto 26
end local 4 12: StackMap locals: org.apache.coyote.ajp.AjpProcessor org.apache.tomcat.util.buf.ByteChunk java.security.cert.X509Certificate[] java.io.ByteArrayInputStream top java.lang.String
StackMap stack:
ldc "X.509"
13: aload 5
14: invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 4
start local 4 15: goto 26
16: StackMap locals: org.apache.coyote.ajp.AjpProcessor org.apache.tomcat.util.buf.ByteChunk java.security.cert.X509Certificate[] java.io.ByteArrayInputStream java.security.cert.CertificateFactory java.lang.String
StackMap stack:
aload 4
aload 3
invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
17: checkcast java.security.cert.X509Certificate
astore 6
start local 6 18: aload 2
ifnonnull 22
19: iconst_1
anewarray java.security.cert.X509Certificate
astore 2
20: aload 2
iconst_0
aload 6
aastore
21: goto 26
22: StackMap locals: java.security.cert.X509Certificate
StackMap stack:
aload 2
arraylength
iconst_1
iadd
anewarray java.security.cert.X509Certificate
astore 7
start local 7 23: aload 2
iconst_0
aload 7
iconst_0
aload 2
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
24: aload 7
aload 2
arraylength
aload 6
aastore
25: aload 7
astore 2
end local 7 end local 6 26: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.io.ByteArrayInputStream.available:()I
ifgt 16
end local 5 end local 4 27: goto 34
StackMap locals: org.apache.coyote.ajp.AjpProcessor org.apache.tomcat.util.buf.ByteChunk java.security.cert.X509Certificate[] java.io.ByteArrayInputStream
StackMap stack: java.security.cert.CertificateException
28: astore 4
start local 4 29: aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.getLog:()Lorg/apache/juli/logging/Log;
getstatic org.apache.coyote.ajp.AjpProcessor.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "ajpprocessor.certs.fail"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
aload 4
invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
30: return
end local 4 31: StackMap locals:
StackMap stack: java.security.NoSuchProviderException
astore 4
start local 4 32: aload 0
invokevirtual org.apache.coyote.ajp.AjpProcessor.getLog:()Lorg/apache/juli/logging/Log;
getstatic org.apache.coyote.ajp.AjpProcessor.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "ajpprocessor.certs.fail"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
aload 4
invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
33: return
end local 4 34: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
ldc "jakarta.servlet.request.X509Certificate"
aload 2
invokevirtual org.apache.coyote.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
end local 3 end local 2 end local 1 35: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lorg/apache/coyote/ajp/AjpProcessor;
2 35 1 certData Lorg/apache/tomcat/util/buf/ByteChunk;
3 35 2 jsseCerts [Ljava/security/cert/X509Certificate;
8 35 3 bais Ljava/io/ByteArrayInputStream;
11 12 4 cf Ljava/security/cert/CertificateFactory;
15 27 4 cf Ljava/security/cert/CertificateFactory;
9 27 5 clientCertProvider Ljava/lang/String;
18 26 6 cert Ljava/security/cert/X509Certificate;
23 26 7 temp [Ljava/security/cert/X509Certificate;
29 31 4 e Ljava/security/cert/CertificateException;
32 34 4 e Ljava/security/NoSuchProviderException;
Exception table:
from to target type
8 27 28 Class java.security.cert.CertificateException
8 27 31 Class java.security.NoSuchProviderException
protected final boolean isRequestBodyFullyRead();
descriptor: ()Z
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.endOfStream:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/coyote/ajp/AjpProcessor;
protected final void registerReadInterest();
descriptor: ()V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.registerReadInterest:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/coyote/ajp/AjpProcessor;
protected final boolean isReadyForWrite();
descriptor: ()Z
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.responseMsgPos:I
iconst_m1
if_icmpne 1
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.isReadyForWrite:()Z
ifeq 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 Lorg/apache/coyote/ajp/AjpProcessor;
protected boolean isTrailerFieldsReady();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/coyote/ajp/AjpProcessor;
private boolean read(byte[], int, int, boolean);
descriptor: ([BIIZ)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
iload 4
aload 1
iload 2
iload 3
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.read:(Z[BII)I
istore 5
start local 5 1: iload 5
ifle 12
iload 5
iload 3
if_icmpge 12
2: iload 3
iload 5
isub
istore 6
start local 6 3: iload 2
iload 5
iadd
istore 7
start local 7 4: goto 10
5: StackMap locals: int int int
StackMap stack:
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
iconst_1
aload 1
iload 7
iload 6
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.read:(Z[BII)I
istore 5
6: iload 5
iconst_m1
if_icmpne 8
7: new java.io.EOFException
dup
invokespecial java.io.EOFException.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
iload 6
iload 5
isub
istore 6
9: iload 7
iload 5
iadd
istore 7
10: StackMap locals:
StackMap stack:
iload 6
ifgt 5
end local 7 end local 6 11: goto 14
StackMap locals:
StackMap stack:
12: iload 5
iconst_m1
if_icmpne 14
13: new java.io.EOFException
dup
invokespecial java.io.EOFException.<init>:()V
athrow
14: StackMap locals:
StackMap stack:
iload 5
ifle 15
iconst_1
ireturn
StackMap locals:
StackMap stack:
15: iconst_0
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/apache/coyote/ajp/AjpProcessor;
0 16 1 buf [B
0 16 2 pos I
0 16 3 n I
0 16 4 block Z
1 16 5 read I
3 11 6 left I
4 11 7 start I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
buf
pos
n
block
private void writeData(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.getWriteListener:()Ljakarta/servlet/WriteListener;
ifnonnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: istore 2
start local 2 3: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 3
start local 3 4: iconst_0
istore 4
start local 4 5: goto 16
6: StackMap locals: int int int
StackMap stack:
iload 3
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.outputMaxChunkSize:I
invokestatic java.lang.Math.min:(II)I
istore 5
start local 5 7: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
invokevirtual org.apache.coyote.ajp.AjpMessage.reset:()V
8: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
iconst_3
invokevirtual org.apache.coyote.ajp.AjpMessage.appendByte:(I)V
9: aload 1
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
iload 5
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
10: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
aload 1
invokevirtual org.apache.coyote.ajp.AjpMessage.appendBytes:(Ljava/nio/ByteBuffer;)V
11: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
invokevirtual org.apache.coyote.ajp.AjpMessage.end:()V
12: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
iload 2
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
invokevirtual org.apache.coyote.ajp.AjpMessage.getBuffer:()[B
iconst_0
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.write:(Z[BII)V
13: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
iload 2
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.flush:(Z)Z
pop
14: iload 3
iload 5
isub
istore 3
15: iload 4
iload 5
iadd
istore 4
end local 5 16: StackMap locals:
StackMap stack:
iload 3
ifgt 6
17: aload 0
dup
getfield org.apache.coyote.ajp.AjpProcessor.bytesWritten:J
iload 4
i2l
ladd
putfield org.apache.coyote.ajp.AjpProcessor.bytesWritten:J
18: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/apache/coyote/ajp/AjpProcessor;
0 19 1 chunk Ljava/nio/ByteBuffer;
3 19 2 blocking Z
4 19 3 len I
5 19 4 off I
7 16 5 thisTime I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
chunk
private boolean hasDataToWrite();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.responseMsgPos:I
iconst_m1
if_icmpne 1
aload 0
getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.hasDataToWrite:()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 Lorg/apache/coyote/ajp/AjpProcessor;
protected org.apache.juli.logging.Log getLog();
descriptor: ()Lorg/apache/juli/logging/Log;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic org.apache.coyote.ajp.AjpProcessor.log:Lorg/apache/juli/logging/Log;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/coyote/ajp/AjpProcessor;
static org.apache.coyote.Response access$0(org.apache.coyote.ajp.AjpProcessor);
descriptor: (Lorg/apache/coyote/ajp/AjpProcessor;)Lorg/apache/coyote/Response;
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
areturn
LocalVariableTable:
Start End Slot Name Signature
static void access$1(org.apache.coyote.ajp.AjpProcessor, org.apache.coyote.ErrorState, java.lang.Throwable);
descriptor: (Lorg/apache/coyote/ajp/AjpProcessor;Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
aload 2
invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
return
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "AjpProcessor.java"
NestMembers:
org.apache.coyote.ajp.AjpProcessor$SocketInputBuffer org.apache.coyote.ajp.AjpProcessor$SocketOutputBuffer
InnerClasses:
protected SocketInputBuffer = org.apache.coyote.ajp.AjpProcessor$SocketInputBuffer of org.apache.coyote.ajp.AjpProcessor
protected SocketOutputBuffer = org.apache.coyote.ajp.AjpProcessor$SocketOutputBuffer of org.apache.coyote.ajp.AjpProcessor
public abstract Handler = org.apache.tomcat.util.net.AbstractEndpoint$Handler of org.apache.tomcat.util.net.AbstractEndpoint
public final SocketState = org.apache.tomcat.util.net.AbstractEndpoint$Handler$SocketState of org.apache.tomcat.util.net.AbstractEndpoint$Handler