2012/1/13  <ma...@apache.org>:
> Author: markt
> Date: Thu Jan 12 20:34:24 2012
> New Revision: 1230765
>
> URL: http://svn.apache.org/viewvc?rev=1230765&view=rev
> Log:
> Move destruction of ContainerBase objects to ContainerBase to ensure
> that they are destroyed.
>
> Modified:
>    tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java
>    tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
>
> 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=1230765&r1=1230764&r2=1230765&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java (original)
> +++ tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java Thu Jan 12 
> 20:34:24 2012
> @@ -1195,6 +1195,20 @@ public abstract class ContainerBase exte
>     @Override
>     protected void destroyInternal() throws LifecycleException {
>
> +        if ((manager != null) && (manager instanceof Lifecycle)) {
> +            ((Lifecycle) manager).destroy();
> +        }
> +        Realm realm = getRealmInternal();
> +        if ((realm != null) && (realm instanceof Lifecycle)) {
> +            ((Lifecycle) realm).destroy();
> +        }
> +        if ((cluster != null) && (cluster instanceof Lifecycle)) {
> +            ((Lifecycle) cluster).destroy();
> +        }
> +        if ((loader != null) && (loader instanceof Lifecycle)) {
> +            ((Lifecycle) loader).destroy();
> +        }
> +
>         // Stop the Valves in our pipeline (including the basic), if any
>         if (pipeline instanceof Lifecycle) {
>             ((Lifecycle) pipeline).destroy();

I think valves should be destroyed first and those helper objects
second, like the order in stopInternal(). Though I understand that the
current order better matches to what happened with destroy code in
StandardContext.

>
> Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
> URL: 
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1230765&r1=1230764&r2=1230765&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java (original)
> +++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Thu Jan 
> 12 20:34:24 2012
> @@ -5450,20 +5450,6 @@ public class StandardContext extends Con
>     @Override
>     protected void destroyInternal() throws LifecycleException {
>
> -        if ((manager != null) && (manager instanceof Lifecycle)) {
> -            ((Lifecycle) manager).destroy();
> -        }
> -        Realm realm = getRealmInternal();
> -        if ((realm != null) && (realm instanceof Lifecycle)) {
> -            ((Lifecycle) realm).destroy();
> -        }
> -        if ((cluster != null) && (cluster instanceof Lifecycle)) {
> -            ((Lifecycle) cluster).destroy();
> -        }
> -        if ((loader != null) && (loader instanceof Lifecycle)) {
> -            ((Lifecycle) loader).destroy();
> -        }
> -
>         // If in state NEW when destroy is called, the object name will never
>         // have been set so the notification can't be created
>         if (getObjectName() != null) {
>
>
>
> ---------------------------------------------------------------------
>

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

Reply via email to