Update to jdk-24.0.2+12 (GA)

- Update release notes with features of JDK 24

Related: RHEL-120553
This commit is contained in:
Andrew Hughes 2025-11-07 00:43:27 +00:00
parent 6877ce43a3
commit c40cb590e9
4 changed files with 251 additions and 31 deletions

1
.gitignore vendored
View File

@ -40,3 +40,4 @@
/openjdk-21.0.8+9.tar.xz
/openjdk-22.0.2+9.tar.xz
/openjdk-23.0.2+7.tar.xz
/openjdk-24.0.2+12.tar.xz

270
NEWS
View File

@ -3,7 +3,7 @@ Key:
JDK-X - https://bugs.openjdk.java.net/browse/JDK-X
CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
New in release OpenJDK 23.0.0 (2024-09-17):
New in release OpenJDK 24.0.0 (2025-03-18):
===========================================
Major changes are listed below. Some changes may have been backported
to earlier releases following their first appearance in OpenJDK 22
@ -19,6 +19,7 @@ Flexible Constructor Bodies
============================
https://openjdk.org/jeps/447
https://openjdk.org/jeps/482
https://openjdk.org/jeps/492
In constructors in the Java programming language, allow statements to
appear before an explicit constructor invocation, i.e., super(..) or
@ -29,9 +30,10 @@ methods are overridden.
This was introduced as a preview language feature
(http://openjdk.java.net/jeps/12) in OpenJDK 22 (JEP 447) under the
name "Statements before super(...)". It reaches a second preview in
name "Statements before super(...)". It reached a second preview in
OpenJDK 23 (JEP 482) with the addition of allowing fields to be
initialized before invoking another constructor.
initialized before invoking another constructor. It reaches a third
preview in OpenJDK 24 (JEP 492).
Unnamed Patterns and Variables
==============================
@ -49,17 +51,20 @@ This feature is now final. It was a preview feature
Primitive Types in Patterns, instanceof, and switch
===================================================
https://openjdk.org/jeps/455
https://openjdk.org/jeps/488
Enhance pattern matching by allowing primitive type patterns in all
pattern contexts, and extend instanceof and switch to work with all
primitive types.
This is a preview language feature (http://openjdk.java.net/jeps/12)
introduced in OpenJDK 23 (JEP 455).
introduced in OpenJDK 23 (JEP 455) and having its second preview in
OpenJDK 24 (JEP 488).
Module Import Declarations
==========================
https://openjdk.org/jeps/476
https://openjdk.org/jeps/494
Enhance the Java programming language with the ability to succinctly
import all of the packages exported by a module. This simplifies the
@ -67,7 +72,8 @@ reuse of modular libraries, but does not require the importing code to
be in a module itself.
This is a preview language feature (http://openjdk.java.net/jeps/12)
introduced in OpenJDK 23 (JEP 476).
introduced in OpenJDK 23 (JEP 476) and reaching a second preview in
OpenJDK 24 (JEP 494).
Library Features
================
@ -98,17 +104,31 @@ java-17-openjdk). OpenJDK 18 saw a second round of incubation (JEP
preview took place in OpenJDK 20 (JEP 434) and a third and final
preview in OpenJDK 21 (JEP 442).
Prepare to Restrict the Use of JNI
==================================
https://openjdk.org/jeps/472
Issue warnings about uses of the Java Native Interface (JNI) and
adjust the Foreign Function & Memory (FFM) API to issue warnings in a
consistent manner. All such warnings aim to prepare developers for a
future release that ensures integrity by default by uniformly
restricting JNI and the FFM API. Application developers can avoid both
current warnings and future restrictions by selectively enabling these
interfaces where essential using the --enable-native-access
command-line option.
Class-File API
==============
https://openjdk.org/jeps/457
https://openjdk.org/jeps/466
https://openjdk.org/jeps/484
Provide a standard API for parsing, generating, and transforming Java
class files.
This is a preview library feature (http://openjdk.java.net/jeps/12)
introduced in OpenJDK 22 (JEP 457) with a second preview in OpenJDK 23
(JEP 466).
This API is now finalised. It was introduced as a preview library
feature (http://openjdk.java.net/jeps/12) in OpenJDK 22 (JEP 457) with
a second preview in OpenJDK 23 (JEP 466).
Vector API
==========
@ -120,6 +140,7 @@ https://openjdk.org/jeps/438
https://openjdk.org/jeps/448
https://openjdk.org/jeps/460
https://openjdk.org/jeps/469
https://openjdk.org/jeps/489
Introduce an API to express vector computations that reliably compile
at runtime to optimal vector hardware instructions on supported CPU
@ -130,21 +151,22 @@ This is an incubation feature (https://openjdk.java.net/jeps/11)
introduced in OpenJDK 16 (JEP 338). A second round of incubation took
place in OpenJDK 17 (JEP 414), OpenJDK 18 (JEP 417) saw a third,
OpenJDK 19 a fourth (JEP 426), OpenJDK 20 (JEP 438) a fifth, OpenJDK
21 a sixth (JEP 448), OpenJDK 22 a seventh (JEP 460) and it reaches
its eighth in OpenJDK 23 (JEP 469).
21 a sixth (JEP 448), OpenJDK 22 a seventh (JEP 460), OpenJDK 23 an
eighth (JEP 469) and it reaches its ninth in OpenJDK 24 (JEP 489).
Stream Gatherers
================
https://openjdk.org/jeps/461
https://openjdk.org/jeps/473
https://openjdk.org/jeps/485
Enhance the Stream API to support custom intermediate operations. This
will allow stream pipelines to transform data in ways that are not
easily achievable with the existing built-in intermediate operations.
This is a preview library feature (http://openjdk.java.net/jeps/12)
introduced in OpenJDK 22 (JEP 461) with a second preview in OpenJDK 23
(JEP 473).
This API is now finalised. It was introduced as a preview library
feature (http://openjdk.java.net/jeps/12) in OpenJDK 22 (JEP 461) with
a second preview in OpenJDK 23 (JEP 473).
Structured Concurrency
======================
@ -153,6 +175,7 @@ https://openjdk.org/jeps/437
https://openjdk.org/jeps/453
https://openjdk.org/jeps/462
https://openjdk.org/jeps/480
https://openjdk.org/jeps/499
Simplify multithreaded programming by introducing an API for
structured concurrency. Structured concurrency treats multiple tasks
@ -164,28 +187,35 @@ This API was first introduced in incubation
(https://openjdk.java.net/jeps/11) in OpenJDK 19 (JEP 428) and had a
second round of incubation in OpenJDK 20 (JEP 437). It became a
preview feature (http://openjdk.java.net/jeps/12) in OpenJDK 21 (JEP
453), reached its second preview in OpenJDK 22 (JEP 462) and has
a third preview in OpenJDK 23 (JEP 480).
453), reached its second preview in OpenJDK 22 (JEP 462), had a third
preview in OpenJDK 23 (JEP 480) and reaches its fourth in OpenJDK 24
(JEP 499).
Implicitly Declared Classes and Instance Main Methods
=====================================================
Simple Source Files and Instance Main Methods
=============================================
https://openjdk.org/jeps/445
https://openjdk.org/jeps/463
https://openjdk.org/jeps/477
https://openjdk.org/jeps/495
Evolve the Java language so that students can write their first
programs without needing to understand language features designed for
large programs. Far from using a separate dialect of Java, students
can write streamlined declarations for single-class programs and then
seamlessly expand their programs to use more advanced features as
their skills grow.
Evolve the Java programming language so that beginners can write their
first programs without needing to understand language features
designed for large programs. Far from using a separate dialect of the
language, beginners can write streamlined declarations for
single-class programs and then seamlessly expand their programs to use
more advanced features as their skills grow. Experienced developers
can likewise enjoy writing small programs succinctly, without the need
for constructs intended for programming in the large.
This library feature was introduced as a preview
(http://openjdk.java.net/jeps/12) in OpenJDK 21 (JEP 445) under the
name "Unnamed Classes and Instance Main Methods". It reaches a second
name "Unnamed Classes and Instance Main Methods". It reached a second
preview in OpenJDK 22 (JEP 463) and a third in OpenJDK 23 (JEP 477)
under a new name, due to the move away from unnamed classes to an
implicitly declared name chosen by the host system.
under the new name, "Implicitly Declared Classes and Instance Main
Methods", due to the move away from unnamed classes to an implicitly
declared name chosen by the host system. It has a fourth preview in
OpenJDK 24 (JEP 495) with new terminology and a revised title, but
otherwise unchanged.
Scoped Values
=============
@ -193,6 +223,7 @@ https://openjdk.org/jeps/429
https://openjdk.org/jeps/446
https://openjdk.org/jeps/464
https://openjdk.org/jeps/481
https://openjdk.org/jeps/487
Introduce scoped values, which enable the sharing of immutable data
within and across threads. They are preferred to thread-local
@ -201,8 +232,48 @@ variables, especially when using large numbers of virtual threads.
This API was first introduced in incubation
(https://openjdk.java.net/jeps/11) in OpenJDK 20 (JEP 429). It became
a preview feature (http://openjdk.java.net/jeps/12) in OpenJDK 21 (JEP
446), reached its second preview in OpenJDK 22 (JEP 464) and a third
in OpenJDK 23 (JEP 481).
446), had a second preview in OpenJDK 22 (JEP 464), a third in OpenJDK
23 (JEP 481) and reaches its fourth in OpenJDK 24 (JEP 487).
Key Derivation Function API
===========================
https://openjdk.org/jeps/478
Introduce an API for Key Derivation Functions (KDFs), which are
cryptographic algorithms for deriving additional keys from a secret
key and other data.
This is a preview library feature (http://openjdk.java.net/jeps/12)
introduced in OpenJDK 24 (JEP 478).
Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism
==================================================================
https://openjdk.org/jeps/496
Enhance the security of Java applications by providing an
implementation of the quantum-resistant Module-Lattice-Based
Key-Encapsulation Mechanism (ML-KEM). Key encapsulation mechanisms
(KEMs) are used to secure symmetric keys over insecure communication
channels using public key cryptography. ML-KEM is designed to be
secure against future quantum computing attacks. It has been
standardized by the United States National Institute of Standards and
Technology (NIST) in FIPS 203 [0].
[0] https://csrc.nist.gov/pubs/fips/203/final
Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm
==================================================================
https://openjdk.org/jeps/497
Enhance the security of Java applications by providing an
implementation of the quantum-resistant Module-Lattice-Based Digital
Signature Algorithm (ML-DSA). Digital signatures are used to detect
unauthorized modifications to data and to authenticate the identity of
signatories. ML-DSA is designed to be secure against future quantum
computing attacks. It has been standardized by the United States
National Institute of Standards and Technology (NIST) in FIPS 204 [0].
[0] https://csrc.nist.gov/pubs/fips/204/final
Virtual Machine Enhancements
============================
@ -217,12 +288,85 @@ critical regions.
ZGC: Generational Mode by Default
=================================
https://openjdk.org/jeps/439
https://openjdk.org/jeps/474
Switch the default mode of the Z Garbage Collector (ZGC) to the
generational mode. Deprecate the non-generational mode, with the
intent to remove it in a future release.
Late Barrier Expansion for G1
=============================
https://openjdk.org/jeps/475
Simplify the implementation of the G1 garbage collector's barriers,
which record information about application memory accesses, by
shifting their expansion from early in the C2 JIT's compilation
pipeline to later.
Ahead-of-Time Class Loading & Linking
=====================================
https://openjdk.org/jeps/483
Improve startup time by making the classes of an application instantly
available, in a loaded and linked state, when the HotSpot Java Virtual
Machine starts. Achieve this by monitoring the application during one
run and storing the loaded and linked forms of all classes in a cache
for use in subsequent runs. Lay a foundation for future improvements
to both startup and warmup time.
Using this feature requires a three stage process:
1. Populate the Ahead-of-Time configuration data with a training run
of the application using the options `-XX:AOTMode=record
-XX:AOTConfiguration=<config name>` where `<config name>` is the
configuration reference to use in #2.
2. Create the Ahead-of-Time cache using the options
`-XX:AOTMode=create -XX:AOTConfiguration=<config name>
-XX:AOTCache=<cache name>` where `<config name>` is the configuration
reference from #1 and `<cache name>` is the cache reference to use in
later runs.
3. When running the application in testing or production, use the
option `-XX:AOTCache=<cache name>` to run the application with the
cache generated in #2.
Synchronize Virtual Threads without Pinning
===========================================
https://openjdk.org/jeps/491
Improve the scalability of Java code that uses synchronized methods
and statements by arranging for virtual threads that block in such
constructs to release their underlying platform threads for use by
other virtual threads. This will eliminate nearly all cases of virtual
threads being pinned to platform threads, which severely restricts the
number of virtual threads available to handle an application's
workload.
Generational Shenandoah
=======================
https://openjdk.org/jeps/404
Enhance the Shenandoah garbage collector with experimental
generational collection capabilities to improve sustainable
throughput, load-spike resilience, and memory utilization.
This is an experimental feature that needs to be explicitly enabled
with -XX:+UnlockExperimentalVMOptions
-XX:ShenandoahGCMode=generational
Compact Object Headers
======================
https://openjdk.org/jeps/450
Reduce the size of object headers in the HotSpot JVM from between 96
and 128 bits down to 64 bits on 64-bit architectures. This will reduce
heap size, improve deployment density, and increase data locality.
This is an experimental feature that needs to be explicitly enabled
with -XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders
Tools
=====
@ -243,6 +387,18 @@ https://openjdk.org/jeps/467
Enable JavaDoc documentation comments to be written in Markdown rather
than solely in a mixture of HTML and JavaDoc @-tags.
Linking Run-Time Images without JMODs
=====================================
https://openjdk.org/jeps/493
Reduce the size of the JDK by approximately 25% by enabling the jlink
tool to create custom run-time images without using the JDK's JMOD
files.
This feature must be enabled when the JDK is built using the
--enable-linkable-runtime option. It will not be enabled by default,
and some JDK vendors may choose not to enable it.
DEPRECATIONS
============
@ -258,6 +414,45 @@ encourage library developers to migrate from sun.misc.Unsafe to
supported replacements, so that applications can migrate smoothly to
modern JDK releases.
Warn upon Use of Memory-Access Methods in sun.misc.Unsafe
=========================================================
https://openjdk.org/jeps/498
Issue a warning at run time on the first occasion that any
memory-access method in sun.misc.Unsafe is invoked. All of these
unsupported methods were terminally deprecated in JDK 23 (see JEP 471
above). They have been superseded by standard APIs, namely the
VarHandle API (JEP 193, OpenJDK 9) and the Foreign Function & Memory
API (JEP 454, OpenJDK 22). We strongly encourage library developers to
migrate from sun.misc.Unsafe to supported replacements, so that
applications can migrate smoothly to modern JDK releases.
Permanently Disable the Security Manager
========================================
https://openjdk.org/jeps/486
The Security Manager has not been the primary means of securing
client-side Java code for many years, it has rarely been used to
secure server-side code, and it is costly to maintain. We therefore
deprecated it for removal in OpenJDK 17 via JEP 411 (2021). As the
next step toward removing the Security Manager, we will revise the
Java Platform specification so that developers cannot enable it and
other Platform classes do not refer to it. This change will have no
impact on the vast majority of applications, libraries, and tools. We
will remove the Security Manager API in a future release.
Deprecate the 32-bit x86 Port for Removal
=========================================
https://openjdk.org/jeps/501
Deprecate the 32-bit x86 port, with the intent to remove it in a
future release. This will thereby deprecate the Linux 32-bit x86 port,
which is the only 32-bit x86 port remaining in the JDK. It will also,
effectively, deprecate any remaining downstream 32-bit x86
ports. After the 32-bit x86 port is removed, the architecture-agnostic
Zero port will be the only way to run Java programs on 32-bit x86
processors.
REMOVALS
========
@ -274,3 +469,22 @@ OpenJDK 23 (JEP 465) and the feature is no longer present. See [0]
for further explanation.
[0] https://mail.openjdk.org/pipermail/amber-spec-experts/2024-April/004106.html
Remove the Windows 32-bit x86 Port
==================================
https://openjdk.org/jeps/449
https://openjdk.org/jeps/479
Remove the source code and build support for the Windows 32-bit x86
port. This port was deprecated for removal in JDK 21 by JEP 449 with
the express intent to remove it in a future release.
ZGC: Remove the Non-Generational Mode
=====================================
https://openjdk.org/jeps/439
https://openjdk.org/jeps/474
https://openjdk.org/jeps/490
Remove the non-generational mode of the Z Garbage Collector (ZGC),
keeping the generational mode as the default for ZGC (see JEP 439 &
474).

View File

@ -312,7 +312,7 @@
%endif
# New Version-String scheme-style defines
%global featurever 23
%global featurever 24
%global fakefeaturever 25
%global interimver 0
%global updatever 2
@ -375,7 +375,7 @@
%global origin_nice OpenJDK
%global top_level_dir_name %{vcstag}
%global top_level_dir_name_backup %{top_level_dir_name}-backup
%global buildver 7
%global buildver 12
%global rpmrelease 1
# Settings used by the portable build
%global portablerelease 1
@ -2478,6 +2478,11 @@ exit 0
%endif
%changelog
* Wed Nov 05 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:24.0.2.0.12-1
- Update to jdk-24.0.2+12 (GA)
- Update release notes with features of JDK 24
- Related: RHEL-120553
* Sat Oct 25 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:23.0.2.0.7-1
- Update to jdk-23.0.2+7 (GA)
- Update release notes with features of JDK 23

View File

@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz) = 97d026212363b3c83f6a04100ad7f6fdde833d16579717f8756e2b8c2eb70e144a41a330cb9ccde9c3badd37a2d54fdf4650a950ec21d8b686d545ecb2a64d30
SHA512 (openjdk-23.0.2+7.tar.xz) = 6cab15914f7c61acd905347b7d6e4fe682401248294afcd972b2b576c69ae0d06b2a335089a57329e78962b83fabbc08d3463994bfdcd28dec5a1c3c5167d660
SHA512 (openjdk-24.0.2+12.tar.xz) = 92dc174ad4fedb1138bc183a390a85a76fcc3aa1508d4d00f49012b28a8e3a5a1739b349f0fb03dedc6f7977eafa472c5f7608c61ae656c0ecf795b9e96a95ae