class sun.net.httpserver.Request
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: sun.net.httpserver.Request
  super_class: java.lang.Object
{
  static final int BUF_LEN;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2048

  static final byte CR;
    descriptor: B
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 13

  static final byte LF;
    descriptor: B
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  private java.lang.String startLine;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.nio.channels.SocketChannel chan;
    descriptor: Ljava/nio/channels/SocketChannel;
    flags: (0x0002) ACC_PRIVATE

  private java.io.InputStream is;
    descriptor: Ljava/io/InputStream;
    flags: (0x0002) ACC_PRIVATE

  private java.io.OutputStream os;
    descriptor: Ljava/io/OutputStream;
    flags: (0x0002) ACC_PRIVATE

  char[] buf;
    descriptor: [C
    flags: (0x0000) 

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

  java.lang.StringBuffer lineBuf;
    descriptor: Ljava/lang/StringBuffer;
    flags: (0x0000) 

  com.sun.net.httpserver.Headers hdrs;
    descriptor: Lcom/sun/net/httpserver/Headers;
    flags: (0x0000) 

  void <init>(java.io.InputStream, java.io.OutputStream);
    descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // sun.net.httpserver.Request this
        start local 1 // java.io.InputStream rawInputStream
        start local 2 // java.io.OutputStream rawout
         0: .line 47
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 60
            aload 0 /* this */
            sipush 2048
            newarray 5
            putfield sun.net.httpserver.Request.buf:[C
         2: .line 120
            aload 0 /* this */
            aconst_null
            putfield sun.net.httpserver.Request.hdrs:Lcom/sun/net/httpserver/Headers;
         3: .line 48
            aload 0 /* this */
            aload 1 /* rawInputStream */
            putfield sun.net.httpserver.Request.is:Ljava/io/InputStream;
         4: .line 49
            aload 0 /* this */
            aload 2 /* rawout */
            putfield sun.net.httpserver.Request.os:Ljava/io/OutputStream;
         5: .line 51
      StackMap locals: sun.net.httpserver.Request java.io.InputStream java.io.OutputStream
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual sun.net.httpserver.Request.readLine:()Ljava/lang/String;
            putfield sun.net.httpserver.Request.startLine:Ljava/lang/String;
         6: .line 52
            aload 0 /* this */
            getfield sun.net.httpserver.Request.startLine:Ljava/lang/String;
            ifnonnull 8
         7: .line 53
            return
         8: .line 56
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.httpserver.Request.startLine:Ljava/lang/String;
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
         9: .line 57
            return
        end local 2 // java.io.OutputStream rawout
        end local 1 // java.io.InputStream rawInputStream
        end local 0 // sun.net.httpserver.Request this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Lsun/net/httpserver/Request;
            0   10     1  rawInputStream  Ljava/io/InputStream;
            0   10     2          rawout  Ljava/io/OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      rawInputStream  
      rawout          

  public java.io.InputStream inputStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.net.httpserver.Request this
         0: .line 65
            aload 0 /* this */
            getfield sun.net.httpserver.Request.is:Ljava/io/InputStream;
            areturn
        end local 0 // sun.net.httpserver.Request this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/net/httpserver/Request;

  public java.io.OutputStream outputStream();
    descriptor: ()Ljava/io/OutputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.net.httpserver.Request this
         0: .line 69
            aload 0 /* this */
            getfield sun.net.httpserver.Request.os:Ljava/io/OutputStream;
            areturn
        end local 0 // sun.net.httpserver.Request this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/net/httpserver/Request;

  public java.lang.String readLine();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // sun.net.httpserver.Request this
         0: .line 78
            iconst_0
            istore 1 /* gotCR */
        start local 1 // boolean gotCR
         1: iconst_0
            istore 2 /* gotLF */
        start local 2 // boolean gotLF
         2: .line 79
            aload 0 /* this */
            iconst_0
            putfield sun.net.httpserver.Request.pos:I
            aload 0 /* this */
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            putfield sun.net.httpserver.Request.lineBuf:Ljava/lang/StringBuffer;
         3: .line 80
            goto 19
         4: .line 81
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.httpserver.Request.is:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.read:()I
            istore 3 /* c */
        start local 3 // int c
         5: .line 82
            iload 3 /* c */
            iconst_m1
            if_icmpne 7
         6: .line 83
            aconst_null
            areturn
         7: .line 85
      StackMap locals: int
      StackMap stack:
            iload 1 /* gotCR */
            ifeq 15
         8: .line 86
            iload 3 /* c */
            bipush 10
            if_icmpne 11
         9: .line 87
            iconst_1
            istore 2 /* gotLF */
        10: .line 88
            goto 19
        11: .line 89
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* gotCR */
        12: .line 90
            aload 0 /* this */
            bipush 13
            invokevirtual sun.net.httpserver.Request.consume:(I)V
        13: .line 91
            aload 0 /* this */
            iload 3 /* c */
            invokevirtual sun.net.httpserver.Request.consume:(I)V
        14: .line 93
            goto 19
        15: .line 94
      StackMap locals:
      StackMap stack:
            iload 3 /* c */
            bipush 13
            if_icmpne 18
        16: .line 95
            iconst_1
            istore 1 /* gotCR */
        17: .line 96
            goto 19
        18: .line 97
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* c */
            invokevirtual sun.net.httpserver.Request.consume:(I)V
        end local 3 // int c
        19: .line 80
      StackMap locals:
      StackMap stack:
            iload 2 /* gotLF */
            ifeq 4
        20: .line 101
            aload 0 /* this */
            getfield sun.net.httpserver.Request.lineBuf:Ljava/lang/StringBuffer;
            aload 0 /* this */
            getfield sun.net.httpserver.Request.buf:[C
            iconst_0
            aload 0 /* this */
            getfield sun.net.httpserver.Request.pos:I
            invokevirtual java.lang.StringBuffer.append:([CII)Ljava/lang/StringBuffer;
            pop
        21: .line 102
            new java.lang.String
            dup
            aload 0 /* this */
            getfield sun.net.httpserver.Request.lineBuf:Ljava/lang/StringBuffer;
            invokespecial java.lang.String.<init>:(Ljava/lang/StringBuffer;)V
            areturn
        end local 2 // boolean gotLF
        end local 1 // boolean gotCR
        end local 0 // sun.net.httpserver.Request this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   22     0   this  Lsun/net/httpserver/Request;
            1   22     1  gotCR  Z
            2   22     2  gotLF  Z
            5   19     3      c  I
    Exceptions:
      throws java.io.IOException

  private void consume(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // sun.net.httpserver.Request this
        start local 1 // int c
         0: .line 106
            aload 0 /* this */
            getfield sun.net.httpserver.Request.pos:I
            sipush 2048
            if_icmpne 3
         1: .line 107
            aload 0 /* this */
            getfield sun.net.httpserver.Request.lineBuf:Ljava/lang/StringBuffer;
            aload 0 /* this */
            getfield sun.net.httpserver.Request.buf:[C
            invokevirtual java.lang.StringBuffer.append:([C)Ljava/lang/StringBuffer;
            pop
         2: .line 108
            aload 0 /* this */
            iconst_0
            putfield sun.net.httpserver.Request.pos:I
         3: .line 110
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.httpserver.Request.buf:[C
            aload 0 /* this */
            dup
            getfield sun.net.httpserver.Request.pos:I
            dup_x1
            iconst_1
            iadd
            putfield sun.net.httpserver.Request.pos:I
            iload 1 /* c */
            i2c
            castore
         4: .line 111
            return
        end local 1 // int c
        end local 0 // sun.net.httpserver.Request this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/net/httpserver/Request;
            0    5     1     c  I
    MethodParameters:
      Name  Flags
      c     

  public java.lang.String requestLine();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.net.httpserver.Request this
         0: .line 117
            aload 0 /* this */
            getfield sun.net.httpserver.Request.startLine:Ljava/lang/String;
            areturn
        end local 0 // sun.net.httpserver.Request this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/net/httpserver/Request;

  com.sun.net.httpserver.Headers headers();
    descriptor: ()Lcom/sun/net/httpserver/Headers;
    flags: (0x0000) 
    Code:
      stack=5, locals=9, args_size=1
        start local 0 // sun.net.httpserver.Request this
         0: .line 123
            aload 0 /* this */
            getfield sun.net.httpserver.Request.hdrs:Lcom/sun/net/httpserver/Headers;
            ifnull 2
         1: .line 124
            aload 0 /* this */
            getfield sun.net.httpserver.Request.hdrs:Lcom/sun/net/httpserver/Headers;
            areturn
         2: .line 126
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new com.sun.net.httpserver.Headers
            dup
            invokespecial com.sun.net.httpserver.Headers.<init>:()V
            putfield sun.net.httpserver.Request.hdrs:Lcom/sun/net/httpserver/Headers;
         3: .line 128
            bipush 10
            newarray 5
            astore 1 /* s */
        start local 1 // char[] s
         4: .line 129
            aload 0 /* this */
            getfield sun.net.httpserver.Request.is:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.read:()I
            istore 2 /* firstc */
        start local 2 // int firstc
         5: .line 130
            goto 59
         6: .line 131
      StackMap locals: char[] int
      StackMap stack:
            iconst_0
            istore 3 /* len */
        start local 3 // int len
         7: .line 132
            iconst_m1
            istore 4 /* keyend */
        start local 4 // int keyend
         8: .line 134
            iload 2 /* firstc */
            bipush 32
            if_icmple 9
            iconst_1
            goto 10
      StackMap locals: int int
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: istore 6 /* inKey */
        start local 6 // boolean inKey
        11: .line 135
            aload 1 /* s */
            iload 3 /* len */
            iinc 3 /* len */ 1
            iload 2 /* firstc */
            i2c
            castore
        12: .line 137
            goto 34
        start local 5 // int c
        13: .line 138
      StackMap locals: int int
      StackMap stack:
            iload 5 /* c */
            lookupswitch { // 5
                    9: 18
                   10: 21
                   13: 21
                   32: 19
                   58: 14
              default: 29
          }
        14: .line 141
      StackMap locals:
      StackMap stack:
            iload 6 /* inKey */
            ifeq 16
            iload 3 /* len */
            ifle 16
        15: .line 142
            iload 3 /* len */
            istore 4 /* keyend */
        16: .line 143
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* inKey */
        17: .line 144
            goto 29
        18: .line 146
      StackMap locals:
      StackMap stack:
            bipush 32
            istore 5 /* c */
        19: .line 148
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* inKey */
        20: .line 149
            goto 29
        21: .line 152
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.httpserver.Request.is:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.read:()I
            istore 2 /* firstc */
        22: .line 153
            iload 5 /* c */
            bipush 13
            if_icmpne 26
            iload 2 /* firstc */
            bipush 10
            if_icmpne 26
        23: .line 154
            aload 0 /* this */
            getfield sun.net.httpserver.Request.is:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.read:()I
            istore 2 /* firstc */
        24: .line 155
            iload 2 /* firstc */
            bipush 13
            if_icmpne 26
        25: .line 156
            aload 0 /* this */
            getfield sun.net.httpserver.Request.is:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.read:()I
            istore 2 /* firstc */
        26: .line 158
      StackMap locals:
      StackMap stack:
            iload 2 /* firstc */
            bipush 10
            if_icmpeq 39
            iload 2 /* firstc */
            bipush 13
            if_icmpeq 39
            iload 2 /* firstc */
            bipush 32
            if_icmple 28
        27: .line 159
            goto 39
        28: .line 161
      StackMap locals:
      StackMap stack:
            bipush 32
            istore 5 /* c */
        29: .line 164
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            aload 1 /* s */
            arraylength
            if_icmplt 33
        30: .line 165
            aload 1 /* s */
            arraylength
            iconst_2
            imul
            newarray 5
            astore 7 /* ns */
        start local 7 // char[] ns
        31: .line 166
            aload 1 /* s */
            iconst_0
            aload 7 /* ns */
            iconst_0
            iload 3 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        32: .line 167
            aload 7 /* ns */
            astore 1 /* s */
        end local 7 // char[] ns
        33: .line 169
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            iload 3 /* len */
            iinc 3 /* len */ 1
            iload 5 /* c */
            i2c
            castore
        end local 5 // int c
        34: .line 137
      StackMap locals: sun.net.httpserver.Request char[] int int int top int
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.httpserver.Request.is:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.read:()I
            dup
            istore 5 /* c */
        start local 5 // int c
        35: ifge 13
        36: .line 171
            iconst_m1
            istore 2 /* firstc */
        37: .line 173
            goto 39
        38: .line 174
      StackMap locals: sun.net.httpserver.Request char[] int int int int int
      StackMap stack:
            iinc 3 /* len */ -1
        39: .line 173
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            ifle 40
            aload 1 /* s */
            iload 3 /* len */
            iconst_1
            isub
            caload
            bipush 32
            if_icmple 38
        40: .line 176
      StackMap locals:
      StackMap stack:
            iload 4 /* keyend */
            ifgt 44
        41: .line 177
            aconst_null
            astore 7 /* k */
        start local 7 // java.lang.String k
        42: .line 178
            iconst_0
            istore 4 /* keyend */
        43: .line 179
            goto 50
        end local 7 // java.lang.String k
        44: .line 180
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            iconst_0
            iload 4 /* keyend */
            invokestatic java.lang.String.copyValueOf:([CII)Ljava/lang/String;
            astore 7 /* k */
        start local 7 // java.lang.String k
        45: .line 181
            iload 4 /* keyend */
            iload 3 /* len */
            if_icmpge 49
            aload 1 /* s */
            iload 4 /* keyend */
            caload
            bipush 58
            if_icmpne 49
        46: .line 182
            iinc 4 /* keyend */ 1
        47: .line 183
            goto 49
        48: .line 184
      StackMap locals: java.lang.String
      StackMap stack:
            iinc 4 /* keyend */ 1
        49: .line 183
      StackMap locals:
      StackMap stack:
            iload 4 /* keyend */
            iload 3 /* len */
            if_icmpge 50
            aload 1 /* s */
            iload 4 /* keyend */
            caload
            bipush 32
            if_icmple 48
        50: .line 187
      StackMap locals:
      StackMap stack:
            iload 4 /* keyend */
            iload 3 /* len */
            if_icmplt 53
        51: .line 188
            new java.lang.String
            dup
            invokespecial java.lang.String.<init>:()V
            astore 8 /* v */
        start local 8 // java.lang.String v
        52: goto 54
        end local 8 // java.lang.String v
        53: .line 190
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            iload 4 /* keyend */
            iload 3 /* len */
            iload 4 /* keyend */
            isub
            invokestatic java.lang.String.copyValueOf:([CII)Ljava/lang/String;
            astore 8 /* v */
        start local 8 // java.lang.String v
        54: .line 192
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.httpserver.Request.hdrs:Lcom/sun/net/httpserver/Headers;
            invokevirtual com.sun.net.httpserver.Headers.size:()I
            invokestatic sun.net.httpserver.ServerConfig.getMaxReqHeaders:()I
            if_icmplt 58
        55: .line 193
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Maximum number of request headers (sun.net.httpserver.maxReqHeaders) exceeded, "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        56: .line 195
            invokestatic sun.net.httpserver.ServerConfig.getMaxReqHeaders:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        57: .line 193
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        58: .line 198
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.httpserver.Request.hdrs:Lcom/sun/net/httpserver/Headers;
            aload 7 /* k */
            aload 8 /* v */
            invokevirtual com.sun.net.httpserver.Headers.add:(Ljava/lang/String;Ljava/lang/String;)V
        end local 8 // java.lang.String v
        end local 7 // java.lang.String k
        end local 6 // boolean inKey
        end local 5 // int c
        end local 4 // int keyend
        end local 3 // int len
        59: .line 130
      StackMap locals: sun.net.httpserver.Request char[] int
      StackMap stack:
            iload 2 /* firstc */
            bipush 10
            if_icmpeq 60
            iload 2 /* firstc */
            bipush 13
            if_icmpeq 60
            iload 2 /* firstc */
            ifge 6
        60: .line 200
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.httpserver.Request.hdrs:Lcom/sun/net/httpserver/Headers;
            areturn
        end local 2 // int firstc
        end local 1 // char[] s
        end local 0 // sun.net.httpserver.Request this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   61     0    this  Lsun/net/httpserver/Request;
            4   61     1       s  [C
            5   61     2  firstc  I
            7   59     3     len  I
            8   59     4  keyend  I
           13   34     5       c  I
           35   59     5       c  I
           11   59     6   inKey  Z
           31   33     7      ns  [C
           42   44     7       k  Ljava/lang/String;
           45   59     7       k  Ljava/lang/String;
           52   53     8       v  Ljava/lang/String;
           54   59     8       v  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
}
SourceFile: "Request.java"
NestMembers:
  sun.net.httpserver.Request$ReadStream  sun.net.httpserver.Request$WriteStream
InnerClasses:
  ReadStream = sun.net.httpserver.Request$ReadStream of sun.net.httpserver.Request
  WriteStream = sun.net.httpserver.Request$WriteStream of sun.net.httpserver.Request