diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUi.java b/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUi.java index 9a3f1341258b..ac21bfad346b 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUi.java +++ b/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUi.java @@ -881,26 +881,31 @@ public class AbstractTreeUi { //todo: to make real callback public ActionCallback queueUpdate(Object element) { - AbstractTreeUpdater updater = getUpdater(); - if (updater == null) { + try { + AbstractTreeUpdater updater = getUpdater(); + if (updater == null) { + return new ActionCallback.Rejected(); + } + + final ActionCallback result = new ActionCallback(); + DefaultMutableTreeNode node = getNodeForElement(element, false); + if (node != null) { + addSubtreeToUpdate(node); + } + else { + addSubtreeToUpdate(getRootNode()); + } + + updater.runAfterUpdate(new Runnable() { + public void run() { + result.setDone(); + } + }); + return result; + } + catch (ProcessCanceledException e) { return new ActionCallback.Rejected(); } - - final ActionCallback result = new ActionCallback(); - DefaultMutableTreeNode node = getNodeForElement(element, false); - if (node != null) { - addSubtreeToUpdate(node); - } - else { - addSubtreeToUpdate(getRootNode()); - } - - updater.runAfterUpdate(new Runnable() { - public void run() { - result.setDone(); - } - }); - return result; } public void doUpdateFromRoot() {