X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fconfig%2Fconfig-manager%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fmanager%2Fimpl%2Fjmx%2FInternalJMXRegistrator.java;h=ddb9c52c88337b0b4aaa051828682d88b15eae7b;hp=98f0908dc710cf40fbb93b88004d411d03f594fd;hb=73e969cf365dd78772596c71e940ae44fe2f22d3;hpb=f347d306c3580f0e10e8ad0c551432aa931d856a diff --git a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/jmx/InternalJMXRegistrator.java b/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/jmx/InternalJMXRegistrator.java index 98f0908dc7..ddb9c52c88 100644 --- a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/jmx/InternalJMXRegistrator.java +++ b/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/jmx/InternalJMXRegistrator.java @@ -27,7 +27,7 @@ import java.util.List; import java.util.Set; public class InternalJMXRegistrator implements Closeable { - private static final Logger logger = LoggerFactory + private static final Logger LOGGER = LoggerFactory .getLogger(InternalJMXRegistrator.class); private final MBeanServer configMBeanServer; @@ -53,6 +53,7 @@ public class InternalJMXRegistrator implements Closeable { @GuardedBy("this") private final Set registeredObjectNames = new HashSet<>(); + @GuardedBy("this") private final List children = new ArrayList<>(); public synchronized InternalJMXRegistration registerMBean(Object object, @@ -79,9 +80,8 @@ public class InternalJMXRegistrator implements Closeable { } } - public InternalJMXRegistrator createChild() { - InternalJMXRegistrator child = new InternalJMXRegistrator( - configMBeanServer); + public synchronized InternalJMXRegistrator createChild() { + InternalJMXRegistrator child = new InternalJMXRegistrator(configMBeanServer); children.add(child); return child; } @@ -100,7 +100,7 @@ public class InternalJMXRegistrator implements Closeable { try { configMBeanServer.unregisterMBean(on); } catch (Exception e) { - logger.warn("Ignoring error while unregistering {}", on, e); + LOGGER.warn("Ignoring error while unregistering {}", on, e); } } registeredObjectNames.clear(); @@ -137,7 +137,7 @@ public class InternalJMXRegistrator implements Closeable { return getSameNames(result); } - private Set getSameNames(Set superSet) { + private synchronized Set getSameNames(Set superSet) { Set result = new HashSet<>(superSet); result.retainAll(registeredObjectNames); for (InternalJMXRegistrator child : children) {