diff options
Diffstat (limited to 'platform/platform-impl/src/com/intellij/ide/plugins/PluginInstaller.java')
-rw-r--r-- | platform/platform-impl/src/com/intellij/ide/plugins/PluginInstaller.java | 42 |
1 files changed, 22 insertions, 20 deletions
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 7919d1f894d0..b093773bc0fb 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/PluginInstaller.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/PluginInstaller.java @@ -159,33 +159,35 @@ public class PluginInstaller { } } - synchronized (myLock) { - PluginDownloader downloader = null; - final String repositoryName = pluginNode.getRepositoryName(); - if (repositoryName != null) { - try { - final Map<PluginId, PluginDownloader> downloaders = new HashMap<PluginId, PluginDownloader>(); - if (!UpdateChecker.checkPluginsHost(repositoryName, downloaders)) { - return false; - } - downloader = downloaders.get(pluginNode.getPluginId()); - if (downloader == null) return false; - } - catch (Exception e) { + PluginDownloader downloader = null; + final String repositoryName = pluginNode.getRepositoryName(); + if (repositoryName != null) { + try { + final Map<PluginId, PluginDownloader> downloaders = new HashMap<PluginId, PluginDownloader>(); + if (!UpdateChecker.checkPluginsHost(repositoryName, downloaders)) { return false; } + downloader = downloaders.get(pluginNode.getPluginId()); + if (downloader == null) return false; } - else { - downloader = PluginDownloader.createDownloader(pluginNode); + catch (Exception e) { + return false; } - if (downloader.prepareToInstall(ProgressManager.getInstance().getProgressIndicator())) { + } + else { + downloader = PluginDownloader.createDownloader(pluginNode); + } + + if (downloader.prepareToInstall(ProgressManager.getInstance().getProgressIndicator())) { + synchronized (myLock) { downloader.install(); - pluginNode.setStatus(PluginNode.STATUS_DOWNLOADED); - } - else { - return false; } + pluginNode.setStatus(PluginNode.STATUS_DOWNLOADED); + } + else { + return false; } + return true; } |