From: markt Date: Thu, 19 Apr 2007 02:28:08 +0000 (+0000) Subject: Fix bug 42071 - ISE on multiple UnavailableExceptions. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=639f53b30b516bd05027044174683baf81553b63;p=tomcat7.0 Fix bug 42071 - ISE on multiple UnavailableExceptions. Allow recovery after an UnavailableException git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@530239 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/jasper/servlet/JspServletWrapper.java b/java/org/apache/jasper/servlet/JspServletWrapper.java index feb02b5e3..99a43979d 100644 --- a/java/org/apache/jasper/servlet/JspServletWrapper.java +++ b/java/org/apache/jasper/servlet/JspServletWrapper.java @@ -294,10 +294,16 @@ public class JspServletWrapper { } 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; + } } /* diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 0af3297ac..606de9d5b 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -50,6 +50,14 @@ TagData.REQUEST_TIME_VALUE when the attribute value is an EL expression. (markt) + + 42071 Fix IllegalStateException on multiple requests to + an unavailable JSP. Patch provided by Kawasima Kazuh. (markt) + + + After a JSP throws an UnavailableException allow it to be accessed once + the unavailable period has expired. (markt) +