remm 02/04/24 04:58:00
Modified: jasper2/src/share/org/apache/jasper/resources
messages.properties
jasper2/src/share/org/apache/jasper/servlet JspServlet.java
Log:
- Fix bug 7575.
- Jasper now keeps track of the availability status of each individual JSP page.
Revision Changes Path
1.2 +2 -1
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages.properties
Index: messages.properties
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages.properties,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- messages.properties 28 Mar 2002 18:46:19 -0000 1.1
+++ messages.properties 24 Apr 2002 11:58:00 -0000 1.2
@@ -1,4 +1,4 @@
-# $Id: messages.properties,v 1.1 2002/03/28 18:46:19 kinman Exp $
+# $Id: messages.properties,v 1.2 2002/04/24 11:58:00 remm Exp $
#
# Default localized string information
# Localized this the Default Locale as is en_US
@@ -22,6 +22,7 @@
jsp.error.not.impl.plugin=Internal error: plugin not implemented
jsp.error.not.impl.forward=Internal error: forward not implemented
jsp.error.not.impl.include=Internal error: include not implemented
+jsp.error.unavailable=JSP has been marked unavailable
jsp.error.usebean.missing.attribute=useBean: id attribute missing or misspelled
jsp.error.usebean.missing.type=useBean ({0}): Either class or type attribute must
be \
specified:
1.4 +28 -0
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/servlet/JspServlet.java
Index: JspServlet.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/servlet/JspServlet.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- JspServlet.java 24 Apr 2002 02:21:05 -0000 1.3
+++ JspServlet.java 24 Apr 2002 11:58:00 -0000 1.4
@@ -60,6 +60,7 @@
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.SingleThreadModel;
+import javax.servlet.UnavailableException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -127,6 +128,7 @@
URLClassLoader loader = null;
JspCompilationContext ctxt = null;
String outDir = null;
+ long available = 0L;
JspServletWrapper(String jspUri, boolean isErrorPage) {
this.jspUri = jspUri;
@@ -203,6 +205,14 @@
throws ServletException, IOException, FileNotFoundException
{
try {
+
+ if ((available > 0L) && (available < Long.MAX_VALUE)) {
+ response.setDateHeader("Retry-After", available);
+ response.sendError
+ (HttpServletResponse.SC_SERVICE_UNAVAILABLE,
+ Constants.getString("jsp.error.unavailable"));
+ }
+
loadIfNecessary(request, response);
// If a page is to only to be precompiled return.
@@ -219,6 +229,24 @@
theServlet.service(request, response);
}
+ } catch (UnavailableException ex) {
+ String includeRequestUri = (String)
+ request.getAttribute("javax.servlet.include.request_uri");
+ if (includeRequestUri != null) {
+ // This file was included. Throw an exception as
+ // a response.sendError() will be ignored by the
+ // servlet engine.
+ throw ex;
+ } else {
+ int unavailableSeconds = ex.getUnavailableSeconds();
+ if (unavailableSeconds <= 0)
+ unavailableSeconds = 60; // Arbitrary default
+ available = System.currentTimeMillis() +
+ (unavailableSeconds * 1000L);
+ response.sendError
+ (HttpServletResponse.SC_SERVICE_UNAVAILABLE,
+ ex.getMessage());
+ }
} catch (FileNotFoundException ex) {
String includeRequestUri = (String)
request.getAttribute("javax.servlet.include.request_uri");
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>