Minimal reproducer:

import org.springframework.hateoas.CollectionModel;

public static void main(String[] args) {
  BindingReflectionHintsRegistrar reflectionHintsRegistrar = new BindingReflectionHintsRegistrar();
  ReflectionHints reflectionHints = new ReflectionHints();
  reflectionHintsRegistrar.registerReflectionHints(reflectionHints, CollectionModel.class);
}

It looks like the ResolvableType in the CollectionModel1 is the problem, as this crashes too:

reflectionHintsRegistrar.registerReflectionHints(reflectionHints, ResolvableType.class);

Comment From: mhalbritter

The same happens with the org.springframework.integration.IntegrationPatternType type.

There's no ResolvableType involved, but the type references itself (with a type in between the cycle).

Comment From: mhalbritter

It seems the cycle detection is broken:

public class Bar {
  public Bar getBar() {
    return null;
  }
}

throws an Exception too.