The change in e788aeb25 has surfaced an issue with handling of types with self-bounding generics in ResolvableType.
I already commented on the original PR (#30079), just capturing it here for visibility. The following test cases will triggers infinite recursion / stack overflow:
enum Foo { BAR }
ResolvableType.forType(Foo.class.getGenericSuperclass()).hasUnresolvableGenerics();
// or
ResolvableType.forClassWithGenerics(Enum.class, Foo.class).hasUnresolvableGenerics();
class Foo<T extends Foo<T>> {}
class Bar extends Foo<Bar> {}
ResolvableType.forInstance(new Bar()).hasUnresolvableGenerics();
This happens during app start up in a typical Spring Boot app, due to events such as AvailabilityChangeEvent<LivenessState>
being emitted.
Comment From: snicoll
Moving to a task as the fix was never released and we can't really reopen the PR. Thanks very much for reporting @kilink!