From: Martin Sunal Date: Mon, 8 Feb 2016 09:22:36 +0000 (+0000) Subject: Merge "Bug 5208 - flows don't get removed on update" X-Git-Tag: release/boron~242 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=d01d7702167e76e6e000c7598047b42d79559be5;hp=3ad05bfceae06c9890752dde7426fa544e66ad56;p=groupbasedpolicy.git Merge "Bug 5208 - flows don't get removed on update" --- diff --git a/renderers/ofoverlay/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/PolicyManager.java b/renderers/ofoverlay/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/PolicyManager.java index d0277afa8..ec2e9b589 100755 --- a/renderers/ofoverlay/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/PolicyManager.java +++ b/renderers/ofoverlay/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/PolicyManager.java @@ -78,7 +78,6 @@ public class PolicyManager private static final Logger LOG = LoggerFactory.getLogger(PolicyManager.class); - private Map, TableBuilder> actualGbpFlows = new HashMap<>(); private Map, TableBuilder> previousGbpFlows = new HashMap<>(); private short tableOffset; @@ -349,11 +348,6 @@ public class PolicyManager private void scheduleUpdate() { if (switchManager != null) { LOG.trace("Scheduling flow update task"); - - // Mark all existing flows as previous - will be compared with new ones - previousGbpFlows = actualGbpFlows; - actualGbpFlows = new HashMap<>(); - flowUpdateTask.reschedule(FLOW_UPDATE_DELAY, TimeUnit.MILLISECONDS); } } @@ -409,7 +403,9 @@ public class PolicyManager ecs.take().get(); // Current gbp flow must be independent, find out where this run() ends, // set flows to one field and reset another + Map, TableBuilder> actualGbpFlows = new HashMap<>(); actualGbpFlows.putAll(ofWriter.commitToDataStore(dataBroker, previousGbpFlows)); + previousGbpFlows = actualGbpFlows; } catch (InterruptedException | ExecutionException e) { LOG.error("Failed to update flow tables", e); }