Skip to content

Commit 115f7d9

Browse files
committed
super.normalizedSchema() can proceed
1 parent d3269ac commit 115f7d9

2 files changed

Lines changed: 16 additions & 2 deletions

File tree

modules/openapi-generator/src/main/java/org/openapitools/codegen/OpenAPINormalizer.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -719,6 +719,8 @@ public Schema normalizeSchema(Schema schema, Set<Schema> visitedSchemas) {
719719
if (skipNormalization(schema, visitedSchemas)) {
720720
return schema;
721721
}
722+
markSchemaAsVisited(schema, visitedSchemas);
723+
722724
if (ModelUtils.isArraySchema(schema)) { // array
723725
Schema result = normalizeArraySchema(schema);
724726
normalizeSchema(result.getItems(), visitedSchemas);
@@ -774,6 +776,7 @@ public Schema normalizeSchema(Schema schema, Set<Schema> visitedSchemas) {
774776
return schema;
775777
}
776778

779+
777780
/**
778781
* Check if normalization is needed.
779782
*
@@ -796,11 +799,22 @@ protected boolean skipNormalization(Schema schema, Set<Schema> visitedSchemas) {
796799
if (visitedSchemas.contains(schema)) {
797800
return true; // skip due to circular reference
798801
} else {
799-
visitedSchemas.add(schema);
800802
return false;
801803
}
802804
}
803805

806+
/**
807+
* Add the schema to the collection of visited schemas.
808+
*
809+
* @param schema schema to add
810+
* @param visitedSchemas current visited schemas
811+
*/
812+
protected void markSchemaAsVisited(Schema schema, Set<Schema> visitedSchemas) {
813+
if (schema != null) {
814+
visitedSchemas.add(schema);
815+
}
816+
}
817+
804818
protected Schema normalizeArraySchema(Schema schema) {
805819
Schema result = processNormalize31Spec(schema, new HashSet<>());
806820
return processSetArraytoNullable(result);

modules/openapi-generator/src/test/java/org/openapitools/codegen/OpenAPINormalizerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -987,7 +987,7 @@ public Schema normalizeSchema(Schema schema, Set<Schema> visitedSchemas) {
987987
return schema;
988988
}
989989
schema.setRequired(null);
990-
return normalizeSchema(schema, visitedSchemas);
990+
return super.normalizeSchema(schema, visitedSchemas);
991991
}
992992
}
993993
}

0 commit comments

Comments
 (0)