jigsaw/jake/jdk: Allow illegal access by default

Stephen Felts stephen.felts at oracle.com
Sat Jun 3 04:11:43 UTC 2017


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:jigsaw-dev-bounces at openjdk.java.net] On Behalf Of alan.bateman at oracle.com
Sent: Friday, June 2, 2017 12:36 PM
To: jigsaw-dev at openjdk.java.net
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

 


More information about the jigsaw-dev mailing list