BUG-4514: clean children in InternalJMXRegistrator
[controller.git] / opendaylight / config / config-manager / src / main / java / org / opendaylight / controller / config / manager / impl / jmx / ModuleJMXRegistrator.java
index c0e9b0d101b30bd912ff2674ccc254744356a68f..70ed69543ab17743d2378bd4fd35181020b39d76 100644 (file)
@@ -7,14 +7,12 @@
  */
 package org.opendaylight.controller.config.manager.impl.jmx;
 
+import com.google.common.base.Preconditions;
 import java.io.Closeable;
-
 import javax.annotation.concurrent.ThreadSafe;
 import javax.management.InstanceAlreadyExistsException;
 import javax.management.ObjectName;
-
 import org.opendaylight.controller.config.api.jmx.ObjectNameUtil;
-import org.opendaylight.controller.config.manager.impl.jmx.InternalJMXRegistrator.InternalJMXRegistration;
 
 /**
  * This subclass is used for registering readable module into JMX, it is also
@@ -26,14 +24,14 @@ import org.opendaylight.controller.config.manager.impl.jmx.InternalJMXRegistrato
 public class ModuleJMXRegistrator implements Closeable {
     private final InternalJMXRegistrator childJMXRegistrator;
 
-    public ModuleJMXRegistrator(InternalJMXRegistrator internalJMXRegistrator) {
-        this.childJMXRegistrator = internalJMXRegistrator.createChild();
+    ModuleJMXRegistrator(final InternalJMXRegistrator internalJMXRegistrator) {
+        this.childJMXRegistrator = Preconditions.checkNotNull(internalJMXRegistrator);
     }
 
     static class ModuleJMXRegistration implements AutoCloseable {
         private final InternalJMXRegistration internalJMXRegistration;
 
-        ModuleJMXRegistration(InternalJMXRegistration registration) {
+        ModuleJMXRegistration(final InternalJMXRegistration registration) {
             this.internalJMXRegistration = registration;
         }
 
@@ -43,7 +41,7 @@ public class ModuleJMXRegistrator implements Closeable {
         }
     }
 
-    public ModuleJMXRegistration registerMBean(Object object, ObjectName on)
+    public ModuleJMXRegistration registerMBean(final Object object, final ObjectName on)
             throws InstanceAlreadyExistsException {
         ObjectNameUtil.checkType(on, ObjectNameUtil.TYPE_MODULE);
         if (ObjectNameUtil.getTransactionName(on) != null) {