From 3f780cd0dabf88bf3535730e9b3cf2f5ab99a6f8 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 23 Jan 2020 19:46:12 +0100 Subject: [PATCH] Don't lose SequenceEvents while pumping events during plugin unload (IDEA-231059) GitOrigin-RevId: 0e2567983defeee07f8ffc1226f7b527074702ca --- .../src/com/intellij/ide/plugins/DynamicPlugins.kt | 4 ++-- platform/util/ui/src/com/intellij/util/ui/UIUtil.java | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/DynamicPlugins.kt b/platform/platform-impl/src/com/intellij/ide/plugins/DynamicPlugins.kt index f05c55f4157b..580eb4894599 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/DynamicPlugins.kt +++ b/platform/platform-impl/src/com/intellij/ide/plugins/DynamicPlugins.kt @@ -4,6 +4,7 @@ package com.intellij.ide.plugins import com.intellij.configurationStore.StoreUtil.Companion.saveDocumentsAndProjectsAndApp import com.intellij.configurationStore.jdomSerializer import com.intellij.configurationStore.runInAutoSaveDisabledMode +import com.intellij.ide.IdeEventQueue import com.intellij.ide.SaveAndSyncHandler import com.intellij.ide.plugins.cl.PluginClassLoader import com.intellij.ide.ui.UIThemeProvider @@ -42,7 +43,6 @@ import com.intellij.util.SystemProperties import com.intellij.util.containers.ConcurrentFactoryMap import com.intellij.util.messages.Topic import com.intellij.util.messages.impl.MessageBusImpl -import com.intellij.util.ui.UIUtil import com.intellij.util.xmlb.BeanBinding import java.text.SimpleDateFormat import java.util.* @@ -342,7 +342,7 @@ object DynamicPlugins { } catch (e: Exception) { Logger.getInstance(DynamicPlugins.javaClass).error(e) } finally { - UIUtil.dispatchAllInvocationEvents() + IdeEventQueue.getInstance().flushQueue() val classLoaderUnloaded = loadedPluginDescriptor.unloadClassLoader() if (!classLoaderUnloaded) { diff --git a/platform/util/ui/src/com/intellij/util/ui/UIUtil.java b/platform/util/ui/src/com/intellij/util/ui/UIUtil.java index 0f474849d7f0..921a9eb23371 100644 --- a/platform/util/ui/src/com/intellij/util/ui/UIUtil.java +++ b/platform/util/ui/src/com/intellij/util/ui/UIUtil.java @@ -1797,6 +1797,7 @@ public final class UIUtil { } /** + * Dispatch all pending invocation events (if any) in the {@link IdeEventQueue}, ignores and removes all other events from the queue. * In tests, consider using {@link com.intellij.testFramework.PlatformTestUtil#dispatchAllInvocationEventsInIdeEventQueue()} * @see #pump() */