RFR: JDK-8267936: PreserveAllAnnotations option doesn't expose the annotation to Java code [v2]

David Holmes dholmes at openjdk.java.net
Sun May 30 22:10:20 UTC 2021


On Sun, 30 May 2021 19:56:52 GMT, Jaroslav Tulach <github.com+26887752+JaroslavTulach at openjdk.org> wrote:

>> This PR exposes runtime invisible annotations via `Class.getAnnotation` when `-XX:+PreserveAllAnnotations` option is passed to the JVM.
>> 
>> Existing `-XX:+PreserveAllAnnotations` option can be very useful for code that needs to access annotations with `RetentionPolicy.CLASS` without the need to parse the .class files manually. While the RuntimeInvisibleAnnotations are kept in the runtime, they are not visible via java.lang.reflect API. I assume that's just an omission.
>> 
>> This PR provides a new test and a fix to make `Class.getAnnotation(...)` useful when `-XX:+PreserveAllAnnotations` option is on.
>
> Jaroslav Tulach has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Only expose non RetentionPolicy.RUNTIME annotations when -XX:+PreserveAllAnnotations is specified

Hotspot changes need to be reviewed on a hotspot mailing list

-------------

PR: https://git.openjdk.java.net/jdk/pull/4245


More information about the hotspot-runtime-dev mailing list