JDK 11 Early Access Release Notes

Last Updated: 2018/03/12

The following is a draft of the Release Notes that will be shipped with JDK 11. Until this version releases the contents are subject to change.

Since build 3  Integrations

 (ch) Separate blocking and non-blocking code paths

The implementations of SocketChannel, ServerSocketChannel, DatagramChannel, Pipe.SourceChannel and Pipe.SinkChannel have been refactored in JDK 11 to separate the code paths for blocking and non-blocking I/O. This improves performance and also improves reliability for cases where a channel is asynchronously closed or threads doing I/O operations are interrupted. The refactoring results in two behavioral changes:

  1. Invoking configureBlocking(true) on a selectable channel will now block until outstanding I/O operations have completed. The specification has always allowed this but the implementation in the JDK didn't historically block until I/O operations in progress completed.

  2. Invoking an I/O operation on a selectable channel configured non-blocking and with the interrupt status set no longer closes the channel.

See JDK-8198562

Since build 1  Integrations

 jarsigner should print when a timestamp will expire

The jarsigner tool now shows more information about the lifetime of a timestamped JAR. New warning and error messages are displayed when a timestamp has expired or is expiring within one year.

See JDK-8191438
 Removal of the Java EE and CORBA Modules

The following modules have been removed from Java SE 11 and JDK 11:

java.xml.ws (JAX-WS, plus the related technologies SAAJ and Web Services Metadata) java.xml.bind (JAXB) java.activation (JAF) java.xml.ws.annotation (Common Annotations) java.corba (CORBA) java.transaction (JTA) java.se.ee (Aggregator module for the six modules above) jdk.xml.ws (Tools for JAX-WS) jdk.xml.bind (Tools for JAXB)

The following JAX-WS tools, from the jdk.xml.ws module, are removed:

The rmic compiler was updated to remove the -idl and -iiop options. Consequently, the RMI compiler will no longer be able to generate IDL or IIOP stubs and tie classes.

In addition, the following system properties are no longer applicable due to the the removal of the Java EE and CORBA modules:

For more detailed information on the removal and possible replacement for the modules, refer to JEP 320,http://openjdk.java.net/jeps/320.

JDK-8190378 (not public)
 ThreadPoolExecutor should not specify a dependency on finalization

Previous versions of ThreadPoolExecutor had a finalize method that shut down the thread pool, but in this version the finalize method does nothing. This should have no visible effect unless a subclass explicitly invokes the finalize method and relies on the executor being shutdown.

See JDK-8190324