java

JDK 21.0.8 Release Notes

Java SE 21.0.8 Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 21.0.8 BPR. Bug fixes and any other changes are listed below in date order, most current BPR first. Note that bug fixes in the previous BPR are also included in the current BPR.

 

Changes in Java SE 21.0.8.0.2

Bug Fixes

Release date: July 25, 2025
BugId Category Subcategory Summary
JDK-8358764 core-libs java.nio (sc) SocketChannel.close when thread blocked in read causes connection to be reset (win)

 

Changes in Java SE 21.0.8.0.1

Bug Fixes

Release date: July 15, 2025
BugId Category Subcategory Summary
JDK-8355072 (not public) install install [OL9] java on systemd environments: /etc/rc.d/init.d/jexec' lacks a native systemd unit file

Java™ SE Development Kit 21.0.8 (JDK 21.0.8)

July 15, 2025

The full version string for this update release is 21.0.8+12 (where "+" means "build"). The version number is 21.0.8. This JDK conforms to version 21 of the Java SE Specification (JSR 396 2023-09-19).

 

IANA TZ Data 2025b

JDK 21.0.8 contains IANA time zone data 2025b which contains the following changes:

  • New zone for Aysén Region in Chile which moves from -04/-03 to -03.

For more information, refer to Timezone Data Versions in the JRE Software.

 

Security Baselines

The security baselines for the Java Runtime Environment (JRE) at the time of the release of JDK 21.0.8 are specified in the following table:

Java Family Version Security Baseline (Full Version String)
2121.0.8+12
1717.0.16+12
1111.0.28+12
81.8.0_461-b11

 

Keeping the JDK up to Date

Oracle recommends that the JDK is updated with each Critical Patch Update. In order to determine if a release is the latest, the Security Baseline page can be used to determine which is the latest version for each release family.

Critical patch updates, which contain security vulnerability fixes, are announced one year in advance on Critical Patch Updates, Security Alerts and Bulletins. It is not recommended that this JDK (version 21.0.8) be used after the next critical patch update scheduled for October 21, 2025.

Java Management Service, available to all users, can help you find vulnerable Java versions in your systems. Java SE Subscribers and customers running in Oracle Cloud can use Java Management Service to update Java Runtimes and to do further security reviews like identifying potentially vulnerable third party libraries used by your Java programs. Existing Java Management Service user click here to log in to your dashboard. The Java Management Service Documentation provides a list of features available to everyone and those available only to customers. Learn more about using Java Management Service to monitor and secure your Java Installations.

 

Removed Features and Options

security-libs/java.security
 Removed Baltimore CyberTrust Root Certificate After Expiry Date (JDK-8303770)

The following expired root certificate has been removed from the cacerts keystore:

+ alias name "baltimorecybertrustca [jdk]"

  Distinguished Name: CN=Baltimore CyberTrust Root, OU=CyberTrust, O=Baltimore, C=IE

security-libs/java.security
 Removed Two Camerfirma Root Certificates (JDK-8350498)

The following root certificates, which are terminated and no longer in use, have been removed from the cacerts keystore:

+ alias name "camerfirmachamberscommerceca [jdk]"

  Distinguished Name: CN=Chambers of Commerce Root, OU=http://www.chambersign.org, O=AC Camerfirma SA CIF A82743287, C=EU

+ alias name "camerfirmachambersignca [jdk]"
  Distinguished Name: CN=Global Chambersign Root - 2008, O=AC Camerfirma S.A., SERIALNUMBER=A82743287, L=Madrid (see current address at www.camerfirma.com/address), C=EU

 

Other Notes

security-libs/java.security
 Added 4 New Root Certificates from Sectigo Limited (JDK-8359170)

The following root certificates have been added to the cacerts truststore:

+ Sectigo Limited

  + sectigocodesignroote46
    DN: CN=Sectigo Public Code Signing Root E46, O=Sectigo Limited, C=GB

+ Sectigo Limited
  + sectigocodesignrootr46
    DN: CN=Sectigo Public Code Signing Root R46, O=Sectigo Limited, C=GB

+ Sectigo Limited
  + sectigotlsroote46
    DN: CN=Sectigo Public Server Authentication Root E46, O=Sectigo Limited, C=GB

+ Sectigo Limited
  + sectigotlsrootr46
    DN: CN=Sectigo Public Server Authentication Root R46, O=Sectigo Limited, C=GB

install/install
 Sign oracle.com JDK RPM Packages with OL9 Signing Key (JDK-8351906 (not public))

The oracle.com JDK RPM packages meant to be downloaded directly to the target system, now are signed with the OL9 signing key instead of the OL8 signing key. The RPM packages hosted on YUM repositories remain signed with the appropriate key for the target repository.

core-libs/java.net
 java.net.http.HttpClient Is Enhanced to Report HTTP/2 Flow Control Errors to the Server (JDK-8342075)

The java.net.http.HttpClient will now report HTTP/2 flow control errors to the server when they are detected. This is an implementation detail that should be transparent to users of the HttpClient API, but could result in streams being reset or connections being closed if connecting to a non-conformant HTTP/2 server.

