You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2018/06/21 11:22:58 UTC

[incubator-servicecomb-java-chassis] 03/04: [SCB-194] fix DefaultRegistryInitializer shutdown problem

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 <wu...@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();
+  }
 }