Welcome to the latest OpenJDK Quality Outreach update. JDK 23 was released last month as
planned. You can find "The Arrival of Java 23" announcement here [1], and some
additional Java 23 materials in the "Topics of Interest" section at the bottom
of this update. You can also rewatch the Java 23 launch stream here [2]. Thank you to all
the projects who contributed to this release by testing the early-access builds and by
providing feedback and or identifying issues. Through your participation in this program,
you are helping to shape the Java platform!
Let's now shift our attention to JDK 24 which will enter the Rampdown Phase in less
than 6 weeks on December 5th [3].
[1]
https://inside.java/2024/09/17/jdk-23-available/
[2]
https://www.youtube.com/live/QG9xKpgwOI4?feature=shared
[3]
https://openjdk.org/projects/jdk/24/
## JDK 24
The JDK 24 early-access builds 21 are available [4], and are provided under the GNU
General Public License v2, with the Classpath Exception. The Release Notes are available
here [5].
As of the time of writing, the following JEPs have been targeted to JDK 24
- JEP 472: Prepare to Restrict the Use of JNI
- JEP 475: Late Barrier Expansion for G1
- JEP 485: Stream Gatherers
- JEP 484: Class-File API
- JEP 489: Vector API (9th Incubator)
while the following JEPs have been proposed to target JDK 24
- JEP 404: Generational Shenandoah (Experimental)
- JEP 478: Key Derivation Function API (Preview)
- JEP 487: Scoped Values (4th Preview)
- JEP 490: ZGC: Remove the Non-Generational Mode
### Changes in recent JDK 24 builds that may be of interest:
- JDK-8337302: Undefined type variable results in null - Reported & fixed by
ByteBuddy
- JDK-8338406: BytecodeHelpers using wrong bootstrap method descriptor for condy -
Reported by ByteBuddy
- JDK-8338623: StackCounter adding extraneous slots for receiver invoke instructions -
Reported by ByteBuddy
- JDK-8338661: StackMapTable is invalid if frames appear in dead code - Reported by
ByteBuddy
- JDK-8338745: Intrinsify Continuation.pin() and Continuation.unpin()
- JDK-8338979: Avoid bootstrapped switches in the classfile API
- JDK-8338939: Simplify processing of hidden class names
- JDK-8335288: SunPKCS11 initialization will call C_GetMechanismInfo on unsupported
mechanisms
- JDK-8336492: Regression in lambda serialization
- JDK-8286851: Deprecate for removal several of the undocumented java launcher options
- JDK-8339918: Remove checks for outdated -t -tm -Xfuture -checksource -cs -noasyncgc
options from …
- JDK-8338890: Add monitoring/management interface for the virtual thread scheduler
- JDK-8338700: AttributeMapper type parameter should be bounded by Attribute
- JDK-8339214: Remove misleading CodeBuilder.loadConstant(Opcode, ConstantDesc)
- JDK-8328877: [JNI] The JNI Specification needs to address the limitations of integer
UTF-8 String lengths
- JDK-8338731: MemoryLayout::offsetHandle can return a negative offset
- JDK-8325679: Optimize ArrayList subList sort
- JDK-8337664: Distrust TLS server certificates issued after Oct 2024 and anchored by
Entrust Root CAs
- JDK-8338936: StringConcatFactory optimize the construction of MethodType and
MethodTypeDesc
- JDK-8338947: Deprecate the UseLinuxPosixThreadCPUClocks flag and remove it in a future
release
- JDK-8338894: Deprecate jhsdb debugd for removal
- JDK-8334165: Remove serialVersionUID compatibility logic from JMX
- JDK-8334870: javac does not accept classfiles with certain permitted
RuntimeVisibleParameterAnnotations…
- JDK-8328608: Multiple NewSessionTicket support for TLS
Note: A complete list of changes can be found here [6].
[4]
https://jdk.java.net/24/
[5]
https://jdk.java.net/24/release-notes
[6]
https://github.com/openjdk/jdk/compare/jdk-24+12...jdk-24+21
## JavaFX 24 Early-Access Builds
These are early access builds of the JavaFX 24 Runtime built from openjdk/jfx. These
builds enable JavaFX application developers to build and test their applications with
JavaFX 24 on JDK 24. Although these builds are designed to work with JDK 24-ea, they are
also known to work with JDK 22 and later versions.
The latest early access builds of JavaFX 24 Builds 14 (2024/10/18) are available [7],
under the GNU General Public License, version 2,
with the Classpath Exception. JavaFX 24 API Javadocs [8] are available too.
[7]
https://jdk.java.net/javafx24/
[8]
https://download.java.net/java/early_access/javafx24/docs/api/overview-su...
## Topics of Interest
- JDK 23 Security Enhancements
https://seanjmullan.org/blog/2024/09/17/jdk23
- Java 23 - Better Language, Better APIs, Better Runtime
https://inside.java/2024/09/26/javazone-java23/
- Reviewing the JDK 23 Release Notes
https://inside.java/2024/09/19/newscast-76/
- JEP 14: The Tip & Tail Model of Library Development
https://openjdk.org/jeps/14
- New Loom Early-Access Builds with Changes for JDK 24
https://mail.openjdk.org/pipermail/loom-dev/2024-September/007166.html
- JVMLS: Loom - Where Are We?
https://inside.java/2024/10/06/jvmls-loom/
- JVMLS: Integrity by Default
https://inside.java/2024/09/12/jvmls-integrity-by-default/
- JVMLS: Valhalla - Where Are We?
https://inside.java/2024/08/23/jvmls-valhalla/
- JVMLS: Project Lilliput - Beyond Compact Headers
https://inside.java/2024/09/06/jvmls-generics-lilliput/
- JVMLS: Java Initialization 2.0
https://inside.java/2024/09/01/jvmls-initialization/
- Serialization - A New Hope
https://inside.java/2024/10/13/devoxxbelgium-serialization/
- JVMLS: Project Leyden
https://inside.java/2024/08/25/jvmls-leyden/
- A Preview of What's Coming in Project Leyden
https://inside.java/2024/10/17/newscast-78/
- Big News from Project Valhalla
https://inside.java/2024/10/03/newscast-77/
- Java's Fraught Relationship with Cyclic Object Graphs
https://inside.java/2024/10/15/devoxxbelgium-cyclic-object-graphs/
~
As usual, please ping me if you have questions, suggestions or if you encounter any issues
with JDK 24 early-access builds. If you don't want to receive these OpenJDK Quality
Outreach updates anymore, please let me know.
--
David Delabassée