public class org.springframework.http.server.ServletServerHttpRequest implements org.springframework.http.server.ServerHttpRequest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.http.server.ServletServerHttpRequest
  super_class: java.lang.Object
{
  protected static final java.lang.String FORM_CONTENT_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "application/x-www-form-urlencoded"

  protected static final java.nio.charset.Charset FORM_CHARSET;
    descriptor: Ljava/nio/charset/Charset;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL

  private final javax.servlet.http.HttpServletRequest servletRequest;
    descriptor: Ljavax/servlet/http/HttpServletRequest;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.net.URI uri;
    descriptor: Ljava/net/URI;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private org.springframework.http.HttpHeaders headers;
    descriptor: Lorg/springframework/http/HttpHeaders;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private org.springframework.http.server.ServerHttpAsyncRequestControl asyncRequestControl;
    descriptor: Lorg/springframework/http/server/ServerHttpAsyncRequestControl;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 60
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            putstatic org.springframework.http.server.ServletServerHttpRequest.FORM_CHARSET:Ljava/nio/charset/Charset;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(javax.servlet.http.HttpServletRequest);
    descriptor: (Ljavax/servlet/http/HttpServletRequest;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.http.server.ServletServerHttpRequest this
        start local 1 // javax.servlet.http.HttpServletRequest servletRequest
         0: .line 80
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 81
            aload 1 /* servletRequest */
            ldc "HttpServletRequest must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 82
            aload 0 /* this */
            aload 1 /* servletRequest */
            putfield org.springframework.http.server.ServletServerHttpRequest.servletRequest:Ljavax/servlet/http/HttpServletRequest;
         3: .line 83
            return
        end local 1 // javax.servlet.http.HttpServletRequest servletRequest
        end local 0 // org.springframework.http.server.ServletServerHttpRequest this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/springframework/http/server/ServletServerHttpRequest;
            0    4     1  servletRequest  Ljavax/servlet/http/HttpServletRequest;
    MethodParameters:
                Name  Flags
      servletRequest  

  public javax.servlet.http.HttpServletRequest getServletRequest();
    descriptor: ()Ljavax/servlet/http/HttpServletRequest;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.http.server.ServletServerHttpRequest this
         0: .line 90
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.servletRequest:Ljavax/servlet/http/HttpServletRequest;
            areturn
        end local 0 // org.springframework.http.server.ServletServerHttpRequest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/http/server/ServletServerHttpRequest;

  public org.springframework.http.HttpMethod getMethod();
    descriptor: ()Lorg/springframework/http/HttpMethod;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.http.server.ServletServerHttpRequest this
         0: .line 96
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.servletRequest:Ljavax/servlet/http/HttpServletRequest;
            invokeinterface javax.servlet.http.HttpServletRequest.getMethod:()Ljava/lang/String;
            invokestatic org.springframework.http.HttpMethod.resolve:(Ljava/lang/String;)Lorg/springframework/http/HttpMethod;
            areturn
        end local 0 // org.springframework.http.server.ServletServerHttpRequest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/http/server/ServletServerHttpRequest;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public java.lang.String getMethodValue();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.http.server.ServletServerHttpRequest this
         0: .line 101
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.servletRequest:Ljavax/servlet/http/HttpServletRequest;
            invokeinterface javax.servlet.http.HttpServletRequest.getMethod:()Ljava/lang/String;
            areturn
        end local 0 // org.springframework.http.server.ServletServerHttpRequest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/http/server/ServletServerHttpRequest;

  public java.net.URI getURI();
    descriptor: ()Ljava/net/URI;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // org.springframework.http.server.ServletServerHttpRequest this
         0: .line 106
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.uri:Ljava/net/URI;
            ifnonnull 23
         1: .line 107
            aconst_null
            astore 1 /* urlString */
        start local 1 // java.lang.String urlString
         2: .line 108
            iconst_0
            istore 2 /* hasQuery */
        start local 2 // boolean hasQuery
         3: .line 110
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.servletRequest:Ljavax/servlet/http/HttpServletRequest;
            invokeinterface javax.servlet.http.HttpServletRequest.getRequestURL:()Ljava/lang/StringBuffer;
            astore 3 /* url */
        start local 3 // java.lang.StringBuffer url
         4: .line 111
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.servletRequest:Ljavax/servlet/http/HttpServletRequest;
            invokeinterface javax.servlet.http.HttpServletRequest.getQueryString:()Ljava/lang/String;
            astore 4 /* query */
        start local 4 // java.lang.String query
         5: .line 112
            aload 4 /* query */
            invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
            istore 2 /* hasQuery */
         6: .line 113
            iload 2 /* hasQuery */
            ifeq 8
         7: .line 114
            aload 3 /* url */
            bipush 63
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            aload 4 /* query */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         8: .line 116
      StackMap locals: org.springframework.http.server.ServletServerHttpRequest java.lang.String int java.lang.StringBuffer java.lang.String
      StackMap stack:
            aload 3 /* url */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            astore 1 /* urlString */
         9: .line 117
            aload 0 /* this */
            new java.net.URI
            dup
            aload 1 /* urlString */
            invokespecial java.net.URI.<init>:(Ljava/lang/String;)V
            putfield org.springframework.http.server.ServletServerHttpRequest.uri:Ljava/net/URI;
        end local 4 // java.lang.String query
        end local 3 // java.lang.StringBuffer url
        10: .line 118
            goto 23
        11: .line 119
      StackMap locals: org.springframework.http.server.ServletServerHttpRequest java.lang.String int
      StackMap stack: java.net.URISyntaxException
            astore 3 /* ex */
        start local 3 // java.net.URISyntaxException ex
        12: .line 120
            iload 2 /* hasQuery */
            ifne 16
        13: .line 121
            new java.lang.IllegalStateException
            dup
        14: .line 122
            new java.lang.StringBuilder
            dup
            ldc "Could not resolve HttpServletRequest as URI: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* urlString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* ex */
        15: .line 121
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        16: .line 126
      StackMap locals: java.net.URISyntaxException
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.servletRequest:Ljavax/servlet/http/HttpServletRequest;
            invokeinterface javax.servlet.http.HttpServletRequest.getRequestURL:()Ljava/lang/StringBuffer;
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            astore 1 /* urlString */
        17: .line 127
            aload 0 /* this */
            new java.net.URI
            dup
            aload 1 /* urlString */
            invokespecial java.net.URI.<init>:(Ljava/lang/String;)V
            putfield org.springframework.http.server.ServletServerHttpRequest.uri:Ljava/net/URI;
        18: .line 128
            goto 23
        19: .line 129
      StackMap locals:
      StackMap stack: java.net.URISyntaxException
            astore 4 /* ex2 */
        start local 4 // java.net.URISyntaxException ex2
        20: .line 130
            new java.lang.IllegalStateException
            dup
        21: .line 131
            new java.lang.StringBuilder
            dup
            ldc "Could not resolve HttpServletRequest as URI: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* urlString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* ex2 */
        22: .line 130
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.net.URISyntaxException ex2
        end local 3 // java.net.URISyntaxException ex
        end local 2 // boolean hasQuery
        end local 1 // java.lang.String urlString
        23: .line 135
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.uri:Ljava/net/URI;
            areturn
        end local 0 // org.springframework.http.server.ServletServerHttpRequest this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   24     0       this  Lorg/springframework/http/server/ServletServerHttpRequest;
            2   23     1  urlString  Ljava/lang/String;
            3   23     2   hasQuery  Z
            4   10     3        url  Ljava/lang/StringBuffer;
            5   10     4      query  Ljava/lang/String;
           12   23     3         ex  Ljava/net/URISyntaxException;
           20   23     4        ex2  Ljava/net/URISyntaxException;
      Exception table:
        from    to  target  type
           3    10      11  Class java.net.URISyntaxException
          16    18      19  Class java.net.URISyntaxException

  public org.springframework.http.HttpHeaders getHeaders();
    descriptor: ()Lorg/springframework/http/HttpHeaders;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // org.springframework.http.server.ServletServerHttpRequest this
         0: .line 140
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.headers:Lorg/springframework/http/HttpHeaders;
            ifnonnull 32
         1: .line 141
            aload 0 /* this */
            new org.springframework.http.HttpHeaders
            dup
            invokespecial org.springframework.http.HttpHeaders.<init>:()V
            putfield org.springframework.http.server.ServletServerHttpRequest.headers:Lorg/springframework/http/HttpHeaders;
         2: .line 143
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.servletRequest:Ljavax/servlet/http/HttpServletRequest;
            invokeinterface javax.servlet.http.HttpServletRequest.getHeaderNames:()Ljava/util/Enumeration;
            astore 1 /* names */
        start local 1 // java.util.Enumeration names
         3: goto 10
         4: .line 144
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 1 /* names */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* headerName */
        start local 2 // java.lang.String headerName
         5: .line 145
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.servletRequest:Ljavax/servlet/http/HttpServletRequest;
            aload 2 /* headerName */
            invokeinterface javax.servlet.http.HttpServletRequest.getHeaders:(Ljava/lang/String;)Ljava/util/Enumeration;
            astore 3 /* headerValues */
        start local 3 // java.util.Enumeration headerValues
         6: .line 146
            goto 9
         7: .line 147
      StackMap locals: java.lang.String java.util.Enumeration
      StackMap stack:
            aload 3 /* headerValues */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* headerValue */
        start local 4 // java.lang.String headerValue
         8: .line 148
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.headers:Lorg/springframework/http/HttpHeaders;
            aload 2 /* headerName */
            aload 4 /* headerValue */
            invokevirtual org.springframework.http.HttpHeaders.add:(Ljava/lang/String;Ljava/lang/String;)V
        end local 4 // java.lang.String headerValue
         9: .line 146
      StackMap locals:
      StackMap stack:
            aload 3 /* headerValues */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 7
        end local 3 // java.util.Enumeration headerValues
        end local 2 // java.lang.String headerName
        10: .line 143
      StackMap locals:
      StackMap stack:
            aload 1 /* names */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 4
        end local 1 // java.util.Enumeration names
        11: .line 155
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.headers:Lorg/springframework/http/HttpHeaders;
            invokevirtual org.springframework.http.HttpHeaders.getContentType:()Lorg/springframework/http/MediaType;
            astore 1 /* contentType */
        start local 1 // org.springframework.http.MediaType contentType
        12: .line 156
            aload 1 /* contentType */
            ifnonnull 17
        13: .line 157
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.servletRequest:Ljavax/servlet/http/HttpServletRequest;
            invokeinterface javax.servlet.http.HttpServletRequest.getContentType:()Ljava/lang/String;
            astore 2 /* requestContentType */
        start local 2 // java.lang.String requestContentType
        14: .line 158
            aload 2 /* requestContentType */
            invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
            ifeq 17
        15: .line 159
            aload 2 /* requestContentType */
            invokestatic org.springframework.http.MediaType.parseMediaType:(Ljava/lang/String;)Lorg/springframework/http/MediaType;
            astore 1 /* contentType */
        16: .line 160
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.headers:Lorg/springframework/http/HttpHeaders;
            aload 1 /* contentType */
            invokevirtual org.springframework.http.HttpHeaders.setContentType:(Lorg/springframework/http/MediaType;)V
        end local 2 // java.lang.String requestContentType
        17: .line 163
      StackMap locals: org.springframework.http.server.ServletServerHttpRequest org.springframework.http.MediaType
      StackMap stack:
            aload 1 /* contentType */
            ifnull 28
            aload 1 /* contentType */
            invokevirtual org.springframework.http.MediaType.getCharset:()Ljava/nio/charset/Charset;
            ifnonnull 28
        18: .line 164
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.servletRequest:Ljavax/servlet/http/HttpServletRequest;
            invokeinterface javax.servlet.http.HttpServletRequest.getCharacterEncoding:()Ljava/lang/String;
            astore 2 /* requestEncoding */
        start local 2 // java.lang.String requestEncoding
        19: .line 165
            aload 2 /* requestEncoding */
            invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
            ifeq 28
        20: .line 166
            aload 2 /* requestEncoding */
            invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            astore 3 /* charSet */
        start local 3 // java.nio.charset.Charset charSet
        21: .line 167
            new org.springframework.util.LinkedCaseInsensitiveMap
            dup
            invokespecial org.springframework.util.LinkedCaseInsensitiveMap.<init>:()V
            astore 4 /* params */
        start local 4 // java.util.Map params
        22: .line 168
            aload 4 /* params */
            aload 1 /* contentType */
            invokevirtual org.springframework.http.MediaType.getParameters:()Ljava/util/Map;
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
        23: .line 169
            aload 4 /* params */
            ldc "charset"
            aload 3 /* charSet */
            invokevirtual java.nio.charset.Charset.toString:()Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        24: .line 170
            new org.springframework.http.MediaType
            dup
            aload 1 /* contentType */
            invokevirtual org.springframework.http.MediaType.getType:()Ljava/lang/String;
            aload 1 /* contentType */
            invokevirtual org.springframework.http.MediaType.getSubtype:()Ljava/lang/String;
            aload 4 /* params */
            invokespecial org.springframework.http.MediaType.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V
            astore 5 /* mediaType */
        start local 5 // org.springframework.http.MediaType mediaType
        25: .line 171
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.headers:Lorg/springframework/http/HttpHeaders;
            aload 5 /* mediaType */
            invokevirtual org.springframework.http.HttpHeaders.setContentType:(Lorg/springframework/http/MediaType;)V
        end local 5 // org.springframework.http.MediaType mediaType
        end local 4 // java.util.Map params
        end local 3 // java.nio.charset.Charset charSet
        end local 2 // java.lang.String requestEncoding
        end local 1 // org.springframework.http.MediaType contentType
        26: .line 174
            goto 28
        27: .line 175
      StackMap locals: org.springframework.http.server.ServletServerHttpRequest
      StackMap stack: org.springframework.http.InvalidMediaTypeException
            pop
        28: .line 179
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.headers:Lorg/springframework/http/HttpHeaders;
            invokevirtual org.springframework.http.HttpHeaders.getContentLength:()J
            lconst_0
            lcmp
            ifge 32
        29: .line 180
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.servletRequest:Ljavax/servlet/http/HttpServletRequest;
            invokeinterface javax.servlet.http.HttpServletRequest.getContentLength:()I
            istore 1 /* requestContentLength */
        start local 1 // int requestContentLength
        30: .line 181
            iload 1 /* requestContentLength */
            iconst_m1
            if_icmpeq 32
        31: .line 182
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.headers:Lorg/springframework/http/HttpHeaders;
            iload 1 /* requestContentLength */
            i2l
            invokevirtual org.springframework.http.HttpHeaders.setContentLength:(J)V
        end local 1 // int requestContentLength
        32: .line 187
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.headers:Lorg/springframework/http/HttpHeaders;
            areturn
        end local 0 // org.springframework.http.server.ServletServerHttpRequest this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   33     0                  this  Lorg/springframework/http/server/ServletServerHttpRequest;
            3   11     1                 names  Ljava/util/Enumeration<*>;
            5   10     2            headerName  Ljava/lang/String;
            6   10     3          headerValues  Ljava/util/Enumeration<*>;
            8    9     4           headerValue  Ljava/lang/String;
           12   26     1           contentType  Lorg/springframework/http/MediaType;
           14   17     2    requestContentType  Ljava/lang/String;
           19   26     2       requestEncoding  Ljava/lang/String;
           21   26     3               charSet  Ljava/nio/charset/Charset;
           22   26     4                params  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
           25   26     5             mediaType  Lorg/springframework/http/MediaType;
           30   32     1  requestContentLength  I
      Exception table:
        from    to  target  type
          11    26      27  Class org.springframework.http.InvalidMediaTypeException

  public java.security.Principal getPrincipal();
    descriptor: ()Ljava/security/Principal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.http.server.ServletServerHttpRequest this
         0: .line 192
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.servletRequest:Ljavax/servlet/http/HttpServletRequest;
            invokeinterface javax.servlet.http.HttpServletRequest.getUserPrincipal:()Ljava/security/Principal;
            areturn
        end local 0 // org.springframework.http.server.ServletServerHttpRequest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/http/server/ServletServerHttpRequest;

  public java.net.InetSocketAddress getLocalAddress();
    descriptor: ()Ljava/net/InetSocketAddress;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.springframework.http.server.ServletServerHttpRequest this
         0: .line 197
            new java.net.InetSocketAddress
            dup
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.servletRequest:Ljavax/servlet/http/HttpServletRequest;
            invokeinterface javax.servlet.http.HttpServletRequest.getLocalName:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.servletRequest:Ljavax/servlet/http/HttpServletRequest;
            invokeinterface javax.servlet.http.HttpServletRequest.getLocalPort:()I
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/lang/String;I)V
            areturn
        end local 0 // org.springframework.http.server.ServletServerHttpRequest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/http/server/ServletServerHttpRequest;

  public java.net.InetSocketAddress getRemoteAddress();
    descriptor: ()Ljava/net/InetSocketAddress;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.springframework.http.server.ServletServerHttpRequest this
         0: .line 202
            new java.net.InetSocketAddress
            dup
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.servletRequest:Ljavax/servlet/http/HttpServletRequest;
            invokeinterface javax.servlet.http.HttpServletRequest.getRemoteHost:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.servletRequest:Ljavax/servlet/http/HttpServletRequest;
            invokeinterface javax.servlet.http.HttpServletRequest.getRemotePort:()I
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/lang/String;I)V
            areturn
        end local 0 // org.springframework.http.server.ServletServerHttpRequest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/http/server/ServletServerHttpRequest;

  public java.io.InputStream getBody();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.http.server.ServletServerHttpRequest this
         0: .line 207
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.servletRequest:Ljavax/servlet/http/HttpServletRequest;
            invokestatic org.springframework.http.server.ServletServerHttpRequest.isFormPost:(Ljavax/servlet/http/HttpServletRequest;)Z
            ifeq 2
         1: .line 208
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.servletRequest:Ljavax/servlet/http/HttpServletRequest;
            invokestatic org.springframework.http.server.ServletServerHttpRequest.getBodyFromServletRequestParameters:(Ljavax/servlet/http/HttpServletRequest;)Ljava/io/InputStream;
            areturn
         2: .line 211
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.servletRequest:Ljavax/servlet/http/HttpServletRequest;
            invokeinterface javax.servlet.http.HttpServletRequest.getInputStream:()Ljavax/servlet/ServletInputStream;
            areturn
        end local 0 // org.springframework.http.server.ServletServerHttpRequest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/http/server/ServletServerHttpRequest;
    Exceptions:
      throws java.io.IOException

  public org.springframework.http.server.ServerHttpAsyncRequestControl getAsyncRequestControl(org.springframework.http.server.ServerHttpResponse);
    descriptor: (Lorg/springframework/http/server/ServerHttpResponse;)Lorg/springframework/http/server/ServerHttpAsyncRequestControl;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.springframework.http.server.ServletServerHttpRequest this
        start local 1 // org.springframework.http.server.ServerHttpResponse response
         0: .line 217
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.asyncRequestControl:Lorg/springframework/http/server/ServerHttpAsyncRequestControl;
            ifnonnull 7
         1: .line 218
            ldc Lorg/springframework/http/server/ServletServerHttpResponse;
            aload 1 /* response */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifne 5
         2: .line 219
            new java.lang.IllegalArgumentException
            dup
         3: .line 220
            new java.lang.StringBuilder
            dup
            ldc "Response must be a ServletServerHttpResponse: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* response */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 219
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 222
      StackMap locals:
      StackMap stack:
            aload 1 /* response */
            checkcast org.springframework.http.server.ServletServerHttpResponse
            astore 2 /* servletServerResponse */
        start local 2 // org.springframework.http.server.ServletServerHttpResponse servletServerResponse
         6: .line 223
            aload 0 /* this */
            new org.springframework.http.server.ServletServerHttpAsyncRequestControl
            dup
            aload 0 /* this */
            aload 2 /* servletServerResponse */
            invokespecial org.springframework.http.server.ServletServerHttpAsyncRequestControl.<init>:(Lorg/springframework/http/server/ServletServerHttpRequest;Lorg/springframework/http/server/ServletServerHttpResponse;)V
            putfield org.springframework.http.server.ServletServerHttpRequest.asyncRequestControl:Lorg/springframework/http/server/ServerHttpAsyncRequestControl;
        end local 2 // org.springframework.http.server.ServletServerHttpResponse servletServerResponse
         7: .line 225
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.http.server.ServletServerHttpRequest.asyncRequestControl:Lorg/springframework/http/server/ServerHttpAsyncRequestControl;
            areturn
        end local 1 // org.springframework.http.server.ServerHttpResponse response
        end local 0 // org.springframework.http.server.ServletServerHttpRequest this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    8     0                   this  Lorg/springframework/http/server/ServletServerHttpRequest;
            0    8     1               response  Lorg/springframework/http/server/ServerHttpResponse;
            6    7     2  servletServerResponse  Lorg/springframework/http/server/ServletServerHttpResponse;
    MethodParameters:
          Name  Flags
      response  

  private static boolean isFormPost(javax.servlet.http.HttpServletRequest);
    descriptor: (Ljavax/servlet/http/HttpServletRequest;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // javax.servlet.http.HttpServletRequest request
         0: .line 230
            aload 0 /* request */
            invokeinterface javax.servlet.http.HttpServletRequest.getContentType:()Ljava/lang/String;
            astore 1 /* contentType */
        start local 1 // java.lang.String contentType
         1: .line 231
            aload 1 /* contentType */
            ifnull 4
            aload 1 /* contentType */
            ldc "application/x-www-form-urlencoded"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 4
         2: .line 232
            getstatic org.springframework.http.HttpMethod.POST:Lorg/springframework/http/HttpMethod;
            aload 0 /* request */
            invokeinterface javax.servlet.http.HttpServletRequest.getMethod:()Ljava/lang/String;
            invokevirtual org.springframework.http.HttpMethod.matches:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 231
            iconst_1
            ireturn
      StackMap locals: java.lang.String
      StackMap stack:
         4: iconst_0
            ireturn
        end local 1 // java.lang.String contentType
        end local 0 // javax.servlet.http.HttpServletRequest request
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0      request  Ljavax/servlet/http/HttpServletRequest;
            1    5     1  contentType  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      request  

  private static java.io.InputStream getBodyFromServletRequestParameters(javax.servlet.http.HttpServletRequest);
    descriptor: (Ljavax/servlet/http/HttpServletRequest;)Ljava/io/InputStream;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=1
        start local 0 // javax.servlet.http.HttpServletRequest request
         0: .line 242
            new java.io.ByteArrayOutputStream
            dup
            sipush 1024
            invokespecial java.io.ByteArrayOutputStream.<init>:(I)V
            astore 1 /* bos */
        start local 1 // java.io.ByteArrayOutputStream bos
         1: .line 243
            new java.io.OutputStreamWriter
            dup
            aload 1 /* bos */
            getstatic org.springframework.http.server.ServletServerHttpRequest.FORM_CHARSET:Ljava/nio/charset/Charset;
            invokespecial java.io.OutputStreamWriter.<init>:(Ljava/io/OutputStream;Ljava/nio/charset/Charset;)V
            astore 2 /* writer */
        start local 2 // java.io.Writer writer
         2: .line 245
            aload 0 /* request */
            invokeinterface javax.servlet.http.HttpServletRequest.getParameterMap:()Ljava/util/Map;
            astore 3 /* form */
        start local 3 // java.util.Map form
         3: .line 246
            aload 3 /* form */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4 /* nameIterator */
        start local 4 // java.util.Iterator nameIterator
         4: goto 19
         5: .line 247
      StackMap locals: javax.servlet.http.HttpServletRequest java.io.ByteArrayOutputStream java.io.Writer java.util.Map java.util.Iterator
      StackMap stack:
            aload 4 /* nameIterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* name */
        start local 5 // java.lang.String name
         6: .line 248
            aload 3 /* form */
            aload 5 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String[]
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            astore 6 /* values */
        start local 6 // java.util.List values
         7: .line 249
            aload 6 /* values */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7 /* valueIterator */
        start local 7 // java.util.Iterator valueIterator
         8: goto 16
         9: .line 250
      StackMap locals: java.lang.String java.util.List java.util.Iterator
      StackMap stack:
            aload 7 /* valueIterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* value */
        start local 8 // java.lang.String value
        10: .line 251
            aload 2 /* writer */
            aload 5 /* name */
            getstatic org.springframework.http.server.ServletServerHttpRequest.FORM_CHARSET:Ljava/nio/charset/Charset;
            invokevirtual java.nio.charset.Charset.name:()Ljava/lang/String;
            invokestatic java.net.URLEncoder.encode:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
        11: .line 252
            aload 8 /* value */
            ifnull 16
        12: .line 253
            aload 2 /* writer */
            bipush 61
            invokevirtual java.io.Writer.write:(I)V
        13: .line 254
            aload 2 /* writer */
            aload 8 /* value */
            getstatic org.springframework.http.server.ServletServerHttpRequest.FORM_CHARSET:Ljava/nio/charset/Charset;
            invokevirtual java.nio.charset.Charset.name:()Ljava/lang/String;
            invokestatic java.net.URLEncoder.encode:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
        14: .line 255
            aload 7 /* valueIterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 16
        15: .line 256
            aload 2 /* writer */
            bipush 38
            invokevirtual java.io.Writer.write:(I)V
        end local 8 // java.lang.String value
        16: .line 249
      StackMap locals:
      StackMap stack:
            aload 7 /* valueIterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        end local 7 // java.util.Iterator valueIterator
        17: .line 260
            aload 4 /* nameIterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 19
        18: .line 261
            aload 2 /* writer */
            bipush 38
            invokevirtual java.io.Writer.append:(C)Ljava/io/Writer;
            pop
        end local 6 // java.util.List values
        end local 5 // java.lang.String name
        19: .line 246
      StackMap locals:
      StackMap stack:
            aload 4 /* nameIterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 4 // java.util.Iterator nameIterator
        20: .line 264
            aload 2 /* writer */
            invokevirtual java.io.Writer.flush:()V
        21: .line 266
            new java.io.ByteArrayInputStream
            dup
            aload 1 /* bos */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            areturn
        end local 3 // java.util.Map form
        end local 2 // java.io.Writer writer
        end local 1 // java.io.ByteArrayOutputStream bos
        end local 0 // javax.servlet.http.HttpServletRequest request
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   22     0        request  Ljavax/servlet/http/HttpServletRequest;
            1   22     1            bos  Ljava/io/ByteArrayOutputStream;
            2   22     2         writer  Ljava/io/Writer;
            3   22     3           form  Ljava/util/Map<Ljava/lang/String;[Ljava/lang/String;>;
            4   20     4   nameIterator  Ljava/util/Iterator<Ljava/lang/String;>;
            6   19     5           name  Ljava/lang/String;
            7   19     6         values  Ljava/util/List<Ljava/lang/String;>;
            8   17     7  valueIterator  Ljava/util/Iterator<Ljava/lang/String;>;
           10   16     8          value  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      request  
}
SourceFile: "ServletServerHttpRequest.java"