diff --git a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java index b7258eb7e9db..30c7c756cbaa 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java @@ -1196,6 +1196,7 @@ public final class FileBasedIndexImpl extends FileBasedIndexEx { VirtualFile file = content.getVirtualFile(); final int fileId = Math.abs(getIdMaskingNonIdBasedFile(file)); + FileIndexingResult indexingResult; long startTime = System.nanoTime(); try { // if file was scheduled for update due to vfs events then it is present in myFilesToUpdate @@ -1206,31 +1207,23 @@ public final class FileBasedIndexImpl extends FileBasedIndexEx { if (!file.isValid() || isTooLarge(file)) { ProgressManager.checkCanceled(); removeDataFromIndicesForFile(fileId, file); - try { - if (file instanceof DeletedVirtualFileStub && ((DeletedVirtualFileStub)file).isResurrected()) { - CachedFileContent resurrectedFileContent = new CachedFileContent(((DeletedVirtualFileStub)file).getOriginalFile()); - FileIndexingResult indexingResult = doIndexFileContent(project, resurrectedFileContent); - return new FileIndexingStatistics(System.nanoTime() - startTime, - indexingResult.fileType, - indexingResult.timesPerIndexer); - } else { - return new FileIndexingStatistics(System.nanoTime() - startTime, - file.getFileType(), - Collections.emptyMap()); - } - } finally { - setIsIndexedFlag(file); + if (file instanceof DeletedVirtualFileStub && ((DeletedVirtualFileStub)file).isResurrected()) { + CachedFileContent resurrectedFileContent = new CachedFileContent(((DeletedVirtualFileStub)file).getOriginalFile()); + indexingResult = doIndexFileContent(project, resurrectedFileContent); + } else { + indexingResult = new FileIndexingResult(true, Collections.emptyMap(), file.getFileType()); } } else { - FileIndexingResult indexingResult = doIndexFileContent(project, content); - if (indexingResult.setIndexedStatus) { - setIsIndexedFlag(file); - } - return new FileIndexingStatistics(System.nanoTime() - startTime, - indexingResult.fileType, - indexingResult.timesPerIndexer); + indexingResult = doIndexFileContent(project, content); } + + if (indexingResult.setIndexedStatus && file instanceof VirtualFileSystemEntry) { + ((VirtualFileSystemEntry)file).setFileIndexed(true); + } + return new FileIndexingStatistics(System.nanoTime() - startTime, + indexingResult.fileType, + indexingResult.timesPerIndexer); } finally { IndexingStamp.flushCache(fileId); @@ -1238,12 +1231,6 @@ public final class FileBasedIndexImpl extends FileBasedIndexEx { } } - private static void setIsIndexedFlag(@NotNull VirtualFile file) { - if (file instanceof VirtualFileSystemEntry) { - ((VirtualFileSystemEntry)file).setFileIndexed(true); - } - } - private static final class FileIndexingResult { public final boolean setIndexedStatus; public final Map, Long> timesPerIndexer;