2323import java .util .List ;
2424import java .util .Map ;
2525import java .util .Set ;
26+ import java .util .concurrent .ConcurrentHashMap ;
2627import java .util .function .BiFunction ;
2728import java .util .function .Function ;
2829
@@ -42,15 +43,15 @@ final class NodeDescriptionStore {
4243 * A lookup of entities based on their primary label. We depend on the locking mechanism provided by the
4344 * {@link AbstractMappingContext}, so this lookup is not synchronized further.
4445 */
45- private final Map <String , NodeDescription <?>> nodeDescriptionsByPrimaryLabel = new HashMap <>();
46+ private final Map <String , NodeDescription <?>> nodeDescriptionsByPrimaryLabel = new ConcurrentHashMap <>();
4647
47- private final Map <NodeDescription <?>, Map <List <String >, NodeDescriptionAndLabels >> nodeDescriptionAndLabelsCache = new HashMap <>();
48+ private final Map <NodeDescription <?>, Map <List <String >, NodeDescriptionAndLabels >> nodeDescriptionAndLabelsCache = new ConcurrentHashMap <>();
4849
4950 private final BiFunction <NodeDescription <?>, List <String >, NodeDescriptionAndLabels > nodeDescriptionAndLabels =
5051 (nodeDescription , labels ) -> {
5152 Map <List <String >, NodeDescriptionAndLabels > listNodeDescriptionAndLabelsMap = nodeDescriptionAndLabelsCache .get (nodeDescription );
5253 if (listNodeDescriptionAndLabelsMap == null ) {
53- nodeDescriptionAndLabelsCache .put (nodeDescription , new HashMap <>());
54+ nodeDescriptionAndLabelsCache .put (nodeDescription , new ConcurrentHashMap <>());
5455 listNodeDescriptionAndLabelsMap = nodeDescriptionAndLabelsCache .get (nodeDescription );
5556 }
5657
0 commit comments