Explorar o código

HDDS-514. Clean Unregister JMX upon SCMConnectionManager#close.
Contributed by Xiaoyu Yao.

Anu Engineer %!s(int64=6) %!d(string=hai) anos
pai
achega
524f7cd354

+ 5 - 2
hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/SCMConnectionManager.java

@@ -59,7 +59,7 @@ public class SCMConnectionManager
 
 
   private final int rpcTimeout;
   private final int rpcTimeout;
   private final Configuration conf;
   private final Configuration conf;
-  private final ObjectName jmxBean;
+  private ObjectName jmxBean;
 
 
   public SCMConnectionManager(Configuration conf) {
   public SCMConnectionManager(Configuration conf) {
     this.mapLock = new ReentrantReadWriteLock();
     this.mapLock = new ReentrantReadWriteLock();
@@ -191,7 +191,10 @@ public class SCMConnectionManager
   public void close() throws IOException {
   public void close() throws IOException {
     getValues().forEach(endpointStateMachine
     getValues().forEach(endpointStateMachine
         -> IOUtils.cleanupWithLogger(LOG, endpointStateMachine));
         -> IOUtils.cleanupWithLogger(LOG, endpointStateMachine));
-    MBeans.unregister(jmxBean);
+    if (jmxBean != null) {
+      MBeans.unregister(jmxBean);
+      jmxBean = null;
+    }
   }
   }
 
 
   @Override
   @Override