From 01e495dcfca2d49f6532b92187a656c4ed599662 Mon Sep 17 00:00:00 2001 From: Dmitry Batkovich Date: Thu, 14 May 2020 18:37:25 +0300 Subject: [PATCH] shared index: pushed property update should not be the reason to shared index invalidation GitOrigin-RevId: 718bccd1b2faa73d16e00653d9f3eb387ef2bdd3 --- .../roots/impl/PushedFilePropertiesUpdaterImpl.java | 7 ++----- .../com/intellij/util/indexing/FileBasedIndexImpl.java | 9 +++++++-- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/PushedFilePropertiesUpdaterImpl.java b/platform/lang-impl/src/com/intellij/openapi/roots/impl/PushedFilePropertiesUpdaterImpl.java index e8ea9f4693fb..fe5a92826702 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/impl/PushedFilePropertiesUpdaterImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/impl/PushedFilePropertiesUpdaterImpl.java @@ -32,10 +32,7 @@ import com.intellij.psi.impl.PsiManagerEx; import com.intellij.psi.impl.file.impl.FileManagerImpl; import com.intellij.ui.GuiUtils; import com.intellij.util.containers.ContainerUtil; -import com.intellij.util.indexing.FileBasedIndex; -import com.intellij.util.indexing.FileBasedIndexProjectHandler; -import com.intellij.util.indexing.IndexingBundle; -import com.intellij.util.indexing.UnindexedFilesUpdater; +import com.intellij.util.indexing.*; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -388,7 +385,7 @@ public final class PushedFilePropertiesUpdaterImpl extends PushedFilePropertiesU @Override public void filePropertiesChanged(@NotNull final VirtualFile file) { ApplicationManager.getApplication().assertReadAccessAllowed(); - FileBasedIndex.getInstance().requestReindex(file); + ((FileBasedIndexImpl)FileBasedIndex.getInstance()).requestReindex(file, false); for (final Project project : ProjectManager.getInstance().getOpenProjects()) { reloadPsi(file, project); } 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 59f6c8fa17ce..ae3e1cde0dee 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java @@ -285,14 +285,19 @@ public final class FileBasedIndexImpl extends FileBasedIndexEx { } @Override - public void requestReindex(@NotNull final VirtualFile file) { + public void requestReindex(@NotNull VirtualFile file) { + requestReindex(file, true); + } + + @ApiStatus.Internal + public void requestReindex(@NotNull VirtualFile file, boolean forceRebuildRequest) { GistManager.getInstance().invalidateData(); // todo: this is the same vfs event handling sequence that is produces after events of FileContentUtilCore.reparseFiles // but it is more costly than current code, see IDEA-192192 //myChangedFilesCollector.invalidateIndicesRecursively(file, false); //myChangedFilesCollector.buildIndicesForFileRecursively(file, false); ChangedFilesCollector changedFilesCollector = getChangedFilesCollector(); - changedFilesCollector.invalidateIndicesRecursively(file, true, true, changedFilesCollector.getEventMerger()); + changedFilesCollector.invalidateIndicesRecursively(file, true, forceRebuildRequest, changedFilesCollector.getEventMerger()); if (myRegisteredIndexes.isInitialized()) { changedFilesCollector.ensureUpToDateAsync(); }