diff --git a/java/java-indexing-impl/src/com/intellij/psi/impl/search/JavaDirectInheritorsSearcher.java b/java/java-indexing-impl/src/com/intellij/psi/impl/search/JavaDirectInheritorsSearcher.java index acbf02209732..b24fcfc87c21 100644 --- a/java/java-indexing-impl/src/com/intellij/psi/impl/search/JavaDirectInheritorsSearcher.java +++ b/java/java-indexing-impl/src/com/intellij/psi/impl/search/JavaDirectInheritorsSearcher.java @@ -101,12 +101,14 @@ public class JavaDirectInheritorsSearcher implements QueryExecutor candidates = ApplicationManager.getApplication().runReadAction(new Computable>() { - @Override - public Collection compute() { - return JavaSuperClassNameOccurenceIndex.getInstance().get(searchKey, project, scope); - } - }); + Collection candidates = MethodUsagesSearcher.resolveInReadAction(project, + new Computable>() { + @Override + public Collection compute() { + return JavaSuperClassNameOccurenceIndex + .getInstance().get(searchKey, project, scope); + } + }); Map> classes = new HashMap>(); @@ -118,7 +120,7 @@ public class JavaDirectInheritorsSearcher implements QueryExecutor() { @Override @@ -142,16 +144,19 @@ public class JavaDirectInheritorsSearcher implements QueryExecutor anonymousCandidates = ApplicationManager.getApplication().runReadAction(new Computable>() { - @Override - public Collection compute() { - return JavaAnonymousClassBaseRefOccurenceIndex.getInstance().get(searchKey, project, scope); - } - }); + Collection anonymousCandidates = MethodUsagesSearcher.resolveInReadAction(project, + new Computable>() { + @Override + public Collection compute() { + return JavaAnonymousClassBaseRefOccurenceIndex + .getInstance() + .get(searchKey, project, scope); + } + }); for (PsiAnonymousClass candidate : anonymousCandidates) { ProgressIndicatorProvider.checkCanceled(); - if (!checkInheritance(p, aClass, candidate)) continue; + if (!checkInheritance(p, aClass, candidate, project)) continue; if (!consumer.process(candidate)) return false; } @@ -190,8 +195,8 @@ public class JavaDirectInheritorsSearcher implements QueryExecutor() { + private static boolean checkInheritance(final DirectClassInheritorsSearch.SearchParameters p, final PsiClass aClass, final PsiClass candidate, Project project) { + return MethodUsagesSearcher.resolveInReadAction(project, new Computable() { @Override public Boolean compute() { return !p.isCheckInheritance() || candidate.isInheritor(aClass, false);