DistributedFlowRuleStore: always add FlowEntry on batchStore

related to ONOS-481

[Merged from master]

Change-Id: I9f82c7d9736dab7326062af9c38ae6e290a9b818
(cherry picked from commit 08f156b45e2ff1e225082d47b7c36edfffa75971)
diff --git a/core/store/dist/src/main/java/org/onosproject/store/flow/impl/DistributedFlowRuleStore.java b/core/store/dist/src/main/java/org/onosproject/store/flow/impl/DistributedFlowRuleStore.java
index 21f6128..4ed31bc 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/flow/impl/DistributedFlowRuleStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/flow/impl/DistributedFlowRuleStore.java
@@ -421,10 +421,13 @@
                 } else if (op.equals(FlowRuleOperation.ADD)) {
                     StoredFlowEntry flowEntry = new DefaultFlowEntry(flowRule);
                     DeviceId deviceId = flowRule.deviceId();
-                    if (!flowEntries.containsEntry(deviceId, flowEntry)) {
-                        flowEntries.put(deviceId, flowEntry);
-                        toAdd.add(batchEntry);
-                    }
+                    Collection<StoredFlowEntry> ft = flowEntries.get(deviceId);
+
+                    // always add requested FlowRule
+                    // Note: 2 equal FlowEntry may have different treatment
+                    ft.remove(flowEntry);
+                    ft.add(flowEntry);
+                    toAdd.add(batchEntry);
                 }
             }
             if (toAdd.isEmpty() && toRemove.isEmpty()) {