From 005f2c483c07cabc45d55db7c6d0a6dbf7dc9242 Mon Sep 17 00:00:00 2001 From: Vadim Salavatov Date: Tue, 30 Jun 2026 17:45:48 +0200 Subject: [PATCH] [plugins] IJPL-248728 startup plugin errors notification: launch enable/disable action on EDT instead of RawSwingDispatcher RawSwingDispatcher is treated as `any` modality and causes write-unsafe context errors GitOrigin-RevId: aac0cf2e53cf84da6badf157661d0acd35dd7670 --- .../ide/plugins/DefaultPluginInitializationErrorHandler.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/DefaultPluginInitializationErrorHandler.kt b/platform/platform-impl/src/com/intellij/ide/plugins/DefaultPluginInitializationErrorHandler.kt index 5f225884076c..743c491a60e0 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/DefaultPluginInitializationErrorHandler.kt +++ b/platform/platform-impl/src/com/intellij/ide/plugins/DefaultPluginInitializationErrorHandler.kt @@ -1,7 +1,8 @@ // Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.ide.plugins -import com.intellij.util.ui.RawSwingDispatcher +import com.intellij.openapi.application.EDT +import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import org.jetbrains.annotations.ApiStatus import org.jetbrains.annotations.Nls @@ -34,7 +35,7 @@ class DefaultPluginInitializationErrorHandler : PluginInitializationErrorHandler } override suspend fun enableDeferredPlugins() { - withContext(RawSwingDispatcher) { + withContext(Dispatchers.EDT) { if (pluginEnabler.enable(findDescriptors(pluginsToEnableDisable.first, markedForLoading = true))) { PluginManagerMain.notifyPluginsUpdated(null) } @@ -42,7 +43,7 @@ class DefaultPluginInitializationErrorHandler : PluginInitializationErrorHandler } override suspend fun disableDeferredPlugins() { - withContext(RawSwingDispatcher) { + withContext(Dispatchers.EDT) { pluginEnabler.disable(findDescriptors(pluginsToEnableDisable.second, markedForLoading = false)) } }