From 29a817afdb79b645c3fb6fee2eb9ed5bee730168 Mon Sep 17 00:00:00 2001 From: Jens Fischer Date: Sat, 6 Sep 2025 03:46:37 +0200 Subject: [PATCH] [kotlin-client] Fix string comparison in discriminator post-processing (#21881) We encountered occassional build failures with the logic introduced in #21531 due to discriminator properties still being generated in rare cases. Not sure why it didn't happen consistently, may be related to Gradle caching or parallel builds or whatever. Since patching these string comparisons, this has no longer occurred. --- .../openapitools/codegen/languages/KotlinClientCodegen.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinClientCodegen.java index 048e22bf28a..34e198c147b 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinClientCodegen.java @@ -976,7 +976,7 @@ public class KotlinClientCodegen extends AbstractKotlinCodegen { continue; } // Remove discriminator property from the base class, it is not needed in the generated code - getAllVarProperties(cm).forEach(list -> list.removeIf(var -> var.name == discriminator.getPropertyName())); + getAllVarProperties(cm).forEach(list -> list.removeIf(var -> var.name.equals(discriminator.getPropertyName()))); for (CodegenDiscriminator.MappedModel mappedModel : discriminator.getMappedModels()) { // Add the mapping name to additionalProperties.disciminatorValue @@ -989,7 +989,7 @@ public class KotlinClientCodegen extends AbstractKotlinCodegen { } additionalProperties.discriminatorValue = mappedModel.getMappingName(); // Remove the discriminator property from the derived class, it is not needed in the generated code - getAllVarProperties(mappedModel.getModel()).forEach(list -> list.removeIf(prop -> prop.name == discriminator.getPropertyName())); + getAllVarProperties(mappedModel.getModel()).forEach(list -> list.removeIf(prop -> prop.name.equals(discriminator.getPropertyName()))); } }