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

Reply via email to