From ba99b887378769eda82f083cc8e81df12a892189 Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Wed, 23 Dec 2015 18:52:17 +0300 Subject: [PATCH] diff: EA-77154 - IAE: FileEditorManagerImpl.openFileWithProviders do not create OpenFileDescriptor from invalid VirtualFile --- .../src/com/intellij/diff/contents/DirectoryContentImpl.java | 2 +- .../com/intellij/diff/contents/FileAwareDocumentContent.java | 2 +- .../src/com/intellij/diff/contents/FileContentImpl.java | 2 +- .../src/com/intellij/diff/contents/FileDocumentContentImpl.java | 2 +- .../src/com/intellij/ide/diff/VirtualFileDiffElement.java | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/platform/diff-impl/src/com/intellij/diff/contents/DirectoryContentImpl.java b/platform/diff-impl/src/com/intellij/diff/contents/DirectoryContentImpl.java index dfc3f1ac5aa7..dfc31b49a18f 100644 --- a/platform/diff-impl/src/com/intellij/diff/contents/DirectoryContentImpl.java +++ b/platform/diff-impl/src/com/intellij/diff/contents/DirectoryContentImpl.java @@ -35,7 +35,7 @@ public class DirectoryContentImpl extends DiffContentBase implements DirectoryCo @Nullable @Override public OpenFileDescriptor getOpenFileDescriptor() { - if (myProject == null || myProject.isDefault()) return null; + if (myProject == null || myProject.isDefault() || !myFile.isValid()) return null; return new OpenFileDescriptor(myProject, myFile); } diff --git a/platform/diff-impl/src/com/intellij/diff/contents/FileAwareDocumentContent.java b/platform/diff-impl/src/com/intellij/diff/contents/FileAwareDocumentContent.java index e4c6d6ca83c2..9693047e7b03 100644 --- a/platform/diff-impl/src/com/intellij/diff/contents/FileAwareDocumentContent.java +++ b/platform/diff-impl/src/com/intellij/diff/contents/FileAwareDocumentContent.java @@ -39,7 +39,7 @@ public class FileAwareDocumentContent extends DocumentContentImpl { @Override public OpenFileDescriptor getOpenFileDescriptor(int offset) { - if (myProject == null || getHighlightFile() == null) return null; + if (myProject == null || getHighlightFile() == null || !getHighlightFile().isValid()) return null; return new OpenFileDescriptor(myProject, getHighlightFile(), offset); } diff --git a/platform/diff-impl/src/com/intellij/diff/contents/FileContentImpl.java b/platform/diff-impl/src/com/intellij/diff/contents/FileContentImpl.java index 026f6ea840d6..bb4f485d118a 100644 --- a/platform/diff-impl/src/com/intellij/diff/contents/FileContentImpl.java +++ b/platform/diff-impl/src/com/intellij/diff/contents/FileContentImpl.java @@ -40,7 +40,7 @@ public class FileContentImpl extends DiffContentBase implements FileContent { @Nullable @Override public OpenFileDescriptor getOpenFileDescriptor() { - if (myProject == null || myProject.isDefault()) return null; + if (myProject == null || myProject.isDefault() || !myFile.isValid()) return null; return new OpenFileDescriptor(myProject, myFile); } diff --git a/platform/diff-impl/src/com/intellij/diff/contents/FileDocumentContentImpl.java b/platform/diff-impl/src/com/intellij/diff/contents/FileDocumentContentImpl.java index 5c43b9599d49..c76552d5785a 100644 --- a/platform/diff-impl/src/com/intellij/diff/contents/FileDocumentContentImpl.java +++ b/platform/diff-impl/src/com/intellij/diff/contents/FileDocumentContentImpl.java @@ -39,7 +39,7 @@ public class FileDocumentContentImpl extends DocumentContentImpl implements File @Nullable @Override public OpenFileDescriptor getOpenFileDescriptor(int offset) { - if (myProject == null || myProject.isDefault()) return null; + if (myProject == null || myProject.isDefault() || !myFile.isValid()) return null; return new OpenFileDescriptor(myProject, myFile, offset); } diff --git a/platform/platform-impl/src/com/intellij/ide/diff/VirtualFileDiffElement.java b/platform/platform-impl/src/com/intellij/ide/diff/VirtualFileDiffElement.java index d5b26dea5f65..2665fce2e969 100644 --- a/platform/platform-impl/src/com/intellij/ide/diff/VirtualFileDiffElement.java +++ b/platform/platform-impl/src/com/intellij/ide/diff/VirtualFileDiffElement.java @@ -87,7 +87,7 @@ public class VirtualFileDiffElement extends DiffElement { @Override @Nullable public OpenFileDescriptor getOpenFileDescriptor(@Nullable Project project) { - if (project == null || project.isDefault()) return null; + if (project == null || project.isDefault() || !myFile.isValid()) return null; return new OpenFileDescriptor(project, myFile); }