Eclipse no longer working with 1.9.0-ea-b61

Alan Bateman Alan.Bateman at oracle.com
Wed May 6 18:18:11 UTC 2015


On 06/05/2015 16:29, Andreas Kohn wrote:
> Eclipse no longer starts with 1.9.0-ea-b61 or higher, complaining about
> missing org.w3c.dom.stylesheets.StyleSheetList.
>
> I'm guessing this is due to
> http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8042244 (Re-examine the
> supportedness of non-SE org.w3c.dom.** API), which points to a regression
> that should be fixed with
> http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8078139
> Unfortunately doing a local build from 9dev with the commit for that bug
> included doesn't help, the message stays the same.
>
> Is this an eclipse issue, or a legitimate regression on the JDK side?
>
In JDK 9 then several components that have historically had their types 
loaded by the boot loader have been moved to the extension loader. This 
includes CORBA, JAXB, JAX-WS, the JavaBeans Activation Framework and a 
few more. There are a number of motivations for this, one is that we 
allows these components to be configured with reduced permissions 
(compared to getting all permissions when defined by the boot loader).

The W3C DOM API is a bit confusing because Java SE only endorsed a 
subset of the API. There are a number of additional API packages, 
org.w3c.dom.stylesheets being one of them, that are not part of Java SE. 
The JDK has always shipped this and the other packages but nothing can 
really depend on them being there. This is clearly confusing so I think 
Eclipse and others that might depend on these other API packages can be 
forgiven. The proposal in JDK 9 is to continue to ship these packages in 
a module named jdk.xml.dom. Furthermore, the proposal is move this to 
the extension loader as they are not core and have no reason to be 
loaded by the boot loader. This is what JDK-8042244 is about.

As regards Eclipse then I assume it must be using one of its own class 
loaders that delegates to the boot loader rather than the system class 
loader. This is unfortunate as it means that many standard and 
JDK-specific type won't be visible (esp. as more non-core components are 
moved out of the boot loader). I would be curious if 
-Dorg.osgi.framework.bundle.parent=app fixes the issue. As you bring it 
up then I think it would be good to get a bug submitted to Eclipse on 
this, it would be unfortunate if only a subset of the standard and JDK 
types are visible via its class loaders.

-Alan






More information about the jdk9-dev mailing list