final class org.springframework.http.server.reactive.TomcatHttpHandlerAdapter$TomcatServerHttpRequest extends org.springframework.http.server.reactive.ServletServerHttpRequest
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.springframework.http.server.reactive.TomcatHttpHandlerAdapter$TomcatServerHttpRequest
super_class: org.springframework.http.server.reactive.ServletServerHttpRequest
{
private static final java.lang.reflect.Field COYOTE_REQUEST_FIELD;
descriptor: Ljava/lang/reflect/Field;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final int bufferSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.springframework.core.io.buffer.DataBufferFactory factory;
descriptor: Lorg/springframework/core/io/buffer/DataBufferFactory;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: ldc Lorg/apache/catalina/connector/RequestFacade;
ldc "request"
invokestatic org.springframework.util.ReflectionUtils.findField:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 0
start local 0 1: aload 0
ifnull 2
iconst_1
goto 3
StackMap locals: java.lang.reflect.Field
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: ldc "Incompatible Tomcat implementation"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
4: aload 0
invokestatic org.springframework.util.ReflectionUtils.makeAccessible:(Ljava/lang/reflect/Field;)V
5: aload 0
putstatic org.springframework.http.server.reactive.TomcatHttpHandlerAdapter$TomcatServerHttpRequest.COYOTE_REQUEST_FIELD:Ljava/lang/reflect/Field;
end local 0 6: return
LocalVariableTable:
Start End Slot Name Signature
1 6 0 field Ljava/lang/reflect/Field;
void <init>(javax.servlet.http.HttpServletRequest, javax.servlet.AsyncContext, java.lang.String, org.springframework.core.io.buffer.DataBufferFactory, int);
descriptor: (Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/AsyncContext;Ljava/lang/String;Lorg/springframework/core/io/buffer/DataBufferFactory;I)V
flags: (0x0000)
Code:
stack=7, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
invokestatic org.springframework.http.server.reactive.TomcatHttpHandlerAdapter$TomcatServerHttpRequest.createTomcatHttpHeaders:(Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/http/HttpHeaders;
aload 1
aload 2
aload 3
aload 4
iload 5
invokespecial org.springframework.http.server.reactive.ServletServerHttpRequest.<init>:(Lorg/springframework/http/HttpHeaders;Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/AsyncContext;Ljava/lang/String;Lorg/springframework/core/io/buffer/DataBufferFactory;I)V
1: aload 0
aload 4
putfield org.springframework.http.server.reactive.TomcatHttpHandlerAdapter$TomcatServerHttpRequest.factory:Lorg/springframework/core/io/buffer/DataBufferFactory;
2: aload 0
iload 5
putfield org.springframework.http.server.reactive.TomcatHttpHandlerAdapter$TomcatServerHttpRequest.bufferSize:I
3: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/http/server/reactive/TomcatHttpHandlerAdapter$TomcatServerHttpRequest;
0 4 1 request Ljavax/servlet/http/HttpServletRequest;
0 4 2 context Ljavax/servlet/AsyncContext;
0 4 3 servletPath Ljava/lang/String;
0 4 4 factory Lorg/springframework/core/io/buffer/DataBufferFactory;
0 4 5 bufferSize I
Exceptions:
throws java.io.IOException, java.net.URISyntaxException
MethodParameters:
Name Flags
request
context
servletPath
factory
bufferSize
private static org.springframework.http.HttpHeaders createTomcatHttpHeaders(javax.servlet.http.HttpServletRequest);
descriptor: (Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/http/HttpHeaders;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
invokestatic org.springframework.http.server.reactive.TomcatHttpHandlerAdapter$TomcatServerHttpRequest.getRequestFacade:(Ljavax/servlet/http/HttpServletRequest;)Lorg/apache/catalina/connector/RequestFacade;
astore 1
start local 1 1: getstatic org.springframework.http.server.reactive.TomcatHttpHandlerAdapter$TomcatServerHttpRequest.COYOTE_REQUEST_FIELD:Ljava/lang/reflect/Field;
aload 1
invokestatic org.springframework.util.ReflectionUtils.getField:(Ljava/lang/reflect/Field;Ljava/lang/Object;)Ljava/lang/Object;
2: checkcast org.apache.catalina.connector.Request
astore 2
start local 2 3: aload 2
ifnull 4
iconst_1
goto 5
StackMap locals: org.apache.catalina.connector.RequestFacade org.apache.catalina.connector.Request
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: ldc "No Tomcat connector request"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
6: aload 2
invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
astore 3
start local 3 7: new org.springframework.http.server.reactive.TomcatHeadersAdapter
dup
aload 3
invokevirtual org.apache.coyote.Request.getMimeHeaders:()Lorg/apache/tomcat/util/http/MimeHeaders;
invokespecial org.springframework.http.server.reactive.TomcatHeadersAdapter.<init>:(Lorg/apache/tomcat/util/http/MimeHeaders;)V
astore 4
start local 4 8: new org.springframework.http.HttpHeaders
dup
aload 4
invokespecial org.springframework.http.HttpHeaders.<init>:(Lorg/springframework/util/MultiValueMap;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 request Ljavax/servlet/http/HttpServletRequest;
1 9 1 requestFacade Lorg/apache/catalina/connector/RequestFacade;
3 9 2 connectorRequest Lorg/apache/catalina/connector/Request;
7 9 3 tomcatRequest Lorg/apache/coyote/Request;
8 9 4 headers Lorg/springframework/http/server/reactive/TomcatHeadersAdapter;
MethodParameters:
Name Flags
request
private static org.apache.catalina.connector.RequestFacade getRequestFacade(javax.servlet.http.HttpServletRequest);
descriptor: (Ljavax/servlet/http/HttpServletRequest;)Lorg/apache/catalina/connector/RequestFacade;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
instanceof org.apache.catalina.connector.RequestFacade
ifeq 2
1: aload 0
checkcast org.apache.catalina.connector.RequestFacade
areturn
2: StackMap locals:
StackMap stack:
aload 0
instanceof javax.servlet.http.HttpServletRequestWrapper
ifeq 6
3: aload 0
checkcast javax.servlet.http.HttpServletRequestWrapper
astore 1
start local 1 4: aload 1
invokevirtual javax.servlet.http.HttpServletRequestWrapper.getRequest:()Ljavax/servlet/ServletRequest;
checkcast javax.servlet.http.HttpServletRequest
astore 2
start local 2 5: aload 2
invokestatic org.springframework.http.server.reactive.TomcatHttpHandlerAdapter$TomcatServerHttpRequest.getRequestFacade:(Ljavax/servlet/http/HttpServletRequest;)Lorg/apache/catalina/connector/RequestFacade;
areturn
end local 2 end local 1 6: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Cannot convert ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
7: ldc "] to org.apache.catalina.connector.RequestFacade"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 request Ljavax/servlet/http/HttpServletRequest;
4 6 1 wrapper Ljavax/servlet/http/HttpServletRequestWrapper;
5 6 2 wrappedRequest Ljavax/servlet/http/HttpServletRequest;
MethodParameters:
Name Flags
request
protected org.springframework.core.io.buffer.DataBuffer readFromInputStream();
descriptor: ()Lorg/springframework/core/io/buffer/DataBuffer;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=9, args_size=1
start local 0 0: iconst_1
istore 1
start local 1 1: aload 0
getfield org.springframework.http.server.reactive.TomcatHttpHandlerAdapter$TomcatServerHttpRequest.bufferSize:I
istore 2
start local 2 2: aload 0
getfield org.springframework.http.server.reactive.TomcatHttpHandlerAdapter$TomcatServerHttpRequest.factory:Lorg/springframework/core/io/buffer/DataBufferFactory;
iload 2
invokeinterface org.springframework.core.io.buffer.DataBufferFactory.allocateBuffer:(I)Lorg/springframework/core/io/buffer/DataBuffer;
astore 3
start local 3 3: aload 3
iconst_0
iload 2
invokeinterface org.springframework.core.io.buffer.DataBuffer.asByteBuffer:(II)Ljava/nio/ByteBuffer;
astore 4
start local 4 4: aload 0
invokevirtual org.springframework.http.server.reactive.TomcatHttpHandlerAdapter$TomcatServerHttpRequest.getNativeRequest:()Ljava/lang/Object;
checkcast javax.servlet.ServletRequest
astore 5
start local 5 5: aload 5
invokeinterface javax.servlet.ServletRequest.getInputStream:()Ljavax/servlet/ServletInputStream;
checkcast org.apache.catalina.connector.CoyoteInputStream
aload 4
invokevirtual org.apache.catalina.connector.CoyoteInputStream.read:(Ljava/nio/ByteBuffer;)I
istore 6
start local 6 6: aload 0
iload 6
invokevirtual org.springframework.http.server.reactive.TomcatHttpHandlerAdapter$TomcatServerHttpRequest.logBytesRead:(I)V
7: iload 6
ifle 14
8: aload 3
iload 6
invokeinterface org.springframework.core.io.buffer.DataBuffer.writePosition:(I)Lorg/springframework/core/io/buffer/DataBuffer;
pop
9: iconst_0
istore 1
10: aload 3
astore 8
11: iload 1
ifeq 13
12: aload 3
invokestatic org.springframework.core.io.buffer.DataBufferUtils.release:(Lorg/springframework/core/io/buffer/DataBuffer;)Z
pop
13: StackMap locals: org.springframework.http.server.reactive.TomcatHttpHandlerAdapter$TomcatServerHttpRequest int int org.springframework.core.io.buffer.DataBuffer java.nio.ByteBuffer javax.servlet.ServletRequest int top org.springframework.core.io.buffer.DataBuffer
StackMap stack:
aload 8
areturn
14: StackMap locals: org.springframework.http.server.reactive.TomcatHttpHandlerAdapter$TomcatServerHttpRequest int int org.springframework.core.io.buffer.DataBuffer java.nio.ByteBuffer javax.servlet.ServletRequest int
StackMap stack:
iload 6
iconst_m1
if_icmpne 19
15: getstatic org.springframework.http.server.reactive.TomcatHttpHandlerAdapter$TomcatServerHttpRequest.EOF_BUFFER:Lorg/springframework/core/io/buffer/DataBuffer;
astore 8
16: iload 1
ifeq 18
17: aload 3
invokestatic org.springframework.core.io.buffer.DataBufferUtils.release:(Lorg/springframework/core/io/buffer/DataBuffer;)Z
pop
18: StackMap locals: org.springframework.http.server.reactive.TomcatHttpHandlerAdapter$TomcatServerHttpRequest int int org.springframework.core.io.buffer.DataBuffer java.nio.ByteBuffer javax.servlet.ServletRequest int top org.springframework.core.io.buffer.DataBuffer
StackMap stack:
aload 8
areturn
19: StackMap locals: org.springframework.http.server.reactive.TomcatHttpHandlerAdapter$TomcatServerHttpRequest int int org.springframework.core.io.buffer.DataBuffer java.nio.ByteBuffer javax.servlet.ServletRequest int
StackMap stack:
iload 1
ifeq 21
20: aload 3
invokestatic org.springframework.core.io.buffer.DataBufferUtils.release:(Lorg/springframework/core/io/buffer/DataBuffer;)Z
pop
21: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 6 end local 5 end local 4 22: StackMap locals: org.springframework.http.server.reactive.TomcatHttpHandlerAdapter$TomcatServerHttpRequest int int org.springframework.core.io.buffer.DataBuffer
StackMap stack: java.lang.Throwable
astore 7
23: iload 1
ifeq 25
24: aload 3
invokestatic org.springframework.core.io.buffer.DataBufferUtils.release:(Lorg/springframework/core/io/buffer/DataBuffer;)Z
pop
25: StackMap locals: org.springframework.http.server.reactive.TomcatHttpHandlerAdapter$TomcatServerHttpRequest int int org.springframework.core.io.buffer.DataBuffer top top top java.lang.Throwable
StackMap stack:
aload 7
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lorg/springframework/http/server/reactive/TomcatHttpHandlerAdapter$TomcatServerHttpRequest;
1 26 1 release Z
2 26 2 capacity I
3 26 3 dataBuffer Lorg/springframework/core/io/buffer/DataBuffer;
4 22 4 byteBuffer Ljava/nio/ByteBuffer;
5 22 5 request Ljavax/servlet/ServletRequest;
6 22 6 read I
Exception table:
from to target type
3 11 22 any
14 16 22 any
Exceptions:
throws java.io.IOException
}
SourceFile: "TomcatHttpHandlerAdapter.java"
NestHost: org.springframework.http.server.reactive.TomcatHttpHandlerAdapter
InnerClasses:
private final TomcatServerHttpRequest = org.springframework.http.server.reactive.TomcatHttpHandlerAdapter$TomcatServerHttpRequest of org.springframework.http.server.reactive.TomcatHttpHandlerAdapter