From 246b6267c238b92875cbb9531f2e4a4d6c1431e9 Mon Sep 17 00:00:00 2001 From: Maxim Shafirov Date: Wed, 25 Nov 2009 14:25:57 +0300 Subject: [PATCH] NPE fix: FileEditor seem to be provided from the console view's editor. Obviously it doesn't have VirtualFile associated --- .../src/com/intellij/ide/impl/StructureViewWrapperImpl.java | 6 +++++- .../openapi/fileEditor/impl/text/TextEditorProvider.java | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/platform/lang-impl/src/com/intellij/ide/impl/StructureViewWrapperImpl.java b/platform/lang-impl/src/com/intellij/ide/impl/StructureViewWrapperImpl.java index 87545027c1ad..85c681072efe 100644 --- a/platform/lang-impl/src/com/intellij/ide/impl/StructureViewWrapperImpl.java +++ b/platform/lang-impl/src/com/intellij/ide/impl/StructureViewWrapperImpl.java @@ -25,6 +25,7 @@ import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.application.ModalityState; import com.intellij.openapi.fileEditor.FileEditor; +import com.intellij.openapi.fileEditor.FileEditorManager; import com.intellij.openapi.module.Module; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Comparing; @@ -41,6 +42,7 @@ import javax.swing.*; import java.awt.*; import java.awt.event.HierarchyEvent; import java.awt.event.HierarchyListener; +import java.util.Arrays; /** * @author Eugene Belyaev @@ -100,7 +102,9 @@ public class StructureViewWrapperImpl implements StructureViewWrapper, Disposabl final DataContext dataContext = DataManager.getInstance().getDataContext(owner); final FileEditor fileEditor = PlatformDataKeys.FILE_EDITOR.getData(dataContext); if (fileEditor != null) { - setFileEditor(fileEditor); + if (Arrays.asList(FileEditorManager.getInstance(myProject).getSelectedEditors()).contains(fileEditor)) { + setFileEditor(fileEditor); + } } else { setModule(LangDataKeys.MODULE_CONTEXT.getData(dataContext)); diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/text/TextEditorProvider.java b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/text/TextEditorProvider.java index 2488277f5912..467666f31177 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/text/TextEditorProvider.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/text/TextEditorProvider.java @@ -239,6 +239,8 @@ public class TextEditorProvider implements FileEditorProvider, DumbAware { public StructureViewBuilder getStructureViewBuilder() { VirtualFile file = FileDocumentManager.getInstance().getFile(myEditor.getDocument()); + if (file == null) return null; + final Project project = myEditor.getProject(); LOG.assertTrue(project != null); return StructureViewBuilder.PROVIDER.getStructureViewBuilder(file.getFileType(), file, project);