security-libs/java.security
 Updated HSS/LMS Public Key Encoding (JDK-8347596)

The X.509 encoded format for HSS/LMS public keys has been updated to align with the latest standard outlined in RFC 9708. Notably, the additional OCTET STRING wrapping around the public key value has been removed. For compatibility, public key encodings generated by earlier JDK releases are still recognized.

security-libs/java.security
 Compatible OCSP readtimeout Property with OCSP Timeout (JDK-8347506)

In JDK 21, an enhanced syntax for various timeout properties was released through JDK-8179502. This included a new system property, com.sun.security.ocsp.readtimeout, which allows users to control the timeout while reading OCSP responses after a successful TCP connection has been established.

This changes the default posture of this property to be the value of the com.sun.security.ocsp.timeout system property from its original default of 15 seconds. If the com.sun.security.ocsp.timeout system property is also not set, then its default 15 second timeout is propagated to the default for com.sun.security.ocsp.readtimeout.

security-libs/jdk.security
 Jarsigner Should Print a Warning If an Entry Is Removed (JDK-8309841)

If an entry is removed from a signed JAR file, there is no mechanism to detect that it has been removed using the JarFile API, since the getJarEntry method returns null as if the entry had never existed. With this change, the jarsigner -verify command analyzes the signature files and if some sections do not have matching file entries, it prints out the following warning: "This JAR contains signed entries for files that do not exist". Users can further find out the names of these entries by adding the -verbose option to the command.

 

Bug Fixes

This release also contains fixes for security vulnerabilities described in the Oracle Critical Patch Update.

Issues fixed in 21.0.8:
# JBS Component/Subcomponent Summary
1JDK-8348597client-libs/2dUpdate HarfBuzz to 10.4.0
2JDK-8348596client-libs/2dUpdate FreeType to 2.13.3
3JDK-8348600client-libs/java.awtUpdate PipeWire to 1.3.81
4JDK-8348598client-libs/java.awtUpdate Libpng to 1.6.47
5JDK-8280991client-libs/java.awt[XWayland] No displayChanged event after setDisplayMode call
6JDK-8286204client-libs/javax.accessibility[Accessibility,macOS,VoiceOver] VoiceOver reads the spinner value 10 as 1 when user iterates to 10 for the first time on macOS
7JDK-8345728client-libs/javax.accessibility[Accessibility,macOS,Screen Magnifier]: JCheckbox unchecked state does not magnify but works for checked state
8JDK-8348936client-libs/javax.accessibility[Accessibility,macOS,VoiceOver] VoiceOver doesn't announce untick on toggling the checkbox with "space" key on macOS
9JDK-6928542client-libs/javax.swingChinese characters in RTF are not decoded
10JDK-8322754client-libs/javax.swingclick JComboBox when dialog about to close causes IllegalComponentStateException
11JDK-8318915core-libs/java.mathEnhance checks in BigDecimal.toPlainString()
12JDK-8335181core-libs/java.netIncorrect handling of HTTP/2 GOAWAY frames in HttpClient
13JDK-8343855core-libs/java.netHTTP/2 ConnectionWindowUpdateSender may miss some unprocessed DataFrames from closed streams
14JDK-8353787core-libs/java.util.jarIncreased number of SHA-384-Digest java.util.jar.Attributes$Name instances leading to higher memory footprint
15JDK-8344589core-libs/java.util:i18nUpdate IANA Language Subtag Registry to Version 2024-11-19
16JDK-8356096core-libs/java.util:i18nISO 4217 Amendment 179 Update
17JDK-8345296hotspot/compilerAArch64: VM crashes with SIGILL when prctl is disallowed
18JDK-8349637hotspot/compilerInteger.numberOfLeadingZeros outputs incorrectly in certain cases
19JDK-8308966hotspot/compilerAdd intrinsic for float/double modulo for x86 AVX2 and AVX512
20JDK-8314056hotspot/compilerRemove runtime platform check from frem/drem
21JDK-8336042hotspot/compilerCaller/callee param size mismatch in deoptimization causes crash
22JDK-8357105hotspot/compilerC2: compilation fails with "assert(false) failed: empty program detected during loop optimization"
23JDK-8332717hotspot/gcZGC: Division by zero in heuristics
24JDK-8343285hotspot/runtimejava.lang.Process is unresponsive and CPU usage spikes to 100%
25JDK-8343599hotspot/runtimeKmem limit and max values swapped when printing container information
26JDK-8320892hotspot/runtimeAArch64: Restore FPU control state after JNI
27JDK-8339148hotspot/runtimeMake os::Linux::active_processor_count() public
28JDK-8345569hotspot/runtime[ubsan] adjustments to filemap.cpp and virtualspace.cpp for macOS aarch64
29JDK-8319650hotspot/svcImprove heap dump performance with class metadata caching
30JDK-8320924hotspot/svcImprove heap dump performance by optimizing archived object checks
31JDK-8311546security-libs/java.securityCertificate name constraints improperly validated with leading period
32JDK-8344361security-libs/java.securityRestore null return for invalid services from legacy providers
33JDK-8332921tools/jshellCtrl+C does not call shutdown hooks after JLine upgrade