Proposal: Allow illegal reflective access by default in JDK 9

Alan Bateman Alan.Bateman at
Fri May 19 11:14:00 UTC 2017

On 19/05/2017 11:58, Peter Levart wrote:

> :
> ...the example works (does not throw exception), but when run with:
>     --add-opens java.base/jdk.internal.misc=ALL-UNNAMED
> ...the example still works!!!! OOOPS - this is a bug!!! This is 
> definitely a bug.
No, the behavior is correct as jdk.internal.misc.Unsafe is public and 
it's getUnsafe is public. It's different to sun.misc.Unsafe.

However, you do have a point that opening all packages by default means 
that the internal Unsafe might need to be looked at again. The long term 
plan is to reduce the need for sun.misc.Unsafe but not by having 
libraries move to the internal Unsafe.

BTW: For the security manager case then I assume you code fragment would 
need to accessClassInPackage.jdk.internal.misc permission.


More information about the jigsaw-dev mailing list