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-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org