From 2028b65898e40eaea2b93732eeefca328135636e Mon Sep 17 00:00:00 2001 From: peter Date: Tue, 14 Aug 2012 15:13:17 +0200 Subject: [PATCH] diagnose missing parent stub (EA-38216) --- .../com/intellij/extapi/psi/StubBasedPsiElementBase.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/platform/core-impl/src/com/intellij/extapi/psi/StubBasedPsiElementBase.java b/platform/core-impl/src/com/intellij/extapi/psi/StubBasedPsiElementBase.java index b3992bb6c1c9..2f5d7064a34f 100644 --- a/platform/core-impl/src/com/intellij/extapi/psi/StubBasedPsiElementBase.java +++ b/platform/core-impl/src/com/intellij/extapi/psi/StubBasedPsiElementBase.java @@ -22,6 +22,7 @@ package com.intellij.extapi.psi; import com.intellij.lang.ASTNode; import com.intellij.lang.Language; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.progress.NonCancelableSection; import com.intellij.openapi.progress.ProgressIndicatorProvider; import com.intellij.openapi.project.Project; @@ -45,6 +46,7 @@ import org.jetbrains.annotations.Nullable; import java.lang.reflect.Array; public class StubBasedPsiElementBase extends ASTDelegatePsiElement { + private static final Logger LOG = Logger.getInstance("#com.intellij.extapi.psi.StubBasedPsiElementBase"); private volatile T myStub; private volatile ASTNode myNode; private final IElementType myElementType; @@ -164,7 +166,12 @@ public class StubBasedPsiElementBase extends ASTDelegateP public boolean isValid() { T stub = myStub; if (stub != null) { - PsiElement psi = stub.getParentStub().getPsi(); + StubElement parent = stub.getParentStub(); + if (parent == null) { + LOG.error("No parent for stub " + stub + " of class " + stub.getClass()); + return false; + } + PsiElement psi = parent.getPsi(); return psi != null && psi.isValid(); }