diff --git a/platform/lang-impl/src/com/intellij/codeInsight/lookup/ComparingClassifier.java b/platform/lang-impl/src/com/intellij/codeInsight/lookup/ComparingClassifier.java index 42e363939a57..6f2a0989329a 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/lookup/ComparingClassifier.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/lookup/ComparingClassifier.java @@ -18,6 +18,8 @@ package com.intellij.codeInsight.lookup; import com.intellij.openapi.application.ApplicationManager; import com.intellij.util.SmartList; import com.intellij.util.containers.ContainerUtil; +import com.intellij.util.containers.StripedLockConcurrentHashMap; +import gnu.trove.TObjectHashingStrategy; import org.jetbrains.annotations.NotNull; import java.util.*; @@ -26,7 +28,7 @@ import java.util.*; * @author peter */ public abstract class ComparingClassifier extends Classifier { - private final Map myWeights = new HashMap(); + private final Map myWeights = new StripedLockConcurrentHashMap(TObjectHashingStrategy.IDENTITY); private final Classifier myNext; private final String myName; @@ -49,7 +51,7 @@ public abstract class ComparingClassifier extends Classifier { for (T t : source) { final Comparable weight = myWeights.get(t); if (weight == null) { - throw new AssertionError(myName + "; " + myWeights.containsKey(t)); + throw new AssertionError(myName + "; " + myWeights.containsKey(t) + "; element=" + t); } List list = map.get(weight); if (list == null) {