Use HashMap.computIfAbsent() in getNode() 70/87870/2
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 18 Feb 2020 18:14:57 +0000 (19:14 +0100)
committerRobert Varga <nite@hq.sk>
Sat, 22 Feb 2020 19:46:05 +0000 (19:46 +0000)
There is no point in performing a lookup + store -- just perform
a conditional load, which saves a bucket lookup in the not-present
case.

Change-Id: Idacb1eba11da59fbb3c9554fa0d2f5fac92717d3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/LinkstateTopologyBuilder.java

index 10e2f86f6b85bd0eff55ce0c2514e9e61f816bc8..132b52455f04666c44bcca3f27a4f94ab49d87ce 100644 (file)
@@ -364,14 +364,7 @@ public class LinkstateTopologyBuilder extends AbstractTopologyBuilder<LinkstateR
     }
 
     private NodeHolder getNode(final NodeId id) {
-        if (this.nodes.containsKey(id)) {
-            LOG.debug("Node {} is already present", id);
-            return this.nodes.get(id);
-        }
-
-        final NodeHolder ret = new NodeHolder(id);
-        this.nodes.put(id, ret);
-        return ret;
+        return this.nodes.computeIfAbsent(id, NodeHolder::new);
     }
 
     private void putNode(final WriteTransaction trans, final NodeHolder holder) {