From e51908f176b4378db103b87cceb9429994b64cc8 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Sat, 22 Apr 2023 16:39:12 +0800 Subject: [PATCH] [openapi-normalizer] Fix nullable boolean check in oneOf schema (#15276) * fix nullable boolean check in oneof * minor fix * fix spec --- .../codegen/OpenAPINormalizer.java | 2 +- .../resources/3_0/simplifyOneOfAnyOf_test.yaml | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/OpenAPINormalizer.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/OpenAPINormalizer.java index 733cb69ef87..0b3c0f245c2 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/OpenAPINormalizer.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/OpenAPINormalizer.java @@ -691,7 +691,7 @@ public class OpenAPINormalizer { // if only one element left, simplify to just the element (schema) if (schema.getOneOf().size() == 1) { - if (schema.getNullable()) { // retain nullable setting + if (Boolean.TRUE.equals(schema.getNullable())) { // retain nullable setting ((Schema) schema.getOneOf().get(0)).setNullable(true); } return (Schema) schema.getOneOf().get(0); diff --git a/modules/openapi-generator/src/test/resources/3_0/simplifyOneOfAnyOf_test.yaml b/modules/openapi-generator/src/test/resources/3_0/simplifyOneOfAnyOf_test.yaml index df1cef40b76..7130fa9ba9a 100644 --- a/modules/openapi-generator/src/test/resources/3_0/simplifyOneOfAnyOf_test.yaml +++ b/modules/openapi-generator/src/test/resources/3_0/simplifyOneOfAnyOf_test.yaml @@ -55,9 +55,27 @@ components: number: anyOf: - $ref: '#/components/schemas/Number' + ParentWithOneOfProperty: + type: object + properties: + number: + oneOf: + - $ref: '#/components/schemas/Number' + ParentWithPluralOneOfProperty: + type: object + properties: + number: + oneOf: + - $ref: '#/components/schemas/Number' + - $ref: '#/components/schemas/Number2' Number: enum: - one - two - three + type: string + Number2: + enum: + - one + - two type: string \ No newline at end of file