Author: markt
Date: Wed Apr 18 19:27:55 2007
New Revision: 530238

URL: http://svn.apache.org/viewvc?view=rev&rev=530238
Log:
Fix bug 42071 - ISE on multiple UnavailableExceptions.
Allow recovery after an UnavailableException 

Modified:
    tomcat/container/tc5.5.x/webapps/docs/changelog.xml
    
tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/servlet/JspServletWrapper.java

Modified: tomcat/container/tc5.5.x/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/webapps/docs/changelog.xml?view=diff&rev=530238&r1=530237&r2=530238
==============================================================================
--- tomcat/container/tc5.5.x/webapps/docs/changelog.xml (original)
+++ tomcat/container/tc5.5.x/webapps/docs/changelog.xml Wed Apr 18 19:27:55 2007
@@ -139,6 +139,14 @@
         (markt)
       </fix>
       <fix>
+        <bug>42071</bug> Fix IllegalStateException on multiple requests to
+        an unavailable JSP. Patch provided by Kawasima Kazuh. (markt)
+      </fix>
+      <fix>
+        After a JSP throws an UnavailableException allow it to be accessed once
+        the unavailable period has expired. (markt)
+      </fix>
+      <fix>
         <bug>42072</bug> Don't call destroy() if the associated init() fails.
         Patch provided by Kawasima Kazuh. (markt)
       </fix>

Modified: 
tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/servlet/JspServletWrapper.java
URL: 
http://svn.apache.org/viewvc/tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/servlet/JspServletWrapper.java?view=diff&rev=530238&r1=530237&r2=530238
==============================================================================
--- 
tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/servlet/JspServletWrapper.java
 (original)
+++ 
tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/servlet/JspServletWrapper.java
 Wed Apr 18 19:27:55 2007
@@ -284,10 +284,16 @@
             }
 
             if ((available > 0L) && (available < Long.MAX_VALUE)) {
-                response.setDateHeader("Retry-After", available);
-                response.sendError
-                    (HttpServletResponse.SC_SERVICE_UNAVAILABLE,
-                     Localizer.getMessage("jsp.error.unavailable"));
+                if (available > System.currentTimeMillis()) {
+                    response.setDateHeader("Retry-After", available);
+                    response.sendError
+                        (HttpServletResponse.SC_SERVICE_UNAVAILABLE,
+                         Localizer.getMessage("jsp.error.unavailable"));
+                    return;
+                } else {
+                    // Wait period has expired. Reset.
+                    available = 0;
+                }
             }
 
             /*



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to