From 4942d6dc1416d5a6eb6f4199f42e567bc38b719e Mon Sep 17 00:00:00 2001 From: Dave Garred Date: Thu, 23 Nov 2023 10:21:39 -0800 Subject: [PATCH] Support empty properties Empty properties are allowed under the OpenAPI spec and resolve to 'any'. This fixes a breakage when encountering these types. This example taken from the [Discord API spec](https://github.com/discord/discord-api-spec/blob/main/specs/openapi.json) breaks on the `pull_request` property: https://raw.githubusercontent.com/davegarred/openapi-generator/test_empty_property/openapi.json --- .../java/org/openapitools/codegen/OpenAPINormalizer.java | 7 ++++++- 1 file changed, 6 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 378cee272b10..ffa903d7cd7b 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 @@ -908,10 +908,15 @@ private Schema processNormalize31Spec(Schema schema, Set visitedSchemas) return schema; } - if (schema == null || schema.getTypes() == null) { + if (schema == null) { return null; } + if (schema.getTypes() == null || schema.getTypes().isEmpty()) { + schema.setNullable(true); + return schema; + } + // process null if (schema.getTypes().contains("null")) { schema.setNullable(true);