diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/FileStatusMap.java b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/FileStatusMap.java index 2c5afda29564..f6f9725ec160 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/FileStatusMap.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/FileStatusMap.java @@ -150,13 +150,22 @@ public class FileStatusMap implements Disposable { } public void markAllFilesDirty() { - assert myAllowDirt; + assertAllowModifications(); LOG.debug("********************************* Mark all dirty"); synchronized (myDocumentToStatusMap) { myDocumentToStatusMap.clear(); } } + private void assertAllowModifications() { + try { + assert myAllowDirt; + } + finally { + myAllowDirt = true; //give next test a chance + } + } + public void markFileUpToDate(@NotNull Document document, @NotNull PsiFile file, int passId) { synchronized(myDocumentToStatusMap){ FileStatus status = myDocumentToStatusMap.get(document); @@ -204,7 +213,7 @@ public class FileStatusMap implements Disposable { } public void markFileScopeDirty(@NotNull Document document, int passId) { - assert myAllowDirt; + assertAllowModifications(); synchronized(myDocumentToStatusMap){ FileStatus status = myDocumentToStatusMap.get(document); if (status == null){ @@ -226,7 +235,7 @@ public class FileStatusMap implements Disposable { } public void markFileScopeDirtyDefensively(@NotNull PsiFile file) { - assert myAllowDirt; + assertAllowModifications(); if (LOG.isDebugEnabled()) { LOG.debug("********************************* Mark dirty file defensively: "+file.getName()); } @@ -242,7 +251,7 @@ public class FileStatusMap implements Disposable { } public void markFileScopeDirty(@NotNull Document document, @NotNull TextRange scope, int fileLength) { - assert myAllowDirt; + assertAllowModifications(); if (LOG.isDebugEnabled()) { LOG.debug("********************************* Mark dirty: "+scope); }