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 requestHeaderMessage;
    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: .line 62
            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: .line 66
            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: .line 94
            new org.apache.coyote.ajp.AjpMessage
            dup
            bipush 16
            invokespecial org.apache.coyote.ajp.AjpMessage.<init>:(I)V
            astore 0 /* endMessage */
        start local 0 // org.apache.coyote.ajp.AjpMessage endMessage
         3: .line 95
            aload 0 /* endMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.reset:()V
         4: .line 96
            aload 0 /* endMessage */
            iconst_5
            invokevirtual org.apache.coyote.ajp.AjpMessage.appendByte:(I)V
         5: .line 97
            aload 0 /* endMessage */
            iconst_1
            invokevirtual org.apache.coyote.ajp.AjpMessage.appendByte:(I)V
         6: .line 98
            aload 0 /* endMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.end:()V
         7: .line 99
            aload 0 /* endMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
            newarray 8
            putstatic org.apache.coyote.ajp.AjpProcessor.endMessageArray:[B
         8: .line 100
            aload 0 /* endMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.getBuffer:()[B
            iconst_0
            getstatic org.apache.coyote.ajp.AjpProcessor.endMessageArray:[B
            iconst_0
         9: .line 101
            aload 0 /* endMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
        10: .line 100
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        11: .line 104
            new org.apache.coyote.ajp.AjpMessage
            dup
            bipush 16
            invokespecial org.apache.coyote.ajp.AjpMessage.<init>:(I)V
            astore 1 /* endAndCloseMessage */
        start local 1 // org.apache.coyote.ajp.AjpMessage endAndCloseMessage
        12: .line 105
            aload 1 /* endAndCloseMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.reset:()V
        13: .line 106
            aload 1 /* endAndCloseMessage */
            iconst_5
            invokevirtual org.apache.coyote.ajp.AjpMessage.appendByte:(I)V
        14: .line 107
            aload 1 /* endAndCloseMessage */
            iconst_0
            invokevirtual org.apache.coyote.ajp.AjpMessage.appendByte:(I)V
        15: .line 108
            aload 1 /* endAndCloseMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.end:()V
        16: .line 109
            aload 1 /* endAndCloseMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
            newarray 8
            putstatic org.apache.coyote.ajp.AjpProcessor.endAndCloseMessageArray:[B
        17: .line 110
            aload 1 /* endAndCloseMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.getBuffer:()[B
            iconst_0
            getstatic org.apache.coyote.ajp.AjpProcessor.endAndCloseMessageArray:[B
            iconst_0
        18: .line 111
            aload 1 /* endAndCloseMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
        19: .line 110
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        20: .line 114
            new org.apache.coyote.ajp.AjpMessage
            dup
            bipush 16
            invokespecial org.apache.coyote.ajp.AjpMessage.<init>:(I)V
            astore 2 /* flushMessage */
        start local 2 // org.apache.coyote.ajp.AjpMessage flushMessage
        21: .line 115
            aload 2 /* flushMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.reset:()V
        22: .line 116
            aload 2 /* flushMessage */
            iconst_3
            invokevirtual org.apache.coyote.ajp.AjpMessage.appendByte:(I)V
        23: .line 117
            aload 2 /* flushMessage */
            iconst_0
            invokevirtual org.apache.coyote.ajp.AjpMessage.appendInt:(I)V
        24: .line 118
            aload 2 /* flushMessage */
            iconst_0
            invokevirtual org.apache.coyote.ajp.AjpMessage.appendByte:(I)V
        25: .line 119
            aload 2 /* flushMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.end:()V
        26: .line 120
            aload 2 /* flushMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
            newarray 8
            putstatic org.apache.coyote.ajp.AjpProcessor.flushMessageArray:[B
        27: .line 121
            aload 2 /* flushMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.getBuffer:()[B
            iconst_0
            getstatic org.apache.coyote.ajp.AjpProcessor.flushMessageArray:[B
            iconst_0
        28: .line 122
            aload 2 /* flushMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
        29: .line 121
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        30: .line 125
            new org.apache.coyote.ajp.AjpMessage
            dup
            bipush 16
            invokespecial org.apache.coyote.ajp.AjpMessage.<init>:(I)V
            astore 3 /* pongMessage */
        start local 3 // org.apache.coyote.ajp.AjpMessage pongMessage
        31: .line 126
            aload 3 /* pongMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.reset:()V
        32: .line 127
            aload 3 /* pongMessage */
            bipush 9
            invokevirtual org.apache.coyote.ajp.AjpMessage.appendByte:(I)V
        33: .line 128
            aload 3 /* pongMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.end:()V
        34: .line 129
            aload 3 /* pongMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
            newarray 8
            putstatic org.apache.coyote.ajp.AjpProcessor.pongMessageArray:[B
        35: .line 130
            aload 3 /* pongMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.getBuffer:()[B
            iconst_0
            getstatic org.apache.coyote.ajp.AjpProcessor.pongMessageArray:[B
        36: .line 131
            iconst_0
            aload 3 /* pongMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
        37: .line 130
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        38: .line 134
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 4 /* m */
        start local 4 // java.util.Map m
        39: .line 135
            aload 4 /* m */
            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: .line 136
            aload 4 /* m */
            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: .line 137
            aload 4 /* m */
            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: .line 138
            aload 4 /* m */
            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: .line 139
            aload 4 /* m */
            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: .line 140
            aload 4 /* m */
            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: .line 141
            aload 4 /* m */
            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: .line 142
            aload 4 /* m */
            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: .line 143
            aload 4 /* m */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            putstatic org.apache.coyote.ajp.AjpProcessor.jakartaAttributeMapping:Ljava/util/Map;
        48: .line 145
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 5 /* s */
        start local 5 // java.util.Set s
        49: .line 146
            aload 5 /* s */
            ldc "CERT_ISSUER"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        50: .line 147
            aload 5 /* s */
            ldc "CERT_SUBJECT"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        51: .line 148
            aload 5 /* s */
            ldc "CERT_COOKIE"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        52: .line 149
            aload 5 /* s */
            ldc "HTTPS_SERVER_SUBJECT"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        53: .line 150
            aload 5 /* s */
            ldc "CERT_FLAGS"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        54: .line 151
            aload 5 /* s */
            ldc "HTTPS_SECRETKEYSIZE"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        55: .line 152
            aload 5 /* s */
            ldc "CERT_SERIALNUMBER"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        56: .line 153
            aload 5 /* s */
            ldc "HTTPS_SERVER_ISSUER"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        57: .line 154
            aload 5 /* s */
            ldc "HTTPS_KEYSIZE"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        58: .line 155
            aload 5 /* s */
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            putstatic org.apache.coyote.ajp.AjpProcessor.iisTlsAttributes:Ljava/util/Set;
        end local 5 // java.util.Set s
        end local 4 // java.util.Map m
        end local 3 // org.apache.coyote.ajp.AjpMessage pongMessage
        end local 2 // org.apache.coyote.ajp.AjpMessage flushMessage
        end local 1 // org.apache.coyote.ajp.AjpMessage endAndCloseMessage
        end local 0 // org.apache.coyote.ajp.AjpMessage endMessage
        59: .line 156
            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 // org.apache.coyote.ajp.AjpProcessor this
        start local 1 // org.apache.coyote.ajp.AbstractAjpProtocol protocol
        start local 2 // org.apache.coyote.Adapter adapter
         0: .line 277
            aload 0 /* this */
            aload 2 /* adapter */
            invokespecial org.apache.coyote.AbstractProcessor.<init>:(Lorg/apache/coyote/Adapter;)V
         1: .line 196
            aload 0 /* this */
            iconst_m1
            putfield org.apache.coyote.ajp.AjpProcessor.responseMsgPos:I
         2: .line 208
            aload 0 /* this */
            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: .line 214
            aload 0 /* this */
            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: .line 220
            aload 0 /* this */
            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: .line 226
            aload 0 /* this */
            iconst_0
            putfield org.apache.coyote.ajp.AjpProcessor.endOfStream:Z
         6: .line 232
            aload 0 /* this */
            iconst_1
            putfield org.apache.coyote.ajp.AjpProcessor.empty:Z
         7: .line 238
            aload 0 /* this */
            iconst_1
            putfield org.apache.coyote.ajp.AjpProcessor.first:Z
         8: .line 245
            aload 0 /* this */
            iconst_0
            putfield org.apache.coyote.ajp.AjpProcessor.waitingForBodyMessage:Z
         9: .line 251
            aload 0 /* this */
            iconst_0
            putfield org.apache.coyote.ajp.AjpProcessor.replay:Z
        10: .line 257
            aload 0 /* this */
            iconst_0
            putfield org.apache.coyote.ajp.AjpProcessor.swallowResponse:Z
        11: .line 263
            aload 0 /* this */
            iconst_0
            putfield org.apache.coyote.ajp.AjpProcessor.responseFinished:Z
        12: .line 269
            aload 0 /* this */
            lconst_0
            putfield org.apache.coyote.ajp.AjpProcessor.bytesWritten:J
        13: .line 278
            aload 0 /* this */
            aload 1 /* protocol */
            putfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
        14: .line 280
            aload 1 /* protocol */
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getPacketSize:()I
            istore 3 /* packetSize */
        start local 3 // int packetSize
        15: .line 283
            aload 0 /* this */
            iload 3 /* packetSize */
            bipush 8
            isub
            putfield org.apache.coyote.ajp.AjpProcessor.outputMaxChunkSize:I
        16: .line 285
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            new org.apache.coyote.ajp.AjpProcessor$SocketInputBuffer
            dup
            aload 0 /* this */
            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: .line 287
            aload 0 /* this */
            new org.apache.coyote.ajp.AjpMessage
            dup
            iload 3 /* packetSize */
            invokespecial org.apache.coyote.ajp.AjpMessage.<init>:(I)V
            putfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
        18: .line 288
            aload 0 /* this */
            new org.apache.coyote.ajp.AjpMessage
            dup
            iload 3 /* packetSize */
            invokespecial org.apache.coyote.ajp.AjpMessage.<init>:(I)V
            putfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
        19: .line 289
            aload 0 /* this */
            new org.apache.coyote.ajp.AjpMessage
            dup
            iload 3 /* packetSize */
            invokespecial org.apache.coyote.ajp.AjpMessage.<init>:(I)V
            putfield org.apache.coyote.ajp.AjpProcessor.bodyMessage:Lorg/apache/coyote/ajp/AjpMessage;
        20: .line 292
            new org.apache.coyote.ajp.AjpMessage
            dup
            bipush 16
            invokespecial org.apache.coyote.ajp.AjpMessage.<init>:(I)V
            astore 4 /* getBodyMessage */
        start local 4 // org.apache.coyote.ajp.AjpMessage getBodyMessage
        21: .line 293
            aload 4 /* getBodyMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.reset:()V
        22: .line 294
            aload 4 /* getBodyMessage */
            bipush 6
            invokevirtual org.apache.coyote.ajp.AjpMessage.appendByte:(I)V
        23: .line 296
            aload 4 /* getBodyMessage */
            sipush 8186
            iload 3 /* packetSize */
            iadd
        24: .line 297
            sipush 8192
            isub
        25: .line 296
            invokevirtual org.apache.coyote.ajp.AjpMessage.appendInt:(I)V
        26: .line 298
            aload 4 /* getBodyMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.end:()V
        27: .line 299
            aload 0 /* this */
            aload 4 /* getBodyMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
            newarray 8
            putfield org.apache.coyote.ajp.AjpProcessor.getBodyMessageArray:[B
        28: .line 300
            aload 4 /* getBodyMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.getBuffer:()[B
            iconst_0
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.getBodyMessageArray:[B
        29: .line 301
            iconst_0
            aload 4 /* getBodyMessage */
            invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
        30: .line 300
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        31: .line 303
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
            new org.apache.coyote.ajp.AjpProcessor$SocketOutputBuffer
            dup
            aload 0 /* this */
            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: .line 304
            return
        end local 4 // org.apache.coyote.ajp.AjpMessage getBodyMessage
        end local 3 // int packetSize
        end local 2 // org.apache.coyote.Adapter adapter
        end local 1 // org.apache.coyote.ajp.AbstractAjpProtocol protocol
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
         0: .line 311
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.hasDataToWrite:()Z
            ifeq 5
         1: .line 312
            aload 0 /* this */
            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: .line 313
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.hasDataToWrite:()Z
            ifeq 5
         3: .line 316
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
            invokevirtual org.apache.coyote.Response.checkRegisterForWrite:()Z
            pop
         4: .line 317
            iconst_1
            ireturn
         5: .line 320
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
         0: .line 326
            aload 0 /* this */
            iconst_1
            invokevirtual org.apache.coyote.ajp.AjpProcessor.available:(Z)I
            ifle 2
         1: .line 327
            aload 0 /* this */
            invokespecial org.apache.coyote.AbstractProcessor.dispatchNonBlockingRead:()V
         2: .line 329
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
         0: .line 335
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            aload 0 /* this */
            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: .line 336
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.recycle:()V
         2: .line 337
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.isPaused:()Z
            ifeq 4
         3: .line 338
            getstatic org.apache.tomcat.util.net.AbstractEndpoint$Handler$SocketState.CLOSED:Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;
            areturn
         4: .line 340
      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 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
        start local 1 // org.apache.tomcat.util.net.SocketWrapperBase socket
         0: .line 348
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            invokevirtual org.apache.coyote.Request.getRequestProcessor:()Lorg/apache/coyote/RequestInfo;
            astore 2 /* rp */
        start local 2 // org.apache.coyote.RequestInfo rp
         1: .line 349
            aload 2 /* rp */
            iconst_1
            invokevirtual org.apache.coyote.RequestInfo.setStage:(I)V
         2: .line 352
            aload 0 /* this */
            aload 1 /* socket */
            putfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
         3: .line 354
            iconst_0
            istore 3 /* cping */
        start local 3 // boolean cping
         4: .line 357
            iconst_1
            istore 4 /* firstRead */
        start local 4 // boolean firstRead
         5: .line 359
            goto 84
         6: .line 363
      StackMap locals: org.apache.coyote.RequestInfo int int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            iload 4 /* firstRead */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.readMessage:(Lorg/apache/coyote/ajp/AjpMessage;Z)Z
            ifne 8
         7: .line 364
            goto 85
         8: .line 366
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* firstRead */
         9: .line 370
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            aload 0 /* this */
            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: .line 374
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            invokevirtual org.apache.coyote.ajp.AjpMessage.getByte:()B
            istore 5 /* type */
        start local 5 // int type
        11: .line 375
            iload 5 /* type */
            bipush 10
            if_icmpne 25
        12: .line 376
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.isPaused:()Z
            ifeq 15
        13: .line 377
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.recycle:()V
        14: .line 378
            goto 85
        15: .line 380
      StackMap locals: int
      StackMap stack:
            iconst_1
            istore 3 /* cping */
        16: .line 382
            aload 0 /* this */
            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: .line 383
            aload 0 /* this */
            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: .line 384
            goto 23
      StackMap locals:
      StackMap stack: java.io.IOException
        19: astore 6 /* e */
        start local 6 // java.io.IOException e
        20: .line 385
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.getLog:()Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 22
        21: .line 386
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.getLog:()Lorg/apache/juli/logging/Log;
            ldc "Pong message failed"
            aload 6 /* e */
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        22: .line 388
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 0 /* this */
            getstatic org.apache.coyote.ErrorState.CLOSE_CONNECTION_NOW:Lorg/apache/coyote/ErrorState;
            aload 6 /* e */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
        end local 6 // java.io.IOException e
        23: .line 390
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.recycle:()V
        24: .line 391
            goto 84
        25: .line 392
      StackMap locals:
      StackMap stack:
            iload 5 /* type */
            iconst_2
            if_icmpeq 30
        26: .line 395
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.getLog:()Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 28
        27: .line 396
            aload 0 /* this */
            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 /* type */
            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: .line 398
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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: .line 399
            goto 85
        30: .line 401
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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 // int type
        31: .line 402
            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 /* e */
        start local 5 // java.io.IOException e
        33: .line 403
            aload 0 /* this */
            getstatic org.apache.coyote.ErrorState.CLOSE_CONNECTION_NOW:Lorg/apache/coyote/ErrorState;
            aload 5 /* e */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
        34: .line 404
            goto 85
        end local 5 // java.io.IOException e
        35: .line 405
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5 /* t */
        start local 5 // java.lang.Throwable t
        36: .line 406
            aload 5 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        37: .line 407
            aload 0 /* this */
            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 /* t */
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        38: .line 409
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
            sipush 400
            invokevirtual org.apache.coyote.Response.setStatus:(I)V
        39: .line 410
            aload 0 /* this */
            getstatic org.apache.coyote.ErrorState.CLOSE_CLEAN:Lorg/apache/coyote/ErrorState;
            aload 5 /* t */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
        end local 5 // java.lang.Throwable t
        40: .line 413
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.getErrorState:()Lorg/apache/coyote/ErrorState;
            invokevirtual org.apache.coyote.ErrorState.isIoAllowed:()Z
            ifeq 49
        41: .line 415
            aload 2 /* rp */
            iconst_2
            invokevirtual org.apache.coyote.RequestInfo.setStage:(I)V
        42: .line 417
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.prepareRequest:()V
        43: .line 418
            goto 49
      StackMap locals:
      StackMap stack: java.lang.Throwable
        44: astore 5 /* t */
        start local 5 // java.lang.Throwable t
        45: .line 419
            aload 5 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        46: .line 420
            aload 0 /* this */
            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 /* t */
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        47: .line 422
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
            sipush 500
            invokevirtual org.apache.coyote.Response.setStatus:(I)V
        48: .line 423
            aload 0 /* this */
            getstatic org.apache.coyote.ErrorState.CLOSE_CLEAN:Lorg/apache/coyote/ErrorState;
            aload 5 /* t */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
        end local 5 // java.lang.Throwable t
        49: .line 427
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.getErrorState:()Lorg/apache/coyote/ErrorState;
            invokevirtual org.apache.coyote.ErrorState.isIoAllowed:()Z
            ifeq 52
            iload 3 /* cping */
            ifne 52
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.isPaused:()Z
            ifeq 52
        50: .line 429
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
            sipush 503
            invokevirtual org.apache.coyote.Response.setStatus:(I)V
        51: .line 430
            aload 0 /* this */
            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: .line 432
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* cping */
        53: .line 435
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.getErrorState:()Lorg/apache/coyote/ErrorState;
            invokevirtual org.apache.coyote.ErrorState.isIoAllowed:()Z
            ifeq 66
        54: .line 437
            aload 2 /* rp */
            iconst_3
            invokevirtual org.apache.coyote.RequestInfo.setStage:(I)V
        55: .line 438
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.getAdapter:()Lorg/apache/coyote/Adapter;
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            aload 0 /* this */
            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: .line 439
            goto 66
      StackMap locals:
      StackMap stack: java.io.InterruptedIOException
        57: astore 5 /* e */
        start local 5 // java.io.InterruptedIOException e
        58: .line 440
            aload 0 /* this */
            getstatic org.apache.coyote.ErrorState.CLOSE_CONNECTION_NOW:Lorg/apache/coyote/ErrorState;
            aload 5 /* e */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
        end local 5 // java.io.InterruptedIOException e
        59: goto 66
        60: .line 441
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5 /* t */
        start local 5 // java.lang.Throwable t
        61: .line 442
            aload 5 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        62: .line 443
            aload 0 /* this */
            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 /* t */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        63: .line 445
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
            sipush 500
            invokevirtual org.apache.coyote.Response.setStatus:(I)V
        64: .line 446
            aload 0 /* this */
            getstatic org.apache.coyote.ErrorState.CLOSE_CLEAN:Lorg/apache/coyote/ErrorState;
            aload 5 /* t */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
        65: .line 447
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.getAdapter:()Lorg/apache/coyote/Adapter;
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            aload 0 /* this */
            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 // java.lang.Throwable t
        66: .line 451
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.isAsync:()Z
            ifeq 68
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.getErrorState:()Lorg/apache/coyote/ErrorState;
            invokevirtual org.apache.coyote.ErrorState.isError:()Z
            ifne 68
        67: .line 452
            goto 85
        68: .line 456
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.responseFinished:Z
            ifne 78
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.getErrorState:()Lorg/apache/coyote/ErrorState;
            invokevirtual org.apache.coyote.ErrorState.isIoAllowed:()Z
            ifeq 78
        69: .line 458
            aload 0 /* this */
            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: .line 459
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.finishResponse:()V
        71: .line 460
            goto 78
      StackMap locals:
      StackMap stack: java.io.IOException
        72: astore 5 /* ioe */
        start local 5 // java.io.IOException ioe
        73: .line 461
            aload 0 /* this */
            getstatic org.apache.coyote.ErrorState.CLOSE_CONNECTION_NOW:Lorg/apache/coyote/ErrorState;
            aload 5 /* ioe */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
        end local 5 // java.io.IOException ioe
        74: goto 78
        75: .line 462
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5 /* t */
        start local 5 // java.lang.Throwable t
        76: .line 463
            aload 5 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        77: .line 464
            aload 0 /* this */
            getstatic org.apache.coyote.ErrorState.CLOSE_NOW:Lorg/apache/coyote/ErrorState;
            aload 5 /* t */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
        end local 5 // java.lang.Throwable t
        78: .line 470
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.getErrorState:()Lorg/apache/coyote/ErrorState;
            invokevirtual org.apache.coyote.ErrorState.isError:()Z
            ifeq 80
        79: .line 471
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
            sipush 500
            invokevirtual org.apache.coyote.Response.setStatus:(I)V
        80: .line 473
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            invokevirtual org.apache.coyote.Request.updateCounters:()V
        81: .line 475
            aload 2 /* rp */
            bipush 6
            invokevirtual org.apache.coyote.RequestInfo.setStage:(I)V
        82: .line 478
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            aload 0 /* this */
            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: .line 480
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.recycle:()V
        84: .line 359
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.getErrorState:()Lorg/apache/coyote/ErrorState;
            invokevirtual org.apache.coyote.ErrorState.isError:()Z
            ifne 85
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.isPaused:()Z
            ifeq 6
        85: .line 483
      StackMap locals:
      StackMap stack:
            aload 2 /* rp */
            bipush 7
            invokevirtual org.apache.coyote.RequestInfo.setStage:(I)V
        86: .line 485
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.getErrorState:()Lorg/apache/coyote/ErrorState;
            invokevirtual org.apache.coyote.ErrorState.isError:()Z
            ifne 87
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.isPaused:()Z
            ifeq 88
        87: .line 486
      StackMap locals:
      StackMap stack:
            getstatic org.apache.tomcat.util.net.AbstractEndpoint$Handler$SocketState.CLOSED:Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;
            areturn
        88: .line 488
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.isAsync:()Z
            ifeq 90
        89: .line 489
            getstatic org.apache.tomcat.util.net.AbstractEndpoint$Handler$SocketState.LONG:Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;
            areturn
        90: .line 491
      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 // boolean firstRead
        end local 3 // boolean cping
        end local 2 // org.apache.coyote.RequestInfo rp
        end local 1 // org.apache.tomcat.util.net.SocketWrapperBase socket
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
         0: .line 499
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.getAdapter:()Lorg/apache/coyote/Adapter;
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            aload 0 /* this */
            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: .line 500
            aload 0 /* this */
            invokespecial org.apache.coyote.AbstractProcessor.recycle:()V
         2: .line 501
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            invokevirtual org.apache.coyote.Request.recycle:()V
         3: .line 502
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
            invokevirtual org.apache.coyote.Response.recycle:()V
         4: .line 503
            aload 0 /* this */
            iconst_1
            putfield org.apache.coyote.ajp.AjpProcessor.first:Z
         5: .line 504
            aload 0 /* this */
            iconst_0
            putfield org.apache.coyote.ajp.AjpProcessor.endOfStream:Z
         6: .line 505
            aload 0 /* this */
            iconst_0
            putfield org.apache.coyote.ajp.AjpProcessor.waitingForBodyMessage:Z
         7: .line 506
            aload 0 /* this */
            iconst_1
            putfield org.apache.coyote.ajp.AjpProcessor.empty:Z
         8: .line 507
            aload 0 /* this */
            iconst_0
            putfield org.apache.coyote.ajp.AjpProcessor.replay:Z
         9: .line 508
            aload 0 /* this */
            iconst_0
            putfield org.apache.coyote.ajp.AjpProcessor.responseFinished:Z
        10: .line 509
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.certificates:Lorg/apache/tomcat/util/buf/MessageBytes;
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.recycle:()V
        11: .line 510
            aload 0 /* this */
            iconst_0
            putfield org.apache.coyote.ajp.AjpProcessor.swallowResponse:Z
        12: .line 511
            aload 0 /* this */
            lconst_0
            putfield org.apache.coyote.ajp.AjpProcessor.bytesWritten:J
        13: .line 512
            return
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
         0: .line 518
            return
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
        start local 1 // boolean block
         0: .line 536
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.bodyMessage:Lorg/apache/coyote/ajp/AjpMessage;
            invokevirtual org.apache.coyote.ajp.AjpMessage.reset:()V
         1: .line 538
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.bodyMessage:Lorg/apache/coyote/ajp/AjpMessage;
            iload 1 /* block */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.readMessage:(Lorg/apache/coyote/ajp/AjpMessage;Z)Z
            ifne 3
         2: .line 539
            iconst_0
            ireturn
         3: .line 542
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.apache.coyote.ajp.AjpProcessor.waitingForBodyMessage:Z
         4: .line 545
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.bodyMessage:Lorg/apache/coyote/ajp/AjpMessage;
            invokevirtual org.apache.coyote.ajp.AjpMessage.getLen:()I
            ifne 6
         5: .line 547
            iconst_0
            ireturn
         6: .line 549
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.bodyMessage:Lorg/apache/coyote/ajp/AjpMessage;
            invokevirtual org.apache.coyote.ajp.AjpMessage.peekInt:()I
            istore 2 /* blen */
        start local 2 // int blen
         7: .line 550
            iload 2 /* blen */
            ifne 9
         8: .line 551
            iconst_0
            ireturn
         9: .line 554
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.bodyMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 0 /* this */
            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: .line 555
            aload 0 /* this */
            iconst_0
            putfield org.apache.coyote.ajp.AjpProcessor.empty:Z
        11: .line 556
            iconst_1
            ireturn
        end local 2 // int blen
        end local 1 // boolean block
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
        start local 1 // org.apache.coyote.ajp.AjpMessage message
        start local 2 // boolean block
         0: .line 574
            aload 1 /* message */
            invokevirtual org.apache.coyote.ajp.AjpMessage.getBuffer:()[B
            astore 3 /* buf */
        start local 3 // byte[] buf
         1: .line 576
            aload 0 /* this */
            aload 3 /* buf */
            iconst_0
            iconst_4
            iload 2 /* block */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.read:([BIIZ)Z
            ifne 3
         2: .line 577
            iconst_0
            ireturn
         3: .line 580
      StackMap locals: byte[]
      StackMap stack:
            aload 1 /* message */
            iconst_1
            invokevirtual org.apache.coyote.ajp.AjpMessage.processHeader:(Z)I
            istore 4 /* messageLength */
        start local 4 // int messageLength
         4: .line 581
            iload 4 /* messageLength */
            ifge 8
         5: .line 583
            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: .line 584
            iload 4 /* messageLength */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
         7: .line 583
            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: .line 586
      StackMap locals: int
      StackMap stack:
            iload 4 /* messageLength */
            ifne 10
         9: .line 588
            iconst_1
            ireturn
        10: .line 590
      StackMap locals:
      StackMap stack:
            iload 4 /* messageLength */
            aload 1 /* message */
            invokevirtual org.apache.coyote.ajp.AjpMessage.getBuffer:()[B
            arraylength
            if_icmple 16
        11: .line 593
            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: .line 594
            iload 4 /* messageLength */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 3 /* buf */
            arraylength
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        13: .line 593
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 5 /* msg */
        start local 5 // java.lang.String msg
        14: .line 595
            getstatic org.apache.coyote.ajp.AjpProcessor.log:Lorg/apache/juli/logging/Log;
            aload 5 /* msg */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        15: .line 596
            new java.lang.IllegalArgumentException
            dup
            aload 5 /* msg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.String msg
        16: .line 598
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* buf */
            iconst_4
            iload 4 /* messageLength */
            iconst_1
            invokevirtual org.apache.coyote.ajp.AjpProcessor.read:([BIIZ)Z
            pop
        17: .line 599
            iconst_1
            ireturn
        end local 4 // int messageLength
        end local 3 // byte[] buf
        end local 2 // boolean block
        end local 1 // org.apache.coyote.ajp.AjpMessage message
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
        start local 1 // boolean block
         0: .line 615
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.replay:Z
            ifeq 2
         1: .line 616
            aload 0 /* this */
            iconst_1
            putfield org.apache.coyote.ajp.AjpProcessor.endOfStream:Z
         2: .line 618
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.endOfStream:Z
            ifeq 4
         3: .line 619
            iconst_0
            ireturn
         4: .line 622
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.first:Z
            ifeq 13
         5: .line 623
            aload 0 /* this */
            iconst_0
            putfield org.apache.coyote.ajp.AjpProcessor.first:Z
         6: .line 624
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            invokevirtual org.apache.coyote.Request.getContentLengthLong:()J
            lstore 2 /* contentLength */
        start local 2 // long contentLength
         7: .line 630
            lload 2 /* contentLength */
            lconst_0
            lcmp
            ifle 10
         8: .line 631
            aload 0 /* this */
            iconst_1
            putfield org.apache.coyote.ajp.AjpProcessor.waitingForBodyMessage:Z
         9: .line 632
            goto 13
      StackMap locals: long
      StackMap stack:
        10: lload 2 /* contentLength */
            lconst_0
            lcmp
            ifne 13
        11: .line 633
            aload 0 /* this */
            iconst_1
            putfield org.apache.coyote.ajp.AjpProcessor.endOfStream:Z
        12: .line 634
            iconst_0
            ireturn
        end local 2 // long contentLength
        13: .line 639
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.waitingForBodyMessage:Z
            ifne 17
        14: .line 640
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            iconst_1
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.getBodyMessageArray:[B
            iconst_0
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.getBodyMessageArray:[B
            arraylength
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.write:(Z[BII)V
        15: .line 641
            aload 0 /* this */
            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: .line 642
            aload 0 /* this */
            iconst_1
            putfield org.apache.coyote.ajp.AjpProcessor.waitingForBodyMessage:Z
        17: .line 645
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* block */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.receive:(Z)Z
            istore 2 /* moreData */
        start local 2 // boolean moreData
        18: .line 646
            iload 2 /* moreData */
            ifne 20
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.waitingForBodyMessage:Z
            ifne 20
        19: .line 647
            aload 0 /* this */
            iconst_1
            putfield org.apache.coyote.ajp.AjpProcessor.endOfStream:Z
        20: .line 649
      StackMap locals: int
      StackMap stack:
            iload 2 /* moreData */
            ireturn
        end local 2 // boolean moreData
        end local 1 // boolean block
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
         0: .line 659
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            invokevirtual org.apache.coyote.ajp.AjpMessage.getByte:()B
            istore 1 /* methodCode */
        start local 1 // byte methodCode
         1: .line 660
            iload 1 /* methodCode */
            iconst_m1
            if_icmpeq 4
         2: .line 661
            iload 1 /* methodCode */
            iconst_1
            isub
            invokestatic org.apache.coyote.ajp.Constants.getMethodForCode:(I)Ljava/lang/String;
            astore 2 /* methodName */
        start local 2 // java.lang.String methodName
         3: .line 662
            aload 0 /* this */
            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 /* methodName */
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
        end local 2 // java.lang.String methodName
         4: .line 665
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 0 /* this */
            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: .line 666
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 0 /* this */
            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: .line 668
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 0 /* this */
            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: .line 669
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 0 /* this */
            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: .line 670
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 0 /* this */
            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: .line 671
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            aload 0 /* this */
            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: .line 673
            aload 0 /* this */
            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 /* isSSL */
        start local 2 // boolean isSSL
        13: .line 674
            iload 2 /* isSSL */
            ifeq 15
        14: .line 675
            aload 0 /* this */
            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: .line 679
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            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 /* headers */
        start local 3 // org.apache.tomcat.util.http.MimeHeaders headers
        16: .line 682
            aload 3 /* headers */
            aload 0 /* this */
            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: .line 684
            iconst_0
            istore 4 /* contentLengthSet */
        start local 4 // boolean contentLengthSet
        18: .line 685
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            invokevirtual org.apache.coyote.ajp.AjpMessage.getInt:()I
            istore 5 /* hCount */
        start local 5 // int hCount
        19: .line 686
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        20: goto 56
        21: .line 687
      StackMap locals: org.apache.coyote.ajp.AjpProcessor int int org.apache.tomcat.util.http.MimeHeaders int int int
      StackMap stack:
            aconst_null
            astore 7 /* hName */
        start local 7 // java.lang.String hName
        22: .line 692
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            invokevirtual org.apache.coyote.ajp.AjpMessage.peekInt:()I
            istore 8 /* isc */
        start local 8 // int isc
        23: .line 693
            iload 8 /* isc */
            sipush 255
            iand
            istore 9 /* hId */
        start local 9 // int hId
        24: .line 695
            aconst_null
            astore 10 /* vMB */
        start local 10 // org.apache.tomcat.util.buf.MessageBytes vMB
        25: .line 696
            iload 8 /* isc */
            ldc 65280
            iand
            istore 8 /* isc */
        26: .line 697
            ldc 40960
            iload 8 /* isc */
            if_icmpne 31
        27: .line 698
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            invokevirtual org.apache.coyote.ajp.AjpMessage.getInt:()I
            pop
        28: .line 699
            iload 9 /* hId */
            iconst_1
            isub
            invokestatic org.apache.coyote.ajp.Constants.getHeaderForCode:(I)Ljava/lang/String;
            astore 7 /* hName */
        29: .line 700
            aload 3 /* headers */
            aload 7 /* hName */
            invokevirtual org.apache.tomcat.util.http.MimeHeaders.addValue:(Ljava/lang/String;)Lorg/apache/tomcat/util/buf/MessageBytes;
            astore 10 /* vMB */
        30: .line 701
            goto 37
        31: .line 708
      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 /* hId */
        32: .line 709
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 0 /* this */
            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: .line 710
            aload 0 /* this */
            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 /* bc */
        start local 11 // org.apache.tomcat.util.buf.ByteChunk bc
        34: .line 711
            aload 3 /* headers */
            aload 11 /* bc */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getBuffer:()[B
        35: .line 712
            aload 11 /* bc */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getStart:()I
            aload 11 /* bc */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLength:()I
        36: .line 711
            invokevirtual org.apache.tomcat.util.http.MimeHeaders.addValue:([BII)Lorg/apache/tomcat/util/buf/MessageBytes;
            astore 10 /* vMB */
        end local 11 // org.apache.tomcat.util.buf.ByteChunk bc
        37: .line 715
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 10 /* vMB */
            invokevirtual org.apache.coyote.ajp.AjpMessage.getBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
        38: .line 717
            iload 9 /* hId */
            bipush 8
            if_icmpeq 40
        39: .line 718
            iload 9 /* hId */
            iconst_m1
            if_icmpne 48
            aload 0 /* this */
            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: .line 719
      StackMap locals:
      StackMap stack:
            aload 10 /* vMB */
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.getLong:()J
            lstore 11 /* cl */
        start local 11 // long cl
        41: .line 720
            iload 4 /* contentLengthSet */
            ifeq 45
        42: .line 721
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
            sipush 400
            invokevirtual org.apache.coyote.Response.setStatus:(I)V
        43: .line 722
            aload 0 /* this */
            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: .line 723
            goto 55
        45: .line 724
      StackMap locals: long
      StackMap stack:
            iconst_1
            istore 4 /* contentLengthSet */
        46: .line 726
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            lload 11 /* cl */
            invokevirtual org.apache.coyote.Request.setContentLength:(J)V
        end local 11 // long cl
        47: .line 728
            goto 55
      StackMap locals:
      StackMap stack:
        48: iload 9 /* hId */
            bipush 7
            if_icmpeq 50
        49: .line 729
            iload 9 /* hId */
            iconst_m1
            if_icmpne 55
            aload 0 /* this */
            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: .line 731
      StackMap locals:
      StackMap stack:
            aload 10 /* vMB */
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.getByteChunk:()Lorg/apache/tomcat/util/buf/ByteChunk;
            astore 11 /* bchunk */
        start local 11 // org.apache.tomcat.util.buf.ByteChunk bchunk
        51: .line 732
            aload 0 /* this */
            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 /* bchunk */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getBytes:()[B
        52: .line 733
            aload 11 /* bchunk */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getOffset:()I
        53: .line 734
            aload 11 /* bchunk */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLength:()I
        54: .line 732
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.setBytes:([BII)V
        end local 11 // org.apache.tomcat.util.buf.ByteChunk bchunk
        end local 10 // org.apache.tomcat.util.buf.MessageBytes vMB
        end local 9 // int hId
        end local 8 // int isc
        end local 7 // java.lang.String hName
        55: .line 686
      StackMap locals: org.apache.coyote.ajp.AjpProcessor int int org.apache.tomcat.util.http.MimeHeaders int int int
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        56: iload 6 /* i */
            iload 5 /* hCount */
            if_icmplt 21
        end local 6 // int i
        57: .line 739
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getSecret:()Ljava/lang/String;
            astore 6 /* secret */
        start local 6 // java.lang.String secret
        58: .line 740
            iconst_0
            istore 7 /* secretPresentInRequest */
        start local 7 // boolean secretPresentInRequest
        59: .line 742
            goto 138
        start local 8 // byte attributeCode
        60: .line 745
      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 /* attributeCode */
            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: .line 748
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 0 /* this */
            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: .line 749
            aload 0 /* this */
            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 /* n */
        start local 9 // java.lang.String n
        63: .line 750
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 0 /* this */
            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: .line 751
            aload 0 /* this */
            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 /* v */
        start local 10 // java.lang.String v
        65: .line 759
            aload 9 /* n */
            ldc "AJP_LOCAL_ADDR"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 68
        66: .line 760
            aload 0 /* this */
            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 /* v */
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
        67: .line 761
            goto 138
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
        68: aload 9 /* n */
            ldc "AJP_REMOTE_PORT"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 73
        69: .line 763
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            aload 10 /* v */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            invokevirtual org.apache.coyote.Request.setRemotePort:(I)V
        70: .line 764
            goto 138
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
        71: pop
        72: .line 767
            goto 138
      StackMap locals:
      StackMap stack:
        73: aload 9 /* n */
            ldc "AJP_SSL_PROTOCOL"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 76
        74: .line 768
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            ldc "org.apache.tomcat.util.net.secure_protocol_version"
            aload 10 /* v */
            invokevirtual org.apache.coyote.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        75: .line 769
            goto 138
      StackMap locals:
      StackMap stack:
        76: aload 9 /* n */
            ldc "JK_LB_ACTIVATION"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 79
        77: .line 770
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            aload 9 /* n */
            aload 10 /* v */
            invokevirtual org.apache.coyote.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        78: .line 771
            goto 138
      StackMap locals:
      StackMap stack:
        79: getstatic org.apache.coyote.ajp.AjpProcessor.jakartaAttributeMapping:Ljava/util/Map;
            aload 9 /* n */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 82
        80: .line 774
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            getstatic org.apache.coyote.ajp.AjpProcessor.jakartaAttributeMapping:Ljava/util/Map;
            aload 9 /* n */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            aload 10 /* v */
            invokevirtual org.apache.coyote.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        81: .line 775
            goto 138
      StackMap locals:
      StackMap stack:
        82: getstatic org.apache.coyote.ajp.AjpProcessor.iisTlsAttributes:Ljava/util/Set;
            aload 9 /* n */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 85
        83: .line 777
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            aload 9 /* n */
            aload 10 /* v */
            invokevirtual org.apache.coyote.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        84: .line 778
            goto 138
        85: .line 781
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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 /* pattern */
        start local 11 // java.util.regex.Pattern pattern
        86: .line 782
            aload 11 /* pattern */
            ifnull 89
            aload 11 /* pattern */
            aload 9 /* n */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 89
        87: .line 783
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            aload 9 /* n */
            aload 10 /* v */
            invokevirtual org.apache.coyote.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        88: .line 784
            goto 138
        89: .line 785
      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 /* n */
            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: .line 786
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
            sipush 403
            invokevirtual org.apache.coyote.Response.setStatus:(I)V
        91: .line 787
            aload 0 /* this */
            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 // java.util.regex.Pattern pattern
        92: .line 790
            goto 138
        end local 10 // java.lang.String v
        end local 9 // java.lang.String n
        93: .line 793
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 0 /* this */
            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: .line 795
            goto 138
        95: .line 798
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 0 /* this */
            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: .line 800
            goto 138
        97: .line 803
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getTomcatAuthorization:()Z
            istore 11 /* tomcatAuthorization */
        start local 11 // boolean tomcatAuthorization
        98: .line 804
            iload 11 /* tomcatAuthorization */
            ifne 99
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getTomcatAuthentication:()Z
            ifne 102
        99: .line 806
      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 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 0 /* this */
            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: .line 807
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            iload 11 /* tomcatAuthorization */
            invokevirtual org.apache.coyote.Request.setRemoteUserNeedsAuthorization:(Z)V
       101: .line 808
            goto 138
       102: .line 810
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 0 /* this */
            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: .line 812
            goto 138
        end local 11 // boolean tomcatAuthorization
       104: .line 815
      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 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getTomcatAuthentication:()Z
            ifeq 107
       105: .line 817
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 0 /* this */
            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: .line 818
            goto 138
       107: .line 819
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 0 /* this */
            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: .line 821
            goto 138
       109: .line 824
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 0 /* this */
            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: .line 825
            goto 138
       111: .line 828
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 0 /* this */
            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: .line 830
            goto 138
       113: .line 834
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 0 /* this */
            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: .line 835
            goto 138
       115: .line 838
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 0 /* this */
            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: .line 839
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            ldc "jakarta.servlet.request.cipher_suite"
       117: .line 840
            aload 0 /* this */
            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: .line 839
            invokevirtual org.apache.coyote.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
       119: .line 841
            goto 138
       120: .line 844
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 0 /* this */
            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: .line 845
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            ldc "jakarta.servlet.request.ssl_session_id"
       122: .line 846
            aload 0 /* this */
            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: .line 845
            invokevirtual org.apache.coyote.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
       124: .line 847
            goto 138
       125: .line 850
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            ldc "jakarta.servlet.request.key_size"
       126: .line 851
            aload 0 /* this */
            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: .line 850
            invokevirtual org.apache.coyote.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
       128: .line 852
            goto 138
       129: .line 855
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 0 /* this */
            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: .line 856
            goto 138
       131: .line 859
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 0 /* this */
            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: .line 860
            aload 6 /* secret */
            ifnull 138
            aload 6 /* secret */
            invokevirtual java.lang.String.length:()I
            ifle 138
       133: .line 861
            iconst_1
            istore 7 /* secretPresentInRequest */
       134: .line 862
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
            aload 6 /* secret */
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.equals:(Ljava/lang/String;)Z
            ifne 138
       135: .line 863
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
            sipush 403
            invokevirtual org.apache.coyote.Response.setStatus:(I)V
       136: .line 864
            aload 0 /* this */
            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: .line 867
            goto 138
        end local 8 // byte attributeCode
       138: .line 742
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.requestHeaderMessage:Lorg/apache/coyote/ajp/AjpMessage;
            invokevirtual org.apache.coyote.ajp.AjpMessage.getByte:()B
            dup
            istore 8 /* attributeCode */
        start local 8 // byte attributeCode
       139: .line 743
            iconst_m1
       140: .line 742
            if_icmpne 60
       141: .line 878
            aload 6 /* secret */
            ifnull 144
            aload 6 /* secret */
            invokevirtual java.lang.String.length:()I
            ifle 144
            iload 7 /* secretPresentInRequest */
            ifne 144
       142: .line 879
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
            sipush 403
            invokevirtual org.apache.coyote.Response.setStatus:(I)V
       143: .line 880
            aload 0 /* this */
            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: .line 884
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            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 /* uriBC */
        start local 9 // org.apache.tomcat.util.buf.ByteChunk uriBC
       145: .line 885
            aload 9 /* uriBC */
            ldc "http"
            iconst_0
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.startsWithIgnoreCase:(Ljava/lang/String;I)Z
            ifeq 166
       146: .line 887
            aload 9 /* uriBC */
            ldc "://"
            iconst_0
            iconst_3
            iconst_4
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.indexOf:(Ljava/lang/String;III)I
            istore 10 /* pos */
        start local 10 // int pos
       147: .line 888
            aload 9 /* uriBC */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getStart:()I
            istore 11 /* uriBCStart */
        start local 11 // int uriBCStart
       148: .line 889
            iconst_m1
            istore 12 /* slashPos */
        start local 12 // int slashPos
       149: .line 890
            iload 10 /* pos */
            iconst_m1
            if_icmpeq 166
       150: .line 891
            aload 9 /* uriBC */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getBytes:()[B
            astore 13 /* uriB */
        start local 13 // byte[] uriB
       151: .line 892
            aload 9 /* uriBC */
            bipush 47
            iload 10 /* pos */
            iconst_3
            iadd
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.indexOf:(CI)I
            istore 12 /* slashPos */
       152: .line 893
            iload 12 /* slashPos */
            iconst_m1
            if_icmpne 158
       153: .line 894
            aload 9 /* uriBC */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLength:()I
            istore 12 /* slashPos */
       154: .line 896
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            invokevirtual org.apache.coyote.Request.requestURI:()Lorg/apache/tomcat/util/buf/MessageBytes;
       155: .line 897
            aload 13 /* uriB */
            iload 11 /* uriBCStart */
            iload 10 /* pos */
            iadd
            iconst_1
            iadd
            iconst_1
       156: .line 896
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.setBytes:([BII)V
       157: .line 898
            goto 162
       158: .line 899
      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 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            invokevirtual org.apache.coyote.Request.requestURI:()Lorg/apache/tomcat/util/buf/MessageBytes;
       159: .line 900
            aload 13 /* uriB */
            iload 11 /* uriBCStart */
            iload 12 /* slashPos */
            iadd
       160: .line 901
            aload 9 /* uriBC */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLength:()I
            iload 12 /* slashPos */
            isub
       161: .line 899
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.setBytes:([BII)V
       162: .line 903
      StackMap locals:
      StackMap stack:
            aload 3 /* headers */
            ldc "host"
            invokevirtual org.apache.tomcat.util.http.MimeHeaders.setValue:(Ljava/lang/String;)Lorg/apache/tomcat/util/buf/MessageBytes;
            astore 14 /* hostMB */
        start local 14 // org.apache.tomcat.util.buf.MessageBytes hostMB
       163: .line 904
            aload 14 /* hostMB */
            aload 13 /* uriB */
            iload 11 /* uriBCStart */
            iload 10 /* pos */
            iadd
            iconst_3
            iadd
       164: .line 905
            iload 12 /* slashPos */
            iload 10 /* pos */
            isub
            iconst_3
            isub
       165: .line 904
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.setBytes:([BII)V
        end local 14 // org.apache.tomcat.util.buf.MessageBytes hostMB
        end local 13 // byte[] uriB
        end local 12 // int slashPos
        end local 11 // int uriBCStart
        end local 10 // int pos
       166: .line 910
      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 /* this */
            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 /* valueMB */
        start local 10 // org.apache.tomcat.util.buf.MessageBytes valueMB
       167: .line 911
            aload 0 /* this */
            aload 10 /* valueMB */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.parseHost:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
       168: .line 913
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.getErrorState:()Lorg/apache/coyote/ErrorState;
            invokevirtual org.apache.coyote.ErrorState.isIoAllowed:()Z
            ifne 170
       169: .line 914
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.getAdapter:()Lorg/apache/coyote/Adapter;
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            aload 0 /* this */
            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: .line 916
      StackMap locals: org.apache.tomcat.util.buf.MessageBytes
      StackMap stack:
            return
        end local 10 // org.apache.tomcat.util.buf.MessageBytes valueMB
        end local 9 // org.apache.tomcat.util.buf.ByteChunk uriBC
        end local 8 // byte attributeCode
        end local 7 // boolean secretPresentInRequest
        end local 6 // java.lang.String secret
        end local 5 // int hCount
        end local 4 // boolean contentLengthSet
        end local 3 // org.apache.tomcat.util.http.MimeHeaders headers
        end local 2 // boolean isSSL
        end local 1 // byte methodCode
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
         0: .line 928
            aload 0 /* this */
            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 /* this */
            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: .line 929
            goto 5
      StackMap locals:
      StackMap stack: java.io.IOException
         2: astore 1 /* e */
        start local 1 // java.io.IOException e
         3: .line 930
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
            sipush 400
            invokevirtual org.apache.coyote.Response.setStatus:(I)V
         4: .line 931
            aload 0 /* this */
            getstatic org.apache.coyote.ErrorState.CLOSE_CLEAN:Lorg/apache/coyote/ErrorState;
            aload 1 /* e */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.setErrorState:(Lorg/apache/coyote/ErrorState;Ljava/lang/Throwable;)V
        end local 1 // java.io.IOException e
         5: .line 933
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
         0: .line 945
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            aload 0 /* this */
            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: .line 946
            return
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
         0: .line 956
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
            iconst_1
            invokevirtual org.apache.coyote.Response.setCommitted:(Z)V
         1: .line 958
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.recycle:()V
         2: .line 959
            aload 0 /* this */
            iconst_m1
            putfield org.apache.coyote.ajp.AjpProcessor.responseMsgPos:I
         3: .line 960
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
            invokevirtual org.apache.coyote.ajp.AjpMessage.reset:()V
         4: .line 961
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
            iconst_4
            invokevirtual org.apache.coyote.ajp.AjpMessage.appendByte:(I)V
         5: .line 965
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
            invokevirtual org.apache.coyote.Response.getStatus:()I
            istore 1 /* statusCode */
        start local 1 // int statusCode
         6: .line 966
            iload 1 /* statusCode */
            sipush 200
            if_icmplt 8
            iload 1 /* statusCode */
            sipush 204
            if_icmpeq 8
            iload 1 /* statusCode */
            sipush 205
            if_icmpeq 8
         7: .line 967
            iload 1 /* statusCode */
            sipush 304
            if_icmpne 9
         8: .line 969
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.apache.coyote.ajp.AjpProcessor.swallowResponse:Z
         9: .line 974
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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 /* methodMB */
        start local 2 // org.apache.tomcat.util.buf.MessageBytes methodMB
        10: .line 975
            aload 2 /* methodMB */
            ldc "HEAD"
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.equals:(Ljava/lang/String;)Z
            ifeq 12
        11: .line 977
            aload 0 /* this */
            iconst_1
            putfield org.apache.coyote.ajp.AjpProcessor.swallowResponse:Z
        12: .line 981
      StackMap locals: org.apache.tomcat.util.buf.MessageBytes
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
            iload 1 /* statusCode */
            invokevirtual org.apache.coyote.ajp.AjpMessage.appendInt:(I)V
        13: .line 984
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.tmpMB:Lorg/apache/tomcat/util/buf/MessageBytes;
            aload 0 /* this */
            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: .line 985
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 0 /* this */
            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: .line 988
            aload 0 /* this */
            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 /* headers */
        start local 3 // org.apache.tomcat.util.http.MimeHeaders headers
        16: .line 989
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
            invokevirtual org.apache.coyote.Response.getContentType:()Ljava/lang/String;
            astore 4 /* contentType */
        start local 4 // java.lang.String contentType
        17: .line 990
            aload 4 /* contentType */
            ifnull 19
        18: .line 991
            aload 3 /* headers */
            ldc "Content-Type"
            invokevirtual org.apache.tomcat.util.http.MimeHeaders.setValue:(Ljava/lang/String;)Lorg/apache/tomcat/util/buf/MessageBytes;
            aload 4 /* contentType */
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
        19: .line 993
      StackMap locals: org.apache.tomcat.util.http.MimeHeaders java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
            invokevirtual org.apache.coyote.Response.getContentLanguage:()Ljava/lang/String;
            astore 5 /* contentLanguage */
        start local 5 // java.lang.String contentLanguage
        20: .line 994
            aload 5 /* contentLanguage */
            ifnull 22
        21: .line 995
            aload 3 /* headers */
            ldc "Content-Language"
            invokevirtual org.apache.tomcat.util.http.MimeHeaders.setValue:(Ljava/lang/String;)Lorg/apache/tomcat/util/buf/MessageBytes;
            aload 5 /* contentLanguage */
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
        22: .line 997
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.response:Lorg/apache/coyote/Response;
            invokevirtual org.apache.coyote.Response.getContentLengthLong:()J
            lstore 6 /* contentLength */
        start local 6 // long contentLength
        23: .line 998
            lload 6 /* contentLength */
            lconst_0
            lcmp
            iflt 25
        24: .line 999
            aload 3 /* headers */
            ldc "Content-Length"
            invokevirtual org.apache.tomcat.util.http.MimeHeaders.setValue:(Ljava/lang/String;)Lorg/apache/tomcat/util/buf/MessageBytes;
            lload 6 /* contentLength */
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.setLong:(J)V
        25: .line 1003
      StackMap locals: long
      StackMap stack:
            aload 3 /* headers */
            invokevirtual org.apache.tomcat.util.http.MimeHeaders.size:()I
            istore 8 /* numHeaders */
        start local 8 // int numHeaders
        26: .line 1004
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
            iload 8 /* numHeaders */
            invokevirtual org.apache.coyote.ajp.AjpMessage.appendInt:(I)V
        27: .line 1005
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        28: goto 38
        29: .line 1006
      StackMap locals: int int
      StackMap stack:
            aload 3 /* headers */
            iload 9 /* i */
            invokevirtual org.apache.tomcat.util.http.MimeHeaders.getName:(I)Lorg/apache/tomcat/util/buf/MessageBytes;
            astore 10 /* hN */
        start local 10 // org.apache.tomcat.util.buf.MessageBytes hN
        30: .line 1007
            aload 10 /* hN */
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.toString:()Ljava/lang/String;
            invokestatic org.apache.coyote.ajp.Constants.getResponseAjpIndex:(Ljava/lang/String;)I
            istore 11 /* hC */
        start local 11 // int hC
        31: .line 1008
            iload 11 /* hC */
            ifle 34
        32: .line 1009
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
            iload 11 /* hC */
            invokevirtual org.apache.coyote.ajp.AjpMessage.appendInt:(I)V
        33: .line 1010
            goto 35
        34: .line 1011
      StackMap locals: org.apache.tomcat.util.buf.MessageBytes int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 10 /* hN */
            invokevirtual org.apache.coyote.ajp.AjpMessage.appendBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
        35: .line 1013
      StackMap locals:
      StackMap stack:
            aload 3 /* headers */
            iload 9 /* i */
            invokevirtual org.apache.tomcat.util.http.MimeHeaders.getValue:(I)Lorg/apache/tomcat/util/buf/MessageBytes;
            astore 12 /* hV */
        start local 12 // org.apache.tomcat.util.buf.MessageBytes hV
        36: .line 1014
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 12 /* hV */
            invokevirtual org.apache.coyote.ajp.AjpMessage.appendBytes:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
        end local 12 // org.apache.tomcat.util.buf.MessageBytes hV
        end local 11 // int hC
        end local 10 // org.apache.tomcat.util.buf.MessageBytes hN
        37: .line 1005
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        38: iload 9 /* i */
            iload 8 /* numHeaders */
            if_icmplt 29
        end local 9 // int i
        39: .line 1018
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
            invokevirtual org.apache.coyote.ajp.AjpMessage.end:()V
        40: .line 1019
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            iconst_1
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
            invokevirtual org.apache.coyote.ajp.AjpMessage.getBuffer:()[B
            iconst_0
            aload 0 /* this */
            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: .line 1020
            aload 0 /* this */
            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: .line 1021
            return
        end local 8 // int numHeaders
        end local 6 // long contentLength
        end local 5 // java.lang.String contentLanguage
        end local 4 // java.lang.String contentType
        end local 3 // org.apache.tomcat.util.http.MimeHeaders headers
        end local 2 // org.apache.tomcat.util.buf.MessageBytes methodMB
        end local 1 // int statusCode
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
         0: .line 1032
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.responseFinished:Z
            ifne 4
         1: .line 1033
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getAjpFlush:()Z
            ifeq 3
         2: .line 1035
            aload 0 /* this */
            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: .line 1037
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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: .line 1039
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
         0: .line 1047
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.responseFinished:Z
            ifeq 2
         1: .line 1048
            return
         2: .line 1050
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.apache.coyote.ajp.AjpProcessor.responseFinished:Z
         3: .line 1053
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.waitingForBodyMessage:Z
            ifne 4
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.first:Z
            ifeq 5
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            invokevirtual org.apache.coyote.Request.getContentLengthLong:()J
            lconst_0
            lcmp
            ifle 5
         4: .line 1054
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual org.apache.coyote.ajp.AjpProcessor.refillReadBuffer:(Z)Z
            pop
         5: .line 1058
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AjpProcessor.getErrorState:()Lorg/apache/coyote/ErrorState;
            invokevirtual org.apache.coyote.ErrorState.isError:()Z
            ifeq 8
         6: .line 1059
            aload 0 /* this */
            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: .line 1060
            goto 9
         8: .line 1061
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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: .line 1063
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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: .line 1064
            return
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
        start local 1 // org.apache.coyote.ContinueResponseTiming continueResponseTiming
         0: .line 1070
            return
        end local 1 // org.apache.coyote.ContinueResponseTiming continueResponseTiming
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
        start local 1 // boolean doRead
         0: .line 1075
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.endOfStream:Z
            ifeq 2
         1: .line 1076
            iconst_0
            ireturn
         2: .line 1078
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.empty:Z
            ifeq 7
            iload 1 /* doRead */
            ifeq 7
         3: .line 1080
            aload 0 /* this */
            iconst_0
            invokevirtual org.apache.coyote.ajp.AjpProcessor.refillReadBuffer:(Z)Z
            pop
         4: .line 1081
            goto 7
      StackMap locals:
      StackMap stack: java.io.IOException
         5: pop
         6: .line 1085
            iconst_1
            ireturn
         7: .line 1088
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.empty:Z
            ifeq 9
         8: .line 1089
            iconst_0
            ireturn
         9: .line 1091
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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 // boolean doRead
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
        start local 1 // org.apache.tomcat.util.buf.ByteChunk body
         0: .line 1098
            aload 1 /* body */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLength:()I
            istore 2 /* length */
        start local 2 // int length
         1: .line 1099
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.bodyBytes:Lorg/apache/tomcat/util/buf/MessageBytes;
            aload 1 /* body */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getBytes:()[B
            aload 1 /* body */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getStart:()I
            iload 2 /* length */
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.setBytes:([BII)V
         2: .line 1100
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            iload 2 /* length */
            i2l
            invokevirtual org.apache.coyote.Request.setContentLength:(J)V
         3: .line 1101
            aload 0 /* this */
            iconst_0
            putfield org.apache.coyote.ajp.AjpProcessor.first:Z
         4: .line 1102
            aload 0 /* this */
            iconst_0
            putfield org.apache.coyote.ajp.AjpProcessor.empty:Z
         5: .line 1103
            aload 0 /* this */
            iconst_1
            putfield org.apache.coyote.ajp.AjpProcessor.replay:Z
         6: .line 1104
            aload 0 /* this */
            iconst_0
            putfield org.apache.coyote.ajp.AjpProcessor.endOfStream:Z
         7: .line 1105
            return
        end local 2 // int length
        end local 1 // org.apache.tomcat.util.buf.ByteChunk body
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
         0: .line 1110
            aload 0 /* this */
            iconst_1
            putfield org.apache.coyote.ajp.AjpProcessor.swallowResponse:Z
         1: .line 1111
            return
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
         0: .line 1121
            return
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
         0: .line 1128
            iconst_0
            ireturn
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
         0: .line 1135
            aload 0 /* this */
            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: .line 1137
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            invokevirtual org.apache.coyote.Request.remoteHost:()Lorg/apache/tomcat/util/buf/MessageBytes;
         2: .line 1138
            aload 0 /* this */
            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: .line 1137
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
         4: .line 1138
            invokevirtual java.net.InetAddress.getHostName:()Ljava/lang/String;
         5: .line 1137
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
         6: .line 1139
            goto 8
      StackMap locals:
      StackMap stack: java.io.IOException
         7: pop
         8: .line 1143
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
         0: .line 1148
            aload 0 /* this */
            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: .line 1149
            aload 0 /* this */
            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 /* certData */
        start local 1 // org.apache.tomcat.util.buf.ByteChunk certData
         2: .line 1150
            aconst_null
            astore 2 /* jsseCerts */
        start local 2 // java.security.cert.X509Certificate[] jsseCerts
         3: .line 1152
            new java.io.ByteArrayInputStream
            dup
            aload 1 /* certData */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getBytes:()[B
         4: .line 1153
            aload 1 /* certData */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getStart:()I
         5: .line 1154
            aload 1 /* certData */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLength:()I
         6: .line 1152
            invokespecial java.io.ByteArrayInputStream.<init>:([BII)V
         7: .line 1151
            astore 3 /* bais */
        start local 3 // java.io.ByteArrayInputStream bais
         8: .line 1158
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.protocol:Lorg/apache/coyote/ajp/AbstractAjpProtocol;
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getClientCertProvider:()Ljava/lang/String;
            astore 5 /* clientCertProvider */
        start local 5 // java.lang.String clientCertProvider
         9: .line 1159
            aload 5 /* clientCertProvider */
            ifnonnull 12
        10: .line 1160
            ldc "X.509"
            invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
            astore 4 /* cf */
        start local 4 // java.security.cert.CertificateFactory cf
        11: .line 1161
            goto 26
        end local 4 // java.security.cert.CertificateFactory cf
        12: .line 1162
      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: .line 1163
            aload 5 /* clientCertProvider */
        14: .line 1162
            invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
            astore 4 /* cf */
        start local 4 // java.security.cert.CertificateFactory cf
        15: .line 1165
            goto 26
        16: .line 1167
      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 /* cf */
            aload 3 /* bais */
            invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
        17: .line 1166
            checkcast java.security.cert.X509Certificate
            astore 6 /* cert */
        start local 6 // java.security.cert.X509Certificate cert
        18: .line 1168
            aload 2 /* jsseCerts */
            ifnonnull 22
        19: .line 1169
            iconst_1
            anewarray java.security.cert.X509Certificate
            astore 2 /* jsseCerts */
        20: .line 1170
            aload 2 /* jsseCerts */
            iconst_0
            aload 6 /* cert */
            aastore
        21: .line 1171
            goto 26
        22: .line 1172
      StackMap locals: java.security.cert.X509Certificate
      StackMap stack:
            aload 2 /* jsseCerts */
            arraylength
            iconst_1
            iadd
            anewarray java.security.cert.X509Certificate
            astore 7 /* temp */
        start local 7 // java.security.cert.X509Certificate[] temp
        23: .line 1173
            aload 2 /* jsseCerts */
            iconst_0
            aload 7 /* temp */
            iconst_0
            aload 2 /* jsseCerts */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        24: .line 1174
            aload 7 /* temp */
            aload 2 /* jsseCerts */
            arraylength
            aload 6 /* cert */
            aastore
        25: .line 1175
            aload 7 /* temp */
            astore 2 /* jsseCerts */
        end local 7 // java.security.cert.X509Certificate[] temp
        end local 6 // java.security.cert.X509Certificate cert
        26: .line 1165
      StackMap locals:
      StackMap stack:
            aload 3 /* bais */
            invokevirtual java.io.ByteArrayInputStream.available:()I
            ifgt 16
        end local 5 // java.lang.String clientCertProvider
        end local 4 // java.security.cert.CertificateFactory cf
        27: .line 1178
            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 /* e */
        start local 4 // java.security.cert.CertificateException e
        29: .line 1179
            aload 0 /* this */
            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 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        30: .line 1180
            return
        end local 4 // java.security.cert.CertificateException e
        31: .line 1181
      StackMap locals:
      StackMap stack: java.security.NoSuchProviderException
            astore 4 /* e */
        start local 4 // java.security.NoSuchProviderException e
        32: .line 1182
            aload 0 /* this */
            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 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        33: .line 1183
            return
        end local 4 // java.security.NoSuchProviderException e
        34: .line 1185
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.request:Lorg/apache/coyote/Request;
            ldc "jakarta.servlet.request.X509Certificate"
            aload 2 /* jsseCerts */
            invokevirtual org.apache.coyote.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 3 // java.io.ByteArrayInputStream bais
        end local 2 // java.security.cert.X509Certificate[] jsseCerts
        end local 1 // org.apache.tomcat.util.buf.ByteChunk certData
        35: .line 1187
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
         0: .line 1192
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.endOfStream:Z
            ireturn
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
         0: .line 1198
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.registerReadInterest:()V
         1: .line 1199
            return
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
         0: .line 1204
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.responseMsgPos:I
            iconst_m1
            if_icmpne 1
            aload 0 /* this */
            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 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
         0: .line 1212
            iconst_1
            ireturn
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
        start local 1 // byte[] buf
        start local 2 // int pos
        start local 3 // int n
        start local 4 // boolean block
         0: .line 1232
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            iload 4 /* block */
            aload 1 /* buf */
            iload 2 /* pos */
            iload 3 /* n */
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.read:(Z[BII)I
            istore 5 /* read */
        start local 5 // int read
         1: .line 1233
            iload 5 /* read */
            ifle 12
            iload 5 /* read */
            iload 3 /* n */
            if_icmpge 12
         2: .line 1234
            iload 3 /* n */
            iload 5 /* read */
            isub
            istore 6 /* left */
        start local 6 // int left
         3: .line 1235
            iload 2 /* pos */
            iload 5 /* read */
            iadd
            istore 7 /* start */
        start local 7 // int start
         4: .line 1236
            goto 10
         5: .line 1237
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            iconst_1
            aload 1 /* buf */
            iload 7 /* start */
            iload 6 /* left */
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.read:(Z[BII)I
            istore 5 /* read */
         6: .line 1238
            iload 5 /* read */
            iconst_m1
            if_icmpne 8
         7: .line 1239
            new java.io.EOFException
            dup
            invokespecial java.io.EOFException.<init>:()V
            athrow
         8: .line 1241
      StackMap locals:
      StackMap stack:
            iload 6 /* left */
            iload 5 /* read */
            isub
            istore 6 /* left */
         9: .line 1242
            iload 7 /* start */
            iload 5 /* read */
            iadd
            istore 7 /* start */
        10: .line 1236
      StackMap locals:
      StackMap stack:
            iload 6 /* left */
            ifgt 5
        end local 7 // int start
        end local 6 // int left
        11: .line 1244
            goto 14
      StackMap locals:
      StackMap stack:
        12: iload 5 /* read */
            iconst_m1
            if_icmpne 14
        13: .line 1245
            new java.io.EOFException
            dup
            invokespecial java.io.EOFException.<init>:()V
            athrow
        14: .line 1248
      StackMap locals:
      StackMap stack:
            iload 5 /* read */
            ifle 15
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        15: iconst_0
            ireturn
        end local 5 // int read
        end local 4 // boolean block
        end local 3 // int n
        end local 2 // int pos
        end local 1 // byte[] buf
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
        start local 1 // java.nio.ByteBuffer chunk
         0: .line 1253
            aload 0 /* this */
            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 /* blocking */
        start local 2 // boolean blocking
         3: .line 1255
            aload 1 /* chunk */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 3 /* len */
        start local 3 // int len
         4: .line 1256
            iconst_0
            istore 4 /* off */
        start local 4 // int off
         5: .line 1259
            goto 16
         6: .line 1260
      StackMap locals: int int int
      StackMap stack:
            iload 3 /* len */
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.outputMaxChunkSize:I
            invokestatic java.lang.Math.min:(II)I
            istore 5 /* thisTime */
        start local 5 // int thisTime
         7: .line 1262
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
            invokevirtual org.apache.coyote.ajp.AjpMessage.reset:()V
         8: .line 1263
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
            iconst_3
            invokevirtual org.apache.coyote.ajp.AjpMessage.appendByte:(I)V
         9: .line 1264
            aload 1 /* chunk */
            aload 1 /* chunk */
            invokevirtual java.nio.ByteBuffer.position:()I
            iload 5 /* thisTime */
            iadd
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        10: .line 1265
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
            aload 1 /* chunk */
            invokevirtual org.apache.coyote.ajp.AjpMessage.appendBytes:(Ljava/nio/ByteBuffer;)V
        11: .line 1266
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
            invokevirtual org.apache.coyote.ajp.AjpMessage.end:()V
        12: .line 1267
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            iload 2 /* blocking */
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.responseMessage:Lorg/apache/coyote/ajp/AjpMessage;
            invokevirtual org.apache.coyote.ajp.AjpMessage.getBuffer:()[B
            iconst_0
            aload 0 /* this */
            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: .line 1268
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            iload 2 /* blocking */
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.flush:(Z)Z
            pop
        14: .line 1270
            iload 3 /* len */
            iload 5 /* thisTime */
            isub
            istore 3 /* len */
        15: .line 1271
            iload 4 /* off */
            iload 5 /* thisTime */
            iadd
            istore 4 /* off */
        end local 5 // int thisTime
        16: .line 1259
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            ifgt 6
        17: .line 1274
            aload 0 /* this */
            dup
            getfield org.apache.coyote.ajp.AjpProcessor.bytesWritten:J
            iload 4 /* off */
            i2l
            ladd
            putfield org.apache.coyote.ajp.AjpProcessor.bytesWritten:J
        18: .line 1275
            return
        end local 4 // int off
        end local 3 // int len
        end local 2 // boolean blocking
        end local 1 // java.nio.ByteBuffer chunk
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
         0: .line 1279
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AjpProcessor.responseMsgPos:I
            iconst_m1
            if_icmpne 1
            aload 0 /* this */
            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 // org.apache.coyote.ajp.AjpProcessor this
      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 // org.apache.coyote.ajp.AjpProcessor this
         0: .line 1285
            getstatic org.apache.coyote.ajp.AjpProcessor.log:Lorg/apache/juli/logging/Log;
            areturn
        end local 0 // org.apache.coyote.ajp.AjpProcessor this
      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: .line 60
            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: .line 1
            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