From 14ef0a9ac82cc993dc7bea76df0d09aafc82ac92 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Tue, 21 Aug 2012 15:44:48 +0400 Subject: [PATCH] Safer dropping caches in ExternalAnnotationsManager. --- .../codeInsight/ExternalAnnotationsManagerImpl.java | 10 +++++++--- .../codeInsight/BaseExternalAnnotationsManager.java | 2 ++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/ExternalAnnotationsManagerImpl.java b/java/java-impl/src/com/intellij/codeInsight/ExternalAnnotationsManagerImpl.java index 34319e4e509c..3377210d6b16 100644 --- a/java/java-impl/src/com/intellij/codeInsight/ExternalAnnotationsManagerImpl.java +++ b/java/java-impl/src/com/intellij/codeInsight/ExternalAnnotationsManagerImpl.java @@ -91,13 +91,17 @@ public class ExternalAnnotationsManagerImpl extends BaseExternalAnnotationsManag connection.subscribe(ProjectTopics.PROJECT_ROOTS, new ModuleRootAdapter() { @Override public void rootsChanged(ModuleRootEvent event) { - myExternalAnnotations.clear(); - annotationsFileToDataAndModificationStamp.clear(); - myHasAnyAnnotationsRoots = ThreeState.UNSURE; + dropCache(); } }); } + @Override + protected void dropCache() { + super.dropCache(); + myHasAnyAnnotationsRoots = ThreeState.UNSURE; + } + @Override protected boolean hasAnyAnnotationsRoots() { if (myHasAnyAnnotationsRoots == ThreeState.UNSURE) { diff --git a/java/java-psi-api/src/com/intellij/codeInsight/BaseExternalAnnotationsManager.java b/java/java-psi-api/src/com/intellij/codeInsight/BaseExternalAnnotationsManager.java index 6739f1fb7d74..54ce02d8023a 100644 --- a/java/java-psi-api/src/com/intellij/codeInsight/BaseExternalAnnotationsManager.java +++ b/java/java-psi-api/src/com/intellij/codeInsight/BaseExternalAnnotationsManager.java @@ -262,6 +262,8 @@ public abstract class BaseExternalAnnotationsManager extends ExternalAnnotations } protected void dropCache() { + myExternalAnnotations.clear(); + annotationsFileToDataAndModificationStamp.clear(); cache.clear(); }