Don't lose SequenceEvents while pumping events during plugin unload (IDEA-231059)

GitOrigin-RevId: 0e2567983defeee07f8ffc1226f7b527074702ca
This commit is contained in:
Dmitry Jemerov
2020-01-23 19:06:40 +00:00
committed by intellij-monorepo-bot
parent ad1ef8a6ff
commit 3f780cd0da
2 changed files with 3 additions and 2 deletions
@@ -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) {
@@ -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()
*/