Opened 7 years ago

Last modified 10 months ago

#423 new defect

Changes for Java9

Reported by: Mark Evenson Owned by:
Priority: major Milestone: 1.9.3
Component: java Version:
Keywords: java-9 Cc:
Parent Tickets:

Description (last modified by Mark Evenson)

  • 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/>

Attachments (1)

jvm9-20161122a.patch (1.4 KB) - added by Mark Evenson 7 years ago.

Download all attachments as: .zip

Change History (15)

Changed 7 years ago by Mark Evenson

Attachment: jvm9-20161122a.patch added

comment:1 Changed 7 years ago by Mark Evenson

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 years ago by Mark Evenson (previous) (diff)

comment:2 Changed 7 years ago by Mark Evenson

Description: modified (diff)

comment:3 Changed 7 years ago by Mark Evenson

Milestone: 1.5.01.6.0

Ticket retargeted after milestone closed

comment:4 Changed 4 years ago by Mark Evenson

Milestone: 1.6.01.6.1

Ticket retargeted after milestone closed

comment:5 Changed 4 years ago by Mark Evenson

Milestone: 1.6.11.6.2

Ticket retargeted after milestone closed

comment:6 Changed 4 years ago by Mark Evenson

Milestone: 1.6.21.7.0

comment:7 Changed 4 years ago by Mark Evenson

Milestone: 1.7.01.7.1

Ticket retargeted after milestone closed

comment:8 Changed 4 years ago by Mark Evenson

Milestone: 1.7.11.7.2

Ticket retargeted after milestone closed

comment:9 Changed 4 years ago by Mark Evenson

Milestone: 1.7.21.8.0

Milestone renamed

comment:10 Changed 3 years ago by Mark Evenson

Milestone: 1.8.01.8.1

Ticket retargeted after milestone closed

comment:11 Changed 2 years ago by Mark Evenson

Milestone: 1.8.11.9.0

comment:12 Changed 15 months ago by Mark Evenson

Milestone: 1.9.01.9.1

comment:13 Changed 14 months ago by Mark Evenson

Milestone: 1.9.11.9.2

comment:14 Changed 10 months ago by Mark Evenson

Milestone: 1.9.21.9.3
Note: See TracTickets for help on using tickets.