From d55ae204e7b13a4e18b22c6f4042862c69b9a12f Mon Sep 17 00:00:00 2001 From: markt Date: Sun, 6 Jun 2010 21:50:11 +0000 Subject: [PATCH] Make syncs consistent Partial fix for https://issues.apache.org/bugzilla/show_bug.cgi?id=49372 Avoid invalid Lifecycle transitions on failed start due to already bound shutdown port git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@952000 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/catalina/util/LifecycleBase.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/java/org/apache/catalina/util/LifecycleBase.java b/java/org/apache/catalina/util/LifecycleBase.java index 6dba2a051..e33959d37 100644 --- a/java/org/apache/catalina/util/LifecycleBase.java +++ b/java/org/apache/catalina/util/LifecycleBase.java @@ -134,7 +134,12 @@ public abstract class LifecycleBase implements Lifecycle { setState(LifecycleState.STARTING_PREP); - startInternal(); + try { + startInternal(); + } catch (LifecycleException e) { + setState(LifecycleState.FAILED); + throw e; + } if (state.equals(LifecycleState.FAILED) || state.equals(LifecycleState.MUST_STOP)) { @@ -296,7 +301,7 @@ public abstract class LifecycleBase implements Lifecycle { * @param state The new state for this component * @param data The data to pass to the associated {@link Lifecycle} event */ - protected void setState(LifecycleState state, Object data) { + protected synchronized void setState(LifecycleState state, Object data) { if (log.isDebugEnabled()) { log.debug(sm.getString("lifecycleBase.setState", this, state)); -- 2.11.0