craigmcc 01/09/15 16:31:30 Modified: catalina/src/share/org/apache/catalina/core LocalStrings.properties StandardContext.java catalina/src/share/org/apache/catalina/servlets LocalStrings.properties ManagerServlet.java Log: If an application start (or reload) failed during Context.start(), call stop() so that the context is not left half initialized. Among other things, this allows you to restart the app with the manager application after correcting the condition that caused the startup failure in the first place. PR: Bugzilla #3614 Submitted by: Sascha Coenen <[EMAIL PROTECTED]> Revision Changes Path 1.36 +1 -0 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/LocalStrings.properties Index: LocalStrings.properties =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/LocalStrings.properties,v retrieving revision 1.35 retrieving revision 1.36 diff -u -r1.35 -r1.36 --- LocalStrings.properties 2001/07/25 04:25:58 1.35 +++ LocalStrings.properties 2001/09/15 23:31:29 1.36 @@ -59,6 +59,7 @@ standardContext.securityConstraint.pattern=Invalid <url-pattern> {0} in security constraint standardContext.servletMap.name=Servlet mapping specifies an unknown servlet name {0} standardContext.servletMap.pattern=Invalid <url-pattern> {0} in servlet mapping +standardContext.startCleanup-Exception during cleanup after start failed standardContext.startFailed=Context startup failed due to previous errors standardContext.startingLoader=Exception starting Loader standardContext.startingManager=Exception starting Manager 1.78 +10 -4 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java Index: StandardContext.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v retrieving revision 1.77 retrieving revision 1.78 diff -u -r1.77 -r1.78 --- StandardContext.java 2001/09/09 00:48:11 1.77 +++ StandardContext.java 2001/09/15 23:31:29 1.78 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v 1.77 2001/09/09 00:48:11 craigmcc Exp $ - * $Revision: 1.77 $ - * $Date: 2001/09/09 00:48:11 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v 1.78 2001/09/15 23:31:29 craigmcc Exp $ + * $Revision: 1.78 $ + * $Date: 2001/09/15 23:31:29 $ * * ==================================================================== * @@ -142,7 +142,7 @@ * * @author Craig R. McClanahan * @author Remy Maucherat - * @version $Revision: 1.77 $ $Date: 2001/09/09 00:48:11 $ + * @version $Revision: 1.78 $ $Date: 2001/09/15 23:31:29 $ */ public class StandardContext @@ -3404,12 +3404,18 @@ // Unbinding thread unbindThread(oldCCL); + // Set available status depending upon startup success if (ok) { if (debug >= 1) log("Starting completed"); setAvailable(true); } else { log(sm.getString("standardContext.startFailed")); + try { + stop(); + } catch (Throwable t) { + log(sm.getString("standardContext.startCleanup"), t); + } setAvailable(false); } 1.9 +1 -0 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/LocalStrings.properties Index: LocalStrings.properties =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/LocalStrings.properties,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- LocalStrings.properties 2001/07/17 00:14:17 1.8 +++ LocalStrings.properties 2001/09/15 23:31:30 1.9 @@ -27,6 +27,7 @@ managerServlet.sessiontimeout={0} minutes:{1} sessions managerServlet.sessions=OK - Session information for application at context path {0} managerServlet.started=OK - Started application at context path {0} +managerServlet.startFailed=FAIL - Application at context path {0} could not be started managerServlet.stopped=OK - Stopped application at context path {0} managerServlet.unknownCommand=FAIL - Unknown command {0} webdavservlet.jaxpfailed=JAXP initialization failed 1.9 +14 -7 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/ManagerServlet.java Index: ManagerServlet.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/ManagerServlet.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- ManagerServlet.java 2001/08/20 00:33:34 1.8 +++ ManagerServlet.java 2001/09/15 23:31:30 1.9 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/ManagerServlet.java,v 1.8 2001/08/20 00:33:34 craigmcc Exp $ - * $Revision: 1.8 $ - * $Date: 2001/08/20 00:33:34 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/ManagerServlet.java,v 1.9 2001/09/15 23:31:30 craigmcc Exp $ + * $Revision: 1.9 $ + * $Date: 2001/09/15 23:31:30 $ * * ==================================================================== * @@ -153,7 +153,7 @@ * </ul> * * @author Craig R. McClanahan - * @version $Revision: 1.8 $ $Date: 2001/08/20 00:33:34 $ + * @version $Revision: 1.9 $ $Date: 2001/09/15 23:31:30 $ */ public class ManagerServlet @@ -585,10 +585,17 @@ return; } deployer.start(path); - writer.println(sm.getString("managerServlet.started", displayPath)); + if (context.getAvailable()) + writer.println + (sm.getString("managerServlet.started", displayPath)); + else + writer.println + (sm.getString("managerServlet.startFailed", displayPath)); } catch (Throwable t) { - getServletContext().log("ManagerServlet.start[" + displayPath + "]", - t); + getServletContext().log + (sm.getString("managerServlet.startFailed", displayPath), t); + writer.println + (sm.getString("managerServlet.startFailed", displayPath)); writer.println(sm.getString("managerServlet.exception", t.toString())); }