diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java index 8dac545365ae..6dbefe36db49 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java @@ -1104,9 +1104,9 @@ public static Header getHeader(OpenAPI openAPI, String name) { public static Map> getChildrenMap(OpenAPI openAPI) { Map allSchemas = getSchemas(openAPI); - // FIXME: The collect here will throw NPE if a spec document has only a single oneOf hierarchy. Map>> groupedByParent = allSchemas.entrySet().stream() .filter(entry -> isComposedSchema(entry.getValue())) + .filter(entry -> getParentName((ComposedSchema) entry.getValue(), allSchemas)!=null) .collect(Collectors.groupingBy(entry -> getParentName((ComposedSchema) entry.getValue(), allSchemas))); return groupedByParent.entrySet().stream() @@ -1165,14 +1165,6 @@ public static String getParentName(ComposedSchema composedSchema, Map refedWithoutDiscriminator = new ArrayList<>(); - String schemaName = ""; - for (String thisSchemaName : allSchemas.keySet()) { - Schema sc = allSchemas.get(thisSchemaName); - if (isComposedSchema(sc) && (ComposedSchema) sc == composedSchema) { - schemaName = thisSchemaName; - break; - } - } if (interfaces != null && !interfaces.isEmpty()) { for (Schema schema : interfaces) { @@ -1189,10 +1181,7 @@ public static String getParentName(ComposedSchema composedSchema, Map