From 518609484d7793cb9ac6d6969e4282d84b89c8ca Mon Sep 17 00:00:00 2001 From: Niklas Henning Date: Tue, 14 Jul 2026 16:35:27 +0200 Subject: [PATCH 1/3] fix: generate correct Java fluent builder expressions for object defaults with enum --- .../codegen/languages/AbstractJavaCodegen.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java index 4959ada270af..11f0cf49c80e 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java @@ -1569,6 +1569,13 @@ private String toObjectDefaultValue(CodegenProperty cp, Object defaultValue, Map defaultPropertyExpression = value.asText()+"f"; } else if(ModelUtils.isNumberSchema(propertySchema)) { defaultPropertyExpression = "new java.math.BigDecimal(\"" + value.asText() + "\")"; + } else if(ModelUtils.isEnumSchema(propertySchema)) { + defaultPropertyExpression = String.join( + ".", + cp.datatypeWithEnum, + sanitizeName(camelize(key)) + "Enum", + toEnumVarName(value.asText(), cp.dataType) + ); } else if(ModelUtils.isURISchema(propertySchema)) { defaultPropertyExpression = "java.net.URI.create(\"" + escapeText(value.asText()) + "\")"; } else if(ModelUtils.isDateSchema(propertySchema)) { From f1e893875413fdb3b41f0976c0fb0d752838c48c Mon Sep 17 00:00:00 2001 From: Niklas Henning Date: Wed, 15 Jul 2026 11:10:04 +0200 Subject: [PATCH 2/3] refactor: replace hardcoded enum suffix with toEnumName --- .../openapitools/codegen/languages/AbstractJavaCodegen.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java index 11f0cf49c80e..ea1bd1938dbe 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java @@ -1550,6 +1550,7 @@ private String toObjectDefaultValue(CodegenProperty cp, Object defaultValue, Map } Set> defaultProperties = objectNode.properties(); + System.out.println(defaultProperties); for (Map.Entry defaultProperty : defaultProperties) { String key = defaultProperty.getKey(); JsonNode value = defaultProperty.getValue(); @@ -1571,10 +1572,7 @@ private String toObjectDefaultValue(CodegenProperty cp, Object defaultValue, Map defaultPropertyExpression = "new java.math.BigDecimal(\"" + value.asText() + "\")"; } else if(ModelUtils.isEnumSchema(propertySchema)) { defaultPropertyExpression = String.join( - ".", - cp.datatypeWithEnum, - sanitizeName(camelize(key)) + "Enum", - toEnumVarName(value.asText(), cp.dataType) + ".",cp.datatypeWithEnum, toEnumName(key), toEnumVarName(value.asText(), cp.dataType) ); } else if(ModelUtils.isURISchema(propertySchema)) { defaultPropertyExpression = "java.net.URI.create(\"" + escapeText(value.asText()) + "\")"; From 4b87c8cef88efcb6e32ad411d214c9c8eae99f55 Mon Sep 17 00:00:00 2001 From: Niklas Henning Date: Wed, 15 Jul 2026 11:21:32 +0200 Subject: [PATCH 3/3] chore: remove leftover debug print --- .../org/openapitools/codegen/languages/AbstractJavaCodegen.java | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java index ea1bd1938dbe..7bf891dc013b 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java @@ -1550,7 +1550,6 @@ private String toObjectDefaultValue(CodegenProperty cp, Object defaultValue, Map } Set> defaultProperties = objectNode.properties(); - System.out.println(defaultProperties); for (Map.Entry defaultProperty : defaultProperties) { String key = defaultProperty.getKey(); JsonNode value = defaultProperty.getValue();