Skip to content

Commit ee56b71

Browse files
committed
#4852 Attempt to fix by tracking in-progress resolves
1 parent fa0c259 commit ee56b71

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

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

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,8 @@ public class ModelResolver extends AbstractModelConverter implements ModelConver
141141

142142
protected ValidatorProcessor validatorProcessor;
143143

144+
protected Set<AnnotatedType> typesBeingResolved = new HashSet<>();
145+
144146
public ModelResolver(ObjectMapper mapper) {
145147
super(mapper);
146148
}
@@ -828,7 +830,17 @@ public Schema resolve(AnnotatedType annotatedType, ModelConverterContext context
828830
if (reResolvedProperty.isPresent()) {
829831
property = reResolvedProperty.get();
830832
}
831-
reResolvedProperty = AnnotationsUtils.getArraySchema(ctxArraySchema, annotatedType.getComponents(), null, openapi31, property);
833+
834+
boolean processSchemaImplementation = true;
835+
if (typesBeingResolved.contains(annotatedType)) {
836+
processSchemaImplementation = false;
837+
} else {
838+
typesBeingResolved.add(annotatedType);
839+
}
840+
reResolvedProperty = AnnotationsUtils.getArraySchema(ctxArraySchema, annotatedType.getComponents(), null, openapi31, property, processSchemaImplementation);
841+
if (processSchemaImplementation) {
842+
typesBeingResolved.remove(annotatedType);
843+
}
832844
if (reResolvedProperty.isPresent()) {
833845
property = reResolvedProperty.get();
834846
}

0 commit comments

Comments
 (0)