You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by jf...@apache.org on 2003/03/26 22:57:59 UTC

cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core StandardWrapperValve.java

jfarcand    2003/03/26 13:57:59

  Modified:    catalina/src/share/org/apache/catalina/core
                        StandardWrapperValve.java
  Log:
  Fix for bug 18199:
  Regression in Tomcat 5: UnavailableException thrown in init() return Status 404 not 503
  
  Based on the spec SRV.2.3.3.2 Exceptions During Request Handling:
  
  - 404 will be returned if the servlet is permanently unavailable
  - 503 will be returned if the servlet is unavailable for x time
  
  Revision  Changes    Path
  1.14      +13 -1     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.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- StandardWrapperValve.java	20 Mar 2003 18:28:28 -0000	1.13
  +++ StandardWrapperValve.java	26 Mar 2003 21:57:59 -0000	1.14
  @@ -192,6 +192,18 @@
               if (!unavailable) {
                   servlet = wrapper.allocate();
               }
  +        } catch (UnavailableException e) {
  +            long available = wrapper.getAvailable();
  +            if ((available > 0L) && (available < Long.MAX_VALUE)) {
  +                hres.setDateHeader("Retry-After", available);
  +                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()));
  +            }
           } catch (ServletException e) {
               log.error(sm.getString("standardWrapper.allocateException",
                                wrapper.getName()), e);
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org