Use HashMap.computIfAbsent() in getNode() 57/87957/2
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 18 Feb 2020 18:14:57 +0000 (19:14 +0100)
committerRobert Varga <nite@hq.sk>
Sun, 23 Feb 2020 08:25:51 +0000 (08:25 +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>
(cherry picked from commit 54493897a40acdff60c5be6ae833e549bded9372)

bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/LinkstateTopologyBuilder.java

index 57e2515b43751fa9220f4990bb2a3b5888c4add2..f94354590236686046ab94a7252e40b214338d20 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) {