diff --git a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/parsers/ReturnTypeParser.java b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/parsers/ReturnTypeParser.java index 1dfd2bc23..d911a4b9c 100644 --- a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/parsers/ReturnTypeParser.java +++ b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/parsers/ReturnTypeParser.java @@ -27,6 +27,7 @@ import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.lang.reflect.TypeVariable; +import java.util.Arrays; import java.util.Objects; import org.springframework.core.MethodParameter; @@ -92,7 +93,8 @@ static void resolveType(ResolvableType[] resolvableTypes, Class contextClass) resolvableTypes[i] = resolvableType; } else if (resolvableTypes[i].hasGenerics()) { - resolveType(resolvableTypes[i].getGenerics(), contextClass); + if(!Arrays.equals(resolvableTypes[i].getGenerics(), resolvableTypes)) + resolveType(resolvableTypes[i].getGenerics(), contextClass); if (resolvableTypes[i].getRawClass() != null) resolvableTypes[i] = ResolvableType.forClassWithGenerics(Objects.requireNonNull(resolvableTypes[i].getRawClass()), resolvableTypes[i].getGenerics()); }