diff --git a/java/java-impl/src/com/intellij/spi/psi/SPIFile.java b/java/java-impl/src/com/intellij/spi/psi/SPIFile.java index a3858c50ccb3..52865f47b550 100644 --- a/java/java-impl/src/com/intellij/spi/psi/SPIFile.java +++ b/java/java-impl/src/com/intellij/spi/psi/SPIFile.java @@ -58,7 +58,13 @@ public class SPIFile extends PsiFileBase { int d; final String fileName = getName(); while ((d = fileName.indexOf(".", idx)) > -1) { - final PsiPackage aPackage = JavaPsiFacade.getInstance(getProject()).findPackage(fileName.substring(0, d)); + final int dotIdx = d; + final PsiPackage aPackage = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override + public PsiPackage compute() { + return JavaPsiFacade.getInstance(getProject()).findPackage(fileName.substring(0, dotIdx)); + } + }); if (aPackage != null) { refs.add(new SPIFileName2PackageReference(this, aPackage)); } @@ -69,7 +75,13 @@ public class SPIFile extends PsiFileBase { while (resolve instanceof PsiClass) { resolve = ((PsiClass)resolve).getContainingClass(); if (resolve != null) { - final String jvmClassName = ClassUtil.getJVMClassName((PsiClass)resolve); + final PsiElement finalResolve = resolve; + final String jvmClassName = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override + public String compute() { + return ClassUtil.getJVMClassName((PsiClass)finalResolve); + } + }); if (jvmClassName != null) { refs.add(new SPIFileName2PackageReference(this, resolve)); } diff --git a/java/java-indexing-impl/src/com/intellij/psi/impl/search/SPIReferencesSearcher.java b/java/java-indexing-impl/src/com/intellij/psi/impl/search/SPIReferencesSearcher.java index 080c800c89f4..8ce1add395f4 100644 --- a/java/java-indexing-impl/src/com/intellij/psi/impl/search/SPIReferencesSearcher.java +++ b/java/java-indexing-impl/src/com/intellij/psi/impl/search/SPIReferencesSearcher.java @@ -31,7 +31,7 @@ import org.jetbrains.annotations.NotNull; public class SPIReferencesSearcher extends QueryExecutorBase { @Override - public void processQuery(@NotNull final ReferencesSearch.SearchParameters p, @NotNull Processor consumer) { + public void processQuery(@NotNull final ReferencesSearch.SearchParameters p, @NotNull final Processor consumer) { final SearchScope scope = ApplicationManager.getApplication().runReadAction(new Computable() { @Override public SearchScope compute() { @@ -61,7 +61,12 @@ public class SPIReferencesSearcher extends QueryExecutorBase