public class org.springframework.web.util.ContentCachingResponseWrapper extends javax.servlet.http.HttpServletResponseWrapper
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.web.util.ContentCachingResponseWrapper
super_class: javax.servlet.http.HttpServletResponseWrapper
{
private final org.springframework.util.FastByteArrayOutputStream content;
descriptor: Lorg/springframework/util/FastByteArrayOutputStream;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private javax.servlet.ServletOutputStream outputStream;
descriptor: Ljavax/servlet/ServletOutputStream;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private java.io.PrintWriter writer;
descriptor: Ljava/io/PrintWriter;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private int statusCode;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.lang.Integer contentLength;
descriptor: Ljava/lang/Integer;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void <init>(javax.servlet.http.HttpServletResponse);
descriptor: (Ljavax/servlet/http/HttpServletResponse;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial javax.servlet.http.HttpServletResponseWrapper.<init>:(Ljavax/servlet/http/HttpServletResponse;)V
1: aload 0
new org.springframework.util.FastByteArrayOutputStream
dup
sipush 1024
invokespecial org.springframework.util.FastByteArrayOutputStream.<init>:(I)V
putfield org.springframework.web.util.ContentCachingResponseWrapper.content:Lorg/springframework/util/FastByteArrayOutputStream;
2: aload 0
sipush 200
putfield org.springframework.web.util.ContentCachingResponseWrapper.statusCode:I
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/web/util/ContentCachingResponseWrapper;
0 4 1 response Ljavax/servlet/http/HttpServletResponse;
MethodParameters:
Name Flags
response
public void setStatus(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokespecial javax.servlet.http.HttpServletResponseWrapper.setStatus:(I)V
1: aload 0
iload 1
putfield org.springframework.web.util.ContentCachingResponseWrapper.statusCode:I
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/web/util/ContentCachingResponseWrapper;
0 3 1 sc I
MethodParameters:
Name Flags
sc
public void setStatus(int, java.lang.String);
descriptor: (ILjava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
aload 2
invokespecial javax.servlet.http.HttpServletResponseWrapper.setStatus:(ILjava/lang/String;)V
1: aload 0
iload 1
putfield org.springframework.web.util.ContentCachingResponseWrapper.statusCode:I
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/web/util/ContentCachingResponseWrapper;
0 3 1 sc I
0 3 2 sm Ljava/lang/String;
MethodParameters:
Name Flags
sc
sm
public void sendError(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_0
invokevirtual org.springframework.web.util.ContentCachingResponseWrapper.copyBodyToResponse:(Z)V
1: aload 0
iload 1
invokespecial javax.servlet.http.HttpServletResponseWrapper.sendError:(I)V
2: goto 5
3: StackMap locals:
StackMap stack: java.lang.IllegalStateException
pop
4: aload 0
iload 1
invokespecial javax.servlet.http.HttpServletResponseWrapper.setStatus:(I)V
5: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield org.springframework.web.util.ContentCachingResponseWrapper.statusCode:I
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/web/util/ContentCachingResponseWrapper;
0 7 1 sc I
Exception table:
from to target type
1 2 3 Class java.lang.IllegalStateException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sc
public void sendError(int, java.lang.String);
descriptor: (ILjava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_0
invokevirtual org.springframework.web.util.ContentCachingResponseWrapper.copyBodyToResponse:(Z)V
1: aload 0
iload 1
aload 2
invokespecial javax.servlet.http.HttpServletResponseWrapper.sendError:(ILjava/lang/String;)V
2: goto 5
3: StackMap locals:
StackMap stack: java.lang.IllegalStateException
pop
4: aload 0
iload 1
aload 2
invokespecial javax.servlet.http.HttpServletResponseWrapper.setStatus:(ILjava/lang/String;)V
5: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield org.springframework.web.util.ContentCachingResponseWrapper.statusCode:I
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/web/util/ContentCachingResponseWrapper;
0 7 1 sc I
0 7 2 msg Ljava/lang/String;
Exception table:
from to target type
1 2 3 Class java.lang.IllegalStateException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sc
msg
public void sendRedirect(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_0
invokevirtual org.springframework.web.util.ContentCachingResponseWrapper.copyBodyToResponse:(Z)V
1: aload 0
aload 1
invokespecial javax.servlet.http.HttpServletResponseWrapper.sendRedirect:(Ljava/lang/String;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/web/util/ContentCachingResponseWrapper;
0 3 1 location Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
location
public javax.servlet.ServletOutputStream getOutputStream();
descriptor: ()Ljavax/servlet/ServletOutputStream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.util.ContentCachingResponseWrapper.outputStream:Ljavax/servlet/ServletOutputStream;
ifnonnull 2
1: aload 0
new org.springframework.web.util.ContentCachingResponseWrapper$ResponseServletOutputStream
dup
aload 0
aload 0
invokevirtual org.springframework.web.util.ContentCachingResponseWrapper.getResponse:()Ljavax/servlet/ServletResponse;
invokeinterface javax.servlet.ServletResponse.getOutputStream:()Ljavax/servlet/ServletOutputStream;
invokespecial org.springframework.web.util.ContentCachingResponseWrapper$ResponseServletOutputStream.<init>:(Lorg/springframework/web/util/ContentCachingResponseWrapper;Ljavax/servlet/ServletOutputStream;)V
putfield org.springframework.web.util.ContentCachingResponseWrapper.outputStream:Ljavax/servlet/ServletOutputStream;
2: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.web.util.ContentCachingResponseWrapper.outputStream:Ljavax/servlet/ServletOutputStream;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/web/util/ContentCachingResponseWrapper;
Exceptions:
throws java.io.IOException
public java.io.PrintWriter getWriter();
descriptor: ()Ljava/io/PrintWriter;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.util.ContentCachingResponseWrapper.writer:Ljava/io/PrintWriter;
ifnonnull 5
1: aload 0
invokevirtual org.springframework.web.util.ContentCachingResponseWrapper.getCharacterEncoding:()Ljava/lang/String;
astore 1
start local 1 2: aload 0
aload 1
ifnull 3
new org.springframework.web.util.ContentCachingResponseWrapper$ResponsePrintWriter
dup
aload 0
aload 1
invokespecial org.springframework.web.util.ContentCachingResponseWrapper$ResponsePrintWriter.<init>:(Lorg/springframework/web/util/ContentCachingResponseWrapper;Ljava/lang/String;)V
goto 4
3: StackMap locals: org.springframework.web.util.ContentCachingResponseWrapper java.lang.String
StackMap stack: org.springframework.web.util.ContentCachingResponseWrapper
new org.springframework.web.util.ContentCachingResponseWrapper$ResponsePrintWriter
dup
aload 0
ldc "ISO-8859-1"
invokespecial org.springframework.web.util.ContentCachingResponseWrapper$ResponsePrintWriter.<init>:(Lorg/springframework/web/util/ContentCachingResponseWrapper;Ljava/lang/String;)V
4: StackMap locals: org.springframework.web.util.ContentCachingResponseWrapper java.lang.String
StackMap stack: org.springframework.web.util.ContentCachingResponseWrapper org.springframework.web.util.ContentCachingResponseWrapper$ResponsePrintWriter
putfield org.springframework.web.util.ContentCachingResponseWrapper.writer:Ljava/io/PrintWriter;
end local 1 5: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.web.util.ContentCachingResponseWrapper.writer:Ljava/io/PrintWriter;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/web/util/ContentCachingResponseWrapper;
2 5 1 characterEncoding Ljava/lang/String;
Exceptions:
throws java.io.IOException
public void flushBuffer();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/util/ContentCachingResponseWrapper;
Exceptions:
throws java.io.IOException
public void setContentLength(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield org.springframework.web.util.ContentCachingResponseWrapper.content:Lorg/springframework/util/FastByteArrayOutputStream;
invokevirtual org.springframework.util.FastByteArrayOutputStream.size:()I
if_icmple 2
1: aload 0
getfield org.springframework.web.util.ContentCachingResponseWrapper.content:Lorg/springframework/util/FastByteArrayOutputStream;
iload 1
invokevirtual org.springframework.util.FastByteArrayOutputStream.resize:(I)V
2: StackMap locals:
StackMap stack:
aload 0
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
putfield org.springframework.web.util.ContentCachingResponseWrapper.contentLength:Ljava/lang/Integer;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/web/util/ContentCachingResponseWrapper;
0 4 1 len I
MethodParameters:
Name Flags
len
public void setContentLengthLong(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: lload 1
ldc 2147483647
lcmp
ifle 4
1: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Content-Length exceeds ContentCachingResponseWrapper's maximum (2147483647): "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
lload 1
l2i
istore 3
start local 3 5: iload 3
aload 0
getfield org.springframework.web.util.ContentCachingResponseWrapper.content:Lorg/springframework/util/FastByteArrayOutputStream;
invokevirtual org.springframework.util.FastByteArrayOutputStream.size:()I
if_icmple 7
6: aload 0
getfield org.springframework.web.util.ContentCachingResponseWrapper.content:Lorg/springframework/util/FastByteArrayOutputStream;
iload 3
invokevirtual org.springframework.util.FastByteArrayOutputStream.resize:(I)V
7: StackMap locals: int
StackMap stack:
aload 0
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
putfield org.springframework.web.util.ContentCachingResponseWrapper.contentLength:Ljava/lang/Integer;
8: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/springframework/web/util/ContentCachingResponseWrapper;
0 9 1 len J
5 9 3 lenInt I
MethodParameters:
Name Flags
len
public void setBufferSize(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield org.springframework.web.util.ContentCachingResponseWrapper.content:Lorg/springframework/util/FastByteArrayOutputStream;
invokevirtual org.springframework.util.FastByteArrayOutputStream.size:()I
if_icmple 2
1: aload 0
getfield org.springframework.web.util.ContentCachingResponseWrapper.content:Lorg/springframework/util/FastByteArrayOutputStream;
iload 1
invokevirtual org.springframework.util.FastByteArrayOutputStream.resize:(I)V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/web/util/ContentCachingResponseWrapper;
0 3 1 size I
MethodParameters:
Name Flags
size
public void resetBuffer();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.util.ContentCachingResponseWrapper.content:Lorg/springframework/util/FastByteArrayOutputStream;
invokevirtual org.springframework.util.FastByteArrayOutputStream.reset:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/util/ContentCachingResponseWrapper;
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial javax.servlet.http.HttpServletResponseWrapper.reset:()V
1: aload 0
getfield org.springframework.web.util.ContentCachingResponseWrapper.content:Lorg/springframework/util/FastByteArrayOutputStream;
invokevirtual org.springframework.util.FastByteArrayOutputStream.reset:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/web/util/ContentCachingResponseWrapper;
public int getStatusCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.util.ContentCachingResponseWrapper.statusCode:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/util/ContentCachingResponseWrapper;
public byte[] getContentAsByteArray();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.util.ContentCachingResponseWrapper.content:Lorg/springframework/util/FastByteArrayOutputStream;
invokevirtual org.springframework.util.FastByteArrayOutputStream.toByteArray:()[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/util/ContentCachingResponseWrapper;
public java.io.InputStream getContentInputStream();
descriptor: ()Ljava/io/InputStream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.util.ContentCachingResponseWrapper.content:Lorg/springframework/util/FastByteArrayOutputStream;
invokevirtual org.springframework.util.FastByteArrayOutputStream.getInputStream:()Ljava/io/InputStream;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/util/ContentCachingResponseWrapper;
public int getContentSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.util.ContentCachingResponseWrapper.content:Lorg/springframework/util/FastByteArrayOutputStream;
invokevirtual org.springframework.util.FastByteArrayOutputStream.size:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/util/ContentCachingResponseWrapper;
public void copyBodyToResponse();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual org.springframework.web.util.ContentCachingResponseWrapper.copyBodyToResponse:(Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/util/ContentCachingResponseWrapper;
Exceptions:
throws java.io.IOException
protected void copyBodyToResponse(boolean);
descriptor: (Z)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.web.util.ContentCachingResponseWrapper.content:Lorg/springframework/util/FastByteArrayOutputStream;
invokevirtual org.springframework.util.FastByteArrayOutputStream.size:()I
ifle 12
1: aload 0
invokevirtual org.springframework.web.util.ContentCachingResponseWrapper.getResponse:()Ljavax/servlet/ServletResponse;
checkcast javax.servlet.http.HttpServletResponse
astore 2
start local 2 2: iload 1
ifne 3
aload 0
getfield org.springframework.web.util.ContentCachingResponseWrapper.contentLength:Ljava/lang/Integer;
ifnull 8
StackMap locals: javax.servlet.http.HttpServletResponse
StackMap stack:
3: aload 2
invokeinterface javax.servlet.http.HttpServletResponse.isCommitted:()Z
ifne 8
4: aload 2
iload 1
ifeq 5
aload 0
getfield org.springframework.web.util.ContentCachingResponseWrapper.content:Lorg/springframework/util/FastByteArrayOutputStream;
invokevirtual org.springframework.util.FastByteArrayOutputStream.size:()I
goto 6
StackMap locals:
StackMap stack: javax.servlet.http.HttpServletResponse
5: aload 0
getfield org.springframework.web.util.ContentCachingResponseWrapper.contentLength:Ljava/lang/Integer;
invokevirtual java.lang.Integer.intValue:()I
StackMap locals: org.springframework.web.util.ContentCachingResponseWrapper int javax.servlet.http.HttpServletResponse
StackMap stack: javax.servlet.http.HttpServletResponse int
6: invokeinterface javax.servlet.http.HttpServletResponse.setContentLength:(I)V
7: aload 0
aconst_null
putfield org.springframework.web.util.ContentCachingResponseWrapper.contentLength:Ljava/lang/Integer;
8: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.web.util.ContentCachingResponseWrapper.content:Lorg/springframework/util/FastByteArrayOutputStream;
aload 2
invokeinterface javax.servlet.http.HttpServletResponse.getOutputStream:()Ljavax/servlet/ServletOutputStream;
invokevirtual org.springframework.util.FastByteArrayOutputStream.writeTo:(Ljava/io/OutputStream;)V
9: aload 0
getfield org.springframework.web.util.ContentCachingResponseWrapper.content:Lorg/springframework/util/FastByteArrayOutputStream;
invokevirtual org.springframework.util.FastByteArrayOutputStream.reset:()V
10: iload 1
ifeq 12
11: aload 0
invokespecial javax.servlet.http.HttpServletResponseWrapper.flushBuffer:()V
end local 2 12: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/springframework/web/util/ContentCachingResponseWrapper;
0 13 1 complete Z
2 12 2 rawResponse Ljavax/servlet/http/HttpServletResponse;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
complete
}
SourceFile: "ContentCachingResponseWrapper.java"
NestMembers:
org.springframework.web.util.ContentCachingResponseWrapper$ResponsePrintWriter org.springframework.web.util.ContentCachingResponseWrapper$ResponseServletOutputStream
InnerClasses:
private ResponsePrintWriter = org.springframework.web.util.ContentCachingResponseWrapper$ResponsePrintWriter of org.springframework.web.util.ContentCachingResponseWrapper
private ResponseServletOutputStream = org.springframework.web.util.ContentCachingResponseWrapper$ResponseServletOutputStream of org.springframework.web.util.ContentCachingResponseWrapper