diff --git a/platform/lang-impl/src/com/intellij/util/indexing/events/ChangedFilesCollector.java b/platform/lang-impl/src/com/intellij/util/indexing/events/ChangedFilesCollector.java index 8ecd6395ad8a..63e249daa705 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/events/ChangedFilesCollector.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/events/ChangedFilesCollector.java @@ -191,7 +191,6 @@ public final class ChangedFilesCollector extends IndexedFilesListener { int fileId = info.getFileId(); VirtualFile file = info.getFile(); List dirtyQueueProjects = myDirtyFiles.getProjects(info.getFileId()); - myDirtyFiles.removeFile(info.getFileId()); if (info.isTransientStateChanged()) myFileBasedIndex.doTransientStateChangeForFile(fileId, file, dirtyQueueProjects); if (info.isContentChanged()) myFileBasedIndex.scheduleFileForIndexing(fileId, file, true, dirtyQueueProjects); if (info.isFileRemoved()) myFileBasedIndex.doInvalidateIndicesForFile(fileId, file, dirtyQueueProjects); @@ -205,6 +204,9 @@ public final class ChangedFilesCollector extends IndexedFilesListener { if (LOG.isDebugEnabled()) LOG.debug("Exception while processing " + info, t); throw t; } + finally { + myDirtyFiles.removeFile(info.getFileId()); + } return true; }