We should revisit what's been done in #29091 since GraalVM is likely to change behavior and align better with the JVM.

The GraalVM native image should throw exceptions underlining when reachability metadata is missing, and improving the general behavior to ensure that reachability metadata are composable and don't break code when more hints are added.

For #29091, this means that the following would be made required at runtime:

  • calling Class.getMethods() requires "queryAllPublicMethods" : true
  • calling Class.getDeclaredMethods() requires "queryAllDeclaredMethods" : true
  • same for fields, constructors and inner classes

This issue is about aligning the RuntimeHintsAgent with those changes.

This issue is currently on hold, until the behavior change is merged in GraalVM. See the proposal.