amyroh 2003/01/24 15:47:46 Modified: catalina/src/share/org/apache/catalina/core LocalStrings.properties LocalStrings_fr.properties StandardWrapper.java StandardWrapperValve.java Log: Fix to return 404 for permanent UnavailableException and 503 for temporary UnavailableException according to Servlet spec 2.4 - bugtraq 4805760. Revision Changes Path 1.5 +1 -0 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/LocalStrings.properties Index: LocalStrings.properties =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/LocalStrings.properties,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- LocalStrings.properties 15 Jan 2003 03:40:42 -0000 1.4 +++ LocalStrings.properties 24 Jan 2003 23:47:45 -0000 1.5 @@ -152,6 +152,7 @@ standardWrapper.notChild=Wrapper container may not have child containers standardWrapper.notClass=No servlet class has been specified for servlet {0} standardWrapper.notContext=Parent container of a Wrapper must be a Context +standardWrapper.notFound=Servlet {0} is not available standardWrapper.notServlet=Class {0} is not a Servlet standardWrapper.privilegedServlet=Servlet of class {0} is privileged and cannot be loaded by this web application standardWrapper.releaseFilters=Release filters exception for servlet {0} 1.2 +1 -0 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/LocalStrings_fr.properties Index: LocalStrings_fr.properties =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/LocalStrings_fr.properties,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- LocalStrings_fr.properties 6 Nov 2002 09:23:37 -0000 1.1 +++ LocalStrings_fr.properties 24 Jan 2003 23:47:45 -0000 1.2 @@ -150,6 +150,7 @@ standardWrapper.notChild=L''enrobeur de conteneur (wrapper container) peut ne pas avoir de conteneurs fils standardWrapper.notClass=Aucune classe servlet n''a été spécifiée pour la servlet {0} standardWrapper.notContext=Le conteneur parent d''un enrobeur (wrapper) doit être un contexte +standardWrapper.notFound=Servlet {0} n''est pas disponible. standardWrapper.notServlet=La classe {0} n''est pas une servlet standardWrapper.privilegedServlet=La servlet de classe {0} est privilégiée (privileged) et ne peut être chargé par cette application web standardWrapper.releaseFilters=Exception des filtres de sortie (release filters) pour la servlet {0} 1.12 +13 -10 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardWrapper.java Index: StandardWrapper.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardWrapper.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- StandardWrapper.java 16 Jan 2003 21:41:45 -0000 1.11 +++ StandardWrapper.java 24 Jan 2003 23:47:45 -0000 1.12 @@ -257,10 +257,11 @@ /** * Return the available date/time for this servlet, in milliseconds since - * the epoch. If this date/time is in the future, any request for this - * servlet will return an SC_SERVICE_UNAVAILABLE error. If it is zero, - * the servlet is currently available. A value equal to Long.MAX_VALUE - * is considered to mean that unavailability is permanent. + * the epoch. If this date/time is Long.MAX_VALUE, it is considered to mean + * that unavailability is permanent and any request for this servlet will return + * an SC_NOT_FOUND error. If this date/time is in the future, any request for + * this servlet will return an SC_SERVICE_UNAVAILABLE error. If it is zero, + * the servlet is currently available. */ public long getAvailable() { @@ -271,8 +272,10 @@ /** * Set the available date/time for this servlet, in milliseconds since the - * epoch. If this date/time is in the future, any request for this servlet - * will return an SC_SERVICE_UNAVAILABLE error. + * epoch. If this date/time is Long.MAX_VALUE, it is considered to mean + * that unavailability is permanent and any request for this servlet will return + * an SC_NOT_FOUND error. If this date/time is in the future, any request for + * this servlet will return an SC_SERVICE_UNAVAILABLE error. * * @param available The new available date/time */ 1.9 +11 -6 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardWrapperValve.java Index: StandardWrapperValve.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardWrapperValve.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- StandardWrapperValve.java 15 Jan 2003 00:19:16 -0000 1.8 +++ StandardWrapperValve.java 24 Jan 2003 23:47:46 -0000 1.9 @@ -210,11 +210,16 @@ ; // NOTE - Not much we can do generically } else { long available = wrapper.getAvailable(); - if ((available > 0L) && (available < Long.MAX_VALUE)) + if ((available > 0L) && (available < Long.MAX_VALUE)) { hres.setDateHeader("Retry-After", available); - hres.sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE, + hres.sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE, sm.getString("standardWrapper.isUnavailable", wrapper.getName())); + } else if (available == Long.MAX_VALUE) { + hres.sendError(HttpServletResponse.SC_NOT_FOUND, + sm.getString("standardWrapper.notFound", + wrapper.getName())); + } } unavailable = true; }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>