diff --git a/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyService.java b/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyService.java index b62f218fa2..88f70db86b 100644 --- a/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyService.java +++ b/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyService.java @@ -245,6 +245,12 @@ private void stopJetty() this.loadBalancerCustomizerTracker = null; } + if (this.mbeanServerTracker != null) + { + this.mbeanServerTracker.close(); + this.mbeanServerTracker = null; + } + try { this.server.stop(); @@ -255,12 +261,6 @@ private void stopJetty() { SystemLogger.LOGGER.error("Exception while stopping Jetty", e); } - - if (this.mbeanServerTracker != null) - { - this.mbeanServerTracker.close(); - this.mbeanServerTracker = null; - } } } diff --git a/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/MBeanServerTracker.java b/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/MBeanServerTracker.java index 4f1912d90f..5fd01f1338 100644 --- a/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/MBeanServerTracker.java +++ b/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/MBeanServerTracker.java @@ -59,6 +59,7 @@ public void removedService(ServiceReference reference, MBeanContain { if ( service != null ) { + service.destroy(); this.server.removeEventListener(service); super.removedService(reference, service); } diff --git a/http/jetty12/src/main/java/org/apache/felix/http/jetty/internal/JettyService.java b/http/jetty12/src/main/java/org/apache/felix/http/jetty/internal/JettyService.java index 24b45d8868..375b1e2d72 100644 --- a/http/jetty12/src/main/java/org/apache/felix/http/jetty/internal/JettyService.java +++ b/http/jetty12/src/main/java/org/apache/felix/http/jetty/internal/JettyService.java @@ -255,6 +255,12 @@ private void stopJetty() this.loadBalancerCustomizerTracker = null; } + if (this.mbeanServerTracker != null) + { + this.mbeanServerTracker.close(); + this.mbeanServerTracker = null; + } + try { this.server.stop(); @@ -265,12 +271,6 @@ private void stopJetty() { SystemLogger.LOGGER.error("Exception while stopping Jetty", e); } - - if (this.mbeanServerTracker != null) - { - this.mbeanServerTracker.close(); - this.mbeanServerTracker = null; - } } } diff --git a/http/jetty12/src/main/java/org/apache/felix/http/jetty/internal/MBeanServerTracker.java b/http/jetty12/src/main/java/org/apache/felix/http/jetty/internal/MBeanServerTracker.java index 4f1912d90f..5fd01f1338 100644 --- a/http/jetty12/src/main/java/org/apache/felix/http/jetty/internal/MBeanServerTracker.java +++ b/http/jetty12/src/main/java/org/apache/felix/http/jetty/internal/MBeanServerTracker.java @@ -59,6 +59,7 @@ public void removedService(ServiceReference reference, MBeanContain { if ( service != null ) { + service.destroy(); this.server.removeEventListener(service); super.removedService(reference, service); }