X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fconfig-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fconfignetconfconnector%2Fosgi%2FNetconfOperationServiceFactoryImpl.java;h=4ca71ae2886a143d7322ed67be3a97b6f8a6cfb3;hp=2db3c9d4f1d538893da1b9de420c696ef555e242;hb=94b968f7454a2d677b1ac8fc4a81c10ecca03fa3;hpb=eb538dbc16c0bb487f8ed70547b0df2c8c96c432 diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/osgi/NetconfOperationServiceFactoryImpl.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/osgi/NetconfOperationServiceFactoryImpl.java index 2db3c9d4f1..4ca71ae288 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/osgi/NetconfOperationServiceFactoryImpl.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/osgi/NetconfOperationServiceFactoryImpl.java @@ -9,8 +9,6 @@ package org.opendaylight.controller.netconf.confignetconfconnector.osgi; import org.opendaylight.controller.config.util.ConfigRegistryJMXClient; -import org.opendaylight.controller.config.yang.store.api.YangStoreException; -import org.opendaylight.controller.config.yang.store.api.YangStoreService; import org.opendaylight.controller.netconf.mapping.api.NetconfOperationServiceFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -21,6 +19,7 @@ import java.lang.management.ManagementFactory; public class NetconfOperationServiceFactoryImpl implements NetconfOperationServiceFactory { public static final int ATTEMPT_TIMEOUT_MS = 1000; + private static final int SILENT_ATTEMPTS = 30; private final YangStoreService yangStoreService; private final ConfigRegistryJMXClient jmxClient; @@ -34,25 +33,35 @@ public class NetconfOperationServiceFactoryImpl implements NetconfOperationServi public NetconfOperationServiceFactoryImpl(YangStoreService yangStoreService, MBeanServer mBeanServer) { this.yangStoreService = yangStoreService; + ConfigRegistryJMXClient configRegistryJMXClient; + int i = 0; // Config registry might not be present yet, but will be eventually while(true) { - final ConfigRegistryJMXClient configRegistryJMXClient; try { configRegistryJMXClient = new ConfigRegistryJMXClient(mBeanServer); + break; } catch (IllegalStateException e) { - logger.debug("Jmx client could not be created, reattempting"); + ++i; + if (i > SILENT_ATTEMPTS) { + logger.info("JMX client not created after {} attempts, still trying", i, e); + } else { + logger.debug("JMX client could not be created, reattempting, try {}", i, e); + } try { Thread.sleep(ATTEMPT_TIMEOUT_MS); } catch (InterruptedException e1) { Thread.currentThread().interrupt(); - throw new RuntimeException(e1); + throw new RuntimeException("Interrupted while reattempting connection", e1); } - continue; } + } - jmxClient = configRegistryJMXClient; - break; + jmxClient = configRegistryJMXClient; + if (i > SILENT_ATTEMPTS) { + logger.info("Created JMX client after {} attempts", i); + } else { + logger.debug("Created JMX client after {} attempts", i); } }