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() {