The return value adaption of Proxy is problematic, that it may attempt to 
access package-private types inaccessible to its package in a `checkcast` 
instruction, which causes `IllegalAccessError` if the returned object is not 
`null`. This likely affects all Java versions since the publication of OpenJDK.

A practical effect of this is that if a repeatable annotation is 
package-private but the container is not, user code cannot access the `value` 
element in the container annotation.

All added tests except `PackagePrivateContainerTest::testGetRepeatable` fail on 
current mainline and pass with the ProxyGenerator patch.

Testing: Running tier 1-3

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

Commit messages:
 - 8349716: IllegalAccessError when Proxy methods return object of a 
package-private type

Changes: https://git.openjdk.org/jdk/pull/23567/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=23567&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8349716
  Stats: 140 lines in 3 files changed: 133 ins; 0 del; 7 mod
  Patch: https://git.openjdk.org/jdk/pull/23567.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/23567/head:pull/23567

PR: https://git.openjdk.org/jdk/pull/23567

Reply via email to