X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsamples%2Fclustering-test-app%2Fprovider%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fclustering%2Fit%2Fprovider%2Fimpl%2FFlappingSingletonService.java;h=cbc9a102000b7983b3cd349d85cbae24c67a642f;hb=5afe951a7bfc7275cf35569985173e3ec6817082;hp=5ca33ad51d63e268ce905a6cb87c44b9fb84dc81;hpb=542cc671163e58cf681612b5d762ab47eeb71e13;p=controller.git diff --git a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/FlappingSingletonService.java b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/FlappingSingletonService.java index 5ca33ad51d..cbc9a10200 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/FlappingSingletonService.java +++ b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/FlappingSingletonService.java @@ -10,9 +10,6 @@ package org.opendaylight.controller.clustering.it.provider.impl; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; @@ -29,14 +26,11 @@ public class FlappingSingletonService implements ClusterSingletonService { ServiceGroupIdentifier.create("flapping-singleton-service"); private final ClusterSingletonServiceProvider singletonServiceProvider; + private final AtomicBoolean active = new AtomicBoolean(true); private volatile long flapCount = 0; - private AtomicBoolean active = new AtomicBoolean(true); - private volatile ClusterSingletonServiceRegistration registration; - private static ScheduledExecutorService EXECUTOR = Executors.newSingleThreadScheduledExecutor(); - public FlappingSingletonService(final ClusterSingletonServiceProvider singletonServiceProvider) { LOG.debug("Registering flapping-singleton-service."); @@ -47,19 +41,14 @@ public class FlappingSingletonService implements ClusterSingletonService { @Override public void instantiateServiceInstance() { LOG.debug("Instantiating flapping-singleton-service."); - - // TODO direct registration/close seem to trigger a bug in singleton state transitions, - // remove the whole executor shenanigans after it's fixed. - EXECUTOR.submit(() -> { - try { - registration.close(); - registration = null; - } catch (final Exception e) { - LOG.warn("There was a problem closing flapping singleton service.", e); - setInactive(); - flapCount = -flapCount; - } - }); + try { + registration.close(); + registration = null; + } catch (final Exception e) { + LOG.warn("There was a problem closing flapping singleton service.", e); + setInactive(); + flapCount = -flapCount; + } } @Override @@ -68,21 +57,14 @@ public class FlappingSingletonService implements ClusterSingletonService { flapCount++; if (active.get()) { - // TODO direct registration/close seem to trigger a bug in singleton state transitions, - // remove whole executor shenanigans after it's fixed. - // Needs to be delayed slightly otherwise it's triggered as well. - EXECUTOR.schedule(() -> { - LOG.debug("Running re-registration"); - try { - registration = - singletonServiceProvider.registerClusterSingletonService(this); - } catch (final Exception e) { - LOG.warn("There was a problem re-registering flapping singleton service.", e); - setInactive(); - flapCount = -flapCount - 1; - } - - }, 200, TimeUnit.MILLISECONDS); + LOG.debug("Running re-registration"); + try { + registration = singletonServiceProvider.registerClusterSingletonService(this); + } catch (final Exception e) { + LOG.warn("There was a problem re-registering flapping singleton service.", e); + setInactive(); + flapCount = -flapCount - 1; + } } return Futures.immediateFuture(null);