Welcome to the final OpenJDK Quality Outreach update of 2023!
JDK 22, scheduled for General Availability on March 19, 2024, is now in Rampdown Phase One
(RDP1) [1]. At this point, the overall JDK 22 feature set is frozen (see the final list of
JEPs integrated into JDK 22 below) and only low-risk enhancements might still be
considered. The coming weeks should be leveraged to identify and resolve as many issues as
possible, i.e. before JDK 22 enters the Release Candidates phase in early February 2024.
So, we count on you to test your projects and help us make JDK 22 another solid release!
[1]
https://mail.openjdk.org/pipermail/jdk-dev/2023-December/008535.html
## JDK 22 Early-Access Builds
JDK 22 Early-Access builds 27 are now available [2] with the Release Notes here [3]. Those
builds are provided under the GNU GPL v2, with the Classpath Exception.
### JEPs integrated into JDK 22:
- JEP 423: Region Pinning for G1
- JEP 447: Statements before super(…) (Preview)
- JEP 454: Foreign Function & Memory API
- JEP 456: Unnamed Variables & Patterns
- JEP 457: Class-File API (Preview)
- JEP 458: Launch Multi-File Source-Code Programs
- JEP 459: String Templates (2nd Preview)
- JEP 460: Vector API (7th Incubator)
- JEP 461: Stream Gatherers (Preview)
- JEP 462: Structured Concurrency (2nd Preview)
- JEP 463: Implicitly Declared Classes and Instance Main Methods (2nd Preview)
- JEP 464: Scoped Values (2nd Preview)
### Changes in recent JDK 22 builds that may be of interest:
- JDK-8318646: Integer#parseInt("") throws empty NumberFormatException message
[Reported by Apache Lucene]
- JDK-8318082: ConcurrentModificationException from IndexWriter [Reported by JOOQ]
- JDK-8319450: New methods java.net.InetXAddress.ofLiteral() miss @since tag [Reported by
JaCoCo]
- JDK-8321164: javac w/ annotation processor throws AssertionError: Filling jrt:/… during
… [Reported by Hibernate]
- JDK-8310644: Make panama memory segment close use async handshakes
- JDK-8302233: HSS/LMS: keytool and jarsigner changes
- JDK-8211238: New @Deprecated JFR event
- JDK-8319124: Update XML Security for Java to 3.0.3
- JDK-8306055: Add a built-in Catalog to JDK XML module
- JDK-8319244: implement JVMTI handshakes support for virtual threads
- JDK-8319196: ExecutableElement.getReceiverType doesn't return receiver types for
methods loaded from bytecode
- JDK-8318759: Add four DigiCert root certificates
- JDK-8317374: Add Let's Encrypt ISRG Root X2
- JDK-8306116: Update CLDR to Version 44.0
- JDK-8287843: File::getCanonicalFile doesn't work for \\?\C:\</?\C:\> style
paths DOS device paths
- JDK-8288899: java/util/concurrent/ExecutorService/CloseTest.java failed with
"InterruptedException: sleep interrupted"
- JDK-8311596: Add separate system properties for TLS server and client for maximum chain
length
- JDK-8318160: javac does not reject private method reference with type-variable receiver
- JDK-8305753: Allow JIT compilation for -Xshare:dump
- JDK-8187591: -Werror turns incubator module warning to an error
- JDK-8318096: Introduce AsymmetricKey interface with a getParams method
- JDK-8319174: Enhance robustness of some j.m.BigInteger constructors
- JDK-8288899: Changes to java.util.concurrent.ForkJoinPool and ForkJoinTask
- JDK-8272215: Add InetAddress methods for parsing IP address literals
- JDK-8316996: Catalog API Enhancement: add a factory method
- JDK-8305814: Update Xalan Java to 2.7.3
- JDK-8313643: Update HarfBuzz to 8.2.2
- JDK-8316030: Update Libpng to 1.6.40
Note: A more comprehensive list of changes can be found here [4].
[2]
https://jdk.java.net/22/
[3]
https://jdk.java.net/22/release-notes
[4]
https://github.com/openjdk/jdk/compare/jdk-22+20...jdk-22+27
## JDK 23 Early-Access Builds
Given that JDK 22 is in Rampdown Phase, the initial JDK 23 EA builds are now also
available [5]. These EA builds are provided under the GNU General Public License v2, with
the Classpath Exception.
[5]
https://jdk.java.net/23/
## JavaFX 22 Early-Access Builds
These are early-access builds of the JavaFX 22 [8] Runtime built from openjdk/jfx [9].
This allows JavaFX application developers to build and test their applications with JavaFX
22 on JDK 22. The JavaFX 22 API Javadocs are also available [10].
The JavaFX runtime is delivered as an SDK and as a set of jmods for each platform. You can
use the SDK to compile and run JavaFX applications. You can use the jmods with jlink to
create a JDK that includes the JavaFX modules, and optionally, your modular application.
JavaFX 22 is designed to work with JDK 22,but it is known to work with JDK 17 and later
versions.
[8]
https://jdk.java.net/javafx22/
[9]
https://github.com/openjdk/jfx
[10]
https://download.java.net/java/early_access/javafx22/docs/api/overview-su...
## Topics of Interest:
- Java 22 Unpacking - Inside Java Newscast
https://inside.java/2023/12/07/newscast-59/
- Java On The GPU - Inside Java Newscast
https://inside.java/2023/11/16/newscast-58/
- Better Java Streams with Gatherers - Inside Java Newscast
https://inside.java/2023/11/02/newscast-57/
- Another VS Code Extension for Java
https://inside.java/2023/12/03/java-vscode-extension/
- Introducing Generational ZGC
https://inside.java/2023/11/28/gen-zgc-explainer/
- Improved Emoji Support in Java 21 - Sip of Java
https://inside.java/2023/11/20/sip089/
- JDK Tool Access from JShell - Sip of Java
https://inside.java/2023/10/23/sip085/
- Optimizing your equals() methods with Pattern Matching - JEP Cafe
https://inside.java/2023/11/10/jepcafe21/
- Package a JavaFX Application as a Platform Specific Executable
https://inside.java/2023/11/14/package-javafx-native-exec/
- Open sourcing Jipher for FIPS regulated environments
https://blogs.oracle.com/developers/post/open-sourcing-jipher
- In-memory HttpServer Handler
https://inside.java/2023/11/06/in-memory-http-server-handler/
- Java Architects Answer Your Questions
https://inside.java/2023/10/26/ama-java-architects/
- Hazelcast Jet on Generational ZGC
https://kstefanj.github.io/2023/11/07/hazelcast-on-generational-zgc.html
~
As usual, let us know if you find any quirks while testing your project(s) with the latest
JDK early-access builds. And as the year-end is approaching, I'd like to thank you for
being part of the OpenJDK Quality Outreach Program. I hope that you will disconnect a bit
to spend time with your family and your friends. See you in 2024 with Java 22 and Java
23!