Author: markt
Date: Tue Jan  4 17:57:16 2011
New Revision: 1055121

URL: http://svn.apache.org/viewvc?rev=1055121&view=rev
Log:
Re-fix https://issues.apache.org/bugzilla/show_bug.cgi?id=49372
Don't throw an LifecycleException for an invalid transition if a connector 
fails to start.

Modified:
    tomcat/trunk/java/org/apache/catalina/core/StandardService.java
    tomcat/trunk/java/org/apache/catalina/util/LifecycleBase.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/catalina/core/StandardService.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardService.java?rev=1055121&r1=1055120&r2=1055121&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/StandardService.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardService.java Tue Jan  4 
17:57:16 2011
@@ -453,7 +453,10 @@ public class StandardService extends Lif
         synchronized (connectors) {
             for (Connector connector: connectors) {
                 try {
-                    connector.start();
+                    // If it has already failed, don't try and start it
+                    if (connector.getState() != LifecycleState.FAILED) {
+                        connector.start();
+                    }
                 } catch (Exception e) {
                     log.error(sm.getString(
                             "standardService.connector.startFailed",

Modified: tomcat/trunk/java/org/apache/catalina/util/LifecycleBase.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/util/LifecycleBase.java?rev=1055121&r1=1055120&r2=1055121&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/util/LifecycleBase.java (original)
+++ tomcat/trunk/java/org/apache/catalina/util/LifecycleBase.java Tue Jan  4 
17:57:16 2011
@@ -97,7 +97,12 @@ public abstract class LifecycleBase impl
         }
         setState(LifecycleState.INITIALIZING);
 
-        initInternal();
+        try {
+            initInternal();
+        } catch (LifecycleException e) {
+            setState(LifecycleState.FAILED);
+            throw e;
+        }
 
         setState(LifecycleState.INITIALIZED);
     }
@@ -213,7 +218,12 @@ public abstract class LifecycleBase impl
         
         setState(LifecycleState.STOPPING_PREP);
 
-        stopInternal();
+        try {
+            stopInternal();
+        } catch (LifecycleException e) {
+            setState(LifecycleState.FAILED);
+            throw e;
+        }
 
         if (state.equals(LifecycleState.MUST_DESTROY)) {
             // Complete stop process first
@@ -221,8 +231,8 @@ public abstract class LifecycleBase impl
 
             destroy();
         } else {
-            // Shouldn't be necessary but acts as a check that sub-classes are 
doing
-            // what they are supposed to.
+            // Shouldn't be necessary but acts as a check that sub-classes are
+            // doing what they are supposed to.
             if (!state.equals(LifecycleState.STOPPING)) {
                 invalidTransition(Lifecycle.AFTER_STOP_EVENT);
             }
@@ -271,7 +281,12 @@ public abstract class LifecycleBase impl
 
         setState(LifecycleState.DESTROYING);
         
-        destroyInternal();
+        try {
+            destroyInternal();
+        } catch (LifecycleException e) {
+            setState(LifecycleState.FAILED);
+            throw e;
+        }
         
         setState(LifecycleState.DESTROYED);
     }

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1055121&r1=1055120&r2=1055121&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Tue Jan  4 17:57:16 2011
@@ -82,6 +82,12 @@
         the pool when a web application is stopped. (slaurent)
       </add>
       <fix>
+        <bug>49372</bug>: Re-fix after connector re-factoring. If connector
+        initialisation fails (e.g. if a port is alreasy in use) do not trigger
+        an <code>LifecycleException</code> for an invalid state transition.
+        (markt)
+      </fix>
+      <fix>
         <bug>49650</bug>: Remove unnecessary entries package.access property
         defined in catalina.properties. Patch provided by Owen Farrell. 
(markt) 
       </fix>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to