EA-40093 - NPE: UpdateChecker.install
authoranna <Anna.Kozlova@jetbrains.com>
Thu, 18 Oct 2012 11:34:15 +0000 (13:34 +0200)
committeranna <Anna.Kozlova@jetbrains.com>
Thu, 18 Oct 2012 11:45:04 +0000 (13:45 +0200)
platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java
platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateChecker.java

index 0bc4b1ff33edd08f1a30b611b1e3a6119508dfc1..f550aaac0de2675fcd181bb94289d1c4dc2cd85c 100644 (file)
@@ -105,7 +105,7 @@ public class InstalledPluginsTableModel extends PluginTableModel {
     return false;
   }
 
-  public static void updateExistingPlugin(IdeaPluginDescriptor descriptor, IdeaPluginDescriptor existing) {
+  public static void updateExistingPlugin(IdeaPluginDescriptor descriptor, @Nullable IdeaPluginDescriptor existing) {
     if (existing != null) {
       updateExistingPluginInfo(descriptor, existing);
       updatedPlugins.add(existing.getPluginId());
index 30ce19603e6da44caa08209117166581360384c2..f76079ccd92dbcae9831d944162f5aa565976daf 100644 (file)
@@ -601,14 +601,16 @@ public final class UpdateChecker {
     boolean installed = false;
     for (PluginDownloader downloader : downloaders) {
       if (getDisabledToUpdatePlugins().contains(downloader.getPluginId())) continue;
-      try {
-        final IdeaPluginDescriptor descriptor = downloader.getDescriptor();
-        InstalledPluginsTableModel.updateExistingPlugin(descriptor, PluginManager.getPlugin(descriptor.getPluginId()));
-        downloader.install();
-        installed = true;
-      }
-      catch (IOException e) {
-        LOG.info(e);
+      final IdeaPluginDescriptor descriptor = downloader.getDescriptor();
+      if (descriptor != null) {
+        try {
+          InstalledPluginsTableModel.updateExistingPlugin(descriptor, PluginManager.getPlugin(descriptor.getPluginId()));
+          downloader.install();
+          installed = true;
+        }
+        catch (IOException e) {
+          LOG.info(e);
+        }
       }
     }
     return installed;