This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit b38281c8263d1a978594dd4e950f382bc7d96dba Author: Mark Thomas <ma...@apache.org> AuthorDate: Thu May 25 14:15:09 2023 +0100 Revert "Don't set 'C-L: 0' for HEAD requests if Servlet doesn't specify C-L" This reverts commit 7d9cacdfc2e073ef4b1493d14f5c8f9f47a00c7f. This broke too many things. It was also not quite right but even the correct fix broke quite a few tests. The fundamental problem is that Tomcat can't differentiate between a HEAD request that opts not to write any data to save resources (and should not have any C-L header) and a HEAD request explicitly writes zero byres because that is what the corresponding GET would do (which should have a header of C-L: 0). Rather than risk regressions, leave the current behaviour as-is. --- java/org/apache/catalina/connector/OutputBuffer.java | 6 +++--- webapps/docs/changelog.xml | 5 ----- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/java/org/apache/catalina/connector/OutputBuffer.java b/java/org/apache/catalina/connector/OutputBuffer.java index 0e5bd6659e..62966c653b 100644 --- a/java/org/apache/catalina/connector/OutputBuffer.java +++ b/java/org/apache/catalina/connector/OutputBuffer.java @@ -232,9 +232,9 @@ public class OutputBuffer extends Writer { flushCharBuffer(); } - if (!coyoteResponse.isCommitted() && coyoteResponse.getContentLengthLong() == -1 && - !coyoteResponse.getRequest().method().equals("HEAD")) { - // If this didn't cause a commit of the response, the final content length can be calculated. + if ((!coyoteResponse.isCommitted()) && (coyoteResponse.getContentLengthLong() == -1)) { + // If this didn't cause a commit of the response, the final content + // length can be calculated. if (!coyoteResponse.isCommitted()) { coyoteResponse.setContentLength(bb.remaining()); } diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index d7cc56b496..d1fe84b1d2 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -124,11 +124,6 @@ file names in directory listings when using XML output. Based on pull request <pr>621</pr> by Alex Kachanov. (markt) </fix> - <fix> - When processing a HEAD request, do not set an HTTP response header for - Content-Length with the value zero if the Servlet does not set the - header. (markt) - </fix> </changelog> </subsection> <subsection name="Coyote"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org