Make sure Server calls destroy() on subordinate Services
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Sun, 2 May 2010 18:31:41 +0000 (18:31 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Sun, 2 May 2010 18:31:41 +0000 (18:31 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@940292 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/catalina/core/StandardServer.java

index 778c5f0..4b83623 100644 (file)
@@ -715,7 +715,7 @@ public final class StandardServer extends LifecycleBase
     }
     
     @Override
-    protected void destroyInternal() {
+    protected void destroyInternal() throws LifecycleException {
         Registry registry = Registry.getRegistry(null, null);
         
         if (onameStringCache != null) {
@@ -724,6 +724,11 @@ public final class StandardServer extends LifecycleBase
         if (onameMBeanFactory != null) {
             registry.unregisterComponent(onameMBeanFactory);
         }
+        
+        // Destroy our defined Services
+        for (int i = 0; i < services.length; i++) {
+            services[i].destroy();
+        }
     }
 
     protected volatile String domain;