diff --git a/java/java-indexing-impl/src/com/intellij/psi/impl/search/AllClassesSearchExecutor.java b/java/java-indexing-impl/src/com/intellij/psi/impl/search/AllClassesSearchExecutor.java index 293d3350040b..067db93f8551 100644 --- a/java/java-indexing-impl/src/com/intellij/psi/impl/search/AllClassesSearchExecutor.java +++ b/java/java-indexing-impl/src/com/intellij/psi/impl/search/AllClassesSearchExecutor.java @@ -81,7 +81,7 @@ public class AllClassesSearchExecutor implements QueryExecutor() { + final PsiClass[] classes = MethodUsagesSearcher.resolveInReadAction(project, new Computable() { @Override public PsiClass[] compute() { return cache.getClassesByName(name, scope); @@ -97,21 +97,27 @@ public class AllClassesSearchExecutor implements QueryExecutor consumer) { + public static Project processClassNames(final Project project, final GlobalSearchScope scope, final Consumer consumer) { final ProgressIndicator indicator = ProgressIndicatorProvider.getGlobalProgressIndicator(); - PsiShortNamesCache.getInstance(project).processAllClassNames(new Processor() { - int i = 0; - + MethodUsagesSearcher.resolveInReadAction(project, new Computable() { @Override - public boolean process(String s) { - if (indicator != null && i++ % 512 == 0) { - indicator.checkCanceled(); - } - consumer.consume(s); - return true; + public Void compute() { + PsiShortNamesCache.getInstance(project).processAllClassNames(new Processor() { + int i = 0; + + @Override + public boolean process(String s) { + if (indicator != null && i++ % 512 == 0) { + indicator.checkCanceled(); + } + consumer.consume(s); + return true; + } + }, scope, IdFilter.getProjectIdFilter(project, true)); + return null; } - }, scope, IdFilter.getProjectIdFilter(project, true)); + }); if (indicator != null) { indicator.checkCanceled();