Welcome to the OpenJDK Quality Outreach summer update!

Everything is on track for the General Availability of Java 25 on September 16 
as the JDK 25 Release Candidate builds (RC1 - builds 35) are now available[1]. 
If you haven't done so yet, please start testing your project(s) using JDK 26 
early-access builds and let us know the results.

Changing topics, the JVM Language Summit (JVMLS) was held last week in Santa 
Clara (California). JVMLS is a unique event that brings together Java and JVM 
architects and OpenJDK developers to discuss the evolution and future 
directions of the platform. The first JVMLS video has just been published, with 
more to follow. To stay informed about the latest developments, keep an eye on 
this JVMLS playlist[2].

[1] https://mail.openjdk.org/pipermail/jdk-dev/2025-August/010296.html
[2] https://www.youtube.com/playlist?list=PLX8CzqL3ArzUOgZpIX6GsoRhPbnij-sco


# JDK 25

The JDK 25 early-access builds 35 are available[3], and are provided under the 
GNU General Public License v2, with the Classpath Exception. The Release Notes 
are available here[4]. For more details on Java 25, please refer to the “Topics 
of Interest” section below.

## JEPs Integrated into JDK 25:

- JEP 470: PEM Encodings of Cryptographic Objects (Preview)
- JEP 502: Stable Values (Preview)
- JEP 503: Remove the 32-bit x86 Port
- JEP 505: Structured Concurrency (5th Preview)
- JEP 506: Scoped Values
- JEP 507: Primitive Types in Patterns, instanceof, and switch (3rd Preview)
- JEP 508: Vector API (1Oth Incubator)
- JEP 509: JFR CPU-Time Profiling (Experimental)
- JEP 510: Key Derivation Function API
- JEP 511: Module Import Declarations
- JEP 512: Compact Source Files and Instance Main Methods
- JEP 513: Flexible Constructor Bodies
- JEP 514: Ahead-of-Time Command-Line Ergonomics
- JEP 515: Ahead-of-Time Method Profiling
- JEP 518: JFR Cooperative Sampling
- JEP 519: Compact Object Headers
- JEP 520: JFR Method Timing & Tracing
- JEP 521: Generational Shenandoah


## Changes in Recent JDK 25 Builds of Interest:

- JDK-8359596: Behavior change when both -Xlint:options and -Xlint:-options 
flags are given [Reported by Apache Lucene]
- JDK-8356698: JFR: @Contextual
- JDK-8351594: JFR: Rate-limited sampling of Java events
- JDK-8241678: Remove PerfData sampling via StatSampler
- JDK-8356870: HotSpotDiagnosticMXBean.dumpThreads and jcmd Thread.dump_to_file 
updates
- JDK-8350689: Turn on timestamp and thread metadata by default for 
java.security.debug
- JDK-8354450: A File should be invalid if an element of its name sequence ends 
with a space
- JDK-8350880: (zipfs) Add support for read-only zip file systems
- JDK-8341346: Add support for exporting TLS Keying Material
- JDK-8345431: Improve jar --validate to detect duplicate or invalid entries
- JDK-8359170: Added 4 New Root Certificates from Sectigo Limited
- JDK-8358590: JFR: Include min and max in MethodTiming event
- JDK-8228773: URLClassLoader constructors should include API note warning that 
the parent should not be null
- JDK-8356049: Need a simple way to play back a sound clip
- JDK-8357955: java.lang.classfile.Signature.ArrayTypeSig.of IAE not thrown for 
dims > 255
- JDK-8359729: Remove the multiplex protocol from the RMI specification

Note: A more exauhstive list of changes can be found here[5].

[3] https://jdk.java.net/25/
[4] https://jdk.java.net/25/release-notes
[5] https://github.com/openjdk/jdk/compare/jdk-25+25...jdk-25+35


# JDK 26

The JDK 26 early-access builds 10 are available[6] and are provided under the 
GNU General Public License v2, with the Classpath Exception. The release notes 
are available here[7].

## Changes in Recent JDK 26 Builds of Interest:

