Fix for ONOS-4315
- Additional log on error
- Allow count=0 using CountDownCompleter
- test case to detect the issue (@Ignored by default right now)
- other bug fixes found along the way
Based on patch by Madan@China
Change-Id: I7d6cb8c214052859900ef7ee0337a7e1c8a9d295
diff --git a/utils/misc/src/main/java/org/onlab/util/CountDownCompleter.java b/utils/misc/src/main/java/org/onlab/util/CountDownCompleter.java
index e3ef9be..ef17bc4 100644
--- a/utils/misc/src/main/java/org/onlab/util/CountDownCompleter.java
+++ b/utils/misc/src/main/java/org/onlab/util/CountDownCompleter.java
@@ -45,10 +45,13 @@
* @param onCompleteCallback callback to invoke when completer is completed
*/
public CountDownCompleter(T object, long count, Consumer<T> onCompleteCallback) {
- checkState(count > 0, "count must be positive");
+ checkState(count >= 0, "count must be non-negative");
this.counter = new AtomicLong(count);
this.object = checkNotNull(object);
this.onCompleteCallback = checkNotNull(onCompleteCallback);
+ if (count == 0) {
+ onCompleteCallback.accept(object);
+ }
}
/**