This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git
commit ae25d4bbce40ac6470e8320c170dc9d8033aacd3 Author: wujimin <wuji...@huawei.com> AuthorDate: Thu Jun 21 00:06:34 2018 +0800 [SCB-194] fix DefaultRegistryInitializer shutdown problem --- .../apache/servicecomb/metrics/core/DefaultRegistryInitializer.java | 6 ++++-- .../servicecomb/metrics/core/TestDefaultRegistryInitializer.java | 6 ++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/DefaultRegistryInitializer.java b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/DefaultRegistryInitializer.java index 6bd8146..586da6b 100644 --- a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/DefaultRegistryInitializer.java +++ b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/DefaultRegistryInitializer.java @@ -50,8 +50,10 @@ public class DefaultRegistryInitializer implements MetricsInitializer { @Override public void destroy() { - DefaultMonitorRegistry.getInstance().unregister(registry); - globalRegistry.remove(registry); + if (registry != null) { + DefaultMonitorRegistry.getInstance().unregister(registry); + globalRegistry.remove(registry); + } } public Registry getRegistry() { diff --git a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestDefaultRegistryInitializer.java b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestDefaultRegistryInitializer.java index 4b2a1c3..f5e77b0 100644 --- a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestDefaultRegistryInitializer.java +++ b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestDefaultRegistryInitializer.java @@ -54,4 +54,10 @@ public class TestDefaultRegistryInitializer { Assert.assertEquals(0, registries.size()); Assert.assertEquals(0, DefaultMonitorRegistry.getInstance().getRegisteredMonitors().size()); } + + @Test + public void destroy_notInit() { + // should not throw exception + registryInitializer.destroy(); + } }