diagnotics for invalid anchors to java classes (EA-72518 - assert: JavaPsiClassReferenceElement.getObject)

This commit is contained in:
peter
2015-09-08 19:06:18 +02:00
parent 3bdaee047e
commit 8a3a075b24
2 changed files with 7 additions and 3 deletions
@@ -99,8 +99,12 @@ public class JavaPsiClassReferenceElement extends LookupItem<Object> implements
return psiClass;
}
final PsiClass retrieve = (PsiClass)((PsiAnchor)myClass).retrieve();
assert retrieve != null : myQualifiedName;
PsiAnchor anchor = (PsiAnchor)myClass;
final PsiClass retrieve = (PsiClass)anchor.retrieve();
if (retrieve == null) {
throw new AssertionError(myQualifiedName + "; anchor=" + anchor + "; diagnostics=" +
(anchor instanceof PsiAnchor.StubIndexReference ? ((PsiAnchor.StubIndexReference)anchor).diagnoseNull() : null));
}
myCache = new WeakReference<PsiClass>(retrieve);
return retrieve;
}
@@ -58,6 +58,6 @@ public class WrappedElementAnchor extends PsiAnchor {
@Override
public String toString() {
return "WrappedElementAnchor(" + myBaseAnchor.toString() + ")";
return "WrappedElementAnchor(" + myBaseAnchor + "; provider=" + myAnchorProvider + ")";
}
}