Author: kkolinko Date: Tue Jan 11 08:01:28 2011 New Revision: 1057513 URL: http://svn.apache.org/viewvc?rev=1057513&view=rev Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=50413 Ensure 304s are not returned when using static files as error pages
Additional patch is not applied yet, is left in STATUS. Modified: tomcat/tc5.5.x/trunk/STATUS.txt tomcat/tc5.5.x/trunk/container/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml Modified: tomcat/tc5.5.x/trunk/STATUS.txt URL: http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/STATUS.txt?rev=1057513&r1=1057512&r2=1057513&view=diff ============================================================================== --- tomcat/tc5.5.x/trunk/STATUS.txt (original) +++ tomcat/tc5.5.x/trunk/STATUS.txt Tue Jan 11 08:01:28 2011 @@ -77,21 +77,6 @@ PATCHES PROPOSED TO BACKPORT: +1: kkolinko, rjung -1: -* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=50413 - Ensure 304s are not returned when using static files as error pages - http://people.apache.org/~markt/patches/2011-01-04-bug50413-tc5.patch - +1: markt, rjung - +1: kkolinko: There is a minor glitch - see https://issues.apache.org/bugzilla/show_bug.cgi?id=50413#c6 - but it can be addressed separately, after applying the patch. - -1: - - Additional patch: - Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=50413#c6 - http://svn.apache.org/viewvc?rev=1056889&view=rev - Serve the error page regardless of "Range" header in the original request. - +1: kkolinko - -1: - * Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=43960 Expose available property of StandardWrapper via JMX http://people.apache.org/~markt/patches/2010-12-13-bug43960-tc5.patch @@ -132,3 +117,10 @@ PATCHES PROPOSED TO BACKPORT: (markt's patch) +1: kkolinko, rjung -1: + +* Additional patch for bug 50413: + Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=50413#c6 + Serve the error page regardless of "Range" header in the original request. + http://svn.apache.org/viewvc?rev=1056889&view=rev + +1: kkolinko + -1: Modified: tomcat/tc5.5.x/trunk/container/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java URL: http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/container/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java?rev=1057513&r1=1057512&r2=1057513&view=diff ============================================================================== --- tomcat/tc5.5.x/trunk/container/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java (original) +++ tomcat/tc5.5.x/trunk/container/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java Tue Jan 11 08:01:28 2011 @@ -798,6 +798,13 @@ public class DefaultServlet } } + boolean isError = false; + Integer status = + (Integer) request.getAttribute("javax.servlet.error.status_code"); + if (status != null) { + isError = status.intValue() >= HttpServletResponse.SC_BAD_REQUEST; + } + // Check if the conditions specified in the optional If headers are // satisfied. if (cacheEntry.context == null) { @@ -805,8 +812,8 @@ public class DefaultServlet // Checking If headers boolean included = (request.getAttribute(Globals.INCLUDE_CONTEXT_PATH_ATTR) != null); - if (!included - && !checkIfHeaders(request, response, cacheEntry.attributes)) { + if (!included && !isError && + !checkIfHeaders(request, response, cacheEntry.attributes)) { return; } @@ -834,21 +841,23 @@ public class DefaultServlet contentType = "text/html;charset=UTF-8"; } else { - if (useAcceptRanges) { - // Accept ranges header - response.setHeader("Accept-Ranges", "bytes"); + if (!isError) { + if (useAcceptRanges) { + // Accept ranges header + response.setHeader("Accept-Ranges", "bytes"); + } + + // Parse range specifier + ranges = parseRange(request, response, cacheEntry.attributes); + + // ETag header + response.setHeader("ETag", getETag(cacheEntry.attributes)); + + // Last-Modified header + response.setHeader("Last-Modified", + cacheEntry.attributes.getLastModifiedHttp()); } - // Parse range specifier - ranges = parseRange(request, response, cacheEntry.attributes); - - // ETag header - response.setHeader("ETag", getETag(cacheEntry.attributes)); - - // Last-Modified header - response.setHeader("Last-Modified", - cacheEntry.attributes.getLastModifiedHttp()); - // Get content length contentLength = cacheEntry.attributes.getContentLength(); // Special case for zero length files, which would cause a Modified: tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml?rev=1057513&r1=1057512&r2=1057513&view=diff ============================================================================== --- tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml (original) +++ tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml Tue Jan 11 08:01:28 2011 @@ -61,6 +61,10 @@ Patch provided by sebb. (kkolinko) </fix> <fix> + <bug>50413</bug>: Ensure 304s are not returned when using static files + as error pages. (markt) + </fix> + <fix> Avoid unnecessary cast in StandardContext. (markt) </fix> </changelog> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org