Provide hasFailed explicitly
Change-Id: I3bacbbfcc84259b8bb6904d21b45a1e9e9e60e7a
diff --git a/core/net/src/main/java/org/onosproject/net/flow/impl/FlowRuleManager.java b/core/net/src/main/java/org/onosproject/net/flow/impl/FlowRuleManager.java
index b386df4..9e0db6a 100644
--- a/core/net/src/main/java/org/onosproject/net/flow/impl/FlowRuleManager.java
+++ b/core/net/src/main/java/org/onosproject/net/flow/impl/FlowRuleManager.java
@@ -612,11 +612,11 @@
this.pendingDevices = new HashSet<>();
}
- FlowOperationsProcessor(FlowOperationsProcessor src) {
+ FlowOperationsProcessor(FlowOperationsProcessor src, boolean hasFailed) {
this.fops = src.fops;
this.stages = Lists.newArrayList(src.stages);
this.pendingDevices = new HashSet<>(src.pendingDevices);
- this.hasFailed = src.hasFailed;
+ this.hasFailed = hasFailed;
}
@Override
@@ -649,15 +649,14 @@
synchronized void satisfy(DeviceId devId) {
pendingDevices.remove(devId);
if (pendingDevices.isEmpty()) {
- operationsService.execute(new FlowOperationsProcessor(this));
+ operationsService.execute(new FlowOperationsProcessor(this, hasFailed));
}
}
synchronized void fail(DeviceId devId, Set<? extends FlowRule> failures) {
- hasFailed = true;
pendingDevices.remove(devId);
if (pendingDevices.isEmpty()) {
- operationsService.execute(new FlowOperationsProcessor(this));
+ operationsService.execute(new FlowOperationsProcessor(this, true));
}
FlowRuleOperations.Builder failedOpsBuilder = FlowRuleOperations.builder();