IJPL-180572 Changed setPluginStatus to non-async to avoid race conditions

GitOrigin-RevId: 008144be19a6c3f6ae98fd4a9bee44c2eec9bdec
This commit is contained in:
Denis Zaichenko
2025-06-16 22:46:44 +02:00
committed by intellij-monorepo-bot
parent b94efffb44
commit 3ff192225a
3 changed files with 4 additions and 8 deletions

View File

@@ -350,7 +350,7 @@ object DefaultUiPluginManagerController : UiPluginManagerController {
return PrepareToUninstallResult(dependentsMap, bundledPlugins)
}
override suspend fun setPluginStatus(sessionId: String, pluginIds: List<PluginId>, enable: Boolean) {
override fun setPluginStatus(sessionId: String, pluginIds: List<PluginId>, enable: Boolean) {
val session = findSession(sessionId) ?: return
setEnabledState(session, pluginIds, enable)
}

View File

@@ -75,8 +75,8 @@ interface UiPluginManagerController {
fun getPluginInstallationState(pluginId: PluginId): PluginInstallationState
fun getPluginInstallationStates(pluginIds: List<PluginId>): Map<PluginId, PluginInstallationState>
fun checkPluginCanBeDownloaded(pluginUiModel: PluginUiModel, progressIndicator: ProgressIndicator?): Boolean
fun setPluginStatus(sessionId: String, pluginIds: List<PluginId>, enable: Boolean)
suspend fun setPluginStatus(sessionId: String, pluginIds: List<PluginId>, enable: Boolean)
suspend fun resetSession(sessionId: String, removeSession: Boolean, parentComponent: JComponent? = null): Map<PluginId, Boolean>
companion object {

View File

@@ -177,12 +177,8 @@ class BackendUiPluginManagerController() : UiPluginManagerController {
return PluginInstallerApi.getInstance().resetSession(sessionId, removeSession)
}
override suspend fun setPluginStatus(sessionId: String, pluginIds: List<PluginId>, enable: Boolean) {
withContext(Dispatchers.IO) {
launch {
PluginManagerApi.getInstance().setEnabledState(sessionId, pluginIds, enable)
}
}
override fun setPluginStatus(sessionId: String, pluginIds: List<PluginId>, enable: Boolean) {
awaitForResult { PluginManagerApi.getInstance().setEnabledState(sessionId, pluginIds, enable) }
}
override fun applySession(sessionId: String, parent: JComponent?, project: Project?): ApplyPluginsStateResult {