Skip to content

Commit 90004bb

Browse files
kenzhang-mark43frantuma
authored andcommitted
fix: if name is null, fallback to class's simpleName
1 parent ba544a4 commit 90004bb

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

modules/swagger-core/src/main/java/io/swagger/v3/core/jackson/ModelResolver.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -867,7 +867,7 @@ public Schema resolve(AnnotatedType annotatedType, ModelConverterContext context
867867
StringUtils.isNotBlank(model.getName()))
868868
{
869869
if (context.getDefinedModels().containsKey(model.getName())) {
870-
model = new Schema().name(model.getName()).$ref(constructRef(model.getName()));
870+
model = new Schema().$ref(constructRef(model.getName()));
871871
}
872872
} else if (model != null && model.get$ref() != null) {
873873
model = new Schema().$ref(StringUtils.isNotEmpty(model.get$ref()) ? model.get$ref() : model.getName());
@@ -1968,6 +1968,9 @@ protected Schema resolveWrapping(JavaType type, ModelConverterContext context, S
19681968
if (JsonTypeInfo.Id.CLASS.equals(id)) {
19691969
name = type.getRawClass().getName();
19701970
}
1971+
if(JsonTypeInfo.Id.NAME.equals(id) && name == null) {
1972+
name = type.getRawClass().getSimpleName();
1973+
}
19711974
Schema wrapperSchema = new ObjectSchema();
19721975
wrapperSchema.name(model.getName());
19731976
wrapperSchema.addProperties(name, model);

modules/swagger-core/src/test/java/io/swagger/v3/core/resolving/Ticket2884Test.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,11 @@ public void test2884() {
5252
@Test
5353
public void test2884_null() {
5454
ResolvedSchema schema = ModelConverters.getInstance().readAllAsResolvedSchema(new AnnotatedType(Ticket2884ModelClass.class).resolveAsRef(true));
55-
Object o = schema.schema.getProperties().get(Ticket2884ModelClass.class.getSimpleName());
55+
Schema o = (Schema)schema.schema.getProperties().get(Ticket2884ModelClass.class.getSimpleName());
5656
Assert.assertNotNull(o);
57+
Assert.assertTrue(o.get$ref().contains(Ticket2884ModelClass.class.getSimpleName()));
58+
SerializationMatchers.assertEqualsToYaml(schema.schema.getProperties(), "Ticket2884ModelClass:\n" +
59+
" $ref: '#/components/schemas/Ticket2884ModelClass'");
60+
5761
}
5862
}

0 commit comments

Comments
 (0)