From 5b0765bb14c5ce64a587aff8ffbe678a39962bfa Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Tue, 15 Feb 2011 17:14:27 +0300 Subject: [PATCH] open file using FileManager instead of navigate (IDEA-65392 NPE) --- .../codeInsight/daemon/impl/IconLineMarkerProvider.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/IconLineMarkerProvider.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/IconLineMarkerProvider.java index 909cae8bb465..a76a1b283bff 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/IconLineMarkerProvider.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/IconLineMarkerProvider.java @@ -21,7 +21,10 @@ import com.intellij.codeInsight.daemon.GutterIconNavigationHandler; import com.intellij.codeInsight.daemon.LineMarkerInfo; import com.intellij.codeInsight.daemon.LineMarkerProvider; import com.intellij.openapi.editor.markup.GutterIconRenderer; +import com.intellij.openapi.fileEditor.FileEditorManager; +import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Pair; +import com.intellij.openapi.util.Ref; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; import com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference; @@ -107,7 +110,7 @@ public class IconLineMarkerProvider implements LineMarkerProvider { @Nullable private LineMarkerInfo resolveIconInfo(PsiType type, PsiExpression initializer, PsiElement bindingElement) { if (initializer != null && initializer.isValid() && isIconClassType(type)) { - + final Project project = initializer.getProject(); final List refs = new ArrayList(); initializer.accept(new JavaRecursiveElementWalkingVisitor() { @Override @@ -146,9 +149,10 @@ public class IconLineMarkerProvider implements LineMarkerProvider { final Icon icon = getIcon(file); if (icon != null) { + final Ref f = Ref.create(file); final GutterIconNavigationHandler navHandler = new GutterIconNavigationHandler() { public void navigate(MouseEvent e, PsiElement elt) { - psiFileSystemItem.navigate(true); + FileEditorManager.getInstance(project).openFile(f.get(), true); } }; return new LineMarkerInfo(bindingElement, bindingElement.getTextRange(), icon,