From bb2c669c81f14102afd13eddaada62306170552f Mon Sep 17 00:00:00 2001 From: markt Date: Mon, 3 Nov 2008 18:53:37 +0000 Subject: [PATCH] As per Remy's review comment, make sure we continue to reset the writer/stream flags before forwarding to a custom error page. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@710125 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/catalina/connector/Response.java | 24 +++++++++++++++++++++- .../apache/catalina/core/StandardHostValve.java | 2 +- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/java/org/apache/catalina/connector/Response.java b/java/org/apache/catalina/connector/Response.java index fa4213529..e4cc50c78 100644 --- a/java/org/apache/catalina/connector/Response.java +++ b/java/org/apache/catalina/connector/Response.java @@ -670,16 +670,38 @@ public class Response * been committed */ public void resetBuffer() { + resetBuffer(false); + } + + + /** + * Reset the data buffer and the using Writer/Stream flags but not any + * status or header information. + * + * @param resetWriterStreamFlags true if the internal + * usingWriter, usingOutputStream, + * isCharacterEncodingSet flags should also be reset + * + * @exception IllegalStateException if the response has already + * been committed + */ + public void resetBuffer(boolean resetWriterStreamFlags) { if (isCommitted()) throw new IllegalStateException (sm.getString("coyoteResponse.resetBuffer.ise")); outputBuffer.reset(); + + if(resetWriterStreamFlags) { + usingOutputStream = false; + usingWriter = false; + isCharacterEncodingSet = false; + } } - + /** * Set the buffer size to be used for this Response. * diff --git a/java/org/apache/catalina/core/StandardHostValve.java b/java/org/apache/catalina/core/StandardHostValve.java index 79b920c19..6229511b8 100644 --- a/java/org/apache/catalina/core/StandardHostValve.java +++ b/java/org/apache/catalina/core/StandardHostValve.java @@ -406,7 +406,7 @@ final class StandardHostValve try { // Reset the response (keeping the real error code and message) - response.resetBuffer(); + response.resetBuffer(true); // Forward control to the specified location ServletContext servletContext = -- 2.11.0