JDK 22 Feature Freeze!
by David Delabassee
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!
1 year
Possible candidate features for the new Feature Development Process
by Diana Krepinska
Hello,
I have a candidate feature that requires an Elytron component upgrade, but
no configuration changes are required in the elytron subsystem. It seems
that such use case does not fall under the new experimental feature
support. I wanted to ask whether a feature like this could be handled in
some way?
I have another feature, which would not be ready for WF31, but I wanted to
ask about it because we are also not sure if the new process could be used
with it later. It introduces handling of a new property name in the
existing properties in the subsystem. But these properties can be custom
and have no validator. So it does not seem like it will be suitable to be
delivered using the new process, is this correct?
Thank you!
Diana
1 year