make cache soft instead of weak (too often re-reads otherwise) (r:max shafirov)

This commit is contained in:
Alexey Kudravtsev
2012-11-27 12:18:59 +04:00
parent 169e7a2a05
commit 79c81583f1
@@ -34,7 +34,6 @@ import com.intellij.util.StringBuilderSpinAllocator;
import com.intellij.util.ThreeState;
import com.intellij.util.containers.ConcurrentSoftHashMap;
import com.intellij.util.containers.ConcurrentSoftValueHashMap;
import com.intellij.util.containers.ConcurrentWeakHashMap;
import com.intellij.util.containers.MultiMap;
import gnu.trove.THashMap;
import org.jdom.Document;
@@ -139,7 +138,7 @@ public class BaseExternalAnnotationsManager extends ExternalAnnotationsManager {
return result.isEmpty() ? null : result.values().toArray(new PsiAnnotation[result.size()]);
}
private final ConcurrentMap<PsiModifierListOwner, Map<String, PsiAnnotation>> cache = new ConcurrentWeakHashMap<PsiModifierListOwner, Map<String, PsiAnnotation>>();
private final ConcurrentMap<PsiModifierListOwner, Map<String, PsiAnnotation>> cache = new ConcurrentSoftHashMap<PsiModifierListOwner, Map<String, PsiAnnotation>>();
@NotNull
private Map<String, PsiAnnotation> collectExternalAnnotations(@NotNull final PsiModifierListOwner listOwner) {
if (!hasAnyAnnotationsRoots()) return Collections.emptyMap();