diff --git a/modules/openapi-generator-gradle-plugin/samples/local-spec/build.gradle b/modules/openapi-generator-gradle-plugin/samples/local-spec/build.gradle index e9a5bb42e0ea9cf9ec5a9260178b06c10b5431b6..e5cde4680324c408e5701f9f5b4016291833f7f3 100644 --- a/modules/openapi-generator-gradle-plugin/samples/local-spec/build.gradle +++ b/modules/openapi-generator-gradle-plugin/samples/local-spec/build.gradle @@ -41,6 +41,9 @@ openApiGenerate { configOptions = [ dateLibrary: "java8" ] + systemProperties = [ + modelDocs: "false" + ] } task buildGoSdk(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask){ diff --git a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GenerateTask.kt b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GenerateTask.kt index db901f021c76293eaade574e9e1bfd958a4e1361..7c6ecd099da6706c2dcd5a579508599b0b743657 100644 --- a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GenerateTask.kt +++ b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GenerateTask.kt @@ -323,7 +323,7 @@ open class GenerateTask : DefaultTask() { @get:Internal val configOptions = project.objects.property<Map<String, String>>() - private val originalEnvironmentVariables = mutableMapOf<String, String>() + private val originalEnvironmentVariables = mutableMapOf<String, String?>() private fun <T : Any?> Property<T>.ifNotEmpty(block: Property<T>.(T) -> Unit) { if (isPresent) { @@ -352,8 +352,9 @@ open class GenerateTask : DefaultTask() { try { if (systemProperties.isPresent) { systemProperties.get().forEach { (key, value) -> - originalEnvironmentVariables[key] = System.getProperty(key) - System.setProperty(key, value) + // System.setProperty returns the original value for a key, or null. + // Cache the original value or null…we will late put the properties back in their original state. + originalEnvironmentVariables[key] = System.setProperty(key, value) configurator.addSystemProperty(key, value) } } @@ -540,8 +541,12 @@ open class GenerateTask : DefaultTask() { throw GradleException("Code generation failed.", e) } } finally { - originalEnvironmentVariables.forEach { entry -> - System.setProperty(entry.key, entry.value) + // Reset all modified system properties back to their original state + originalEnvironmentVariables.forEach { + when { + it.value == null -> System.clearProperty(it.key) + else -> System.setProperty(it.key, it.value) + } } originalEnvironmentVariables.clear() }