JDK 18 Early-Access Release Notes

This is a draft of the release notes that will accompany JDK 18. The contents are subject to change until release.

Build 6

Remove the legacy PlainSocketImpl and PlainDatagramSocketImpl implementation (JDK-8253119)


As of JDK 18, the legacy implementations of java.net.SocketImpl and java.net.DatagramSocketImpl have been removed from the JDK. The legacy implementation of SocketImpl has not been used by default since JDK 13, while the legacy implementation of DatagramSocketImpl has not been used by default since JDK 15. Support for the system properties jdk.net.usePlainSocketImpl and jdk.net.usePlainDatagramSocketImpl, used to select these implementations, has also been removed. Setting these properties will now have no effect.

Build 5

Prohibit Null for Header Keys and Values in com.sun.net.httpserver.Headers (JDK-8268960)


In JDK 18, the handling of header names and values in jdk.httpserver/com.sun.net.httpserver.Headers has been reconciled. This includes the eager and consistent prohibition of null for names and values. The class represents header names and values as a key-value mapping of Map<String, List <String>>. Previously, it was possible to create a headers instance with a null key or value, which would cause undocumented exceptions when passed to the HttpServer. It was also possible to query the instance for a null key and false would be returned. With this change, all methods of the class now throw a NullPointerException if the key or value arguments are null. For more information, see https://bugs.openjdk.java.net/browse/JDK-8269296.

Not Yet Integrated

Removed IdenTrust Root Certificate (JDK-8225082)


The following root certificate from IdenTrust have been removed from the cacerts keystore:

+ alias name "identrustdstx3 [jdk]"
  Distinguished Name: CN=DST Root CA X3, O=Digital Signature Trust Co.