mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
spi read access (EA-66139 - assert: FileDocumentManagerImpl.getDocument)
This commit is contained in:
@@ -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<PsiPackage>() {
|
||||
@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<String>() {
|
||||
@Override
|
||||
public String compute() {
|
||||
return ClassUtil.getJVMClassName((PsiClass)finalResolve);
|
||||
}
|
||||
});
|
||||
if (jvmClassName != null) {
|
||||
refs.add(new SPIFileName2PackageReference(this, resolve));
|
||||
}
|
||||
|
||||
+13
-4
@@ -31,7 +31,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class SPIReferencesSearcher extends QueryExecutorBase<PsiReference, ReferencesSearch.SearchParameters> {
|
||||
@Override
|
||||
public void processQuery(@NotNull final ReferencesSearch.SearchParameters p, @NotNull Processor<PsiReference> consumer) {
|
||||
public void processQuery(@NotNull final ReferencesSearch.SearchParameters p, @NotNull final Processor<PsiReference> consumer) {
|
||||
final SearchScope scope = ApplicationManager.getApplication().runReadAction(new Computable<SearchScope>() {
|
||||
@Override
|
||||
public SearchScope compute() {
|
||||
@@ -61,7 +61,12 @@ public class SPIReferencesSearcher extends QueryExecutorBase<PsiReference, Refer
|
||||
if (file.getLanguage() == SPILanguage.INSTANCE) {
|
||||
final PsiReference reference = file.getReference();
|
||||
if (reference != null) {
|
||||
consumer.process(reference);
|
||||
ApplicationManager.getApplication().runReadAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
consumer.process(reference);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -80,9 +85,13 @@ public class SPIReferencesSearcher extends QueryExecutorBase<PsiReference, Refer
|
||||
for (PsiFile file : files) {
|
||||
if (file.getLanguage() == SPILanguage.INSTANCE) {
|
||||
final PsiReference[] references = file.getReferences();
|
||||
for (PsiReference reference : references) {
|
||||
for (final PsiReference reference : references) {
|
||||
if (reference.getCanonicalText().equals(qualifiedName)) {
|
||||
consumer.process(reference);
|
||||
ApplicationManager.getApplication().runReadAction(new Runnable() {
|
||||
public void run() {
|
||||
consumer.process(reference);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user