On 1/13/15 9:34 AM, Sergey Bylokhov wrote:
On 13.01.2015 20:26, Mandy Chung wrote:
On 1/13/15 7:45 AM, Sergey Bylokhov wrote:
On 13.01.2015 17:23, Alan Bateman wrote:
Typo in my mail, I meant verify-modules.

They are currently issues with verify-modules and boot cycle builds so I think verify-modules is currently disabled (at least in jdk9/dev). Erik is working on this via JDK-8067479.
The new versions:
http://cr.openjdk.java.net/~serb/8056298/webrev.04/jdk
http://cr.openjdk.java.net/~serb/8056298/webrev.04/root
- sun.reflect.misc and sun.security.util were exported to java.datatransfer.
 - jdk.hotspot.agent now depends on java.datatransfer
"make verify-modules" was completed w/o issues.

Thanks for doing this. java.activation, java.xml.ws, jdk.hotspot.agent
uses java.awt.datatransfer.  I don't find java.xml.bind using it.

$ jdeps -p java.awt.datatransfer $BUILD_OUTPUTDIR/jdk/modules/*

The result shows that java.activation, java.xml.ws, jdk.hotspot.agent
uses java.awt.datatransfer (there is a bug in jdeps that didn't show
the module name correctly - will file a bug and fix it).

How do you find java.xml.bind depend on java.datatransfer?  You can
run this from your build:
$ jdk/bin/jdeps -s jdk/modules/java.xml.bind/
it does not compile w/o it:
java.xml.bind:
jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/org/jvnet/staxex/StreamingDataHandler.java:53: error: cannot access Transferable public abstract class StreamingDataHandler extends DataHandler implements Closeable {


I see. java.xml.bind -> java.desktop is temporarily needed until the module system is in replace unless the build adds the re-exported module (i.e. java.datatransfer) to the sourcepath to compile java.xml.bind.

That change is fine.

About the qualified exports from java.base:

java.awt.datatransfer.DataFlavor uses sun.security.util.SecurityConstants.GET_CLASSLOADER_PERMISSION

I suggest to remove this dependency by creating the instance
when security manager is on:
   new RuntimePermission("getClassLoader")
is it necessary? I prefer to use current solution as more readable.

I'd like to keep the qualified exports to the ones which are absolutely needed. Sharing common code is good while this "getClassLoader" permission is part of the specification and allowing desktop to access the entire sun.security.util package is more than it needs (java.datatransfer only depends on this static instance). The cost of creating a Permission object is low and only when security manager is on. I would recommend to replace the dependency on SecurityConstants.

Mandy

Reply via email to