From 8a5ff22d7289f977d7f9d6e2771a90c025de5424 Mon Sep 17 00:00:00 2001 From: anna Date: Thu, 21 Feb 2013 11:06:48 +0100 Subject: [PATCH] EA-43536 - NPE: ShowImplementationsAction.filterElements --- .../hint/actions/ShowImplementationsAction.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/hint/actions/ShowImplementationsAction.java b/platform/lang-impl/src/com/intellij/codeInsight/hint/actions/ShowImplementationsAction.java index c4a632ec0f53..38985757cd76 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/hint/actions/ShowImplementationsAction.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/hint/actions/ShowImplementationsAction.java @@ -26,6 +26,7 @@ import com.intellij.featureStatistics.FeatureUsageTracker; import com.intellij.ide.DataManager; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.fileEditor.FileEditor; import com.intellij.openapi.fileEditor.FileEditorManager; @@ -59,6 +60,9 @@ import java.util.*; public class ShowImplementationsAction extends AnAction implements PopupAction { @NonNls public static final String CODEASSISTS_QUICKDEFINITION_LOOKUP_FEATURE = "codeassists.quickdefinition.lookup"; @NonNls public static final String CODEASSISTS_QUICKDEFINITION_FEATURE = "codeassists.quickdefinition"; + + private static final Logger LOG = Logger.getInstance("#" + ShowImplementationsAction.class.getName()); + private WeakReference myPopupRef; private WeakReference myTaskRef; @@ -306,7 +310,9 @@ public class ShowImplementationsAction extends AnAction implements PopupAction { private static PsiElement[] filterElements(final PsiElement[] targetElements) { Set unique = new LinkedHashSet(Arrays.asList(targetElements)); for (PsiElement elt : targetElements) { - PsiFile psiFile = elt.getContainingFile().getOriginalFile(); + final PsiFile containingFile = elt.getContainingFile(); + LOG.assertTrue(containingFile != null, elt); + PsiFile psiFile = containingFile.getOriginalFile(); if (psiFile.getVirtualFile() == null) unique.remove(elt); } // special case for Python (PY-237)