From 36b00479f9ea6eb0d93b2d047c051a0d4f5b6c2e Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Thu, 19 Feb 2015 21:06:38 +0300 Subject: [PATCH] EA-65136 diff: fix NPE getContentTitles() contains nullable elements --- .../diff-impl/src/com/intellij/diff/util/DiffUtil.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/platform/diff-impl/src/com/intellij/diff/util/DiffUtil.java b/platform/diff-impl/src/com/intellij/diff/util/DiffUtil.java index 591c3c976136..3f79865d3f10 100644 --- a/platform/diff-impl/src/com/intellij/diff/util/DiffUtil.java +++ b/platform/diff-impl/src/com/intellij/diff/util/DiffUtil.java @@ -57,6 +57,7 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.DialogWrapperDialog; import com.intellij.openapi.ui.WindowWrapper; import com.intellij.openapi.util.*; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.ReadonlyStatusHandler; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.wm.IdeFocusManager; @@ -78,6 +79,7 @@ import java.awt.*; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.BitSet; +import java.util.Collections; import java.util.List; public class DiffUtil { @@ -349,8 +351,12 @@ public class DiffUtil { List result = new ArrayList(contents.size()); + if (equalCharsets && equalSeparators && ContainerUtil.find(titles, Condition.NOT_NULL) == null) { + return Collections.nCopies(titles.size(), null); + } + for (int i = 0; i < contents.size(); i++) { - result.add(createTitle(titles.get(i), contents.get(i), equalCharsets, equalSeparators, editors.get(i))); + result.add(createTitle(StringUtil.notNullize(titles.get(i)), contents.get(i), equalCharsets, equalSeparators, editors.get(i))); } return result;