From 8a3a075b24e9b00b00a604874357c8bddd4ebc76 Mon Sep 17 00:00:00 2001 From: peter Date: Tue, 8 Sep 2015 17:47:22 +0200 Subject: [PATCH] diagnotics for invalid anchors to java classes (EA-72518 - assert: JavaPsiClassReferenceElement.getObject) --- .../completion/JavaPsiClassReferenceElement.java | 8 ++++++-- .../src/com/intellij/psi/WrappedElementAnchor.java | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaPsiClassReferenceElement.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaPsiClassReferenceElement.java index 6a4f29ec6020..9f2bebed0662 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaPsiClassReferenceElement.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaPsiClassReferenceElement.java @@ -99,8 +99,12 @@ public class JavaPsiClassReferenceElement extends LookupItem 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(retrieve); return retrieve; } diff --git a/platform/core-impl/src/com/intellij/psi/WrappedElementAnchor.java b/platform/core-impl/src/com/intellij/psi/WrappedElementAnchor.java index c5e1ebebea4c..cde4726b7bfd 100644 --- a/platform/core-impl/src/com/intellij/psi/WrappedElementAnchor.java +++ b/platform/core-impl/src/com/intellij/psi/WrappedElementAnchor.java @@ -58,6 +58,6 @@ public class WrappedElementAnchor extends PsiAnchor { @Override public String toString() { - return "WrappedElementAnchor(" + myBaseAnchor.toString() + ")"; + return "WrappedElementAnchor(" + myBaseAnchor + "; provider=" + myAnchorProvider + ")"; } }