Opened 7 months ago

Last modified 2 weeks ago

#423 new defect

Changes for Java9

Reported by: mevenson Owned by:
Priority: major Milestone: 1.6.0
Component: java Version:
Keywords: java-9 Cc:
Parent Tickets:

Description (last modified by mevenson)

  • JDK9

Statement of removal of source/target options
<http://openjdk.java.net/jeps/182>

System classloaders no longer extend URLClassLoader
<https://discuss.gradle.org/t/gradle-is-broken-by-jdk9-application-class-loader/9206/4>

Extension mechanism removed; 'jrt' scheme introduced
<https://bugs.openjdk.java.net/browse/JDK-8061971>

"Existing standard APIs that return URL objects to name class and
resource files inside the run-time image will, as noted above, now
return jrt URLs"

The State of the Module System
<http://openjdk.java.net/projects/jigsaw/spec/sotms/>

Subtickets (add)

Attachments (1)

jvm9-20161122a.patch (1.4 KB) - added by mevenson 7 months ago.

Download all attachments as: .zip

Change History (4)

Changed 7 months ago by mevenson

comment:1 Changed 7 months ago by mevenson

From this overview of openjdk9 changes <https://wiki.openjdk.java.net/display/Adoption/JDK+9+Outreach>. Most notably the bit about the java.lang.reflect setAccessible() method being considerably locked down will mean a fair amount of work to modify existing code.

Changes due primarily to the introduction of the Java Platform Module System may affect code which

  • expects that applying the public modifier to an API element guarantees that the element will be everywhere accessible, or
  • expects to use ClassLoader::getResource* and Class::getResource* methods to read JDK-internal resources, or
  • expects to use the java.lang.reflect.AccessibleObject::setAccessible method to gain access to members of packages that are not exported by their defining modules, or
  • as JVM TI agents expect to be able to instrument Java code that runs early in the startup of the run-time environment.

Existing code that invokes ClassLoader::getSystemClassLoader and blindly casts the result to URLClassLoader, or does the same thing with the parent of that class loader, might not work correctly.

Existing custom class loaders that delegate directly to the bootstrap class loader might not work correctly; they should be updated to delegate to the extension class loader.

Last edited 7 months ago by mevenson (previous) (diff)

comment:2 Changed 7 months ago by mevenson

  • Description modified (diff)

comment:3 Changed 2 weeks ago by mevenson

  • Milestone changed from 1.5.0 to 1.6.0

Ticket retargeted after milestone closed

Note: See TracTickets for help on using tickets.