From 779318044e33939ae18bec86f6d7a2bb8fdeb116 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yann=20C=C3=A9bron?= Date: Tue, 23 Jun 2015 10:45:11 +0200 Subject: [PATCH] FinderRecursivePanel.mergeListItems: restore setMergeListItemsRunning after exceptions --- .../com/intellij/ui/FinderRecursivePanel.java | 41 ++++++++++--------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ui/FinderRecursivePanel.java b/platform/platform-impl/src/com/intellij/ui/FinderRecursivePanel.java index e8b5c57fd3b4..f67026d22c10 100644 --- a/platform/platform-impl/src/com/intellij/ui/FinderRecursivePanel.java +++ b/platform/platform-impl/src/com/intellij/ui/FinderRecursivePanel.java @@ -538,32 +538,35 @@ public abstract class FinderRecursivePanel extends JBSplitter implements Data }); } - protected void mergeListItems(@NotNull CollectionListModel listModel, @NotNull JList list, @NotNull List newItems) { + protected void mergeListItems(@NotNull CollectionListModel listModel, @NotNull JList list, @NotNull List newItems) { setMergeListItemsRunning(true); - if (listModel.getSize() == 0) { - listModel.add(newItems); - } - else if (newItems.size() == 0) { - listModel.removeAll(); - } else { - - int newSelectedIndex = -1; - - T selection = (T)list.getSelectedValue(); - if (selection != null) { - newSelectedIndex = newItems.indexOf(selection); + try { + if (listModel.getSize() == 0) { + listModel.add(newItems); } + else if (newItems.size() == 0) { + listModel.removeAll(); + } + else { + + int newSelectedIndex = -1; + + T selection = (T)list.getSelectedValue(); + if (selection != null) { + newSelectedIndex = newItems.indexOf(selection); + } - listModel.removeAll(); - listModel.add(newItems); + listModel.removeAll(); + listModel.add(newItems); - list.setSelectedIndex(newSelectedIndex); + list.setSelectedIndex(newSelectedIndex); + } + } + finally { + setMergeListItemsRunning(false); } - - - setMergeListItemsRunning(false); } public boolean isMergeListItemsRunning() {