class io.undertow.protocols.ajp.AjpResponseParser
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: io.undertow.protocols.ajp.AjpResponseParser
  super_class: java.lang.Object
{
  public static final io.undertow.protocols.ajp.AjpResponseParser INSTANCE;
    descriptor: Lio/undertow/protocols/ajp/AjpResponseParser;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final int AB;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16706

  public static final int BEGIN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int READING_MAGIC_NUMBER;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int READING_DATA_SIZE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int READING_PREFIX_CODE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  public static final int READING_STATUS_CODE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int READING_REASON_PHRASE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  public static final int READING_NUM_HEADERS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  public static final int READING_HEADERS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  public static final int READING_PERSISTENT_BOOLEAN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  public static final int READING_BODY_CHUNK_LENGTH;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 9

  public static final int DONE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  int state;
    descriptor: I
    flags: (0x0000) 

  byte prefix;
    descriptor: B
    flags: (0x0000) 

  int numHeaders;
    descriptor: I
    flags: (0x0000) 

  io.undertow.util.HttpString currentHeader;
    descriptor: Lio/undertow/util/HttpString;
    flags: (0x0000) 

  int statusCode;
    descriptor: I
    flags: (0x0000) 

  java.lang.String reasonPhrase;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  io.undertow.util.HeaderMap headers;
    descriptor: Lio/undertow/util/HeaderMap;
    flags: (0x0000) 

  int readBodyChunkSize;
    descriptor: I
    flags: (0x0000) 

  public static final int STRING_LENGTH_MASK;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2147483648

  public int stringLength;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  public java.lang.StringBuilder currentString;
    descriptor: Ljava/lang/StringBuilder;
    flags: (0x0001) ACC_PUBLIC

  public int currentIntegerPart;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  boolean containsUrlCharacters;
    descriptor: Z
    flags: (0x0000) 

  public int readHeaders;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 39
            new io.undertow.protocols.ajp.AjpResponseParser
            dup
            invokespecial io.undertow.protocols.ajp.AjpResponseParser.<init>:()V
            putstatic io.undertow.protocols.ajp.AjpResponseParser.INSTANCE:Lio/undertow/protocols/ajp/AjpResponseParser;
         1: .line 221
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.undertow.protocols.ajp.AjpResponseParser this
         0: .line 37
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 59
            aload 0 /* this */
            iconst_0
            putfield io.undertow.protocols.ajp.AjpResponseParser.numHeaders:I
         2: .line 65
            aload 0 /* this */
            new io.undertow.util.HeaderMap
            dup
            invokespecial io.undertow.util.HeaderMap.<init>:()V
            putfield io.undertow.protocols.ajp.AjpResponseParser.headers:Lio/undertow/util/HeaderMap;
         3: .line 226
            aload 0 /* this */
            iconst_m1
            putfield io.undertow.protocols.ajp.AjpResponseParser.stringLength:I
         4: .line 237
            aload 0 /* this */
            iconst_m1
            putfield io.undertow.protocols.ajp.AjpResponseParser.currentIntegerPart:I
         5: .line 238
            aload 0 /* this */
            iconst_0
            putfield io.undertow.protocols.ajp.AjpResponseParser.containsUrlCharacters:Z
         6: .line 239
            aload 0 /* this */
            iconst_0
            putfield io.undertow.protocols.ajp.AjpResponseParser.readHeaders:I
         7: .line 37
            return
        end local 0 // io.undertow.protocols.ajp.AjpResponseParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lio/undertow/protocols/ajp/AjpResponseParser;

  public boolean isComplete();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.undertow.protocols.ajp.AjpResponseParser this
         0: .line 69
            aload 0 /* this */
            getfield io.undertow.protocols.ajp.AjpResponseParser.state:I
            bipush 10
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // io.undertow.protocols.ajp.AjpResponseParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/undertow/protocols/ajp/AjpResponseParser;

  public void parse(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // io.undertow.protocols.ajp.AjpResponseParser this
        start local 1 // java.nio.ByteBuffer buf
         0: .line 73
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 2
         1: .line 74
            return
         2: .line 76
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.protocols.ajp.AjpResponseParser.state:I
            tableswitch { // 0 - 7
                    0: 3
                    1: 68
                    2: 8
                    3: 12
                    4: 26
                    5: 36
                    6: 42
                    7: 47
              default: 68
          }
         3: .line 78
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            invokevirtual io.undertow.protocols.ajp.AjpResponseParser.parse16BitInteger:(Ljava/nio/ByteBuffer;)Lio/undertow/protocols/ajp/AjpResponseParser$IntegerHolder;
            astore 2 /* result */
        start local 2 // io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder result
         4: .line 79
            aload 2 /* result */
            getfield io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder.readComplete:Z
            ifne 6
         5: .line 80
            return
         6: .line 82
      StackMap locals: io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder
      StackMap stack:
            aload 2 /* result */
            getfield io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder.value:I
            sipush 16706
            if_icmpeq 8
         7: .line 83
            new java.io.IOException
            dup
            ldc "Wrong magic number"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder result
         8: .line 88
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            invokevirtual io.undertow.protocols.ajp.AjpResponseParser.parse16BitInteger:(Ljava/nio/ByteBuffer;)Lio/undertow/protocols/ajp/AjpResponseParser$IntegerHolder;
            astore 2 /* result */
        start local 2 // io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder result
         9: .line 89
            aload 2 /* result */
            getfield io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder.readComplete:Z
            ifne 12
        10: .line 90
            aload 0 /* this */
            iconst_2
            putfield io.undertow.protocols.ajp.AjpResponseParser.state:I
        11: .line 91
            return
        end local 2 // io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder result
        12: .line 95
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 15
        13: .line 96
            aload 0 /* this */
            iconst_3
            putfield io.undertow.protocols.ajp.AjpResponseParser.state:I
        14: .line 97
            return
        15: .line 99
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 2 /* prefix */
        start local 2 // byte prefix
        16: .line 100
            aload 0 /* this */
            iload 2 /* prefix */
            putfield io.undertow.protocols.ajp.AjpResponseParser.prefix:B
        17: .line 101
            iload 2 /* prefix */
            iconst_5
            if_icmpne 20
        18: .line 102
            aload 0 /* this */
            bipush 8
            putfield io.undertow.protocols.ajp.AjpResponseParser.state:I
        19: .line 103
            goto 68
        20: .line 104
      StackMap locals: int
      StackMap stack:
            iload 2 /* prefix */
            iconst_3
            if_icmpne 23
        21: .line 105
            aload 0 /* this */
            bipush 9
            putfield io.undertow.protocols.ajp.AjpResponseParser.state:I
        22: .line 106
            goto 68
        23: .line 107
      StackMap locals:
      StackMap stack:
            iload 2 /* prefix */
            iconst_4
            if_icmpeq 26
            iload 2 /* prefix */
            bipush 6
            if_icmpeq 26
        24: .line 108
            aload 0 /* this */
            bipush 10
            putfield io.undertow.protocols.ajp.AjpResponseParser.state:I
        25: .line 109
            return
        end local 2 // byte prefix
        26: .line 117
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            invokevirtual io.undertow.protocols.ajp.AjpResponseParser.parse16BitInteger:(Ljava/nio/ByteBuffer;)Lio/undertow/protocols/ajp/AjpResponseParser$IntegerHolder;
            astore 2 /* result */
        start local 2 // io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder result
        27: .line 118
            aload 2 /* result */
            getfield io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder.readComplete:Z
            ifeq 34
        28: .line 119
            aload 0 /* this */
            getfield io.undertow.protocols.ajp.AjpResponseParser.prefix:B
            iconst_4
            if_icmpne 31
        29: .line 120
            aload 0 /* this */
            aload 2 /* result */
            getfield io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder.value:I
            putfield io.undertow.protocols.ajp.AjpResponseParser.statusCode:I
        30: .line 121
            goto 36
        31: .line 124
      StackMap locals: io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder
      StackMap stack:
            aload 0 /* this */
            bipush 10
            putfield io.undertow.protocols.ajp.AjpResponseParser.state:I
        32: .line 125
            aload 0 /* this */
            aload 2 /* result */
            getfield io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder.value:I
            putfield io.undertow.protocols.ajp.AjpResponseParser.readBodyChunkSize:I
        33: .line 126
            return
        34: .line 129
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_4
            putfield io.undertow.protocols.ajp.AjpResponseParser.state:I
        35: .line 130
            return
        end local 2 // io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder result
        36: .line 134
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            invokevirtual io.undertow.protocols.ajp.AjpResponseParser.parseString:(Ljava/nio/ByteBuffer;Z)Lio/undertow/protocols/ajp/AjpResponseParser$StringHolder;
            astore 2 /* result */
        start local 2 // io.undertow.protocols.ajp.AjpResponseParser$StringHolder result
        37: .line 135
            aload 2 /* result */
            getfield io.undertow.protocols.ajp.AjpResponseParser$StringHolder.readComplete:Z
            ifeq 40
        38: .line 136
            aload 0 /* this */
            aload 2 /* result */
            getfield io.undertow.protocols.ajp.AjpResponseParser$StringHolder.value:Ljava/lang/String;
            putfield io.undertow.protocols.ajp.AjpResponseParser.reasonPhrase:Ljava/lang/String;
        39: .line 138
            goto 42
        40: .line 139
      StackMap locals: io.undertow.protocols.ajp.AjpResponseParser$StringHolder
      StackMap stack:
            aload 0 /* this */
            iconst_5
            putfield io.undertow.protocols.ajp.AjpResponseParser.state:I
        41: .line 140
            return
        end local 2 // io.undertow.protocols.ajp.AjpResponseParser$StringHolder result
        42: .line 144
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            invokevirtual io.undertow.protocols.ajp.AjpResponseParser.parse16BitInteger:(Ljava/nio/ByteBuffer;)Lio/undertow/protocols/ajp/AjpResponseParser$IntegerHolder;
            astore 2 /* result */
        start local 2 // io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder result
        43: .line 145
            aload 2 /* result */
            getfield io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder.readComplete:Z
            ifne 46
        44: .line 146
            aload 0 /* this */
            bipush 6
            putfield io.undertow.protocols.ajp.AjpResponseParser.state:I
        45: .line 147
            return
        46: .line 149
      StackMap locals: io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder
      StackMap stack:
            aload 0 /* this */
            aload 2 /* result */
            getfield io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder.value:I
            putfield io.undertow.protocols.ajp.AjpResponseParser.numHeaders:I
        end local 2 // io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder result
        47: .line 153
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.protocols.ajp.AjpResponseParser.readHeaders:I
            istore 2 /* readHeaders */
        start local 2 // int readHeaders
        48: .line 154
            goto 67
        49: .line 155
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.protocols.ajp.AjpResponseParser.currentHeader:Lio/undertow/util/HttpString;
            ifnonnull 59
        50: .line 156
            aload 0 /* this */
            aload 1 /* buf */
            iconst_1
            invokevirtual io.undertow.protocols.ajp.AjpResponseParser.parseString:(Ljava/nio/ByteBuffer;Z)Lio/undertow/protocols/ajp/AjpResponseParser$StringHolder;
            astore 3 /* result */
        start local 3 // io.undertow.protocols.ajp.AjpResponseParser$StringHolder result
        51: .line 157
            aload 3 /* result */
            getfield io.undertow.protocols.ajp.AjpResponseParser$StringHolder.readComplete:Z
            ifne 55
        52: .line 158
            aload 0 /* this */
            bipush 7
            putfield io.undertow.protocols.ajp.AjpResponseParser.state:I
        53: .line 159
            aload 0 /* this */
            iload 2 /* readHeaders */
            putfield io.undertow.protocols.ajp.AjpResponseParser.readHeaders:I
        54: .line 160
            return
        55: .line 162
      StackMap locals: io.undertow.protocols.ajp.AjpResponseParser$StringHolder
      StackMap stack:
            aload 3 /* result */
            getfield io.undertow.protocols.ajp.AjpResponseParser$StringHolder.header:Lio/undertow/util/HttpString;
            ifnull 58
        56: .line 163
            aload 0 /* this */
            aload 3 /* result */
            getfield io.undertow.protocols.ajp.AjpResponseParser$StringHolder.header:Lio/undertow/util/HttpString;
            putfield io.undertow.protocols.ajp.AjpResponseParser.currentHeader:Lio/undertow/util/HttpString;
        57: .line 164
            goto 59
        58: .line 165
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* result */
            getfield io.undertow.protocols.ajp.AjpResponseParser$StringHolder.value:Ljava/lang/String;
            invokestatic io.undertow.util.HttpString.tryFromString:(Ljava/lang/String;)Lio/undertow/util/HttpString;
            putfield io.undertow.protocols.ajp.AjpResponseParser.currentHeader:Lio/undertow/util/HttpString;
        end local 3 // io.undertow.protocols.ajp.AjpResponseParser$StringHolder result
        59: .line 168
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            invokevirtual io.undertow.protocols.ajp.AjpResponseParser.parseString:(Ljava/nio/ByteBuffer;Z)Lio/undertow/protocols/ajp/AjpResponseParser$StringHolder;
            astore 3 /* result */
        start local 3 // io.undertow.protocols.ajp.AjpResponseParser$StringHolder result
        60: .line 169
            aload 3 /* result */
            getfield io.undertow.protocols.ajp.AjpResponseParser$StringHolder.readComplete:Z
            ifne 64
        61: .line 170
            aload 0 /* this */
            bipush 7
            putfield io.undertow.protocols.ajp.AjpResponseParser.state:I
        62: .line 171
            aload 0 /* this */
            iload 2 /* readHeaders */
            putfield io.undertow.protocols.ajp.AjpResponseParser.readHeaders:I
        63: .line 172
            return
        64: .line 174
      StackMap locals: io.undertow.protocols.ajp.AjpResponseParser$StringHolder
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.protocols.ajp.AjpResponseParser.headers:Lio/undertow/util/HeaderMap;
            aload 0 /* this */
            getfield io.undertow.protocols.ajp.AjpResponseParser.currentHeader:Lio/undertow/util/HttpString;
            aload 3 /* result */
            getfield io.undertow.protocols.ajp.AjpResponseParser$StringHolder.value:Ljava/lang/String;
            invokevirtual io.undertow.util.HeaderMap.add:(Lio/undertow/util/HttpString;Ljava/lang/String;)Lio/undertow/util/HeaderMap;
            pop
        65: .line 175
            aload 0 /* this */
            aconst_null
            putfield io.undertow.protocols.ajp.AjpResponseParser.currentHeader:Lio/undertow/util/HttpString;
        66: .line 176
            iinc 2 /* readHeaders */ 1
        end local 3 // io.undertow.protocols.ajp.AjpResponseParser$StringHolder result
        67: .line 154
      StackMap locals:
      StackMap stack:
            iload 2 /* readHeaders */
            aload 0 /* this */
            getfield io.undertow.protocols.ajp.AjpResponseParser.numHeaders:I
            if_icmplt 49
        end local 2 // int readHeaders
        68: .line 182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.protocols.ajp.AjpResponseParser.state:I
            bipush 8
            if_icmpne 74
        69: .line 183
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 71
        70: .line 184
            return
        71: .line 186
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.get:()B
            putfield io.undertow.protocols.ajp.AjpResponseParser.currentIntegerPart:I
        72: .line 187
            aload 0 /* this */
            bipush 10
            putfield io.undertow.protocols.ajp.AjpResponseParser.state:I
        73: .line 188
            return
        74: .line 189
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.protocols.ajp.AjpResponseParser.state:I
            bipush 9
            if_icmpne 80
        75: .line 190
            aload 0 /* this */
            aload 1 /* buf */
            invokevirtual io.undertow.protocols.ajp.AjpResponseParser.parse16BitInteger:(Ljava/nio/ByteBuffer;)Lio/undertow/protocols/ajp/AjpResponseParser$IntegerHolder;
            astore 2 /* result */
        start local 2 // io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder result
        76: .line 191
            aload 2 /* result */
            getfield io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder.readComplete:Z
            ifeq 79
        77: .line 192
            aload 0 /* this */
            aload 2 /* result */
            getfield io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder.value:I
            putfield io.undertow.protocols.ajp.AjpResponseParser.currentIntegerPart:I
        78: .line 193
            aload 0 /* this */
            bipush 10
            putfield io.undertow.protocols.ajp.AjpResponseParser.state:I
        79: .line 195
      StackMap locals: io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder
      StackMap stack:
            return
        end local 2 // io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder result
        80: .line 197
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 10
            putfield io.undertow.protocols.ajp.AjpResponseParser.state:I
        81: .line 199
            return
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // io.undertow.protocols.ajp.AjpResponseParser this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   82     0         this  Lio/undertow/protocols/ajp/AjpResponseParser;
            0   82     1          buf  Ljava/nio/ByteBuffer;
            4    8     2       result  Lio/undertow/protocols/ajp/AjpResponseParser$IntegerHolder;
            9   12     2       result  Lio/undertow/protocols/ajp/AjpResponseParser$IntegerHolder;
           16   26     2       prefix  B
           27   36     2       result  Lio/undertow/protocols/ajp/AjpResponseParser$IntegerHolder;
           37   42     2       result  Lio/undertow/protocols/ajp/AjpResponseParser$StringHolder;
           43   47     2       result  Lio/undertow/protocols/ajp/AjpResponseParser$IntegerHolder;
           48   68     2  readHeaders  I
           51   59     3       result  Lio/undertow/protocols/ajp/AjpResponseParser$StringHolder;
           60   67     3       result  Lio/undertow/protocols/ajp/AjpResponseParser$StringHolder;
           76   80     2       result  Lio/undertow/protocols/ajp/AjpResponseParser$IntegerHolder;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      buf   final

  protected io.undertow.util.HttpString headers(int);
    descriptor: (I)Lio/undertow/util/HttpString;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.protocols.ajp.AjpResponseParser this
        start local 1 // int offset
         0: .line 202
            getstatic io.undertow.protocols.ajp.AjpConstants.HTTP_HEADERS_ARRAY:[Lio/undertow/util/HttpString;
            iload 1 /* offset */
            aaload
            areturn
        end local 1 // int offset
        end local 0 // io.undertow.protocols.ajp.AjpResponseParser this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lio/undertow/protocols/ajp/AjpResponseParser;
            0    1     1  offset  I
    MethodParameters:
        Name  Flags
      offset  

  public io.undertow.util.HeaderMap getHeaders();
    descriptor: ()Lio/undertow/util/HeaderMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.protocols.ajp.AjpResponseParser this
         0: .line 206
            aload 0 /* this */
            getfield io.undertow.protocols.ajp.AjpResponseParser.headers:Lio/undertow/util/HeaderMap;
            areturn
        end local 0 // io.undertow.protocols.ajp.AjpResponseParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/protocols/ajp/AjpResponseParser;

  public int getStatusCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.protocols.ajp.AjpResponseParser this
         0: .line 210
            aload 0 /* this */
            getfield io.undertow.protocols.ajp.AjpResponseParser.statusCode:I
            ireturn
        end local 0 // io.undertow.protocols.ajp.AjpResponseParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/protocols/ajp/AjpResponseParser;

  public java.lang.String getReasonPhrase();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.protocols.ajp.AjpResponseParser this
         0: .line 214
            aload 0 /* this */
            getfield io.undertow.protocols.ajp.AjpResponseParser.reasonPhrase:Ljava/lang/String;
            areturn
        end local 0 // io.undertow.protocols.ajp.AjpResponseParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/protocols/ajp/AjpResponseParser;

  public int getReadBodyChunkSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.protocols.ajp.AjpResponseParser this
         0: .line 218
            aload 0 /* this */
            getfield io.undertow.protocols.ajp.AjpResponseParser.readBodyChunkSize:I
            ireturn
        end local 0 // io.undertow.protocols.ajp.AjpResponseParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/protocols/ajp/AjpResponseParser;

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.undertow.protocols.ajp.AjpResponseParser this
         0: .line 243
            aload 0 /* this */
            iconst_0
            putfield io.undertow.protocols.ajp.AjpResponseParser.state:I
         1: .line 244
            aload 0 /* this */
            iconst_0
            putfield io.undertow.protocols.ajp.AjpResponseParser.prefix:B
         2: .line 245
            aload 0 /* this */
            iconst_0
            putfield io.undertow.protocols.ajp.AjpResponseParser.numHeaders:I
         3: .line 246
            aload 0 /* this */
            aconst_null
            putfield io.undertow.protocols.ajp.AjpResponseParser.currentHeader:Lio/undertow/util/HttpString;
         4: .line 248
            aload 0 /* this */
            iconst_0
            putfield io.undertow.protocols.ajp.AjpResponseParser.statusCode:I
         5: .line 249
            aload 0 /* this */
            aconst_null
            putfield io.undertow.protocols.ajp.AjpResponseParser.reasonPhrase:Ljava/lang/String;
         6: .line 250
            aload 0 /* this */
            new io.undertow.util.HeaderMap
            dup
            invokespecial io.undertow.util.HeaderMap.<init>:()V
            putfield io.undertow.protocols.ajp.AjpResponseParser.headers:Lio/undertow/util/HeaderMap;
         7: .line 251
            aload 0 /* this */
            iconst_m1
            putfield io.undertow.protocols.ajp.AjpResponseParser.stringLength:I
         8: .line 252
            aload 0 /* this */
            aconst_null
            putfield io.undertow.protocols.ajp.AjpResponseParser.currentString:Ljava/lang/StringBuilder;
         9: .line 253
            aload 0 /* this */
            iconst_m1
            putfield io.undertow.protocols.ajp.AjpResponseParser.currentIntegerPart:I
        10: .line 254
            aload 0 /* this */
            iconst_0
            putfield io.undertow.protocols.ajp.AjpResponseParser.readHeaders:I
        11: .line 255
            return
        end local 0 // io.undertow.protocols.ajp.AjpResponseParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lio/undertow/protocols/ajp/AjpResponseParser;

  protected io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder parse16BitInteger(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Lio/undertow/protocols/ajp/AjpResponseParser$IntegerHolder;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // io.undertow.protocols.ajp.AjpResponseParser this
        start local 1 // java.nio.ByteBuffer buf
         0: .line 258
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 2
         1: .line 259
            new io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder
            dup
            iconst_m1
            iconst_0
            invokespecial io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder.<init>:(IZ)V
            areturn
         2: .line 261
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.protocols.ajp.AjpResponseParser.currentIntegerPart:I
            istore 2 /* number */
        start local 2 // int number
         3: .line 262
            iload 2 /* number */
            iconst_m1
            if_icmpne 5
         4: .line 263
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            istore 2 /* number */
         5: .line 265
      StackMap locals: int
      StackMap stack:
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 10
         6: .line 266
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 3 /* b */
        start local 3 // byte b
         7: .line 267
            sipush 255
            iload 2 /* number */
            iand
            bipush 8
            ishl
            iload 3 /* b */
            sipush 255
            iand
            iadd
            istore 4 /* result */
        start local 4 // int result
         8: .line 268
            aload 0 /* this */
            iconst_m1
            putfield io.undertow.protocols.ajp.AjpResponseParser.currentIntegerPart:I
         9: .line 269
            new io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder
            dup
            iload 4 /* result */
            iconst_1
            invokespecial io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder.<init>:(IZ)V
            areturn
        end local 4 // int result
        end local 3 // byte b
        10: .line 271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* number */
            putfield io.undertow.protocols.ajp.AjpResponseParser.currentIntegerPart:I
        11: .line 272
            new io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder
            dup
            iconst_m1
            iconst_0
            invokespecial io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder.<init>:(IZ)V
            areturn
        end local 2 // int number
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // io.undertow.protocols.ajp.AjpResponseParser this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lio/undertow/protocols/ajp/AjpResponseParser;
            0   12     1     buf  Ljava/nio/ByteBuffer;
            3   12     2  number  I
            7   10     3       b  B
            8   10     4  result  I
    MethodParameters:
      Name  Flags
      buf   

  protected io.undertow.protocols.ajp.AjpResponseParser$StringHolder parseString(java.nio.ByteBuffer, boolean);
    descriptor: (Ljava/nio/ByteBuffer;Z)Lio/undertow/protocols/ajp/AjpResponseParser$StringHolder;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // io.undertow.protocols.ajp.AjpResponseParser this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // boolean header
         0: .line 277
            aload 0 /* this */
            getfield io.undertow.protocols.ajp.AjpResponseParser.containsUrlCharacters:Z
            istore 3 /* containsUrlCharacters */
        start local 3 // boolean containsUrlCharacters
         1: .line 278
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 3
         2: .line 279
            new io.undertow.protocols.ajp.AjpResponseParser$StringHolder
            dup
            aconst_null
            iconst_0
            iconst_0
            invokespecial io.undertow.protocols.ajp.AjpResponseParser$StringHolder.<init>:(Ljava/lang/String;ZZ)V
            areturn
         3: .line 281
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.protocols.ajp.AjpResponseParser.stringLength:I
            istore 4 /* stringLength */
        start local 4 // int stringLength
         4: .line 282
            iload 4 /* stringLength */
            iconst_m1
            if_icmpne 12
         5: .line 283
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            istore 5 /* number */
        start local 5 // int number
         6: .line 284
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 10
         7: .line 285
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 6 /* b */
        start local 6 // byte b
         8: .line 286
            sipush 255
            iload 5 /* number */
            iand
            bipush 8
            ishl
            iload 6 /* b */
            sipush 255
            iand
            iadd
            istore 4 /* stringLength */
        end local 6 // byte b
         9: .line 287
            goto 15
        10: .line 288
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            iload 5 /* number */
            ldc -2147483648
            ior
            putfield io.undertow.protocols.ajp.AjpResponseParser.stringLength:I
        11: .line 289
            new io.undertow.protocols.ajp.AjpResponseParser$StringHolder
            dup
            aconst_null
            iconst_0
            iconst_0
            invokespecial io.undertow.protocols.ajp.AjpResponseParser$StringHolder.<init>:(Ljava/lang/String;ZZ)V
            areturn
        end local 5 // int number
        12: .line 291
      StackMap locals:
      StackMap stack:
            iload 4 /* stringLength */
            ldc -2147483648
            iand
            ifeq 15
        13: .line 292
            iload 4 /* stringLength */
            ldc 2147483647
            iand
            istore 5 /* number */
        start local 5 // int number
        14: .line 293
            sipush 255
            iload 5 /* number */
            iand
            bipush 8
            ishl
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            iadd
            istore 4 /* stringLength */
        end local 5 // int number
        15: .line 295
      StackMap locals:
      StackMap stack:
            iload 2 /* header */
            ifeq 18
            iload 4 /* stringLength */
            ldc 65280
            iand
            ifeq 18
        16: .line 296
            aload 0 /* this */
            iconst_m1
            putfield io.undertow.protocols.ajp.AjpResponseParser.stringLength:I
        17: .line 297
            new io.undertow.protocols.ajp.AjpResponseParser$StringHolder
            dup
            aload 0 /* this */
            iload 4 /* stringLength */
            sipush 255
            iand
            invokevirtual io.undertow.protocols.ajp.AjpResponseParser.headers:(I)Lio/undertow/util/HttpString;
            invokespecial io.undertow.protocols.ajp.AjpResponseParser$StringHolder.<init>:(Lio/undertow/util/HttpString;)V
            areturn
        18: .line 299
      StackMap locals:
      StackMap stack:
            iload 4 /* stringLength */
            ldc 65535
            if_icmpne 21
        19: .line 301
            aload 0 /* this */
            iconst_m1
            putfield io.undertow.protocols.ajp.AjpResponseParser.stringLength:I
        20: .line 302
            new io.undertow.protocols.ajp.AjpResponseParser$StringHolder
            dup
            aconst_null
            iconst_1
            iconst_0
            invokespecial io.undertow.protocols.ajp.AjpResponseParser$StringHolder.<init>:(Ljava/lang/String;ZZ)V
            areturn
        21: .line 304
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.protocols.ajp.AjpResponseParser.currentString:Ljava/lang/StringBuilder;
            astore 5 /* builder */
        start local 5 // java.lang.StringBuilder builder
        22: .line 306
            aload 5 /* builder */
            ifnonnull 25
        23: .line 307
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 5 /* builder */
        24: .line 308
            aload 0 /* this */
            aload 5 /* builder */
            putfield io.undertow.protocols.ajp.AjpResponseParser.currentString:Ljava/lang/StringBuilder;
        25: .line 310
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 5 /* builder */
            invokevirtual java.lang.StringBuilder.length:()I
            istore 6 /* length */
        start local 6 // int length
        26: .line 311
            goto 36
        27: .line 312
      StackMap locals: int
      StackMap stack:
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 31
        28: .line 313
            aload 0 /* this */
            iload 4 /* stringLength */
            putfield io.undertow.protocols.ajp.AjpResponseParser.stringLength:I
        29: .line 314
            aload 0 /* this */
            iload 3 /* containsUrlCharacters */
            putfield io.undertow.protocols.ajp.AjpResponseParser.containsUrlCharacters:Z
        30: .line 315
            new io.undertow.protocols.ajp.AjpResponseParser$StringHolder
            dup
            aconst_null
            iconst_0
            iconst_0
            invokespecial io.undertow.protocols.ajp.AjpResponseParser$StringHolder.<init>:(Ljava/lang/String;ZZ)V
            areturn
        31: .line 317
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.get:()B
            i2c
            istore 7 /* c */
        start local 7 // char c
        32: .line 318
            iload 7 /* c */
            bipush 43
            if_icmpeq 33
            iload 7 /* c */
            bipush 37
            if_icmpne 34
        33: .line 319
      StackMap locals: int
      StackMap stack:
            iconst_1
            istore 3 /* containsUrlCharacters */
        34: .line 321
      StackMap locals:
      StackMap stack:
            aload 5 /* builder */
            iload 7 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        35: .line 322
            iinc 6 /* length */ 1
        end local 7 // char c
        36: .line 311
      StackMap locals:
      StackMap stack:
            iload 6 /* length */
            iload 4 /* stringLength */
            if_icmplt 27
        37: .line 325
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 43
        38: .line 326
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.get:()B
            pop
        39: .line 327
            aload 0 /* this */
            aconst_null
            putfield io.undertow.protocols.ajp.AjpResponseParser.currentString:Ljava/lang/StringBuilder;
        40: .line 328
            aload 0 /* this */
            iconst_m1
            putfield io.undertow.protocols.ajp.AjpResponseParser.stringLength:I
        41: .line 329
            aload 0 /* this */
            iconst_0
            putfield io.undertow.protocols.ajp.AjpResponseParser.containsUrlCharacters:Z
        42: .line 330
            new io.undertow.protocols.ajp.AjpResponseParser$StringHolder
            dup
            aload 5 /* builder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_1
            iload 3 /* containsUrlCharacters */
            invokespecial io.undertow.protocols.ajp.AjpResponseParser$StringHolder.<init>:(Ljava/lang/String;ZZ)V
            areturn
        43: .line 332
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* stringLength */
            putfield io.undertow.protocols.ajp.AjpResponseParser.stringLength:I
        44: .line 333
            aload 0 /* this */
            iload 3 /* containsUrlCharacters */
            putfield io.undertow.protocols.ajp.AjpResponseParser.containsUrlCharacters:Z
        45: .line 334
            new io.undertow.protocols.ajp.AjpResponseParser$StringHolder
            dup
            aconst_null
            iconst_0
            iconst_0
            invokespecial io.undertow.protocols.ajp.AjpResponseParser$StringHolder.<init>:(Ljava/lang/String;ZZ)V
            areturn
        end local 6 // int length
        end local 5 // java.lang.StringBuilder builder
        end local 4 // int stringLength
        end local 3 // boolean containsUrlCharacters
        end local 2 // boolean header
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // io.undertow.protocols.ajp.AjpResponseParser this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   46     0                   this  Lio/undertow/protocols/ajp/AjpResponseParser;
            0   46     1                    buf  Ljava/nio/ByteBuffer;
            0   46     2                 header  Z
            1   46     3  containsUrlCharacters  Z
            4   46     4           stringLength  I
            6   12     5                 number  I
            8    9     6                      b  B
           14   15     5                 number  I
           22   46     5                builder  Ljava/lang/StringBuilder;
           26   46     6                 length  I
           32   36     7                      c  C
    MethodParameters:
        Name  Flags
      buf     
      header  
}
SourceFile: "AjpResponseParser.java"
NestMembers:
  io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder  io.undertow.protocols.ajp.AjpResponseParser$StringHolder
InnerClasses:
  protected IntegerHolder = io.undertow.protocols.ajp.AjpResponseParser$IntegerHolder of io.undertow.protocols.ajp.AjpResponseParser
  protected StringHolder = io.undertow.protocols.ajp.AjpResponseParser$StringHolder of io.undertow.protocols.ajp.AjpResponseParser