There was a flurry of activity in the OpenJDK ecosystem during the week of May 12th, 2025, highlighting: two JEPs elevated from Proposed to Target to Targeted and four JEPs elevated from Candidate to Proposed to Target for JDK 25; and one JEP elevated from its JEP Draft to Candidate status. Two of these will be finalized after their respective rounds of preview.
JEPs Targeted for JDK 25
Two JEPs have been elevated from Proposed to Target to Targeted for JDK 25.
JEP 510, Key Derivation Function API, announced here, proposes to finalize this feature, without change, after one round of preview, namely: JEP 478, Key Derivation Function API (Preview), delivered in JDK 24. This features introduces an API for Key Derivation Functions (KDFs), cryptographic algorithms for deriving additional keys from a secret key and other data, with goals to: allow security providers to implement KDF algorithms in either Java or native code; and enable the use of KDFs in implementations of JEP 452, Key Encapsulation Mechanism.
JEP 506, Scoped Values, announced here, proposes to finalize this feature, without change, after four rounds of preview, namely: JEP 487, Scoped Values (Fourth Preview), delivered in JDK 24; JEP 481, Scoped Values (Third Preview), delivered in JDK 23; JEP 464, Scoped Values (Second Preview), delivered in JDK 22; JEP 446, Scoped Values (Preview), delivered in JDK 21; and JEP 429, Scoped Values (Incubator), delivered in JDK 20. Formerly known as Extent-Local Variables (Incubator), this feature enables sharing of immutable data within and across threads. This is preferred to thread-local variables, especially when using large numbers of virtual threads.
JEPs Proposed to Target for JDK 25
Four JEPs have been elevated from Candidate to Proposed to Target for JDK 25.
JEP 519, Compact Object Headers, has been elevated from its JEP Draft 8354672 to Candidate to Proposed to Target for JDK 25 (announced here and here, respectively).This JEP proposes to promote this feature from experimental to product. Inspired by Project Lilliput, this feature “reduce[s] the size of object headers in the HotSpot JVM from between 96 and 128 bits down to 64 bits on 64-bit architectures.” More details on JEP 450 may be found in this InfoQ news story.
JEP 515, Ahead-of-Time Method Profiling, announced here, proposes to improve application warmup time by “making method-execution profiles from a previous run of an application instantly available, when the HotSpot JVM starts.” This allows the JIT compiler to immediately generate native code upon application startup as opposed to waiting for profiles to be collected.
JEP 514, Ahead-of-Time Command-Line Ergonomics, announced here, proposes to simplify the process of creating ahead-of-time caches, as described in JEP 483, Ahead-of-Time Class Loading & Linking, that may accelerate Java application startup by “simplifying the commands required for common use cases.“
JEP 507, Primitive Types in Patterns, instanceof, and switch (Third Preview), announced here, proposes a third round of preview, without change, to gain additional experience and feedback from the previous two rounds of preview, namely: JEP 488, Primitive Types in Patterns, instanceof, and switch (Second Preview), delivered in JDK 24; and JEP 455, Primitive Types in Patterns, instanceof, and switch (Preview), delivered in JDK 23. Under the auspices of Project Amber, this feature enhances pattern matching by allowing primitive type patterns in all pattern contexts, and extending instanceof
and switch
to work with all primitive types. More details may be found in this draft specification by Aggelos Biboudis, Principal Member of Technical Staff at Oracle.
Their respective reviews are expected to conclude by May 22, 2025.
New JEP Candidates
JEP 520, JFR Method Timing & Tracing, has been elevated from its JEP Draft 8328610 to Candidate status. This JEP proposes to extend the JDK Flight Recorder with facilities for method timing and tracing via the bytecode Instrumentation
interface.
JDK 25 Feature Set (So Far) and Release Schedule
The JDK 25 release schedule, as approved by Mark Reinhold, Chief Architect, Java Platform Group at Oracle, is as follows:
- Rampdown Phase One (fork from main line): June 5, 2025
- Rampdown Phase Two: July 17, 2025
- Initial Release Candidate: August 7, 2025
- Final Release Candidate: August 21, 2025
- General Availability: September 16, 2025
With less than three weeks before the scheduled Rampdown Phase One, where the feature set for JDK 25 will be frozen, these are 13 JEPs included in the feature set so far:
JDK 25 is designated to be the next long-term support (LTS) release following JDK 21, JDK 17, JDK 11 and JDK 8.