From cd20befbf230ae388723c746847c82be6ee77255 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 22 Mar 2017 18:42:05 +0100 Subject: [PATCH] wait for indices in JavaFunctionalExpressionSearcher bg thread (EA-99366 - INRE: FileBasedIndexImpl.handleDumbMode) --- .../psi/impl/search/JavaFunctionalExpressionSearcher.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/java/java-indexing-impl/src/com/intellij/psi/impl/search/JavaFunctionalExpressionSearcher.java b/java/java-indexing-impl/src/com/intellij/psi/impl/search/JavaFunctionalExpressionSearcher.java index 54e226fbdb00..6cb9ffc256e7 100644 --- a/java/java-indexing-impl/src/com/intellij/psi/impl/search/JavaFunctionalExpressionSearcher.java +++ b/java/java-indexing-impl/src/com/intellij/psi/impl/search/JavaFunctionalExpressionSearcher.java @@ -25,6 +25,7 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.progress.ProgressManager; +import com.intellij.openapi.project.DumbService; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.LanguageLevelModuleExtension; import com.intellij.openapi.roots.ModuleRootManager; @@ -187,8 +188,9 @@ public class JavaFunctionalExpressionSearcher extends QueryExecutorBase filterInapplicable(List samClasses, VirtualFile vFile, Collection occurrences, Project project) { - return ReadAction.compute(() -> project.isDisposed() ? Collections.emptyList() - : ContainerUtil.filter(occurrences, it -> it.canHaveType(samClasses, vFile))); + return DumbService.getInstance(project).runReadActionInSmartMode( + () -> project.isDisposed() ? Collections.emptyList() + : ContainerUtil.filter(occurrences, it -> it.canHaveType(samClasses, vFile))); } private static boolean processFile(@NotNull Processor consumer,