From 79501e16a9760cc46b7aabe52bfca3ba0e0ce01c Mon Sep 17 00:00:00 2001 From: Tony Tkacik Date: Mon, 31 Aug 2015 18:11:22 +0200 Subject: [PATCH] Store DOMDataTreeProducer in ShardingTable Change-Id: I785c10c68eb5b5ce09d103685488c2965340d3d5 Signed-off-by: Tony Tkacik --- .../mdsal/dom/broker/ShardedDOMDataTree.java | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/ShardedDOMDataTree.java b/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/ShardedDOMDataTree.java index 9544cbd114..8d0c16243c 100644 --- a/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/ShardedDOMDataTree.java +++ b/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/ShardedDOMDataTree.java @@ -11,9 +11,7 @@ import com.google.common.base.Preconditions; import java.util.Collection; import java.util.HashMap; import java.util.Map; -import java.util.Map.Entry; import java.util.Set; -import java.util.TreeMap; import javax.annotation.concurrent.GuardedBy; import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier; import org.opendaylight.mdsal.dom.api.DOMDataTreeListener; @@ -35,7 +33,7 @@ public final class ShardedDOMDataTree implements DOMDataTreeService, DOMDataTree @GuardedBy("this") private final ShardingTable> shards = ShardingTable.create(); @GuardedBy("this") - private final Map idToProducer = new TreeMap<>(); + private final ShardingTable producers = ShardingTable.create(); void removeShard(final ShardRegistration reg) { @@ -99,21 +97,17 @@ public final class ShardedDOMDataTree implements DOMDataTreeService, DOMDataTree @GuardedBy("this") private DOMDataTreeProducer findProducer(final DOMDataTreeIdentifier subtree) { - for (final Entry e : idToProducer.entrySet()) { - if (e.getKey().contains(subtree)) { - return e.getValue(); - } - } + ShardingTableEntry producerEntry = producers.lookup(subtree); + if (producerEntry != null) { + return producerEntry.getValue(); + } return null; } synchronized void destroyProducer(final ShardedDOMDataTreeProducer producer) { for (final DOMDataTreeIdentifier s : producer.getSubtrees()) { - final DOMDataTreeProducer r = idToProducer.remove(s); - if (!producer.equals(r)) { - LOG.error("Removed producer {} on subtree {} while removing {}", r, s, producer); - } + producers.remove(s); } } @@ -122,7 +116,7 @@ public final class ShardedDOMDataTree implements DOMDataTreeService, DOMDataTree // Record the producer's attachment points final DOMDataTreeProducer ret = ShardedDOMDataTreeProducer.create(this, shardMap); for (final DOMDataTreeIdentifier s : shardMap.keySet()) { - idToProducer.put(s, ret); + producers.store(s, ret); } return ret; -- 2.36.6