forked from loafle/openapi-generator-original
fix null type check when simplifying any type (#18504)
This commit is contained in:
@@ -943,7 +943,13 @@ public class OpenAPINormalizer {
|
||||
if (oneOfSchemas.size() == 6) {
|
||||
TreeSet<String> ts = new TreeSet<>();
|
||||
for (Schema s: oneOfSchemas) {
|
||||
ts.add(ModelUtils.getType(s));
|
||||
s = ModelUtils.getReferencedSchema(openAPI, s);
|
||||
String type = ModelUtils.getType(s);
|
||||
if (type == null) {
|
||||
LOGGER.debug("Error null type found in schema when simplifying any type with 6 sub-schemas: {}", s);
|
||||
} else {
|
||||
ts.add(type);
|
||||
}
|
||||
}
|
||||
|
||||
if (ts.equals(anyTypeTreeSet)) {
|
||||
@@ -1068,7 +1074,13 @@ public class OpenAPINormalizer {
|
||||
if (anyOfSchemas.size() == 6) {
|
||||
TreeSet<String> ts = new TreeSet<>();
|
||||
for (Schema s: anyOfSchemas) {
|
||||
ts.add(ModelUtils.getType(s));
|
||||
s = ModelUtils.getReferencedSchema(openAPI, s);
|
||||
String type = ModelUtils.getType(s);
|
||||
if (type == null) {
|
||||
LOGGER.debug("Error null type found in schema when simplifying any type with 6 sub-schemas: {}", s);
|
||||
} else {
|
||||
ts.add(type);
|
||||
}
|
||||
}
|
||||
|
||||
if (ts.equals(anyTypeTreeSet)) {
|
||||
|
||||
@@ -178,6 +178,9 @@ public class OpenAPINormalizerTest {
|
||||
Schema schema13 = openAPI.getComponents().getSchemas().get("OneOfAnyType");
|
||||
assertEquals(schema13.getOneOf().size(), 6);
|
||||
|
||||
Schema schema15 = openAPI.getComponents().getSchemas().get("AnyOfAnyTypeWithRef");
|
||||
assertEquals(schema15.getAnyOf().size(), 6);
|
||||
|
||||
Map<String, String> options = new HashMap<>();
|
||||
options.put("SIMPLIFY_ONEOF_ANYOF", "true");
|
||||
OpenAPINormalizer openAPINormalizer = new OpenAPINormalizer(openAPI, options);
|
||||
@@ -216,6 +219,9 @@ public class OpenAPINormalizerTest {
|
||||
assertEquals(schema14.getOneOf(), null);
|
||||
assertEquals(schema14.getType(), null);
|
||||
|
||||
Schema schema16 = openAPI.getComponents().getSchemas().get("AnyOfAnyTypeWithRef");
|
||||
assertEquals(schema16.getAnyOf(), null);
|
||||
assertEquals(schema16.getType(), null);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -103,6 +103,17 @@ components:
|
||||
- type: string
|
||||
- type: number
|
||||
- type: integer
|
||||
AnyOfAnyTypeWithRef:
|
||||
anyOf:
|
||||
- type: boolean
|
||||
- type: array
|
||||
items: { }
|
||||
- type: object
|
||||
- type: string
|
||||
- type: number
|
||||
- $ref: '#/components/schemas/IntegerRef'
|
||||
IntegerRef:
|
||||
type: integer
|
||||
OneOfAnyType:
|
||||
oneOf:
|
||||
- type: object
|
||||
|
||||
Reference in New Issue
Block a user