JDK 21 is now in the Release Candidate Phase so everything is on track for the 
Java 21 GA release on September 19th! If you haven't done so, please start 
testing your project(s) using JDK 22 Early-Access builds and let us know the 

In other news, the JVM Language Summit took place a few days ago in Santa Clara 
(California). During this unique gathering of Java architects and OpenJDK 
developers, key updates were shared and discussed, ex. where Valhalla stands 
today, the new Class-File API, an update on Leyden and Valhalla, Project 
Panama, the challenges of Virtual Threads, continuation internals, etc. We have 
started to publish the JVMLS 2023 videos so make sure to keep an eye on this 
evolving JVMLS playlist [1] to understand where the Java platform is heading to.

## JDK 21 Early-Access Builds

Per the JDK 21 schedule [2], we are now in the Release-Candidate Phase. The 
overall feature set [3] is frozen, no further JEPs will be targeted to this 

### JEPs integrated to JDK 21:
- 430: String Templates (Preview)
- 431: Sequenced Collections
- 439: Generational ZGC
- 440: Record Patterns
- 441: Pattern Matching for switch  
- 442: Foreign Function & Memory API (3rd Preview)
- 443: Unnamed Patterns and Variables (Preview)   
- 444: Virtual Threads
- 445: Unnamed Classes and Instance Main Methods (Preview)
- 446: Scoped Values (Preview)
- 448: Vector API (6th Incubator)
- 449: Deprecate the Windows 32-bit x86 Port for Removal
- 451: Prepare to Disallow the Dynamic Loading of Agents
- 452: Key Encapsulation Mechanism API
- 453: Structured Concurrency (Preview)

The first JDK 21 Release Candidate builds (builds 35) are available [4]. Those 
builds are provided under the GNU General Public License v2, with the Classpath 
Exception. The Release Notes [5] and the Javadocs [6] are also available.


## JDK 22 Early-Access Builds

The latest Early-Access builds 11 are available [7], and are provided under the 
GNU General Public License v2, with the Classpath Exception. The Release Notes 
are available here [8].

### Changes in recent JDK 22 builds (b8-b11) that may be of interest:

Note that this is only a curated list of changes, make sure to check [9] for 
additional changes.

- JDK-8314209: Wrong @since tag for RandomGenerator::equiDoubles [Reported by 
- JDK-8312489: Increase Default Value of the System Property 
- JDK-8312433: HttpClient request fails due to connection being considered …
- JDK-8313307: java/util/Formatter/ fails on some Locales
- JDK-8312821: Javac accepts char literal as template
- JDK-8313251: Add NativeLibraryLoad event
- JDK-8313809: String template fails with java.lang.StringIndexOutOfBoundsE…
- JDK-8312984: javac may crash on a record pattern with too few components
- JDK-8310033: Clarify return value of Java Time compareTo methods
- JDK-8302017: Allocate BadPaddingException only if it will be thrown
- JDK-8310913: Move ReferencedKeyMap to jdk.internal so it may be shared
- JDK-8313251: Add NativeLibraryLoad event to provide more detail about shared 
lib/dll loads
- JDK-8311653: Modify -XshowSettings launcher behavior
- JDK-8306441: Two phase segmented heap dump
- JDK-8311981: JVM May Hang When Using Generational ZGC if a VM Handshake 
Stalls on Memory
- JDK-8308850: Change JVM options with small ranges that get -Wconversion 
warnings to 32 bits


## JavaFX 21 & 22 Early-Access Builds

These are early-access builds of the JavaFX Runtime, built from openjdk/jfx 
[10]. They allow JavaFX application developers to build and test their 
applications with JavaFX 21 or 22 on the latest JDK.

The latest builds 29 (2023/8/7) of JavaFX 21 are now available [11]. The 
early-access builds 5 (2023/8/18) of the JavaFX 22 Runtime which is designed to 
work with JDK 22 are also available [12]. These early-access builds are 
provided under the GNU General Public License, version 2, with the Classpath 
Exception. Please send the feedback on the openjfx-dev mailing list [13].


## Topics of Interest:

JDK 21: G1/Parallel/Serial GC improvements

To Java 21 and Beyond!

Strengthen your Java App's Defenses with Key Encapsulation Mechanism API

JVMLS - Foreign Function & Memory API

JVMLS - Java and GPU … are we nearly there yet?

Draft JEP: Computed Constants

Using Computed Constants to Manage Static State in Leyden

Project Leyden: Toward Condensers

New OpenJDK Container mailing list

Introduction: Q-descriptors and v-bytecodes


Until next time!


Reply via email to