@ -48,6 +48,8 @@ public class ContentCachingResponseWrapper extends HttpServletResponseWrapper {
@@ -48,6 +48,8 @@ public class ContentCachingResponseWrapper extends HttpServletResponseWrapper {
@ -73,21 +75,34 @@ public class ContentCachingResponseWrapper extends HttpServletResponseWrapper {
@@ -73,21 +75,34 @@ public class ContentCachingResponseWrapper extends HttpServletResponseWrapper {
@Override
publicvoidsendError(intsc)throwsIOException{
copyBodyToResponse();
super.sendError(sc);
copyBodyToResponse(false);
try{
super.sendError(sc);
}
catch(IllegalStateExceptionex){
// Possibly on Tomcat when called too late: fall back to silent setStatus
@ -109,6 +124,7 @@ public class ContentCachingResponseWrapper extends HttpServletResponseWrapper {
@@ -109,6 +124,7 @@ public class ContentCachingResponseWrapper extends HttpServletResponseWrapper {
@Override
publicvoidsetContentLength(intlen){
this.content.resize(len);
this.contentLength=len;
}
// Overrides Servlet 3.1 setContentLengthLong(long) at runtime
@ -117,7 +133,9 @@ public class ContentCachingResponseWrapper extends HttpServletResponseWrapper {
@@ -117,7 +133,9 @@ public class ContentCachingResponseWrapper extends HttpServletResponseWrapper {
thrownewIllegalArgumentException("Content-Length exceeds ShallowEtagHeaderFilter's maximum ("+
Integer.MAX_VALUE+"): "+len);
}
this.content.resize((int)len);
intlenInt=(int)len;
this.content.resize(lenInt);
this.contentLength=lenInt;
}
@Override
@ -150,24 +168,44 @@ public class ContentCachingResponseWrapper extends HttpServletResponseWrapper {
@@ -150,24 +168,44 @@ public class ContentCachingResponseWrapper extends HttpServletResponseWrapper {