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 46
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 59
            aload 0 /* this */
            sipush 2048
            newarray 5
            putfield sun.net.httpserver.Request.buf:[C
         2: .line 119
            aload 0 /* this */
            aconst_null
            putfield sun.net.httpserver.Request.hdrs:Lcom/sun/net/httpserver/Headers;
         3: .line 47
            aload 0 /* this */
            aload 1 /* rawInputStream */
            putfield sun.net.httpserver.Request.is:Ljava/io/InputStream;
         4: .line 48
            aload 0 /* this */
            aload 2 /* rawout */
            putfield sun.net.httpserver.Request.os:Ljava/io/OutputStream;
         5: .line 50
      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 51
            aload 0 /* this */
            getfield sun.net.httpserver.Request.startLine:Ljava/lang/String;
            ifnonnull 8
         7: .line 52
            return
         8: .line 55
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.httpserver.Request.startLine:Ljava/lang/String;
            ifnonnull 9
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 0 /* this */
            getfield sun.net.httpserver.Request.startLine:Ljava/lang/String;
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
        10: .line 56
      StackMap locals:
      StackMap stack:
            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   11     0            this  Lsun/net/httpserver/Request;
            0   11     1  rawInputStream  Ljava/io/InputStream;
            0   11     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 64
            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 68
            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 77
            iconst_0
            istore 1 /* gotCR */
        start local 1 // boolean gotCR
         1: iconst_0
            istore 2 /* gotLF */
        start local 2 // boolean gotLF
         2: .line 78
            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 79
            goto 19
         4: .line 80
      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 81
            iload 3 /* c */
            iconst_m1
            if_icmpne 7
         6: .line 82
            aconst_null
            areturn
         7: .line 84
      StackMap locals: int
      StackMap stack:
            iload 1 /* gotCR */
            ifeq 15
         8: .line 85
            iload 3 /* c */
            bipush 10
            if_icmpne 11
         9: .line 86
            iconst_1
            istore 2 /* gotLF */
        10: .line 87
            goto 19
        11: .line 88
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* gotCR */
        12: .line 89
            aload 0 /* this */
            bipush 13
            invokevirtual sun.net.httpserver.Request.consume:(I)V
        13: .line 90
            aload 0 /* this */
            iload 3 /* c */
            invokevirtual sun.net.httpserver.Request.consume:(I)V
        14: .line 92
            goto 19
        15: .line 93
      StackMap locals:
      StackMap stack:
            iload 3 /* c */
            bipush 13
            if_icmpne 18
        16: .line 94
            iconst_1
            istore 1 /* gotCR */
        17: .line 95
            goto 19
        18: .line 96
      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 79
      StackMap locals:
      StackMap stack:
            iload 2 /* gotLF */
            ifeq 4
        20: .line 100
            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 101
            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 105
            aload 0 /* this */
            getfield sun.net.httpserver.Request.pos:I
            sipush 2048
            if_icmpne 3
         1: .line 106
            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 107
            aload 0 /* this */
            iconst_0
            putfield sun.net.httpserver.Request.pos:I
         3: .line 109
      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 110
            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 116
            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 122
            aload 0 /* this */
            getfield sun.net.httpserver.Request.hdrs:Lcom/sun/net/httpserver/Headers;
            ifnull 2
         1: .line 123
            aload 0 /* this */
            getfield sun.net.httpserver.Request.hdrs:Lcom/sun/net/httpserver/Headers;
            areturn
         2: .line 125
      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 127
            bipush 10
            newarray 5
            astore 1 /* s */
        start local 1 // char[] s
         4: .line 128
            iconst_0
            istore 2 /* len */
        start local 2 // int len
         5: .line 130
            aload 0 /* this */
            getfield sun.net.httpserver.Request.is:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.read:()I
            istore 3 /* firstc */
        start local 3 // int firstc
         6: .line 133
            iload 3 /* firstc */
            bipush 13
            if_icmpeq 7
            iload 3 /* firstc */
            bipush 10
            if_icmpne 67
         7: .line 134
      StackMap locals: char[] int int
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.httpserver.Request.is:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.read:()I
            istore 4 /* c */
        start local 4 // int c
         8: .line 135
            iload 4 /* c */
            bipush 13
            if_icmpeq 9
            iload 4 /* c */
            bipush 10
            if_icmpne 10
         9: .line 136
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.httpserver.Request.hdrs:Lcom/sun/net/httpserver/Headers;
            areturn
        10: .line 138
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            iconst_0
            iload 3 /* firstc */
            i2c
            castore
        11: .line 139
            iconst_1
            istore 2 /* len */
        12: .line 140
            iload 4 /* c */
            istore 3 /* firstc */
        end local 4 // int c
        13: .line 143
            goto 67
        14: .line 144
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 4 /* keyend */
        start local 4 // int keyend
        15: .line 146
            iload 3 /* firstc */
            bipush 32
            if_icmple 16
            iconst_1
            goto 17
      StackMap locals: int
      StackMap stack:
        16: iconst_0
      StackMap locals:
      StackMap stack: int
        17: istore 6 /* inKey */
        start local 6 // boolean inKey
        18: .line 147
            aload 1 /* s */
            iload 2 /* len */
            iinc 2 /* len */ 1
            iload 3 /* firstc */
            i2c
            castore
        19: .line 149
            goto 41
        start local 5 // int c
        20: .line 150
      StackMap locals: int int
      StackMap stack:
            iload 5 /* c */
            lookupswitch { // 5
                    9: 25
                   10: 28
                   13: 28
                   32: 26
                   58: 21
              default: 36
          }
        21: .line 153
      StackMap locals:
      StackMap stack:
            iload 6 /* inKey */
            ifeq 23
            iload 2 /* len */
            ifle 23
        22: .line 154
            iload 2 /* len */
            istore 4 /* keyend */
        23: .line 155
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* inKey */
        24: .line 156
            goto 36
        25: .line 158
      StackMap locals:
      StackMap stack:
            bipush 32
            istore 5 /* c */
        26: .line 160
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* inKey */
        27: .line 161
            goto 36
        28: .line 164
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.httpserver.Request.is:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.read:()I
            istore 3 /* firstc */
        29: .line 165
            iload 5 /* c */
            bipush 13
            if_icmpne 33
            iload 3 /* firstc */
            bipush 10
            if_icmpne 33
        30: .line 166
            aload 0 /* this */
            getfield sun.net.httpserver.Request.is:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.read:()I
            istore 3 /* firstc */
        31: .line 167
            iload 3 /* firstc */
            bipush 13
            if_icmpne 33
        32: .line 168
            aload 0 /* this */
            getfield sun.net.httpserver.Request.is:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.read:()I
            istore 3 /* firstc */
        33: .line 170
      StackMap locals:
      StackMap stack:
            iload 3 /* firstc */
            bipush 10
            if_icmpeq 46
            iload 3 /* firstc */
            bipush 13
            if_icmpeq 46
            iload 3 /* firstc */
            bipush 32
            if_icmple 35
        34: .line 171
            goto 46
        35: .line 173
      StackMap locals:
      StackMap stack:
            bipush 32
            istore 5 /* c */
        36: .line 176
      StackMap locals:
      StackMap stack:
            iload 2 /* len */
            aload 1 /* s */
            arraylength
            if_icmplt 40
        37: .line 177
            aload 1 /* s */
            arraylength
            iconst_2
            imul
            newarray 5
            astore 7 /* ns */
        start local 7 // char[] ns
        38: .line 178
            aload 1 /* s */
            iconst_0
            aload 7 /* ns */
            iconst_0
            iload 2 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        39: .line 179
            aload 7 /* ns */
            astore 1 /* s */
        end local 7 // char[] ns
        40: .line 181
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            iload 2 /* len */
            iinc 2 /* len */ 1
            iload 5 /* c */
            i2c
            castore
        end local 5 // int c
        41: .line 149
      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
        42: ifge 20
        43: .line 183
            iconst_m1
            istore 3 /* firstc */
        44: .line 185
            goto 46
        45: .line 186
      StackMap locals: sun.net.httpserver.Request char[] int int int int int
      StackMap stack:
            iinc 2 /* len */ -1
        46: .line 185
      StackMap locals:
      StackMap stack:
            iload 2 /* len */
            ifle 47
            aload 1 /* s */
            iload 2 /* len */
            iconst_1
            isub
            caload
            bipush 32
            if_icmple 45
        47: .line 188
      StackMap locals:
      StackMap stack:
            iload 4 /* keyend */
            ifgt 51
        48: .line 189
            aconst_null
            astore 7 /* k */
        start local 7 // java.lang.String k
        49: .line 190
            iconst_0
            istore 4 /* keyend */
        50: .line 191
            goto 57
        end local 7 // java.lang.String k
        51: .line 192
      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
        52: .line 193
            iload 4 /* keyend */
            iload 2 /* len */
            if_icmpge 56
            aload 1 /* s */
            iload 4 /* keyend */
            caload
            bipush 58
            if_icmpne 56
        53: .line 194
            iinc 4 /* keyend */ 1
        54: .line 195
            goto 56
        55: .line 196
      StackMap locals: java.lang.String
      StackMap stack:
            iinc 4 /* keyend */ 1
        56: .line 195
      StackMap locals:
      StackMap stack:
            iload 4 /* keyend */
            iload 2 /* len */
            if_icmpge 57
            aload 1 /* s */
            iload 4 /* keyend */
            caload
            bipush 32
            if_icmple 55
        57: .line 199
      StackMap locals:
      StackMap stack:
            iload 4 /* keyend */
            iload 2 /* len */
            if_icmplt 60
        58: .line 200
            new java.lang.String
            dup
            invokespecial java.lang.String.<init>:()V
            astore 8 /* v */
        start local 8 // java.lang.String v
        59: goto 61
        end local 8 // java.lang.String v
        60: .line 202
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            iload 4 /* keyend */
            iload 2 /* len */
            iload 4 /* keyend */
            isub
            invokestatic java.lang.String.copyValueOf:([CII)Ljava/lang/String;
            astore 8 /* v */
        start local 8 // java.lang.String v
        61: .line 204
      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 65
        62: .line 205
            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
        63: .line 207
            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;
        64: .line 205
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        65: .line 210
      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
        66: .line 211
            iconst_0
            istore 2 /* len */
        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
        67: .line 143
      StackMap locals: sun.net.httpserver.Request char[] int int
      StackMap stack:
            iload 3 /* firstc */
            bipush 10
            if_icmpeq 68
            iload 3 /* firstc */
            bipush 13
            if_icmpeq 68
            iload 3 /* firstc */
            ifge 14
        68: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.httpserver.Request.hdrs:Lcom/sun/net/httpserver/Headers;
            areturn
        end local 3 // int firstc
        end local 2 // int len
        end local 1 // char[] s
        end local 0 // sun.net.httpserver.Request this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   69     0    this  Lsun/net/httpserver/Request;
            4   69     1       s  [C
            5   69     2     len  I
            6   69     3  firstc  I
            8   13     4       c  I
           15   67     4  keyend  I
           20   41     5       c  I
           42   67     5       c  I
           18   67     6   inKey  Z
           38   40     7      ns  [C
           49   51     7       k  Ljava/lang/String;
           52   67     7       k  Ljava/lang/String;
           59   60     8       v  Ljava/lang/String;
           61   67     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