From d1929fa5468913943830f3bc39d140a74022d27c Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Wed, 30 Sep 2020 14:52:55 +0200 Subject: [PATCH] DATAKV-297 - Use computeIfAbsent to create keyspace maps. We now use computeIfAbsent to ensure atomic creation of keyspace maps if the underlying Map implementation allows for concurrent access. --- .../springframework/data/map/MapKeyValueAdapter.java | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/main/java/org/springframework/data/map/MapKeyValueAdapter.java b/src/main/java/org/springframework/data/map/MapKeyValueAdapter.java index 849e7dc..dfd7c15 100644 --- a/src/main/java/org/springframework/data/map/MapKeyValueAdapter.java +++ b/src/main/java/org/springframework/data/map/MapKeyValueAdapter.java @@ -189,17 +189,7 @@ public class MapKeyValueAdapter extends AbstractKeyValueAdapter { Assert.notNull(keyspace, "Collection must not be null for lookup."); - Map map = store.get(keyspace); - - if (map != null) { - return map; - } - - addMapForKeySpace(keyspace); - return store.get(keyspace); + return store.computeIfAbsent(keyspace, it -> CollectionFactory.createMap(keySpaceMapType, 1000)); } - private void addMapForKeySpace(String keyspace) { - store.put(keyspace, CollectionFactory.createMap(keySpaceMapType, 1000)); - } }