You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by kk...@apache.org on 2010/06/25 16:13:26 UTC

svn commit: r957960 - in /tomcat/trunk: java/org/apache/catalina/core/LocalStrings.properties java/org/apache/catalina/core/StandardService.java webapps/docs/changelog.xml

Author: kkolinko
Date: Fri Jun 25 14:13:26 2010
New Revision: 957960

URL: http://svn.apache.org/viewvc?rev=957960&view=rev
Log:
Additional fix for
https://issues.apache.org/bugzilla/show_bug.cgi?id=49030
When initializing/starting/stopping connectors and one of them fails, do not ignore the others.

These changes are already included in the BZ 49030 patch that I proposed for TC6.

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

Modified: tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties?rev=957960&r1=957959&r2=957960&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties (original)
+++ tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties Fri Jun 25 14:13:26 2010
@@ -189,8 +189,11 @@ standardHost.warRequired=URL to web appl
 standardHost.warURL=Invalid URL for web application archive: {0}
 standardServer.onameFail=MBean name specified for Server [{0}] is not valid
 standardServer.shutdownViaPort=A valid shutdown command was received via the shutdown port. Stopping the Server instance.
-standardService.connector.initFailed=Failed to initialise connector [{0}]
+standardService.connector.initFailed=Failed to initialize connector [{0}]
 standardService.connector.destroyFailed=Failed to destroy connector [{0}]
+standardService.connector.pauseFailed=Failed to pause connector [{0}]
+standardService.connector.startFailed=Failed to start connector [{0}]
+standardService.connector.stopFailed=Failed to stop connector [{0}]
 standardService.initialize.failed=Service initializing at {0} failed
 standardService.onameFail=MBean name specified for Service [{0}] is not valid
 standardService.register.failed=Error registering Service at domain {0}

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=957960&r1=957959&r2=957960&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/StandardService.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardService.java Fri Jun 25 14:13:26 2010
@@ -230,7 +230,9 @@ public class StandardService extends Lif
                 try {
                     connector.start();
                 } catch (LifecycleException e) {
-                    log.error("Connector.start", e);
+                    log.error(sm.getString(
+                            "standardService.connector.startFailed",
+                            connector), e);
                 }
             }
 
@@ -294,7 +296,9 @@ public class StandardService extends Lif
                 try {
                     connectors[j].stop();
                 } catch (LifecycleException e) {
-                    log.error("Connector.stop", e);
+                    log.error(sm.getString(
+                            "standardService.connector.stopFailed",
+                            connectors[j]), e);
                 }
             }
             connector.setService(null);
@@ -433,7 +437,13 @@ public class StandardService extends Lif
         // Start our defined Connectors second
         synchronized (connectors) {
             for (int i = 0; i < connectors.length; i++) {
-                connectors[i].start();
+                try {
+                    connectors[i].start();
+                } catch (Exception e) {
+                    log.error(sm.getString(
+                            "standardService.connector.startFailed",
+                            connectors[i]), e);
+                }
             }
         }
     }
@@ -453,7 +463,13 @@ public class StandardService extends Lif
         // Stop our defined Connectors first
         synchronized (connectors) {
             for (int i = 0; i < connectors.length; i++) {
-                connectors[i].pause();
+                try {
+                    connectors[i].pause();
+                } catch (Exception e) {
+                    log.error(sm.getString(
+                            "standardService.connector.pauseFailed",
+                            connectors[i]), e);
+                }
             }
         }
 
@@ -478,11 +494,18 @@ public class StandardService extends Lif
         // Stop our defined Connectors first
         synchronized (connectors) {
             for (int i = 0; i < connectors.length; i++) {
-                // If Service fails to start, connectors may not have been
-                // started
-                if (!LifecycleState.INITIALIZED
-                        .equals(connectors[i].getState())) {
+                if (LifecycleState.INITIALIZED.equals(
+                        connectors[i].getState())) {
+                    // If Service fails to start, connectors may not have been
+                    // started
+                    continue;
+                }
+                try {
                     connectors[i].stop();
+                } catch (Exception e) {
+                    log.error(sm.getString(
+                            "standardService.connector.stopFailed",
+                            connectors[i]), e);
                 }
             }
         }
@@ -522,9 +545,12 @@ public class StandardService extends Lif
                 try {
                     connector.init();
                 } catch (Exception e) {
-                    log.error(sm.getString(
-                            "standardService.connector.initFailed", connector),
-                            e);
+                    String message = sm.getString(
+                            "standardService.connector.initFailed", connector);
+                    log.error(message, e);
+
+                    if (Boolean.getBoolean("org.apache.catalina.startup.EXIT_ON_INIT_FAILURE"))
+                        throw new LifecycleException(message);
                 }
             }
         }

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=957960&r1=957959&r2=957960&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Fri Jun 25 14:13:26 2010
@@ -56,6 +56,10 @@
         Add entryPoint support to the CSRF prevention filter. (markt)
       </add>
       <fix>
+        <bug>49030</bug>: When initializing/starting/stopping connectors and
+        one of them fails, do not ignore the others. (markt/kkolinko)
+      </fix>
+      <fix>
         <bug>49230</bug>: Enhance JRE leak prevention listener with protection
         for the keep-alive thread started by
         <code>sun.net.www.http.HttpClient</code>. Based on a patch provided by



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