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: [email protected]
For additional commands, e-mail: [email protected]