From 473c3508ff5b2f92fdb03c1ebed2cd24336e7ee3 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Tue, 19 Dec 2023 11:31:25 +0800 Subject: [PATCH] to fix loop for allof with single element in normalizer (#17426) --- .../java/org/openapitools/codegen/OpenAPINormalizer.java | 4 ++++ .../openapitools/codegen/java/JavaClientCodegenTest.java | 2 +- .../src/test/resources/3_0/allOf_extension_parent.yaml | 7 ++++++- 3 files changed, 11 insertions(+), 2 deletions(-) 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 7c4b9b716103..e1665bd938a9 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 @@ -573,6 +573,10 @@ public class OpenAPINormalizer { return; } + if (schema.getAllOf().size() == 1) { + return; + } + for (Object item : schema.getAllOf()) { if (!(item instanceof Schema)) { throw new RuntimeException("Error! allOf schema is not of the type Schema: " + item); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java index 4fda62134267..0fbdf04ba03e 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java @@ -2022,7 +2022,7 @@ public class JavaClientCodegenTest { generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); List files = generator.opts(clientOptInput).generate(); - Assert.assertEquals(files.size(), 24); + Assert.assertEquals(files.size(), 27); validateJavaSourceFiles(files); TestUtils.assertFileContains( diff --git a/modules/openapi-generator/src/test/resources/3_0/allOf_extension_parent.yaml b/modules/openapi-generator/src/test/resources/3_0/allOf_extension_parent.yaml index a45d9d1cc2e5..873cc7a3788f 100644 --- a/modules/openapi-generator/src/test/resources/3_0/allOf_extension_parent.yaml +++ b/modules/openapi-generator/src/test/resources/3_0/allOf_extension_parent.yaml @@ -96,4 +96,9 @@ components: mum_or_dad: type: string required: - - isParent \ No newline at end of file + - isParent + allOfWithSingleItem: + description: allOf with a single item + nullable: true + allOf: + - $ref: '#/components/schemas/AnotherParent' \ No newline at end of file