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()));
           }
  
  
  

Reply via email to