Author: markt
Date: Tue Aug 31 17:52:45 2010
New Revision: 991274

URL: http://svn.apache.org/viewvc?rev=991274&view=rev
Log:
Some Lifecycle clean-up

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

Modified: tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java?rev=991274&r1=991273&r2=991274&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java Tue Aug 31 
17:52:45 2010
@@ -956,7 +956,13 @@ public abstract class ContainerBase exte
         
         fireContainerEvent(REMOVE_CHILD_EVENT, child);
         
-        // child.setParent(null);
+        // Set child's parent to null to prevent a loop
+        child.setParent(null);
+        try {
+            child.destroy();
+        } catch (LifecycleException e) {
+            log.error("ContainerBase.removeChild: destroy: ", e);
+        }
 
     }
 
@@ -1091,9 +1097,10 @@ public abstract class ContainerBase exte
 
         // Remove children now this container is being destroyed
         for (Container child : findChildren()) {
-            child.destroy();
+            removeChild(child);
         }
 
+        // Required if the child is destroyed directly.
         if (parent != null) {
             parent.removeChild(this);
         }

Modified: tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java?rev=991274&r1=991273&r2=991274&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java Tue Aug 31 
17:52:45 2010
@@ -58,7 +58,6 @@ import org.apache.catalina.Globals;
 import org.apache.catalina.Host;
 import org.apache.catalina.Lifecycle;
 import org.apache.catalina.LifecycleEvent;
-import org.apache.catalina.LifecycleException;
 import org.apache.catalina.LifecycleListener;
 import org.apache.catalina.Pipeline;
 import org.apache.catalina.Valve;
@@ -931,12 +930,6 @@ public class ContextConfig
         Container[] children = context.findChildren();
         for (i = 0; i < children.length; i++) {
             context.removeChild(children[i]);
-            try {
-                children[i].destroy();
-            } catch (LifecycleException e) {
-                log.warn(sm.getString("contentConfig.destroyChildFailed",
-                        children[1].getName(), context.getName()), e);
-            }
         }
 
         // Removing application parameters

Modified: tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties?rev=991274&r1=991273&r2=991274&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties 
(original)
+++ tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties Tue 
Aug 31 17:52:45 2010
@@ -35,7 +35,6 @@ contextConfig.defaultError=Error process
 contextConfig.defaultMissing=No global web.xml found
 contextConfig.defaultPosition=Occurred at line {0} column {1}
 contextConfig.destroy=ContextConfig: Destroying
-contentConfig.destroyChildFailed=Failed to destroy child [{0}] of context [{1}]
 contextConfig.fileUrl=Unable to create a File object from the URL [{0}]
 contextConfig.fixDocBase=Exception fixing docBase for context [{0}] 
 contextConfig.init=ContextConfig: Initializing

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=991274&r1=991273&r2=991274&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Tue Aug 31 17:52:45 2010
@@ -97,6 +97,11 @@
         de-register the web application's Servlets with the MBean server.
         (markt)
       </fix>
+      <update>
+        More tweaks to the Lifecycle refactoring to ensure that when a 
component
+        is being destroyed, the destroy method is only called once on each
+        child component. (markt) 
+      </update>
     </changelog>
   </subsection>
   <subsection name="Coyote">



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

Reply via email to