remm 01/11/27 08:22:47 Modified: catalina/src/share/org/apache/catalina/connector/http HttpResponseStream.java Log: - Add a generic mechanism to swallow the content when using HEAD. Note: The problem was only present with error reports, as the default servlet properly handled HEAD (it will continue to be that way, since it's obviously more efficient). Bugzilla: 5126 Revision Changes Path 1.11 +30 -3 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpResponseStream.java Index: HttpResponseStream.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpResponseStream.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- HttpResponseStream.java 2001/11/01 17:59:45 1.10 +++ HttpResponseStream.java 2001/11/27 16:22:47 1.11 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpResponseStream.java,v 1.10 2001/11/01 17:59:45 remm Exp $ - * $Revision: 1.10 $ - * $Date: 2001/11/01 17:59:45 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpResponseStream.java,v 1.11 2001/11/27 16:22:47 remm Exp $ + * $Revision: 1.11 $ + * $Date: 2001/11/27 16:22:47 $ * * ==================================================================== * @@ -66,6 +66,7 @@ import java.io.IOException; import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpServletRequest; import org.apache.catalina.Response; import org.apache.catalina.connector.ResponseStream; @@ -100,6 +101,7 @@ super(response); checkChunking(response); + checkHead(response); } @@ -119,6 +121,12 @@ private boolean writingChunk; + /** + * True if no content should be written. + */ + private boolean writeContent; + + // -------------------------------------------- ServletOutputStream Methods @@ -135,6 +143,9 @@ if (suspended) return; + if (!writeContent) + return; + if (useChunking && !writingChunk) { writingChunk = true; try { @@ -160,6 +171,9 @@ if (suspended) return; + if (!writeContent) + return; + if (useChunking && !writingChunk) { if (len > 0) { writingChunk = true; @@ -188,6 +202,9 @@ throw new IOException (sm.getString("responseStream.suspended")); + if (!writeContent) + return; + if (useChunking) { // Write the final chunk. writingChunk = true; @@ -227,6 +244,16 @@ } else if (response.isChunkingAllowed()) { response.removeHeader("Transfer-Encoding", "chunked"); } + } + + + protected void checkHead(HttpResponseImpl response) { + HttpServletRequest servletRequest = + (HttpServletRequest) response.getRequest(); + if (servletRequest.getMethod().equals("HEAD")) + writeContent = false; + else + writeContent = true; }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>