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