--permit-illegal-access and non-reflective access

Alan Bateman Alan.Bateman at oracle.com
Mon Apr 24 14:17:03 UTC 2017


On 24/04/2017 14:53, Sander Mak wrote:

> :
>
> What's the idea behind this distinction? The Test class fails just as well with an IllegalAccessException without the --permit-illegal-access flag. Only, I don't get to see the problem when running with --permit-illegal-access unless the access is done reflectively. Is it because non-reflective uses can be found statically by jdeps, and are not 'worthy' of a warning? Just looking for the rationele here. It does mean fixing all warnings logged by --permit-illegal-access is not a guarantee there won't be IllegalAccessExceptions anymore afterwards.
>
Doing the equivalent in the VM for static references is deeply intrusive 
and would involve significant effort. It didn't seem worth it. As you 
noted, it's easy to run `jdeps` to find static references to internal 
APIs. So I think it's best to think of `jdeps` and 
`--permit-illegal-access` as complementary. Start out by using `jdeps` 
to scan the application and the libraries that is uses. Then do some 
test runs with `--permit-illegal-access` to locate code that is doing 
illegal access with core reflection.

-Alan


More information about the jigsaw-dev mailing list