From: markt Date: Thu, 11 Nov 2010 12:29:40 +0000 (+0000) Subject: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=50169 X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=50252bc5aba1d9c96ae61018d9db6bc6c4dd663f;p=tomcat7.0 Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=50169 Ensure that when a Container is started that it doesn't try and register with the mapper unless its parent has already started. Patch provided by Eiji Takahashi. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1033912 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/catalina/core/StandardContext.java b/java/org/apache/catalina/core/StandardContext.java index 76880ab46..569efe154 100644 --- a/java/org/apache/catalina/core/StandardContext.java +++ b/java/org/apache/catalina/core/StandardContext.java @@ -3033,8 +3033,8 @@ public class StandardContext extends ContainerBase welcomeFiles = results; } postWelcomeFiles(); - fireContainerEvent(ADD_WELCOME_FILE_EVENT, name); - + if(this.getState().equals(LifecycleState.STARTED)) + fireContainerEvent(ADD_WELCOME_FILE_EVENT, name); } @@ -4127,7 +4127,8 @@ public class StandardContext extends ContainerBase // Inform interested listeners postWelcomeFiles(); - fireContainerEvent(REMOVE_WELCOME_FILE_EVENT, name); + if(this.getState().equals(LifecycleState.STARTED)) + fireContainerEvent(REMOVE_WELCOME_FILE_EVENT, name); } diff --git a/java/org/apache/catalina/core/StandardWrapper.java b/java/org/apache/catalina/core/StandardWrapper.java index 7bd1284fe..299209b63 100644 --- a/java/org/apache/catalina/core/StandardWrapper.java +++ b/java/org/apache/catalina/core/StandardWrapper.java @@ -53,6 +53,7 @@ import org.apache.catalina.Globals; import org.apache.catalina.InstanceEvent; import org.apache.catalina.InstanceListener; import org.apache.catalina.LifecycleException; +import org.apache.catalina.LifecycleState; import org.apache.catalina.Wrapper; import org.apache.catalina.mbeans.MBeanUtils; import org.apache.catalina.security.SecurityUtil; @@ -737,7 +738,8 @@ public class StandardWrapper extends ContainerBase synchronized (mappings) { mappings.add(mapping); } - fireContainerEvent(ADD_MAPPING_EVENT, mapping); + if(parent.getState().equals(LifecycleState.STARTED)) + fireContainerEvent(ADD_MAPPING_EVENT, mapping); } @@ -1198,7 +1200,8 @@ public class StandardWrapper extends ContainerBase synchronized (mappings) { mappings.remove(mapping); } - fireContainerEvent(REMOVE_MAPPING_EVENT, mapping); + if(parent.getState().equals(LifecycleState.STARTED)) + fireContainerEvent(REMOVE_MAPPING_EVENT, mapping); } diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 2938dd758..2c49144c4 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -87,6 +87,11 @@ ensure that Context objects are only destroyed once. (markt) + + 50169: Ensure that when a Container is started that it + doesn't try and register with the mapper unless its parent has + already started. Patch provided by Eiji Takahashi. (markt) + 50222: Modify memory leak prevention code so it pins the system class loader in memory rather than than the common class loader,