JDK 20 Rampdown Phase 2 & JMX Heads-up

David Delabassee david.delabassee at oracle.com
Wed Jan 25 06:45:52 UTC 2023


First off, on behalf of Oracle’s Java Team, I’d like to wish you a happy 
and prosperous new year!

In 2023, two Java releases will be made available: JDK 20 (March) &  JDK 
21 (September).

JDK 20 [1] has entered Rampdown Phase Two (RDP2) [2], its initial 
Release Candidate is planned for February 9. Given that and to be better 
prepared for the future, it makes sense to begin testing your project(s) 
using JDK 21 early-access (EA) builds. Your feedback allows us to 
evaluate and address issues you find while testing EA builds.

[1] https://jdk.java.net/20/
[2] https://mail.openjdk.org/pipermail/jdk-dev/2023-January/007308.html
[3] https://jdk.java.net/21/

## Heads-up - JDK 21: JMX Subject Delegation & Fine-grained Security 

JMX has some features that rely on Security Manager APIs which are 
deprecated for removal (see JEP 411 [4]). These features are "Subject 
Delegation" and "Fine-grained Security", which both seem to be generally 
unused, and would require significant investment to implement without 
touching the deprecated APIs. As a consequence, "Subject Delegation" is 
being proposed for deprecation in JDK 21 [5].

Fine-grained Security is also being considered for deprecation at the 
same time. This feature [6] has allowed configuration of a security 
policy to restrict or permit access to specific MBean actions. It is 
expected that this feature is generally unused, possibly because there 
is simply no demand for such detailed control, and that it is too 
complex to create and maintain the policies.

[4] https://openjdk.org/jeps/411
[5] https://bugs.openjdk.org/browse/JDK-8298966

## JDK 20 Early-Access builds

The latest early-access builds of JDK 20 (builds 32) are available [7], 
and are provided under the GNU General Public License v2, with the 
Classpath Exception. The Release Notes are available here [8].

[7] https://openjdk.org/projects/jdk/20/
[8] https://jdk.java.net/20/release-notes

### JEPs integrated into JDK 20:

- JEP 429: Scoped Values (Incubator)
- JEP 432: Record Patterns (2nd Preview)
- JEP 433: Pattern Matching for switch (4th Preview)
- JEP 434: Foreign Function & Memory API (2nd Preview)
- JEP 436: Virtual Threads (2nd Preview)
- JEP 437: Structured Concurrency (2nd Incubator)

### Changes in recent JDK 20 builds that may be of interest:

- JDK-8298525: javadoc crashes with "UnsupportedOperationException: Not 
yet implemented" in SeeTaglet.inherit [Reported by Apache Ant]
- JDK-8298893: Rename option UsePolyIntrinsics to UsePoly1305Intrinsics
- JDK-8287411: Enhance DTLS Performance
- JDK-8293554: Enhanced DH Key Exchanges

## JDK 21 Early-Access builds

The latest early-access builds of JDK 21 (builds 6) are available [9], 
and are provided under the GNU General Public License v2, with the 
Classpath Exception. The related EA API Javadoc is also available [10].

[9] https://jdk.java.net/21/
[10] https://download.java.net/java/early_access/jdk21/docs/api/

### Changes in recent JDK 21 builds that may be of interest:

- JDK-8297295: Remove ThreadGroup.allowThreadSuspension
- JDK-8287411: Enhance DTLS performance
- JDK-8233269: Improve handling of JAVA_ARGS
- JDK-8297933: Compiler should only use verified interface types for 
- JDK-8298381: Improve handling of session tickets for multiple SSLContexts
- JDK-8299501: Usage of constructors of primitive wrapper classes should 
be avoided in java.util API docs
- JDK-8299475: Enhance SocketException by cause where it is missing in 
net and nio area
- JDK-8299544: Improve performance of CRC32C intrinsics (non-AVX-512) 
for small inputs
- JDK-8299576: Reimplement java.io.Bits using VarHandle access
- JDK-8278326: Socket close is not thread safe and other cleanup
- JDK-8299673: Simplify object pinning interactions with string 

## JavaFX 20 & 21 Early-Access Builds

These are early-access builds of the JavaFX Runtime, built from 
openjdk/jfx [11]. Those EA builds are intended to allow JavaFX 
application developers to build and test their applications with JavaFX 
20 on JDK 20. The latest EA builds (JavaFX 20 EA b16 2023/1/14) are now 
available [12] and are provided under the GNU General Public License, 
version 2, with the Classpath Exception. Please note that initial JavaFX 
21 early-access builds (JavaFX 21 b1 2023/1/19) are now available [13] 
as well.
Feedback should be reported to the openjfx-dev mailing list [14].

[11] https://github.com/openjdk/jfx
[12] https://jdk.java.net/javafx20/
[13] https://jdk.java.net/javafx21/
[14] http://mail.openjdk.org/mailman/listinfo/openjfx-dev

## Topics of Interest:

- On Markdown in (Java) documentation comments

- Lifetimes in the Foreign Function & Memory API

- Java's Plans for 2023 - Inside Java Newscast #40

- Informational JEP: Preview Features: A Look Back, and A Look Ahead

- Java 20 - An Almost Infinite Memory Segment Allocator

- Podcast: “Helidon Níma & Virtual Threads”

- From ThreadLocal to ScopedValue with Loom - JEP Café #16

- Java 20 - Colossal Sparse Memory Segments

- Another Panama Update

- Secure Coding Guidelines for Java SE

- Java Networking Enhancements since JDK 11

- Podcast: “Java Language - State of the Union”

- Tutorial - Using Pattern Matching

- 24 Java Features You Missed In 2022 - Inside Java Newscast #39

## January 2023 Critical Patch Update Released

As part of the January 2023 CPU, we released JDK 19.0.2, JDK 17.0.6 LTS, 
JDK 11.0.18 LTS and JDK 8u361 as well as OpenJDK 19.0.2.

## Oracle JRE and JDK Cryptographic Roadmap

The crypto roadmap [14] provides the information on Oracle's plans for 
changes to the security algorithms and associated policies/settings in 
the Oracle JRE & JDK.

[14] https://www.java.com/en/jre-jdk-cryptoroadmap.html


We look forward to your continued participation in 2023. And as always, 
if you find an issue, please let us know through the usual channels.

More information about the quality-discuss mailing list