- JDK-8361380: ARM32: Atomic stubs should be in pre-universe [Reported by 
JaCoCo]
- JDK-8359170: Add 2 TLS and 2 CS Sectigo roots
- JDK-8359809: AttributeList, RoleList and UnresolvedRoleList should never 
accept other types of Object
- JDK-8268406: Deallocate jmethodID native memory
- JDK-8314180: Disable XPath in XML Signatures
- JDK-8330940: Impossible to create a socket backlog greater than 200 on 
Windows 8+
- JDK-8357653: Inner classes of type parameters emitted as raw types in 
signatures
- JDK-8347114: JMXServiceURL should require an explicit protocol
- JDK-8309399: JVMTI spec needs to clarify when OPAQUE_FRAME is thrown for 
reasons other than a native method
- JDK-8361212: Remove AffirmTrust root CAs
- JDK-8353925: Remove Sun Microsystems JCE Code Signing Root CA
- JDK-8361964: Remove outdated algorithms from requirements and add PBES2 
algorithms
- JDK-8332623: Remove setTTL()/getTTL() methods from 
DatagramSocketImpl/MulticastSocket and MulticastSocket.send(DatagramPacket, 
byte)
- JDK-8359760: Remove the jdk.jsobject module
- JDK-8356557: Update CodeSource::implies API documentation and deprecate 
java.net.SocketPermission class for removal
- JDK-8310932: [win] Install the JDK in a per-release directory pointed to by a 
shared junction
- JDK-8359956: Support algorithm constraints and certificate checks in SunX509 
key manager
- JDK-8359395: XML signature generation does not support user provided 
SecureRandom
- JDK-8356645: Javac should utilize new ZIP file system read-only access mode

Note: A complete list of changes can be found here[8].

[6] https://jdk.java.net/26/
[7] https://jdk.java.net/26/release-notes
[8] https://github.com/openjdk/jdk/compare/jdk-26+1...jdk-26+10


# Topics of Interest

- Java 25 Encodes PEM
https://inside.java/2025/06/19/newscast-93/

- JDK 25: Just Be Lazy
https://inside.java/2025/07/29/just-be-lazy/

- JDK 25: A Sneak Peek at the Stable Values API
https://inside.java/2025/07/22/javaone-stablevalues/

- Java 25 is ALSO no LTS Version
https://inside.java/2025/07/03/newscast-94/

- JVMLS: The not-so-final word on `final`
https://inside.java/2025/08/12/jvmls-final-to-immutable/

- HTTP/3 in Java
https://inside.java/2025/07/31/newscast-96/

- Project Leyden's AOT / Shifting Java Startup into High Gear
https://inside.java/2025/06/29/javaone-leyden-aot/

- Java Security Evolution - Out with the Old, In with the New
https://inside.java/2025/07/20/javaone-security/

- Java GPGPU Enablement: Are We There Yet?
https://inside.java/2025/07/14/javaone-hat/

- Podcast “Deprecations & Removals” with Stuart Marks
https://inside.java/2025/07/28/podcast-039/

- Podcast “Integrity by Default” with Ron Pressler
https://inside.java/2025/06/24/podcast-038/

- A New Model for Java Object Initialization
https://inside.java/2025/07/27/javaone-object-initialization/

- ZGC: Paving the GC On-Ramp
https://inside.java/2025/07/10/javaone-zgc/

- Marshalling: Data-Oriented Serialization
https://inside.java/2025/07/08/javaone-marshalling/

- Interconnecting Java and Native Code with the FFM API
https://inside.java/2025/06/14/javaone-ffm/

- FFM vs. Unsafe. Safety (Sometimes) Has a Cost
https://inside.java/2025/06/12/ffm-vs-unsafe/

- Java Gets a JSON API
https://inside.java/2025/07/17/newscast-95/

~


That’s it for now. If you run into any issues while testing your projects with 
the latest JDK 26 early-access builds, don’t hesitate to reach out. The end of 
summer is going to be exciting and busy with the Java 25 launch coming up, so 
stay tuned!

--David

Reply via email to