diff --git a/spring-modulith-core/src/main/java/org/springframework/modulith/core/ApplicationModules.java b/spring-modulith-core/src/main/java/org/springframework/modulith/core/ApplicationModules.java index f4aeffd7..6fe2e8b6 100644 --- a/spring-modulith-core/src/main/java/org/springframework/modulith/core/ApplicationModules.java +++ b/spring-modulith-core/src/main/java/org/springframework/modulith/core/ApplicationModules.java @@ -20,6 +20,7 @@ import static com.tngtech.archunit.core.domain.JavaClass.Predicates.*; import static java.util.stream.Collectors.*; import java.util.*; +import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -58,7 +59,7 @@ import com.tngtech.archunit.library.dependencies.SlicesRuleDefinition; */ public class ApplicationModules implements Iterable { - private static final Map CACHE = new HashMap<>(); + private static final Map CACHE = new ConcurrentHashMap<>(); private static final ApplicationModuleDetectionStrategy DETECTION_STRATEGY; private static final ImportOption IMPORT_OPTION = new ImportOption.DoNotIncludeTests(); private static final boolean JGRAPHT_PRESENT = ClassUtils.isPresent("org.jgrapht.Graph", diff --git a/spring-modulith-core/src/main/java/org/springframework/modulith/core/ArchitecturallyEvidentType.java b/spring-modulith-core/src/main/java/org/springframework/modulith/core/ArchitecturallyEvidentType.java index 2c1a6e1c..dbb6d0c8 100644 --- a/spring-modulith-core/src/main/java/org/springframework/modulith/core/ArchitecturallyEvidentType.java +++ b/spring-modulith-core/src/main/java/org/springframework/modulith/core/ArchitecturallyEvidentType.java @@ -20,12 +20,12 @@ import static org.springframework.modulith.core.Types.JavaXTypes.*; import java.util.ArrayList; import java.util.Collection; import java.util.Comparator; -import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; import java.util.stream.Stream; @@ -48,7 +48,7 @@ import com.tngtech.archunit.thirdparty.com.google.common.base.Suppliers; */ public abstract class ArchitecturallyEvidentType { - private static Map CACHE = new HashMap<>(); + private static Map CACHE = new ConcurrentHashMap<>(); private final JavaClass type;