Author: markt
Date: Fri Dec 10 10:11:38 2010
New Revision: 1044266
URL: http://svn.apache.org/viewvc?rev=1044266&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
Modified:
tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java?rev=1044266&r1=1044265&r2=1044266&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java
(original)
+++ tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java Fri Dec
10 10:11:38 2010
@@ -792,6 +792,9 @@ public class DefaultServlet
}
}
+ boolean isError =
+ response.getStatus() >= HttpServletResponse.SC_BAD_REQUEST;
+
// Check if the conditions specified in the optional If headers are
// satisfied.
if (cacheEntry.context == null) {
@@ -799,8 +802,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;
}
@@ -828,21 +831,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", cacheEntry.attributes.getETag());
+
+ // Last-Modified header
+ response.setHeader("Last-Modified",
+ cacheEntry.attributes.getLastModifiedHttp());
}
- // Parse range specifier
- ranges = parseRange(request, response, cacheEntry.attributes);
-
- // ETag header
- response.setHeader("ETag", cacheEntry.attributes.getETag());
-
- // 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/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1044266&r1=1044265&r2=1044266&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Fri Dec 10 10:11:38 2010
@@ -122,6 +122,10 @@
<code>Store</code> associated with a <code>PersistentManager</code>.
(markt)
</fix>
+ <fix>
+ <bug>50413</bug>: Ensure 304 responses are not returned when using
+ static files as error pages. (markt)
+ </fix>
</changelog>
</subsection>
<subsection name="Coyote">
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]