From 71d2d28c0d7550456af320ddc6045ab563852ec3 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Mon, 10 Apr 2017 22:18:01 +0200 Subject: [PATCH] do not write before run tasks for unknown run configuration --- .../com/intellij/execution/impl/RunManagerImpl.kt | 12 +++++------- .../impl/RunnerAndConfigurationSettingsImpl.kt | 8 +++++--- 2 files changed, 10 insertions(+), 10 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 6d462f9d039f..ba34071eef4a 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/RunManagerImpl.kt +++ b/platform/lang-impl/src/com/intellij/execution/impl/RunManagerImpl.kt @@ -513,8 +513,7 @@ class RunManagerImpl(internal val project: Project) : RunManagerEx(), Persistent settings.forEach { parentNode.addContent((it as RunnerAndConfigurationSettingsImpl).writeScheme()) } } - internal fun writeBeforeRunTasks(settings: RunnerAndConfigurationSettings, configurationElement: Element) { - val configuration = settings.configuration + internal fun writeBeforeRunTasks(settings: RunnerAndConfigurationSettings, configuration: RunConfiguration): Element? { var tasks = if (settings.isTemplate) configuration.beforeRunTasks else getEffectiveBeforeRunTasks(configuration, ownIsOnlyEnabled = false, isDisableTemplateTasks = false) if (!tasks.isEmpty() && !settings.isTemplate) { @@ -541,18 +540,17 @@ class RunManagerImpl(internal val project: Project) : RunManagerEx(), Persistent } if (tasks.isEmpty() && settings.isNewSerializationAllowed) { - return + return null } - val methodsElement = Element(METHOD) + val methodElement = Element(METHOD) for (task in tasks) { val child = Element(OPTION) child.setAttribute(NAME_ATTR, task.providerId.toString()) task.writeExternal(child) - methodsElement.addContent(child) + methodElement.addContent(child) } - - configurationElement.addContent(methodsElement) + return methodElement } override fun loadState(parentNode: Element) { diff --git a/platform/lang-impl/src/com/intellij/execution/impl/RunnerAndConfigurationSettingsImpl.kt b/platform/lang-impl/src/com/intellij/execution/impl/RunnerAndConfigurationSettingsImpl.kt index bd5297fd71fc..7bbecd80d1cc 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/RunnerAndConfigurationSettingsImpl.kt +++ b/platform/lang-impl/src/com/intellij/execution/impl/RunnerAndConfigurationSettingsImpl.kt @@ -254,10 +254,12 @@ class RunnerAndConfigurationSettingsImpl @JvmOverloads constructor(private val m val element = Element("configuration") writeExternal(element) - _configuration?.let { - manager.writeBeforeRunTasks(this, element) + val configuration = _configuration + if (configuration != null && configuration !is UnknownRunConfiguration) { + manager.writeBeforeRunTasks(this, configuration)?.let { + element.addContent(it) + } } - return element }