diff --git a/java/java-impl/src/com/intellij/codeInsight/JavaProjectCodeInsightSettings.java b/java/java-impl/src/com/intellij/codeInsight/JavaProjectCodeInsightSettings.java index 6012cca036ee..ee7c00d776c4 100644 --- a/java/java-impl/src/com/intellij/codeInsight/JavaProjectCodeInsightSettings.java +++ b/java/java-impl/src/com/intellij/codeInsight/JavaProjectCodeInsightSettings.java @@ -23,7 +23,7 @@ import com.intellij.openapi.components.Storage; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Disposer; import com.intellij.util.PatternUtil; -import com.intellij.util.containers.ConcurrentWeakFactoryMap; +import com.intellij.util.containers.ConcurrentFactoryMap; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.xmlb.XmlSerializerUtil; import com.intellij.util.xmlb.annotations.AbstractCollection; @@ -44,9 +44,7 @@ import java.util.regex.Pattern; @State(name = "JavaProjectCodeInsightSettings", storages = @Storage("codeInsightSettings.xml")) public class JavaProjectCodeInsightSettings implements PersistentStateComponent { @SuppressWarnings("MismatchedQueryAndUpdateOfCollection") - private static final ConcurrentMap ourPatterns = ConcurrentWeakFactoryMap.createWeakMap(key-> - PatternUtil.fromMask(key) - ); + private static final ConcurrentMap ourPatterns = ConcurrentFactoryMap.createWeakMap(PatternUtil::fromMask); @Tag("excluded-names") diff --git a/platform/util/src/com/intellij/AbstractBundle.java b/platform/util/src/com/intellij/AbstractBundle.java index 0af36178304b..c464622559bc 100644 --- a/platform/util/src/com/intellij/AbstractBundle.java +++ b/platform/util/src/com/intellij/AbstractBundle.java @@ -17,7 +17,7 @@ package com.intellij; import com.intellij.openapi.diagnostic.Logger; import com.intellij.util.Function; -import com.intellij.util.containers.ConcurrentWeakFactoryMap; +import com.intellij.util.containers.ConcurrentFactoryMap; import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; @@ -70,7 +70,7 @@ public abstract class AbstractBundle { @SuppressWarnings("MismatchedQueryAndUpdateOfCollection") private static final Map> ourCache = - ConcurrentWeakFactoryMap.createWeakMap(new Function>() { + ConcurrentFactoryMap.createWeakMap(new Function>() { @Override public Map fun(ClassLoader k) {return ContainerUtil.createConcurrentSoftValueMap();} }); diff --git a/platform/util/src/com/intellij/util/containers/ConcurrentFactoryMap.java b/platform/util/src/com/intellij/util/containers/ConcurrentFactoryMap.java index f070621fc84c..0aa107ca889a 100644 --- a/platform/util/src/com/intellij/util/containers/ConcurrentFactoryMap.java +++ b/platform/util/src/com/intellij/util/containers/ConcurrentFactoryMap.java @@ -230,4 +230,16 @@ public abstract class ConcurrentFactoryMap implements ConcurrentMap { } }; } + + /** + * @return Concurrent factory map with weak keys, strong values + */ + @NotNull + public static ConcurrentMap createWeakMap(@NotNull Function compute) { + return createMap(compute, new Producer>() { + @Override + public ConcurrentMap produce() {return ContainerUtil.createConcurrentWeakMap();} + }); + } + } diff --git a/platform/util/src/com/intellij/util/containers/ConcurrentWeakFactoryMap.java b/platform/util/src/com/intellij/util/containers/ConcurrentWeakFactoryMap.java index 3a7f2d4500ab..27d8f4a6fc8b 100644 --- a/platform/util/src/com/intellij/util/containers/ConcurrentWeakFactoryMap.java +++ b/platform/util/src/com/intellij/util/containers/ConcurrentWeakFactoryMap.java @@ -17,28 +17,11 @@ package com.intellij.util.containers; import com.intellij.util.Function; -import com.intellij.util.Producer; -import org.jetbrains.annotations.NotNull; - -import java.util.concurrent.ConcurrentMap; /** - * @author peter + * Use {@link ConcurrentFactoryMap#createWeakMap(Function)} instead + * TODO to remove in IDEA 2018 */ +@Deprecated public abstract class ConcurrentWeakFactoryMap extends ConcurrentFactoryMap { - /** - * Use {@link #createWeakMap(Function)} instead - * TODO to remove in IDEA 2018 - */ - @Deprecated - public ConcurrentWeakFactoryMap() { - } - - @NotNull - public static ConcurrentMap createWeakMap(@NotNull Function compute) { - return ConcurrentFactoryMap.createMap(compute, new Producer>() { - @Override - public ConcurrentMap produce() {return ContainerUtil.createConcurrentWeakMap();} - }); - } } \ No newline at end of file