From 42b1f5ae3e11882c5085aad7bc5bc3e05f0bb0d1 Mon Sep 17 00:00:00 2001 From: Alexander Lobas Date: Tue, 21 May 2019 18:51:33 +0300 Subject: [PATCH] IDEA-210339 AE at com.intellij.ide.plugins.newui.PluginUpdatesService.recalculateUpdates EA-142902 GitOrigin-RevId: 5ddc215c041d32f2aba276d5b06690d9c671b1c7 --- .../plugins/newui/PluginUpdatesService.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/newui/PluginUpdatesService.java b/platform/platform-impl/src/com/intellij/ide/plugins/newui/PluginUpdatesService.java index df55f231060a..57ee510ee766 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/newui/PluginUpdatesService.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/newui/PluginUpdatesService.java @@ -26,6 +26,7 @@ public class PluginUpdatesService { private static Collection myCache; private static boolean myPrepared; private static boolean myPreparing; + private static boolean myReset; private Consumer myTreeCallback; private Consumer myTabCallback; @@ -117,13 +118,21 @@ public class PluginUpdatesService { public void recalculateUpdates() { checkAccess(); - assert !myPreparing; for (PluginUpdatesService service : SERVICES) { service.runAllCallbacks(0); } - calculateUpdates(); + if (myPreparing) { + resetUpdates(); + } + else { + calculateUpdates(); + } + } + + private static void resetUpdates() { + myReset = true; } public void dispose() { @@ -178,6 +187,13 @@ public class PluginUpdatesService { checkAccess(); myPreparing = false; + + if (myReset) { + myReset = false; + calculateUpdates(); + return; + } + myPrepared = true; myCache = updates;