Author: markt Date: Sat Jun 30 13:24:09 2012 New Revision: 1355734 URL: http://svn.apache.org/viewvc?rev=1355734&view=rev Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=52135 Implement support for a default error page. It appears that this was meant to be in the 3.0 spec but got left out in error.
Added: tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TestStandardHostValve.java - copied unchanged from r1355726, tomcat/trunk/test/org/apache/catalina/core/TestStandardHostValve.java Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardHostValve.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/deploy/ErrorPage.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Propchange: tomcat/tc7.0.x/trunk/ ------------------------------------------------------------------------------ Merged /tomcat/trunk:r1355726 Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1355734&r1=1355733&r2=1355734&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java Sat Jun 30 13:24:09 2012 @@ -574,7 +574,8 @@ public class StandardContext extends Con /** * The status code error pages for this web application, keyed by - * HTTP status code (as an Integer). + * HTTP status code (as an Integer). Note status code zero is used for the + * default error page. */ private HashMap<Integer, ErrorPage> statusPages = new HashMap<Integer, ErrorPage>(); Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardHostValve.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardHostValve.java?rev=1355734&r1=1355733&r2=1355734&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardHostValve.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardHostValve.java Sat Jun 30 13:24:09 2012 @@ -299,6 +299,10 @@ final class StandardHostValve extends Va return; ErrorPage errorPage = context.findErrorPage(statusCode); + if (errorPage == null) { + // Look for a default error page + errorPage = context.findErrorPage(0); + } if (errorPage != null) { response.setAppCommitted(false); request.setAttribute(RequestDispatcher.ERROR_STATUS_CODE, Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/deploy/ErrorPage.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/deploy/ErrorPage.java?rev=1355734&r1=1355733&r2=1355734&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/deploy/ErrorPage.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/deploy/ErrorPage.java Sat Jun 30 13:24:09 2012 @@ -41,7 +41,8 @@ public class ErrorPage implements Serial /** - * The error (status) code for which this error page is active. + * The error (status) code for which this error page is active. Note that + * status code 0 is used for the default error page. */ private int errorCode = 0; Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1355734&r1=1355733&r2=1355734&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Sat Jun 30 13:24:09 2012 @@ -72,6 +72,12 @@ stuckThreadNames property as a pair for the stuckThreadIds one, add thread ids to the log messages. (kkolinko) </update> + <add> + <bug>52135</bug>: Add support for a default error page to be defined in + web.xml by defining an error page with just a nested location element. + It appears this feature was intended to be included in the Servlet 3.0 + specification but was accidently left out. (markt) + </add> <fix> <bug>53450</bug>: Correct regression in fix for <bug>52999</bug> that could easily trigger a deadlock when deploying a ROOT web application. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org