Issue with JavaFX and Jigsaw

Kevin Rushforth kevin.rushforth at
Mon Apr 17 19:56:53 UTC 2017

The current implementation effectively requires that the containing 
package of the type in question be exported unconditionally, since 
javafx.beans uses the sun.reflect.misc.Trampoline class to reflectively 
call the module. It happens to work if the user exports or opens the 
package to ALL-UNNAMED on the command line, but that isn't something we 
would want to document or recommend. Without changing the implementation 
(which would be quite risky for JDK 9), it seems best to just require 
the application's package to be unconditionally exported in JDK 9 and 
then relax this requirement in JDK 10 to allow it to be exported (or 
opened) just to javafx.base.

-- Kevin

Alex Buckley wrote:
> On 4/10/2017 3:56 PM, Kevin Rushforth wrote:
>> The short version is that JavaFX beans is (mostly) working as expected,
>> except for the misleading exception message. In JDK 9 it is required
>> that any object that is reflected on by JavaFX beans, specifically the
>> items passed to TableView, which are accessed via a
>> PropertyValueFactory, will need to be in a package that is exported
>> unconditionally. In JDK 10 we can look into relaxing this requirement
>> such that the package only needs to be exported to javafx.beans.
> "exported unconditionally" -- sorry to be picky but this guidance 
> needs to be a bit tighter. Can't the user export to a (possibly large) 
> set of javaxfx.* modules, rather than unconditionally? Is it OK to 
> _export_ the package (rather than open it) because beans will access 
> only its public types/members? What if the user opens the package 
> anyway (rather than exports it)? I don't know the relationship between 
> the PropertyValueFactory type and the type of the items passed to 
> TableView, but I think the high-level requirement is: some user type 
> must be accessible to JavaFX code, and that is achieved by exporting 
> or opening the type's package to at least the javafx.* modules.
> Alex

More information about the jigsaw-dev mailing list