From c11d9ccfc47223a09189a5c447339966708658d5 Mon Sep 17 00:00:00 2001 From: peter Date: Fri, 4 Aug 2017 14:56:48 +0200 Subject: [PATCH] diagnostics for null in goto popup model (EA-104872 - assert: Diff.buildChanges) --- .../intellij/ide/util/gotoByName/ChooseByNameBase.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java index 77d349da02e6..86f914059cd1 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java +++ b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java @@ -75,6 +75,7 @@ import com.intellij.usageView.UsageInfo; import com.intellij.usages.*; import com.intellij.usages.impl.UsageViewManagerImpl; import com.intellij.util.Alarm; +import com.intellij.util.ArrayUtil; import com.intellij.util.Consumer; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.indexing.FileBasedIndex; @@ -983,6 +984,9 @@ public abstract class ChooseByNameBase { Object[] oldElements = myListModel.getItems().toArray(); Object[] newElements = elements.toArray(); + if (ArrayUtil.contains(null, newElements)) { + LOG.error("Null after filtering elements by " + this); + } List commands = ModelDiff.createDiffCmds(myListModel, oldElements, newElements); myTextField.setForeground(UIUtil.getTextFieldForeground()); @@ -1451,6 +1455,10 @@ public abstract class ChooseByNameBase { indicator, o -> { if (indicator.isCanceled()) return false; + if (o == null) { + LOG.error("Null returned from " + myProvider + " with " + myModel + " in " + ChooseByNameBase.this); + return true; + } elements.add(o); if (isOverflow(elements)) {