The latest version of Jigsaw available from http://jdk.java.net/jigsaw/
(jdk-9+172 on 06-02-2017 (#6472)) has
--illegal-access=<value>
permit or deny access to members of types in named modules
by code in unnamed modules.
<value> is one of "deny", "permit", "warn", or "debug"
This option will be removed in a future release.
Note that --permit-illegal-access is removed.
This is what the output looks like. Ironically, this code in the standalone
bind implementation jar has fall-back code for running correctly on JDK9.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by
com.sun.xml.bind.v2.runtime.reflect.opt.Injector
(file:/mydirectory/modules/com.sun.xml.bind.jaxb-impl.jar) to method
java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int)
WARNING: Please consider reporting this to the maintainers of
com.sun.xml.bind.v2.runtime.reflect.opt.Injector
WARNING: Use --illegal-access=warn to enable warnings of further illegal
reflective access operations
WARNING: All illegal access operations will be denied in a future release
Running with java --illegal-access=warn produces the following output.
WARNING: Illegal reflective access by
com.sun.xml.bind.v2.runtime.reflect.opt.Injector
(file:/mydirectory/modules/com.sun.xml.bind.jaxb-impl.jar) to method
java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int)
WARNING: Illegal reflective access by
com.sun.xml.bind.v2.runtime.reflect.opt.Injector
(file:/mydirectory/modules/com.sun.xml.bind.jaxb-impl.jar) to method
java.lang.ClassLoader.resolveClass(java.lang.Class)
WARNING: Illegal reflective access by
com.sun.xml.bind.v2.runtime.reflect.opt.Injector
(file:/mydirectory/modules/com.sun.xml.bind.jaxb-impl.jar) to method
java.lang.ClassLoader.findLoadedClass(java.lang.String)
There is no quiet option. To get rid of these warnings, you need to explicitly
run with java --illegal-access=deny (assuming there are no other illegal
access problems).
I would like to see a mechanism that allows the developer to work around the
warning.
Either disable the warning for trySetAccessible() or add a new API
if(method.willSetAccessibleWork())
method.setAccessible(true);
-----Original Message-----
From: jigsaw-dev [mailto:[email protected]] On Behalf Of
[email protected]
Sent: Friday, June 2, 2017 12:36 PM
To: [email protected]
Subject: hg: jigsaw/jake/jdk: Allow illegal access by default
Changeset: 1499c22dfc8b
Author: alanb
Date: 2017-06-02 17:32 +0100
URL: http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/1499c22dfc8b
Allow illegal access by default
! src/java.base/share/classes/java/lang/Module.java
! src/java.base/share/classes/java/lang/System.java
! src/java.base/share/classes/java/lang/invoke/MethodHandles.java
! src/java.base/share/classes/java/lang/reflect/AccessibleObject.java
! src/java.base/share/classes/jdk/internal/misc/JavaLangAccess.java
! src/java.base/share/classes/jdk/internal/module/IllegalAccessLogger.java
+ src/java.base/share/classes/jdk/internal/module/IllegalAccessMaps.java
! src/java.base/share/classes/jdk/internal/module/ModuleBootstrap.java
! src/java.base/share/classes/jdk/internal/module/SystemModules.java
+ src/java.base/share/classes/jdk/internal/module/jdk8_packages.dat
! src/java.base/share/classes/sun/launcher/LauncherHelper.java
! src/java.base/share/classes/sun/launcher/resources/launcher.properties
!
src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/SystemModulesPlugin.java
! test/java/lang/ModuleTests/BasicModuleTest.java
! test/java/lang/instrument/RedefineModuleTest.java
! test/java/lang/reflect/AccessibleObject/CanAccessTest.java
! test/java/lang/reflect/AccessibleObject/ModuleSetAccessibleTest.java
! test/java/lang/reflect/AccessibleObject/TrySetAccessibleTest.java
! test/java/util/ResourceBundle/modules/cache/CacheTest.java
! test/jdk/modules/open/Basic.java
!
test/tools/launcher/modules/addexports/manifest/AddExportsAndOpensInManifest.java
+ test/tools/launcher/modules/illegalaccess/IllegalAccessTest.java
+ test/tools/launcher/modules/illegalaccess/TryAccess.java
+ test/tools/launcher/modules/illegalaccess/src/m/module-info.java
+ test/tools/launcher/modules/illegalaccess/src/m/p/Type.java
+
test/tools/launcher/modules/illegalaccess/upgradesrc/java.activation/javax/activation/MimeTypeParameterList.java
+
test/tools/launcher/modules/illegalaccess/upgradesrc/java.activation/module-info.java
!
test/tools/launcher/modules/patch/systemmodules/src1/java.base/jdk/internal/modules/SystemModules.java
- test/tools/launcher/modules/permit/AttemptAccess.java
- test/tools/launcher/modules/permit/PermitIllegalAccess.java