Refactor: Simplify register() and unregister() in transactional stores
Change-Id: Ie39391774d54c209ec2b8ce61adc76d5ba4efa7e
diff --git a/core/store/dist/src/main/java/org/onosproject/store/resource/impl/TransactionalContinuousResourceStore.java b/core/store/dist/src/main/java/org/onosproject/store/resource/impl/TransactionalContinuousResourceStore.java
index 0813f15..7a630fa 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/resource/impl/TransactionalContinuousResourceStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/resource/impl/TransactionalContinuousResourceStore.java
@@ -67,6 +67,11 @@
}
boolean register(DiscreteResourceId key, List<ContinuousResource> values) {
+ // short-circuit: receiving empty resource is regarded as success
+ if (values.isEmpty()) {
+ return true;
+ }
+
Set<ContinuousResource> requested = new LinkedHashSet<>(values);
Set<ContinuousResource> oldValues = childMap.putIfAbsent(key, requested);
if (oldValues == null) {
@@ -95,6 +100,11 @@
}
boolean unregister(DiscreteResourceId key, List<ContinuousResource> values) {
+ // short-circuit: receiving empty resource is regarded as success
+ if (values.isEmpty()) {
+ return true;
+ }
+
Set<ContinuousResource> oldValues = childMap.putIfAbsent(key, new LinkedHashSet<>());
if (oldValues == null) {
log.trace("No-Op removing values. key {} did not exist", key);