mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
EA-63794 - PIEAE: LeafPsiElement.invalid
This commit is contained in:
@@ -307,7 +307,10 @@ public abstract class SourcePosition implements Navigatable{
|
||||
}
|
||||
|
||||
public static SourcePosition createFromElement(PsiElement element) {
|
||||
final PsiElement navigationElement = element.getNavigationElement();
|
||||
ApplicationManager.getApplication().assertReadAccessAllowed();
|
||||
PsiElement navigationElement = element.getNavigationElement();
|
||||
final SmartPsiElementPointer<PsiElement> pointer =
|
||||
SmartPointerManager.getInstance(navigationElement.getProject()).createSmartPsiElementPointer(navigationElement);
|
||||
final PsiFile psiFile;
|
||||
if (JspPsiUtil.isInJspFile(navigationElement)) {
|
||||
psiFile = JspPsiUtil.getJspFile(navigationElement);
|
||||
@@ -318,12 +321,19 @@ public abstract class SourcePosition implements Navigatable{
|
||||
return new SourcePositionCache(psiFile) {
|
||||
@Override
|
||||
protected PsiElement calcPsiElement() {
|
||||
return navigationElement;
|
||||
ApplicationManager.getApplication().assertReadAccessAllowed();
|
||||
return pointer.getElement();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int calcOffset() {
|
||||
return navigationElement.getTextOffset();
|
||||
return ApplicationManager.getApplication().runReadAction(new Computable<Integer>() {
|
||||
@Override
|
||||
public Integer compute() {
|
||||
PsiElement elem = pointer.getElement();
|
||||
return elem != null ? elem.getTextOffset() : -1;
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user