From ff965f80c4b56fd67bc39e084e8c73381bf18d21 Mon Sep 17 00:00:00 2001 From: "Vassiliy.Kudryashov" Date: Mon, 29 May 2017 22:40:06 +0300 Subject: [PATCH] IDEA-173350 Temporary configurations disappears from compound Make configurations stable during getState() --- .../src/com/intellij/execution/impl/RunManagerImpl.kt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/execution/impl/RunManagerImpl.kt b/platform/lang-impl/src/com/intellij/execution/impl/RunManagerImpl.kt index fec1e5bdc6c4..4673818c639f 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/RunManagerImpl.kt +++ b/platform/lang-impl/src/com/intellij/execution/impl/RunManagerImpl.kt @@ -285,7 +285,6 @@ open class RunManagerImpl(internal val project: Project) : RunManagerEx(), Persi else { (if (settings.isShared) workspaceSchemeManager else projectSchemeManager)?.removeScheme(settings as RunnerAndConfigurationSettingsImpl) } - checkIfDependenciesAreStable(settings.configuration) } if (existingId == null) { @@ -489,6 +488,13 @@ open class RunManagerImpl(internal val project: Project) : RunManagerEx(), Persi } override fun getState(): Element { + for (settings in idToSettings.values) { + if (settings.type is UnknownConfigurationType) { + continue + } + checkIfDependenciesAreStable(settings.configuration) + } + val element = Element("state") workspaceSchemeManager.save() @@ -1054,11 +1060,11 @@ open class RunManagerImpl(internal val project: Project) : RunManagerEx(), Persi } configuration.beforeRunTasks = result - checkIfDependenciesAreStable(configuration) fireBeforeRunTasksUpdated() } fun checkIfDependenciesAreStable(configuration: RunConfiguration) { + if (isFirstLoadState.get()) return for (runTask in configuration.beforeRunTasks) { if (runTask is RunConfigurationBeforeRunProvider.RunConfigurableBeforeRunTask && runTask.settings != null && runTask.settings.isTemporary) { makeStable(runTask.settings)