From: Martin Sunal Date: Mon, 13 Jun 2016 13:38:53 +0000 (+0200) Subject: Fixed cyclic renderer config update X-Git-Tag: release/boron~123 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F38%2F40238%2F1;p=groupbasedpolicy.git Fixed cyclic renderer config update After renderer processes configuration and reports status it trigger RendererManager which take this as change which generates creating of new configuration for renderer. So this cyclic behavior is fixed in this commit. Change-Id: I086e6c63d1e8da34943807a940aafe644ad2ae59 Signed-off-by: Martin Sunal --- diff --git a/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/renderer/RendererManager.java b/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/renderer/RendererManager.java index 9f79a90a6..793ad887a 100644 --- a/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/renderer/RendererManager.java +++ b/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/renderer/RendererManager.java @@ -141,15 +141,17 @@ public class RendererManager implements AutoCloseable { public synchronized void renderersUpdated(final Renderers renderersCont) { ImmutableMultimap, RendererName> renderersByNode = RendererUtils.resolveRenderersByNodes(renderersCont.getRenderer()); + Map, RendererName> oldRendererByNode = rendererByNode; rendererByNode = new HashMap<>(); for (InstanceIdentifier nodePath : renderersByNode.keySet()) { ImmutableCollection renderers = renderersByNode.get(nodePath); // only first renderer is used rendererByNode.put(nodePath, renderers.asList().get(0)); } - if (processingRenderers.isEmpty()) { + if (!rendererByNode.equals(oldRendererByNode)) { changesWaitingToProcess = true; - } else { + } + if (!processingRenderers.isEmpty()) { LOG.debug("Waiting for renderers. Version {} needs to be processed by renderers: {}", version, processingRenderers); ImmutableMap rendererByName =