diff --git a/src/main/java/com/google/devtools/common/options/IsolatedOptionsData.java b/src/main/java/com/google/devtools/common/options/IsolatedOptionsData.java index 58eb07d370ab56..ca2e6c4ac4052f 100644 --- a/src/main/java/com/google/devtools/common/options/IsolatedOptionsData.java +++ b/src/main/java/com/google/devtools/common/options/IsolatedOptionsData.java @@ -25,6 +25,8 @@ import java.util.LinkedHashMap; import java.util.Map; import java.util.Objects; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; import javax.annotation.concurrent.Immutable; /** @@ -53,11 +55,11 @@ public class IsolatedOptionsData extends OpaqueOptionsData { * instances, and must be used through the thread safe {@link * #getAllOptionDefinitionsForClass(Class)} */ - private static final Map, ImmutableList> - allOptionsFields = new HashMap<>(); + private static final ConcurrentMap, ImmutableList> + allOptionsFields = new ConcurrentHashMap<>(); /** Returns all {@code optionDefinitions}, ordered by their option name (not their field name). */ - public static synchronized ImmutableList getAllOptionDefinitionsForClass( + public static ImmutableList getAllOptionDefinitionsForClass( Class optionsClass) { return allOptionsFields.computeIfAbsent( optionsClass,