diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/PluginInstaller.java b/platform/platform-impl/src/com/intellij/ide/plugins/PluginInstaller.java index 08cc5c2d995f..069c6274969e 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/PluginInstaller.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/PluginInstaller.java @@ -67,6 +67,7 @@ public class PluginInstaller { Messages.showErrorDialog(pluginNode.getName() + ": " + e.getMessage(), CommonBundle.message("title.error")); } }); + return false; } } return result; diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerMain.java b/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerMain.java index 4d533fc3a724..a074c9363748 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerMain.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerMain.java @@ -300,22 +300,15 @@ public abstract class PluginManagerMain implements Disposable { ProgressManager.getInstance().run(new Task.Backgroundable(null, IdeBundle.message("progress.download.plugins"), true) { @Override public void run(@NotNull ProgressIndicator indicator) { - if (PluginInstaller.prepareToInstall(plugins, allPlugins)) { - ApplicationManager.getApplication().invokeLater(onSuccess); - result[0] = true; + try { + if (PluginInstaller.prepareToInstall(plugins, allPlugins)) { + ApplicationManager.getApplication().invokeLater(onSuccess); + result[0] = true; + } + } + finally { + cleanup.run(); } - } - - @Override - public void onCancel() { - cleanup.run(); - super.onCancel(); - } - - @Override - public void onSuccess() { - super.onSuccess(); - cleanup.run(); } }); }