java

Release Notes for JDK 8 and JDK 8 Update Releases

This page contains all of the release notes for General Availability (GA) releases and Bundled Patch Release (BPR) builds of JDK 8.

Consolidated Release Notes for JDK 8 and JDK 8 Update Releases

BPR builds are available only as commercial offerings to Oracle customers. They include fixes critical to customers that could not wait until the next scheduled release. Fixes introduced on BPRs are added to later GA releases.

  • JDK 8u231 (GA and BPR builds)
  • JDK 8u221 (GA and BPR builds)
  • JDK 8u212 (GA and BPR builds)
  • JDK 8u211 (GA)
  • JDK 8u202 (GA and BPR builds)
  • JDK 8u201 (GA)
  • JDK 8u192 (GA and BPR builds)
  • JDK 8u191 (GA)
  • JDK 8u181 (GA and BPR builds)
  • JDK 8u172 (GA and BPR builds)
  • JDK 8u171 (GA)
  • JDK 8u162 (GA and BPR builds)
  • JDK 8u161 (GA)
  • JDK 8u152 (GA and BPR builds)
  • JDK 8u151 (GA)
  • JDK 8u144 (GA and BPR builds)
  • JDK 8u141 (GA and BPR builds)
  • JDK 8u131 (GA and BPR builds)
  • JDK 8u121 (GA and BPR builds)
  • JDK 8u112 (GA and BPR builds)
  • JDK 8u111 (GA)
  • JDK 8u102 (GA and BPR builds)
  • JDK 8u101 (GA)
  • JDK 8u92 (GA and BPR builds)
  • JDK 8u91 (GA)
  • JDK 8u77 (GA and BPR builds)
  • JDK 8u74 (GA and BPR builds)
  • JDK 8u72 (GA and BPR builds)
  • JDK 8u73 (GA)
  • JDK 8u71 (GA)
  • JDK 8u66 (GA and BPR builds)
  • JDK 8u65 (GA)
  • JDK 8u60 (GA and BPR builds)
  • JDK 8u51 (GA and BPR builds)
  • JDK 8u45 (GA and BPR builds)
  • JDK 8u40 (GA and BPR builds)
  • JDK 8u31 (GA and BPR builds)
  • JDK 8u25 (GA and BPR builds
  • JDK 8u20 (GA and BPR builds)
  • JDK 8u11 (GA and BPR builds)
  • JDK 8u5 (GA and BPR builds)
  • JDK 8 (GA)

Java™ SE Development Kit 8, Update 481 Enterprise Performance Pack (JDK 8u481-PERF)

Release date: January 20, 2026

The full version string for this update release is 1.8.0_481-perf-b11 (where "b" means "build"). The version number is 1.8.0_481-perf.

 

IANA TZ Data 2025b

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

 

Security Baselines

The security baselines for the Java Runtime at the time of the release of JDK 8u481 are specified in the following table:

Java Family Version Security Baseline (Full Version String)
81.8.0_481-perf-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 8u481) be used after the next critical patch update scheduled for April 21, 2026.

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.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 8u481) on 2026-05-21. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version. For more information, see 23.1.2 JRE Expiration Date in the Java Platform, Standard Edition Deployment Guide.

 

New Features

core-libs/java.rmi
 Endpoint Identification Enabled By Default for RMI Connections Over TLS (JDK-8341496)

RMI will use TLS connections if the javax.rmi.ssl.SslRMIClientSocketFactory class is used. These connections now have TLS endpoint identification enabled by default. This may cause some previously-working TLS connections to fail. If this occurs, ensure that the certificate presented by the server has a Subject Alternative Name that matches the server's hostname. Alternatively, endpoint identification for RMI TLS connections can be disabled on the client side by setting the jdk.rmi.ssl.client.enableEndpointIdentification system property to false.

 

Other Notes

security-libs/javax.net.ssl
 Disabled SHA-1 in TLS 1.2 and DTLS 1.2 Handshake Signatures (JDK-8340321)

The SHA-1 algorithm has been disabled by default in TLS 1.2 and DTLS 1.2 handshake signatures, by adding "rsa_pkcs1_sha1 usage HandshakeSignature, ecdsa_sha1 usage HandshakeSignature, dsa_sha1 usage HandshakeSignature" to the jdk.tls.disabledAlgorithms security property in the java.security config file. RFC 9155 deprecates the use of SHA-1 in TLS 1.2 and DTLS 1.2 digital signatures. Users can, at their own risk, re-enable the SHA-1 algorithm in TLS 1.2 and DTLS 1.2 handshake signatures by removing "rsa_pkcs1_sha1 usage HandshakeSignature, ecdsa_sha1 usage HandshakeSignature, dsa_sha1 usage HandshakeSignature" from the jdk.tls.disabledAlgorithms security property.

security-libs/javax.net.ssl
 Disabled TLS_RSA Cipher Suites (JDK-8245545)

The TLS_RSA cipher suites have been disabled by default, by adding TLS_RSA_* to the jdk.tls.disabledAlgorithms security property in the java.security configuration file. The TLS_RSA cipher suites do not preserve forward-secrecy and are not commonly used. Some TLS_RSA cipher suites are already disabled because they use DES, 3DES, RC4, or NULL, which are disabled. This action disables all remaining TLS_RSA cipher suites. Any attempts to use cipher suites starting with TLS_RSA_ will fail with an SSLHandshakeException. Users can, at their own risk, re-enable these cipher suites by removing TLS_RSA_* from the jdk.tls.disabledAlgorithms security property. The following previously enabled cipher suites are now disabled:


    TLS_RSA_WITH_AES_256_GCM_SHA384
    TLS_RSA_WITH_AES_128_GCM_SHA256
    TLS_RSA_WITH_AES_256_CBC_SHA256
    TLS_RSA_WITH_AES_128_CBC_SHA256
    TLS_RSA_WITH_AES_256_CBC_SHA
    TLS_RSA_WITH_AES_128_CBC_SHA

core-svc/tools
 jcmd -l and jps Commands Do Not List Java Processes Running in Docker Containers (JDK-8193710)

The HotSpot runtime code has been updated to allow the jcmd -l and jps commands discover JVMs running in a container.

install/install
 Windows Installers to Return to Full Version Directory and Use of Junction (JDK-8310932 (not public))

For the JDK11+ LTS families, the JDK will install into a version-specific installation directory by default. The installation directory of 11+ will have a - before the version-specific string to keep consistency with the past 11+ conventions per family. A junction, also known as a symlink for Windows, will also be created in a "latest" directory. It will point to the latest version of that family. Here is a breakdown example of installation and junction locations 11+ families:

Version Installation Directory Junction Location
jdk25.0.2 C:\Program Files\Java\jdk-25.0.2 C:\Program Files\Java\latest\jdk-25
jdk17.0.18 C:\Program Files\Java\jdk-17.0.18 C:\Program Files\Java\latest\jdk-17
jdk11.0.30 C:\Program Files\Java\jdk-11.0.30 C:\Program Files\Java\latest\jdk-11

Each junction will always point to the latest JDK of the matching LTS family. The junction for each family will be removed when the last JDK of the matching LTS family is uninstalled.

security-libs/java.security
 Filter Rules for URIs in the Authority Info Access Extension for Certificates (JDK-8368032 (not public))

A new system and security property, com.sun.security.allowedAIALocations, has been introduced. This property allows users the ability to define one or more filtering rules to be applied to URIs obtained from the authority info access extension on X.509 certificates. These filter rules are applied specifically to the CA issuers access method. Any CA issuers URIs in X.509 certificates are only followed when the com.sun.security.enableAIAcaIssuers system property is enabled and the filter allows the URI.

In order to set the rules, the user must set either the com.sun.security.allowedAIALocations security property or the system property by the same name. If the system property has a value, it will override the security property. By default the property is blank, which enacts a deny-all ruleset.

For either property, the value consists of a set of space-separated rules that take the form of a URI, with the following constraints:

  • The URI must be absolute and hierarchical.
  • The URI must only use one of the following schemes: http, https, ldap, or ftp (case-insensitive).
  • A hostname or address must be specified and must match (case-insensitive). No name resolution is performed on hostnames to match URIs with IP addresses.
  • The port number must match. Where a port number is omitted, the well-known port will be used in the comparison.
  • For hierarchical schemes (http[s], ftp):
    • A rule's normalized path portion of the URI is matched in a case-sensitive manner. If the final component does not end in a slash (/), it is considered to be a file path and must match the CA issuer URI path component. If the rule's path component ends in a slash, then it must match or be a prefix of the CA issuer URI path component. (for example, a filter path of /ab/cd/ will match a CA issuer path of /ab/cd/, /ab/cd/ef and /ab/cd/ef/ghi.).
    • Query strings and fragments will be ignored when matching CA issuer URIs.
  • For ldap URIs:
    • The base DN must be an exact match (case-insensitive).
    • Any query string in the rule, if specified, will be ignored.

For the properties, a single value of "any" (case-insensitive) will create an allow-all rule.

 

Changes in Java SE 8u481-Perf

Bug Fixes

JDK 8u481 Enterprise Performance Pack includes the following fixes from JDK 17:
# BugId Component Summary
1JDK-8328085hotspot/compilerC2: Use after free in PhaseChaitin::Register_Allocate()
2JDK-8364993hotspot/jfrJFR: Disable jdk.ModuleExport in default.jfc
3JDK-8364556hotspot/jfrJFR: Disable SymbolTableStatistics and StringTableStatistics in default.jfc
4JDK-8369992hotspot/jfrJFR: Disable Placeholder-, LoaderConstraints- and ProtectionDomainCacheTableStatistics in default.jfc
5JDK-8328997hotspot/runtimeRemove unnecessary template parameter lists in GrowableArray
6JDK-8317132hotspot/runtimePrepare HotSpot for permissive-
7JDK-8361447hotspot/runtime[REDO] Checked version of JNI Release<type>ArrayElements needs to filter out known wrapped arrays
8JDK-8364235hotspot/runtimeFix for JDK-8361447 breaks the alignment requirements for GuardedMemory
9JDK-8364660hotspot/runtimeClassVerifier::ends_in_athrow() should be removed

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

The following sections summarize changes made in all Java SE 8u481 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 8u481 b31

Bug Fixes

Release date: February 27, 2026
BugId Category Subcategory Summary
JDK-8223045 client-libs 2d GraphicsEnvironment does not detect resolution changes in multiscreen systems

 

Changes in Java SE 8u481 b50

Bug Fixes

Release date: January 20, 2026
BugId Category Subcategory Summary
JDK-8370632 javafx web Additional libxslt 1.1.43 fixes
JDK-8370235 javafx web WebKit build fails on Windows 32-bit and Linux 32-bit after JDK-8367578
JDK-8368704 (not public) javafx web Better glyph handling
JDK-8368691 javafx web Update libxml2 to 2.14.6
JDK-8367578 javafx web Additional WebKit 622.1 fixes from WebKitGTK 2.48.7
JDK-8366744 javafx web Update SQLite to 3.50.4
JDK-8366217 javafx media Update GStreamer to 1.26.5
JDK-8363813 javafx window-toolkit Missing null check in GlassScreen
JDK-8362535 (not public javafx web Update libxslt support
JDK-8361719 (not public) javafx application-lifecycle Enhance Handling of URIs
JDK-8361648 javafx media Update Glib to 2.84.3
JDK-8361644 javafx web Update ICU4C to 77.1

Java™ SE Development Kit 8, Update 481 (JDK 8u481)

Release date: January 20, 2026

The full version string for this update release is 1.8.0_481-b10 (where "b" means "build"). The version number is 8u481. This JDK conforms to version 8.6 of the Java SE Specification (JSR 337 MR 6 2024-07-02).

 

IANA TZ Data 2025b

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

 

Security Baselines

The security baselines for the Java Runtime at the time of the release of JDK 8u481 are specified in the following table:

Java Family Version Security Baseline (Full Version String)
81.8.0_481-b10

 

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 8u481) be used after the next critical patch update scheduled for April 21, 2026.

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.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 8u481) on 2026-05-21. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version. For more information, see 23.1.2 JRE Expiration Date in the Java Platform, Standard Edition Deployment Guide.

 

New Features

core-libs/java.rmi
 Endpoint Identification Enabled By Default for RMI Connections Over TLS (JDK-8341496 (not public))

RMI will use TLS connections if the [javax.rmi.ssl.SslRMIClientSocketFactory] class is used. These connections now have TLS endpoint identification enabled by default. This may cause some previously-working TLS connections to fail. If this occurs, ensure that the certificate presented by the server has a Subject Alternative Name that matches the server's hostname. Alternatively, endpoint identification for RMI TLS connections can be disabled on the client side by setting the jdk.rmi.ssl.client.enableEndpointIdentification system property to false.

 

Other Notes

security-libs/javax.net.ssl
 Disabled SHA-1 in TLS 1.2 and DTLS 1.2 Handshake Signatures (JDK-8340321)

The SHA-1 algorithm has been disabled by default in TLS 1.2 and DTLS 1.2 handshake signatures, by adding "rsa_pkcs1_sha1 usage HandshakeSignature, ecdsa_sha1 usage HandshakeSignature, dsa_sha1 usage HandshakeSignature" to the jdk.tls.disabledAlgorithms security property in the java.security config file. RFC 9155 deprecates the use of SHA-1 in TLS 1.2 and DTLS 1.2 digital signatures. Users can, at their own risk, re-enable the SHA-1 algorithm in TLS 1.2 and DTLS 1.2 handshake signatures by removing "rsa_pkcs1_sha1 usage HandshakeSignature, ecdsa_sha1 usage HandshakeSignature, dsa_sha1 usage HandshakeSignature" from the jdk.tls.disabledAlgorithms security property.

install/install
 Windows Installers to Return to Full Version Directory and Use of Junction (JDK-8310932 (not public))

For the JDK11+ LTS families, the JDK will install into a version-specific installation directory by default. The installation directory of 11+ will have a - before the version-specific string to keep consistency with the past 11+ conventions per family. A junction, also known as a symlink for Windows, will also be created in a "latest" directory. It will point to the latest version of that family. Here is a breakdown example of installation and junction locations 11+ families:

Version Installation Directory Junction Location
jdk25.0.2 C:\Program Files\Java\jdk-25.0.2 C:\Program Files\Java\latest\jdk-25
jdk17.0.18 C:\Program Files\Java\jdk-17.0.18 C:\Program Files\Java\latest\jdk-17
jdk11.0.30 C:\Program Files\Java\jdk-11.0.30 C:\Program Files\Java\latest\jdk-11

Each junction will always point to the latest JDK of the matching LTS family. The junction for each family will be removed when the last JDK of the matching LTS family is uninstalled.

install/install
 Make jcmd Command Available in the Headless JDK RPM (JDK-8359443 (not public))

jcmd command will be available in the headless JDK RPM instead of the headful JDK RPM.

It will be added to the java alternatives group instead of the javac alternatives group.

security-libs/javax.net.ssl
 Disabled TLS_RSA Cipher Suites (JDK-8245545)

The TLS_RSA cipher suites have been disabled by default, by adding "TLS_RSA_" to the jdk.tls.disabledAlgorithms security property in the java.security configuration file. The TLS_RSA cipher suites do not preserve forward-secrecy and are not commonly used. Some TLS_RSA cipher suites are already disabled because they use DES, 3DES, RC4, or NULL, which are disabled. This action disables all remaining TLS_RSA cipher suites. Any attempts to use cipher suites starting with "TLS_RSA_" will fail with an SSLHandshakeException. Users can, at their own risk, re-enable these cipher suites by removing "TLS_RSA_" from the jdk.tls.disabledAlgorithms security property. The following previously enabled cipher suites are now disabled:

TLS_RSA_WITH_AES_256_GCM_SHA384

TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA

core-libs/java.util:i18n
 Changes to the Default Time Zone Detection on Debian-based Linux (JDK-8345213)

On Debian-based Linux distributions such as Ubuntu, the /etc/timezone file was previously used to determine the JDK's default time zone (TimeZone.getDefault()). According to Debian's Wiki, /etc/localtime is now the primary source for the system's default time zone, making /etc/timezone redundant. As a result, the JDK's default time zone detection logic has been updated to use /etc/localtime instead of /etc/timezone. If /etc/localtime and /etc/timezone are inconsistent for any reason, the JDK's default time zone is now determined solely based on /etc/localtime file.

core-svc/tools
 jcmd -l and jps Commands Do Not List Java Processes Running in Docker Containers (JDK-8193710)

The HotSpot runtime code has been updated to allow the jcmd -l and jps commands discover JVMs running in a container.

security-libs/java.security
 Filter Rules for URIs in the Authority Info Access Extension for Certificates (JDK-8368032 (not public))

A new system and security property, com.sun.security.allowedAIALocations, has been introduced. This property allows users the ability to define one or more filtering rules to be applied to URIs obtained from the authority info access extension on X.509 certificates. These filter rules are applied specifically to the CA issuers access method. Any CA issuers URIs in X.509 certificates are only followed when the com.sun.security.enableAIAcaIssuers system property is enabled and the filter allows the URI.

In order to set the rules, the user must set either the com.sun.security.allowedAIALocations security property or the system property by the same name. If the system property has a value, it will override the security property. By default the property is blank, which enacts a deny-all ruleset.

For either property, the value consists of a set of space-separated rules that take the form of a URI, with the following constraints:

  • The URI must be absolute and hierarchical.
  • The URI must only use one of the following schemes: http, https, ldap, or ftp (case-insensitive).
  • A hostname or address must be specified and must match (case-insensitive). No name resolution is performed on hostnames to match URIs with IP addresses.
  • The port number must match. Where a port number is omitted, the well-known port will be used in the comparison.
  • For hierarchical schemes (http[s], ftp):
    • A rule's normalized path portion of the URI is matched in a case-sensitive manner. If the final component does not end in a slash (/), it is considered to be a file path and must match the CA issuer URI path component. If the rule's path component ends in a slash, then it must match or be a prefix of the CA issuer URI path component. (for example, a filter path of /ab/cd/ will match a CA issuer path of /ab/cd/, /ab/cd/ef and /ab/cd/ef/ghi.).
    • Query strings and fragments will be ignored when matching CA issuer URIs.
  • For ldap URIs:
    • The base DN must be an exact match (case-insensitive).
    • Any query string in the rule, if specified, will be ignored.

For the properties, a single value of "any" (case-insensitive) will create an allow-all rule.

 

Bug Fixes

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

The following table lists the bug fixes included in the JDK 8u481 release:

# BugId Component Summary
1JDK-8292214client-libs/2dMemory leak in getAllConfigs of awt_GraphicsEnv.c:386
2JDK-8361748client-libs/2dEnforce limits on the size of an XBM image
3JDK-8280468client-libs/java.awtCrashes in getConfigColormap, getConfigVisualId, XVisualIDFromVisual on Linux
4JDK-8167486client-libs/java.awtDevice.getDisplayMode() doesn't report refresh rate on Linux in case of dual screen
5JDK-8022810client-libs/java.awtCannot list all the available display modes on Ubuntu linux in case of two screen devices
6JDK-8286159client-libs/java.awtMemory leak in getAllConfigs of awt_GraphicsEnv.c:585
7JDK-8354646client-libs/java.awtjava.awt.TextField allows to identify the spaces in a password when double clicked at the starting and end of the text
8JDK-8238436client-libs/java.awtjava/awt/Frame/FrameLocationTest/FrameLocationTest.java fails
9JDK-8216329client-libs/javax.swingCannot resize CheckBoxItemMenu in Synth L&F with setHorizontalTextPosition
10JDK-8139228client-libs/javax.swingJFileChooser renders file names as HTML document
11JDK-8358532client-libs/javax.swingJFileChooser in GTK L&F still displays HTML filename
12JDK-8358813client-libs/javax.swingJPasswordField identifies spaces in password via delete shortcuts
13JDK-8370465client-libs/javax.swingRight to Left Orientation Issues with MenuItem Component
14JDK-8055747core-libs/java.netMove SimpleSSLContext to jdk/testlibrary
15JDK-8056065core-libs/java.netsun/net/www/protocol/http/RedirectOnPost.java failing.
16JDK-8271010hotspot/compilervmTestbase/gc/lock/malloc/malloclock04/TestDescription.java crashes intermittently
17JDK-8160997hotspot/runtimeSolaris: deprecated <pwd.h> and <gid.h> interfaces should be replaced
18JDK-8174734hotspot/runtimeSafepoint sync time did not increase
19JDK-8364660hotspot/runtimeClassVerifier::ends_in_athrow() should be removed
20JDK-8081541tools/javac@ignore CheckEBCDICLocaleTest
21JDK-8359872tools/launcherNullPointerException in sun.launcher.LauncherHelper.checkJavaFXRemoval

Java™ SE Development Kit 8, Update 471 Enterprise Performance Pack (JDK 8u471-PERF)

Release date: October 21, 2025

The full version string for this update release is 1.8.0_471-perf-b09 (where "b" means "build"). The version number is 1.8.0_471-perf.

 

IANA TZ Data 2025b

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

 

Security Baselines

The security baselines for the Java Runtime at the time of the release of JDK 8u471 are specified in the following table:

Java Family Version Security Baseline (Full Version String)
81.8.0_471-perf-b09

 

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 8u471) be used after the next critical patch update scheduled for January 20, 2026.

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.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 8u471) on 2026-02-20. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version. For more information, see 23.1.2 JRE Expiration Date in the Java Platform, Standard Edition Deployment Guide.

 

New Features

security-libs/javax.net.ssl
 Mechanism to Disable Signature Schemes Based on Their TLS Scope (JDK-8349583)

TLS protocol specific usage constraints are now supported by the jdk.tls.disabledAlgorithms property in the java.security configuration file, as follows:

UsageConstraint:

    usage UsageType { UsageType }

UsageType:
    HandshakeSignature | CertificateSignature

HandshakeSignature restricts the use of an algorithm in TLS handshake signatures. CertificateSignature restricts the use of an algorithm in certificate signatures. An algorithm with this constraint cannot include other usage types defined in the jdk.certpath.disabledAlgorithms property. The usage type follows the keyword and more than one usage type can be specified with a whitespace delimiter.

security-libs/javax.net.ssl
 Mechanism to Disable TLS Cipher Suites by Pattern Matching (JDK-8341964)

TLS cipher suites can be disabled with the jdk.tls.disabledAlgorithms security property in the java.security configuration file using one or more * wildcard characters. For example, "TLS_RSA_*" disables all cipher suites that start with "TLS_RSA_". Only cipher suites starting with "TLS_" are allowed to have wildcard characters.

security-libs/javax.xml.crypto
 Update XML Security for Java to 3.0.5 (JDK-8344137)

The XML Signature implementation has been updated to Santuario 3.0.5. Support for four new SHA-3 based ECDSA SignatureMethod algorithms have been added: SignatureMethod.ECDSA_SHA3_224, SignatureMethod.ECDSA_SHA3_256, SignatureMethod.ECDSA_SHA3_384, and SignatureMethod.ECDSA_SHA3_512.

core-libs/java.lang
 Added isEmpty Default Method to CharSequence (JDK-8215401)

java.lang.CharSequence has been updated in this release to define a default isEmpty method that tests if a character sequence is empty. Testing for, and filtering out, empty Strings and other CharSequences is a common occurrence in code and CharSequence::isEmpty can be used as a method reference. Classes that implement java.lang.CharSequence and another interface that defines isEmpty method should be aware of this addition as they may need to be modified to override the isEmpty method.

 

Known Issues

core-libs/java.net
 Datagram Packet Loss on macOS 26 and macOS 15.6 and Above (JDK-8368741)

When IPv6 is enabled, the JDK uses dual stack IPv4/IPv6 sockets by default. Binding, connecting, or sending datagrams uses IPv4-mapped IPv6 addresses in this case.

On some hosts running macOS version 15.6.x and above, and macOS 26, it has been observed that when a datagram socket bound to a IPv4 mapped IPv6 address sends a packet, either using the java.net.DatagramSocket or java.nio.channels.DatagramChannel APIs, then the first packet is lost and never gets delivered. A second invocation of send on the same socket, even to the same destination address, correctly delivers the packet and it is received by the recipient.

A bug has been filed with Apple (feedback issue id FB20302424) seeking their assistance. The issue is currently unresolved.

Until the issue is resolved, there are a couple of workarounds that applications can consider:

  • If using IPv4 is acceptable, then the java command can be launched with -Djava.net.preferIPv4Stack=true to use IPv4 sockets by default.
  • If using -Djava.net.preferIPv4Stack=true is not acceptable, a more local workaround can be applied by changing the application code to create a java.nio.channels.DatagramChannel with java.net.StandardProtocolFamily.INET as the protocol family and then bind the channel to a IPv4 address.

 

Removed Features

security-libs/java.security
 Removed Four AffirmTrust Root Certificates (JDK-8361212)

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

+ alias name "affirmtrustcommercialca [jdk]"

  Distinguished Name: CN=AffirmTrust Commercial, O=AffirmTrust, C=US

+ alias name "affirmtrustnetworkingca [jdk]"
  Distinguished Name: CN=AffirmTrust Networking, O=AffirmTrust, C=US

+ alias name "affirmtrustpremiumca [jdk]"
  Distinguished Name: CN=AffirmTrust Premium, O=AffirmTrust, C=US

+ alias name "affirmtrustpremiumeccca [jdk]"
  Distinguished Name: CN=AffirmTrust Premium ECC, O=AffirmTrust, C=US

 

Other Notes

hotspot/runtime
 Print 'rss' and 'cache' As Part of the Container Information (JDK-8313083)

The HotSpot runtime code has been updated to additionally print a container's 'rss' and 'cache'. The additional output can be found in the JVM's response to a "jcmd [PID] VM.info" request and in the hs_err file generated in case of JVM abrupt termination.

This will help monitoring and troubleshooting OutOfMemory situations as OOM killer can terminate a process if its rss + cache usage reaches the max memory limit of the container.

security-libs/javax.crypto:pkcs11
 DH Mechanisms Disabled in SunPKCS11-Solaris Provider (JDK-8351342 (not public))

On Solaris, the CKM_DH_PKCS_KEY_PAIR_GEN and CKM_DH_PKCS_DERIVE mechanisms offered by the SunPKCS11-Solaris provider have been disabled via the $JAVA_HOME/conf/security/sunpkcs11-solaris.cfg configuration file. The SunJCE provider also supports these DH crypto services and may be chosen instead. The DH mechanisms can be re-enabled by removing them from the "disabledMechanisms" section of the configuration file. However, please note that the DHParameterSpec object for any generated DH key pair will always have its optional L value (the private value length) set to 0.

hotspot/runtime
 Bug Reporting URL Protocol Switched to HTTPS (JDK-8353660)

The bug reporting URL that users are directed to as a result of crashes has been updated to use the HTTPS protocol, rather than the HTTP protocol. The old bug reporting URL, http://bugreport.java.com/bugreport/crash.jsp, already redirects to https://, so this change should have no impact on users reporting bugs.

security-libs/javax.crypto:pkcs11
 Disable CKM_TLS_KEY_AND_MAC_DERIVE Mechanism in Solaris PKCS11 Configuration File (JDK-8245618)

On Solaris, the CKM_TLS_KEY_AND_MAC_DERIVE mechanism offered by the SunPKCS11-Solaris provider and specific to TLSv1.0, can derive incorrect key data causing TLSv1.0 communication failure. That mechanism has been disabled via the $JAVA_HOME/conf/security/sunpkcs11-solaris.cfg configuration file. The JCE provider now manages these cryptographic requests.

core-libs/java.util:i18n
 Support for CLDR version 37 (JDK-8239480)

Locale data based on Unicode Consortium's CLDR has been upgraded to their version 37. For the detailed locale data changes, please refer to the Unicode Consortium's CLDR release notes:

security-libs/javax.net.ssl
 Improved Logging Behavior for javax.net.debug=ssl JSSE Debug Property (JDK-8350582)

The logging behavior of the TLS javax.net.debug system property has been improved in this release. The javax.net.debug property is used to generate TLS debug logs from the default JSSE provider. Previously, using the ssl option via -Djavax.net.debug=ssl produced very limited output, which reduced its usefulness for troubleshooting.

With this update, setting -Djavax.net.debug=ssl now enables comprehensive SSL debug logging, except for the data, packet, and plaintext sub-options. Applications using this option will now see significantly more detailed debug information in logs.

 

Changes in Java SE 8u471-Perf

Bug Fixes

JDK 8u471 Enterprise Performance Pack includes the following fixes from JDK 17:
# BugId Component Summary
1JDK-8313619hotspot/compilerTestIntrinsicsRegStress.java fails on SPARC
2JDK-8252482hotspot/compilerdisable cbcond instructions on SPARC64
3JDK-8245087hotspot/gcUse ratios instead of percentages in G1HeapSizingPolicy::expansion_amount
4JDK-8244817hotspot/gcAdd configuration logging similar to ZGCs to other GCs
5JDK-8245088hotspot/gcAlways provide logs for G1 heap expansion calculations
6JDK-8245086hotspot/gcG1: Rename measured pause time ratios
7JDK-8364258hotspot/jfrThreadGroup constant pool serialization is not normalized
8JDK-8227559hotspot/jfrJFR: Slow dump with path-to-gc-roots=true
9JDK-8245120hotspot/jfrJFR: Parser unable to return typed version
10JDK-8238592hotspot/jfrJFR: Crash when dumping paths to gc roots on deep heaps
11JDK-8297106hotspot/runtimeRemove the -Xcheck:jni local reference capacity checking
12JDK-8245594hotspot/runtimeRemove volatile-qualified member functions and parameters from oop class
13JDK-8291763hotspot/runtimeInclude virtualization information in hs_err crash log on Solaris
14JDK-8245521hotspot/runtimeRemove STACK_BIAS
15JDK-8243392hotspot/runtimeRemodel CDS/Metaspace storage reservation
16JDK-8263407hotspot/runtimeSPARC64 detection fails on Athena (SPARC64-X)
17JDK-8263004hotspot/runtimeSPARC CodeBuffer overflow in generate_satb_log_enqueue
18JDK-8338154hotspot/testFix -Wzero-as-null-pointer-constant warnings in gtest framework

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

The following sections summarize changes made in all Java SE 8u471 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 8u471 b50

Bug Fixes

Release date: October 21, 2025
BugId Category Subcategory Summary
JDK-8360270 javafx web Websocket communication issues with Vaadin applications through webview
JDK-8357269 javafx web WebView: Update Public Suffix List to 823beb1
JDK-8356982 javafx web Update WebKit to 622.1
JDK-8354940 javafx web Fail to sign in to Microsoft sites with WebView
JDK-8328684 javafx web HellowWebView demo crashes when a webpage is scrolled

Java™ SE Development Kit 8, Update 471 (JDK 8u471)

Release date: October 21, 2025

The full version string for this update release is 1.8.0_471-b09 (where "b" means "build"). The version number is 8u471. This JDK conforms to version 8.6 of the Java SE Specification (JSR 337 MR 6 2024-07-02).

 

IANA TZ Data 2025b

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

 

Security Baselines

The security baselines for the Java Runtime at the time of the release of JDK 8u471 are specified in the following table:

Java Family Version Security Baseline (Full Version String)
81.8.0_471-b09

 

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 8u471) be used after the next critical patch update scheduled for January 20, 2026.

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.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 8u471) on 2026-02-20. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version. For more information, see 23.1.2 JRE Expiration Date in the Java Platform, Standard Edition Deployment Guide.

 

New Features

security-libs/javax.net.ssl
 Mechanism to Disable Signature Schemes Based on Their TLS Scope (JDK-8349583)

TLS protocol specific usage constraints are now supported by the jdk.tls.disabledAlgorithms property in the java.security configuration file, as follows:

UsageConstraint:

    usage UsageType { UsageType }

UsageType:
    HandshakeSignature | CertificateSignature

HandshakeSignature restricts the use of an algorithm in TLS handshake signatures. CertificateSignature restricts the use of an algorithm in certificate signatures. An algorithm with this constraint cannot include other usage types defined in the jdk.certpath.disabledAlgorithms property. The usage type follows the keyword and more than one usage type can be specified with a whitespace delimiter.

security-libs/javax.net.ssl
 Mechanism to Disable TLS Cipher Suites by Pattern Matching (JDK-8341964)

TLS cipher suites can be disabled with the jdk.tls.disabledAlgorithms security property in the java.security configuration file using one or more * wildcard characters. For example, "TLS_RSA_*" disables all cipher suites that start with "TLS_RSA_". Only cipher suites starting with "TLS_" are allowed to have wildcard characters.

security-libs/java.security
 Thread and Timestamp Options for java.security.debug System Property (JDK-8051959)

The java.security.debug system property now accepts arguments which add thread ID, thread name, caller information, and timestamp information to debug statements for all components or a specific component.

+timestamp can be appended to debug options to print a timestamp for that debug option. +thread can be appended to debug options to print thread and caller information for that debug option.

Examples: -Djava.security.debug=all+timestamp+thread adds timestamp and thread information to every debug statement generated.

-Djava.security.debug=properties+timestamp adds timestamp information to every debug statement generated for the properties component.

You can also specify -Djava.security.debug=help which will display a complete list of supported components and arguments.

See Printing Thread and Timestamp Information for more information.

security-libs/javax.xml.crypto
 Update XML Security for Java to 3.0.5 (JDK-8344137)

The XML Signature implementation has been updated to Santuario 3.0.5. Support for four new SHA-3 based ECDSA SignatureMethod algorithms have been added: SignatureMethod.ECDSA_SHA3_224, SignatureMethod.ECDSA_SHA3_256, SignatureMethod.ECDSA_SHA3_384, and SignatureMethod.ECDSA_SHA3_512.

 

Known Issues

client-libs/java.awt
 UI Rendering and Input Issues with Java Applications on Solaris 11.4 (JDK-8365438 (not public))

On Solaris 11.4, Java applications may experience user interface (UI) issues, such as:

  • Frame title bars not displaying correctly
  • Mouse events not being delivered to the application

Workaround:
To resolve these issues, add the following line to the /usr/bin/gnome-session file:

export GSK_RENDERER=cairo

After making this change, restart gdm and vncserver for the update to take effect.

A permanent fix will be included in Solaris SRU 87.

core-libs/java.net
 Datagram Packet Loss on macOS 26 and macOS 15.6 and Above (JDK-8368741)

When IPv6 is enabled, the JDK uses dual stack IPv4/IPv6 sockets by default. Binding, connecting, or sending datagrams uses IPv4-mapped IPv6 addresses in this case.

On some hosts running macOS version 15.6.x and above, and macOS 26, it has been observed that when a datagram socket bound to a IPv4 mapped IPv6 address sends a packet, either using the java.net.DatagramSocket or java.nio.channels.DatagramChannel APIs, then the first packet is lost and never gets delivered. A second invocation of send on the same socket, even to the same destination address, correctly delivers the packet and it is received by the recipient.

A bug has been filed with Apple (feedback issue id FB20302424) seeking their assistance. The issue is currently unresolved.

Until the issue is resolved, there are a couple of workarounds that applications can consider:

  • If using IPv4 is acceptable, then the java command can be launched with -Djava.net.preferIPv4Stack=true to use IPv4 sockets by default.
  • If using -Djava.net.preferIPv4Stack=true is not acceptable, a more local workaround can be applied by changing the application code to create a java.nio.channels.DatagramChannel with java.net.StandardProtocolFamily.INET as the protocol family and then bind the channel to a IPv4 address.

 

Removed Features and Options

security-libs/java.security
 Removed Four AffirmTrust Root Certificates (JDK-8361212)

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

+ alias name "affirmtrustcommercialca [jdk]"

  Distinguished Name: CN=AffirmTrust Commercial, O=AffirmTrust, C=US

+ alias name "affirmtrustnetworkingca [jdk]"
  Distinguished Name: CN=AffirmTrust Networking, O=AffirmTrust, C=US

+ alias name "affirmtrustpremiumca [jdk]"
  Distinguished Name: CN=AffirmTrust Premium, O=AffirmTrust, C=US

+ alias name "affirmtrustpremiumeccca [jdk]"
  Distinguished Name: CN=AffirmTrust Premium ECC, O=AffirmTrust, C=US

 

Other Notes

install/install
 Use systemd Instead of init for jexec (JDK-8355072 (not public))

Linux RPM JDK installers now use systemd instead of init to manage the automatic jar file execution (jexec) service.

core-libs/javax.naming
 Introduce LDAP and RMI Protocol Specific Object Factory Filters to JNDI Implementation (JDK-8290368)

In this release, new system and security properties are introduced to allow more granular control over the set of JNDI object factories allowed to reconstruct Java objects from JNDI/LDAP and JNDI/RMI contexts:

  • The new jdk.jndi.ldap.object.factoriesFilter property specifies which object factory classes are allowed to instantiate Java objects from object references returned by JNDI/LDAP contexts. By default, only object factories defined with the setting of the property 'jdk.jndi.ldap.object.factoriesFilter=com.sun.jndi.ldap.**;!*' are allowed.

  • The new jdk.jndi.rmi.object.factoriesFilter property specifies which object factory classes are allowed to instantiate Java objects from object references returned by JNDI/RMI contexts. By default, only object factories defined with the setting of the property jdk.jndi.rmi.object.factoriesFilter=com.sun.jndi.rmi.**;!* are allowed.

These new factory filter properties complement the jdk.jndi.object.factoriesFilter global factories filter property by determining if a specific object factory is permitted to instantiate objects for the LDAP or RMI protocols used in JNDI.

An application depending on custom object factories to recreate Java objects from JNDI/LDAP or JNDI/RMI contexts will need to supply a security or system property with an updated value to allow such third-party object factories to reconstruct LDAP or RMI objects. If usage of a factory is denied, the lookup operation may result in a plain instance of javax.naming.Reference instance returned, which may lead to a ClassCastException being thrown in the application.

core-svc/tools
 Attach in Linux Should Be Relative to /proc/pid/root and Namespace Aware (JDK-8362242)

The HotSpot runtime code in the JDK has been updated in order for diagnostic commands like jcmd and jstack be able to attach to JVM processes running in a container.

hotspot/runtime
 Bug Reporting URL Protocol Switched to HTTPS (JDK-8353660)

The bug reporting URL that users are directed to as a result of crashes has been updated to use the HTTPS protocol, rather than the HTTP protocol. The old bug reporting URL, http://bugreport.java.com/bugreport/crash.jsp, already redirects to https://, so this change should have no impact on users reporting bugs.

hotspot/runtime
 Print 'rss' and 'cache' As Part of the Container Information (JDK-8313083)

The HotSpot runtime code has been updated to additionally print a container's 'rss' and 'cache'. The additional output can be found in the JVM's response to a "jcmd [PID] VM.info" request and in the hs_err file generated in case of JVM abrupt termination.

This will help monitoring and troubleshooting OutOfMemory situations as OOM killer can terminate a process if its rss + cache usage reaches the max memory limit of the container.

tools/launcher
 Disable "best-fit" Mapping on Windows Command Line (JDK-8337506)

Command line arguments to the Java launcher are no longer converted with Windows' "best-fit" mapping when the arguments include unmappable characters for the ANSI code page. This mapping has been intervening in the Java launcher's argument parsing. Unmappable characters are now replaced with the default replacement character, such as '?' in some cases. For rare cases, where applications need those unmappable characters on the command line, select UTF-8 in Windows Regional Settings.

xml/jaxp
 FEATURE_SECURE_PROCESSING for XPath (JDK-8356294 (not public))

The JDK XPath implementation now supports External Access Properties. It also enables restriction through these properties when secure processing is set to true explicitly. To secure an XPath processor against risky evaluation of external DTD references, enable secure processing as demonstrated in the following code:

XPathFactory xf = XPathFactory.newInstance();
xf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);


This process will cause the XPath processor created via the factory to throw XPathExpressionException if used to evaluate a raw XML document that contains external references such as an external DTD.

Mitigation includes using the External Access Properties to override that enabled by FSP. For example, the following setting will allow the process to continue when there is a reference to a file-based external DTD in the XML document:

xf.setProperty(ACCESS_EXTERNAL_DTD, "file");


It is recommended that applications use the XPath processor to evaluate DOM rather than raw XML documents.

security-libs/javax.net.ssl
 Improved Logging Behavior for javax.net.debug=ssl JSSE Debug Property (JDK-8350582)

The logging behavior of the TLS javax.net.debug system property has been improved in this release. The javax.net.debug property is used to generate TLS debug logs from the default JSSE provider. Previously, using the ssl option via -Djavax.net.debug=ssl produced very limited output, which reduced its usefulness for troubleshooting.

With this update, setting -Djavax.net.debug=ssl now enables comprehensive SSL debug logging, except for the data, packet, and plaintext sub-options. Applications using this option will now see significantly more detailed debug information in logs.

 

Bug Fixes

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

The following table lists the bug fixes included in the JDK 8u471 release:

# BugId Component Summary
1JDK-8280991client-libs/java.awt[XWayland] No displayChanged event after setDisplayMode call
2JDK-8076313client-libs/java.awtGraphicsEnvironment does not detect changes in count of monitors on Linux OS
3JDK-8358452client-libs/java.awtJNI exception pending in Java_sun_awt_screencast_ScreencastHelper_remoteDesktopKeyImpl of screencast_pipewire.c:1214 (ID: 51119)
4JDK-8360647client-libs/java.awt[XWayland] [OL10] NumPad keys are not triggered
5JDK-8351907client-libs/java.awt[XWayland] [OL10] Robot.mousePress() is delivered to wrong place
6JDK-8345728client-libs/javax.accessibility[Accessibility,macOS,Screen Magnifier]: JCheckbox unchecked state does not magnify but works for checked state
7JDK-8348936client-libs/javax.accessibility[Accessibility,macOS,VoiceOver] VoiceOver doesn't announce untick on toggling the checkbox with "space" key on macOS
8JDK-8341311client-libs/javax.accessibility[Accessibility,macOS,VoiceOver] VoiceOver announces incorrect number of items in submenu of JPopupMenu
9JDK-8365375client-libs/javax.swingMethod SU3.setAcceleratorSelectionForeground assigns to acceleratorForeground
10JDK-8348760client-libs/javax.swingRadioButton is not shown if JRadioButtonMenuItem is rendered with ImageIcon in WindowsLookAndFeel
11JDK-8343804core-libs/java.util:i18nShow the default time zone with -XshowSettings option
12JDK-8368308core-libs/java.util:i18nISO 4217 Amendment 180 Update - Bulgaria Adopts the Euro in 2026
13JDK-8152589core-svc/java.lang.managementjava/lang/management/ThreadMXBean/Locks.java fails intermittently, blocked on wrong object
14JDK-8179498core-svc/toolsattach in linux should be relative to /proc/pid/root and namespace aware
15JDK-8361537docs/guidesUpdate the JAXP section of the Guide
16JDK-8357105hotspot/compilerC2: compilation fails with "assert(false) failed: empty program detected during loop optimization"
17JDK-8164921hotspot/jvmtiMemory leaked when instrumentation.retransformClasses() is called repeatedly
18JDK-8300658hotspot/runtimememory_and_swap_limit() reporting wrong values on systems with swapaccount=0
19JDK-8360543install/uninstallModify option for JDK in appwiz.cpl failed with the error
20JDK-8350582security-libs/javax.net.sslCorrect the parsing of the ssl value in javax.net.debug
21JDK-8355779security-libs/javax.net.sslWhen no "signature_algorithms_cert" extension is present we do not apply certificate scope constraints to algorithms in "signature_algorithms" extension
22JDK-8350807security-libs/javax.net.sslCertificates using MD5 algorithm that are disabled by default are incorrectly allowed in TLSv1.3 when re-enabled

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

The following sections summarize changes made in all Java SE 8u461 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 8u461 b50

Bug Fixes

Release date: July 15, 2025
BugId Category Subcategory Summary
JDK-8354876 javafx web Update SQLite to 3.49.1
JDK-8352164 javafx web Update libxslt to 1.1.43
JDK-8352162 javafx web Update libxml2 to 2.13.8
JDK-8351653 javafx web Webkit debug build failure after update to 620.1

 

Changes in Java SE 8u461 b32

Bug Fixes

Release date: July 15, 2025
BugId Category Subcategory Summary
JDK-8360926 (not public) install install JDK8 RPM installer installs with an error message
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 8, Update 461 Enterprise Performance Pack (JDK 8u461-PERF)

Release date: July 15, 2025

The full version string for this update release is 1.8.0_461-perf-b12 (where "b" means "build"). The version number is 1.8.0_461-perf.

 

IANA TZ Data 2025b

JDK 8u461 contains IANA time zone data 2025b which contains the following changes since the previous update.

  • 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 at the time of the release of JDK 8u461 are specified in the following table:

Java Family Version Security Baseline (Full Version String)
81.8.0_461-perf-b12

 

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 8u461) 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.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 8u461) on 2025-11-21. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version. For more information, see 23.1.2 JRE Expiration Date in the Java Platform, Standard Edition Deployment Guide.

 

Removed Features

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

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

 

Other Notes

install/install
 Sign OTN 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.

 

Changes in Java SE 8u461-Perf

Bug Fixes

JDK 8u461 Enterprise Performance Pack includes the following fixes from JDK 17:
# BugId Component Summary
1JDK-8345296hotspot/compilerAArch64: VM crashes with SIGILL when prctl is disallowed
2JDK-8339148hotspot/runtimeMake os::Linux::active_processor_count() public
3JDK-8300645hotspot/runtimeHandle julong values in logging of GET_CONTAINER_INFO macros
4JDK-8300658hotspot/runtimememory_and_swap_limit() reporting wrong values on systems with swapaccount=0

Java™ SE Development Kit 8, Update 461 (JDK 8u461)

Release date: July 15, 2025

The full version string for this update release is 1.8.0_461-b11 (where "b" means "build"). The version number is 8u461. This JDK conforms to version 8.6 of the Java SE Specification (JSR 337 MR 6 2024-07-02).

 

IANA TZ Data 2025b

JDK 8u461 contains IANA time zone data 2025b which contains the following changes since the previous update.

  • 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 at the time of the release of JDK 8u461 are specified in the following table:

Java Family Version Security Baseline (Full Version String)
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 8u461) 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.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 8u461) on 2025-11-21. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version. For more information, see 23.1.2 JRE Expiration Date in the Java Platform, Standard Edition Deployment Guide.

 

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.

install/uninstall
 The Java Uninstall Tool Will Repair the Windows Registry (JDK-8343761 (not public))

There are some scenarios where upgrading from a JRE version 8u361 or below to a newer JRE version of Java 8 may break some of the Windows registry keys for the Java Runtime Environment. The Java Uninstall Tool will repair such situations, regardless if a JRE is selected for uninstall or not.

client-libs/2d
 Usage of FreeType Library on Linux and Solaris Platforms (JDK-8350323 (not public))

The latest Gnome update installs the Cantarell font, an OpenType font with CFF2 table, as the default in the latest Red Hat, SLES, and Solaris platforms. However, the T2K rendering engine used in JDK 8 does not support OpenType CFF2 fonts. As a result, when using the GTK look and feel, none of the text renders with the Cantarell font.

Starting from JDK 8u461, the Java runtime utilizes the FreeType library installed on the end-user’s system to render certain fonts, such as Cantarell. Due to this modification, installing libfreetype.so.6 may be necessary.

core-libs/javax.naming
 Update Default Value of com.sun.jndi.ldap.object.trustSerialData System Property (JDK-8290367)

In this release, the JDK implementation of the LDAP provider no longer supports deserialization of Java objects by default:

  • The default value of the com.sun.jndi.ldap.object.trustSerialData system property has been updated to false.

The transparent deserialization of Java objects from an LDAP context will now require an explicit opt-in. Applications that rely on reconstruction of Java objects or RMI stubs from the LDAP attributes would need to set the com.sun.jndi.ldap.object.trustSerialData system property to true.

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.

xml/javax.xml.parsers
 Change DOM Parser to Not Resolve EntityReference and Add Text Node with DocumentBuilderFactory.setExpandEntityReferences(false) (JDK-8206132)

The implementation of the ExpandEntityReferences feature was changed to comply with the specification of the DocumentBuilderFactory.setExpandEntityReferences method. Now, when the method is set to false and encounters an entity reference, a DOM parser created by the DocumentBuilderFactory adds the EntityReference node to the DOM tree without the expanded Text node. Before the change, the implementation incorrectly added both nodes.

With the change, the DOM parser no longer reads and resolves entity references when the feature ExpandEntityReferences is set to false. For applications that intend to avoid resolving entity references, it will work as expected.

This change also affects the DOM Load and Save parser. The entities parameter is aligned with the ExpandEntityReferences feature, so that setting the entities parameter to true is equivalent to setting ExpandEntityReferences to false. In the following code snippet, the document will contain EntityReference nodes but not expanded Text nodes:

        LSParser domParser = domImplementationLS.createLSParser(MODE_SYNCHRONOUS, null);

        domParser.getDomConfig().setParameter("entities", true);
        LSInput src = domImplementationLS.createLSInput();
        src.setStringData(source);
        Document document = domParser.parse(src);

Because the references are not resolved, the resulting string will contain entity references without the text when the document is serialized:

        LSSerializer lsSerializer = domImplementationLS.createLSSerializer();

        lsSerializer.getDomConfig().setParameter("format-pretty-print", true);
        String result = lsSerializer.writeToString(document);

 

Bug Fixes

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

The following table lists the bug fixes included in the JDK 8u461 release:

# BugId Component Summary
1JDK-8348600client-libs/java.awtUpdate PipeWire to 1.3.81
2JDK-8348598client-libs/java.awtUpdate Libpng to 1.6.47
3JDK-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
4JDK-8347911client-libs/javax.imageioLimit the length of inflated text chunks
5JDK-8224267client-libs/javax.swingJOptionPane message string with 5000+ newlines produces StackOverflowError
6JDK-8318915core-libs/java.mathEnhance checks in BigDecimal.toPlainString()
7JDK-8344589core-libs/java.util:i18nUpdate IANA Language Subtag Registry to Version 2024-11-19
8JDK-7102969core-libs/java.util:i18ncurrency.properties supercede not working correctly
9JDK-8356096core-libs/java.util:i18nISO 4217 Amendment 179 Update
10JDK-8299858core-svc/java.lang.management[Metrics] Swap memory limit reported incorrectly when too large
11JDK-8300659core-svc/java.lang.managementRefactor TestMemoryAwareness to use WhiteBox api for host values
12JDK-8297173core-svc/java.lang.managementusageTicks and totalTicks should be volatile to ensure that different threads get the latest ticks
13JDK-8356750deploy/deployment_toolkitJava 8 About Dialog in JCP shows http://www.java.com instead of https://www.java.com
14JDK-8138922hotspot/compilerStubCodeDesc constructor publishes partially-constructed objects on StubCodeDesc::_list
15JDK-8149918hotspot/compilerCPUIDBrandString stub is generated on demand
16JDK-8182169hotspot/gcArrayAllocator should take MEMFLAGS as regular parameter
17JDK-8176571hotspot/gcFine bitmaps should be allocated as belonging to mtGC, not mtInternal
18JDK-8055818hotspot/gcRemove PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC from g1BlockOffsetTable.cpp
19JDK-8287007hotspot/runtime[cgroups] Consistently use stringStream throughout parsing code
20JDK-8224193hotspot/runtimestringStream should not use Resource Area
21JDK-8037842hotspot/runtimeFailing to allocate MethodCounters and MDO causes a serious performance drop
22JDK-8152849hotspot/runtimeshare/vm/runtime/mutex.cpp:1161 assert(((uintptr_t(_owner))|(uintptr_t(_LockWord.FullWord))|(uintptr_t(_EntryList))|(uintptr_t(_WaitSet))|(uintptr_t(_OnDeck))) == 0) failed
23JDK-8339148hotspot/runtimeMake os::Linux::active_processor_count() public
24JDK-8300645hotspot/runtimeHandle julong values in logging of GET_CONTAINER_INFO macros

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

The following sections summarize changes made in all Java SE 8u451 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 8u451 b50

Bug Fixes

Release date: April 15, 2025
BugId Category Subcategory Summary
JDK-8353916 javafx web Unexpected event type for DOM mutation events with WebKit 620.1
JDK-8351264 javafx web Some images don't load with WebKit 620.1
JDK-8350284 javafx web WebKit 620.1 crashes on startup on Windows x86 32-bit
JDK-8349924 javafx web Additional WebKit 620.1 fixes from WebKitGTK 2.46.6
JDK-8347937 javafx web Canvas pattern test fails and crashes on WebKit 620.1
JDK-8346229 javafx media Update Glib to 2.82.4
JDK-8346228 javafx media Update GStreamer to 1.24.10
JDK-8340322 javafx web Update WebKit to 620.1

 

Changes in Java SE 8u451 b33

Bug Fixes

Release date: May 2, 2025
BugId Category Subcategory Summary
JDK-8353868 install install [macos] Logs no longer appear in /var/log/system.log
JDK-8351906 (not public) install install JDK 8 rpm GPG key encrypted with deprecated SHA1

 

Changes in Java SE 8u451 b32

Bug Fixes

Release date: April 15, 2025

Fixes from the prior BPR are included in this version.


Java SE 8u451 Enterprise Performance Pack (EPP) Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 8u451 EPP 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 8u451-perf b31

Bug Fixes

Release date: June 13, 2025
BugId Category Subcategory Summary
JDK-8357105 hotspot compiler C2: compilation fails with "assert(false) failed: empty program detected during loop optimization"

Java™ SE Development Kit 8, Update 451 Enterprise Performance Pack (JDK 8u451-PERF)

Release date: April 15, 2025

The full version string for this update release is 1.8.0_451-perf-b09 (where "b" means "build"). The version number is 1.8.0_451-perf.

 

IANA TZ Data 2025a

JDK 8u451 contains IANA time zone data 2025a which contains the following changes since the previous update.

  • Paraguay adopts permanent -03 starting spring 2024.
  • Improve pre-1991 data for the Philippines.
  • Etc/Unknown is now reserved.

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

 

Security Baselines

The security baselines for the Java Runtime at the time of the release of JDK 8u451 are specified in the following table:

Java Family Version Security Baseline (Full Version String)
81.8.0_451-perf-b09

 

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 8u451) be used after the next critical patch update scheduled for July 15, 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.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 8u451) on 2025-08-15. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version. For more information, see 23.1.2 JRE Expiration Date in the Java Platform, Standard Edition Deployment Guide.

 

New Features

security-libs/javax.crypto:pkcs11
 Legacy Mechanism Check in SunPKCS11 Provider Is Enhanced with Service Type (JDK-8293345)

Native PKCS11 mechanisms which support decryption but not encryption, or signature verification but not signing, are considered legacy and are disabled by default. The legacy mechanism check in SunPKCS11 provider is enhanced with the service type. For example, prior to this fix, a mechanism supporting encryption, decryption, and verification but not signing, is considered legacy and can't be used at all. After this fix, the corresponding Cipher service using this mechanism is available since both encryption and decryption are supported. However, the corresponding Signature service is not since only verification is supported. To bypass the legacy mechanism check, set the PKCS11 provider configuration attribute "allowLegacy" to true. The default value is false. Note that it is the caller's responsibility to make sure the legacy mechanism is not used for the unsupported functionality.

 

Other Notes

hotspot/runtime
 The JNI_GetCreatedJavaVMs Method Will Now Only Return a Fully Initialized VM (JDK-8308341)

In prior releases, JNI_GetCreatedJavaVMs:

jint JNI_GetCreatedJavaVMs(JavaVM **vmBuf, jsize bufLen, jsize *nVMs);

could return a JavaVM, via the vmBuf array, that was still in the process of being initialized and may not be ready for use. This has now changed so that it will only return fully initialized VMs. It is important that the programmer checks that the returned number of VMs, in nVMs, is greater than zero, before trying to use any vmBuf entries.

security-libs/javax.security
 Fallback Option for POST-only OCSP Requests (JDK-8328638)

JDK 17 introduced a performance improvement that made OCSP clients unconditionally use GET requests for small requests, while doing POST requests for everything else. This is explicitly allowed and recommended by RFC 5019 and RFC 6960. However, we have seen OCSP responders that, despite RFC requirements, are not working well with GET requests.

This release introduces a new JDK system property to allow clients to fallback to POST-only behavior. This unblocks interactions with those OCSP responders through the use of -Dcom.sun.security.ocsp.useget={false,true}. This amends the original change that introduced GET OCSP requests (JDK-8179503). The default behavior is not changed; the option defaults to true. Set the option to false to disable GET OCSP requests. Any value other than false (case-insensitive) defaults to true.

This option is non-standard, and might go away once problematic OCSP responders get upgraded.

 

Changes in Java SE 8u451-Perf

Bug Fixes

JDK 8u451 Enterprise Performance Pack includes the following fixes from JDK 17:
# BugId Component Summary
1JDK-8338100hotspot/compilerC2: assert(!n_loop->is_member(get_loop(lca))) failed: control must not be back in the loop
2JDK-8269516hotspot/compilerAArch64: Assembler cleanups
3JDK-8325937hotspot/runtimeruntime/handshake/HandshakeDirectTest.java causes "monitor end should be strictly below the frame pointer" assertion failure on AArch64
4JDK-8344145hotspot/testRemove windows_x64_1803_or_later and it's usages in task definitions

Java™ SE Development Kit 8, Update 451 (JDK 8u451)

Release date: April 15, 2025

The full version string for this update release is 1.8.0_451-b10 (where "b" means "build"). The version number is 8u451. This JDK conforms to version 8.6 of the Java SE Specification (JSR 337 MR 6 2024-07-02).

 

IANA TZ Data 2025a

JDK 8u451 contains IANA time zone data 2025a which contains the following changes since the previous update.

  • Paraguay adopts permanent -03 starting spring 2024.
  • Improve pre-1991 data for the Philippines.
  • Etc/Unknown is now reserved.

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

 

Security Baselines

The security baselines for the Java Runtime at the time of the release of JDK 8u451 are specified in the following table:

Java Family Version Security Baseline (Full Version String)
81.8.0_451-b10

 

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 8u451) be used after the next critical patch update scheduled for July 15, 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.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 8u451) on 2025-08-15. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version. For more information, see 23.1.2 JRE Expiration Date in the Java Platform, Standard Edition Deployment Guide.

 

New Features

security-libs/javax.crypto:pkcs11
 Legacy Mechanism Check in SunPKCS11 Provider Is Enhanced with Service Type (JDK-8293345)

Native PKCS11 mechanisms which support decryption but not encryption, or signature verification but not signing, are considered legacy and are disabled by default. The legacy mechanism check in SunPKCS11 provider is enhanced with the service type. For example, prior to this fix, a mechanism supporting encryption, decryption, and verification but not signing, is considered legacy and can't be used at all. After this fix, the corresponding Cipher service using this mechanism is available since both encryption and decryption are supported. However, the corresponding Signature service is not since only verification is supported. To bypass the legacy mechanism check, set the PKCS11 provider configuration attribute "allowLegacy" to true. The default value is false. Note that it is the caller's responsibility to make sure the legacy mechanism is not used for the unsupported functionality.

 

Other Notes

javafx/other
 Removal of JavaFX from Oracle JDK 8 (JDK-8341994 (not public))

As announced in 2020, support for JavaFX on JDK 8, the last commercially supported version of JavaFX from Oracle, ended in March 2025. JDK 8 update 451 is the first upgrade of JDK/JRE 8 without JavaFX. Oracle continues to develop and release JavaFX as stand-alone modules via the OpenJFX project for the latest versions of Java only. For more details see the Java SE Spring 2024 Roadmap Update. Please contact Oracle Sales if you have any additional needs.

security-libs/javax.net.ssl
 Distrust TLS Server Certificates Anchored by Camerfirma Root Certificates and Issued After April 15, 2025 (JDK-8346587)

The JDK will stop trusting TLS server certificates issued after April 15, 2025 and anchored by Camerfirma root certificates, in line with similar plans announced by Google, Mozilla, Apple, and Microsoft.

TLS server certificates issued on or before April 15, 2025 will continue to be trusted until they expire. Certificates issued after that date, and anchored by any of the Certificate Authorities in the table below, will be rejected.

The restrictions are enforced in the JDK implementation (the SunJSSE Provider) of the Java Secure Socket Extension (JSSE) API. A TLS session will not be negotiated if the server's certificate chain is anchored by any of the Certificate Authorities in the table below and the certificate has been issued after April 15, 2025.

An application will receive an exception with a message indicating the trust anchor is not trusted, for example:

"TLS Server certificate issued after 2025-04-15 and anchored by a distrusted legacy

Camerfirma root CA: CN=Chambers of Commerce Root - 2008, O=AC Camerfirma S.A., 
SERIALNUMBER=A82743287, L=Madrid (see current address at www.camerfirma.com/address), C=EU"

The JDK can be configured to trust these certificates again by removing "CAMERFIRMA_TLS" from the jdk.security.caDistrustPolicies security property in the java.security configuration file.

The restrictions are imposed on the following Camerfirma Root certificates included in the JDK:

Root Certificates distrusted after 2025-04-15
Distinguished Name SHA-256 Fingerprint
CN=Chambers of Commerce Root, OU=http://www.chambersign.org, O=AC Camerfirma SA CIF A82743287, C=EU

0C:25:8A:12:A5:67:4A:EF:25:F2:8B:A7:DC:FA:EC:EE:A3:48:E5:41:E6:F5:CC:4E:E6:3B:71:B3:61:60:6A:C3

CN=Chambers of Commerce Root - 2008, O=AC Camerfirma S.A., SERIALNUMBER=A82743287, L=Madrid (see current address at www.camerfirma.com/address), C=EU

06:3E:4A:FA:C4:91:DF:D3:32:F3:08:9B:85:42:E9:46:17:D8:93:D7:FE:94:4E:10:A7:93:7E:E2:9D:96:93:C0

CN=Global Chambersign Root - 2008, O=AC Camerfirma S.A., SERIALNUMBER=A82743287, L=Madrid (see current address at www.camerfirma.com/address), C=EU

13:63:35:43:93:34:A7:69:80:16:A0:D3:24:DE:72:28:4E:07:9D:7B:52:20:BB:8F:BD:74:78:16:EE:BE:BA:CA

You can also use the keytool utility from the JDK to print out details of the certificate chain, as follows:

keytool -v -list -alias <your_server_alias> -keystore <your_keystore_filename>

If any of the certificates in the chain are issued by one of the root CAs in the table above are listed in the output you will need to update the certificate or contact the organization that manages the server.

core-svc/tools
 JarInputStream Treats Signed JARs with Multiple Manifests As Unsigned (JDK-8337494 (not public))

The JarInputStream class now treats a signed JAR as unsigned if it detects a second manifest within the first two entries in the JAR file. A warning message "WARNING: Multiple MANIFEST.MF found. Treat JAR file as unsigned." is logged if the system property, -Djava.security.debug=jar, is set.

security-libs/javax.crypto:pkcs11
 Disable CKM_TLS_KEY_AND_MAC_DERIVE Mechanism in Solaris PKCS11 Configuration File (JDK-8245618)

On Solaris, the CKM_TLS_KEY_AND_MAC_DERIVE mechanism offered by the SunPKCS11-Solaris provider and specific to TLSv1.0, can derive incorrect key data causing TLSv1.0 communication failure. That mechanism has been disabled via the $JAVA_HOME/jre/lib/security/sunpkcs11-solaris.cfg configuration file. The JCE provider now manages these cryptographic requests.

 

Bug Fixes

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

The following table lists the bug fixes included in the JDK 8u451 release:

# BugId Component Summary
1JDK-8231231client-libs/2dThe printing result is different from the case instruction.
2JDK-8061381client-libs/java.awt[macosx] Accelerators does not spelled for JMenuItems by Voice Over
3JDK-8312518client-libs/java.awt[macos13] setFullScreenWindow() shows black screen on macOS 13 & above
4JDK-8309733client-libs/javax.accessibility[macOS, Accessibility] VoiceOver: Incorrect announcements of JRadioButton
5JDK-8311160client-libs/javax.accessibility[macOS, Accessibility] VoiceOver: No announcements on JRadioButtonMenuItem and JCheckBoxMenuItem
6JDK-8283214client-libs/javax.accessibility[macos] Screen magnifier does not show the magnified text for JComboBox
7JDK-8283387client-libs/javax.accessibility[macos] a11y : Screen magnifier does not show selected Tab
8JDK-8339728client-libs/javax.accessibility[Accessibility,Windows,JAWS] Bug in the getKeyChar method of the AccessBridge class
9JDK-8332866client-libs/javax.imageioCrash in ImageIO JPEG decoding when MEM_STATS in enabled
10JDK-8237495client-libs/javax.soundJava MIDI fails with a dereferenced memory error when asked to send a raw 0xF7
11JDK-8301989client-libs/javax.swingnew javax.swing.text.DefaultCaret().setBlinkRate(N) results in NPE
12JDK-8031961core-libs/java.lang(process) java/lang/ProcessBuilder/Basic.java uses "cp -p" which is inefficient
13JDK-8190747core-libs/java.util.concurrentExecutorService/Invoke.java fails intermittently
14JDK-8202952hotspot/compilerC2: Unexpected dead nodes after matching
15JDK-8064779hotspot/runtimeAdd additional comments for "8062370: Various minor code improvements"
16JDK-8062370hotspot/runtimeVarious minor code improvements
17JDK-8173743hotspot/runtimeFailures during class definition can lead to memory leaks in metaspace
18JDK-8136577hotspot/runtimeMake AbortVMOnException available in product builds
19JDK-8331959security-libs/javax.crypto:pkcs11Update PKCS#11 Cryptographic Token Interface to v3.1
20JDK-8331958security-libs/javax.smartcardioUpdate PC/SC Lite for Suse Linux to 2.3.0
21JDK-8162363tools/javadoc(tool)Tables in javadoc documentation missing row headers

Java™ SE Development Kit 8, Update 441 Enterprise Performance Pack (JDK 8u441-PERF)

Release date: January 21, 2025

The full version string for this update release is 1.8.0_441-perf-b09 (where "b" means "build"). The version number is 1.8.0_441-perf.

 

IANA TZ Data 2024b

JDK 8u441 contains IANA time zone data 2024b which contains the following changes since the previous update.

  • Improve historical data for Mexico, Mongolia, and Portugal.
  • System V names are now obsolescent.
  • The main data form now uses %z.
  • The code now conforms to RFC 8536 for early timestamps.
  • Support POSIX.1-2024, which removes asctime_r and ctime_r.

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

 

Security Baselines

The security baselines for the Java Runtime at the time of the release of JDK 8u441 are specified in the following table:

Java Family Version Security Baseline (Full Version String)
81.8.0_441-perf-b09

 

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 8u441) be used after the next critical patch update scheduled for April 15, 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.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 8u441) on 2025-05-15. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version. For more information, see 23.1.2 JRE Expiration Date in the Java Platform, Standard Edition Deployment Guide.

 

Other Notes

core-svc/java.lang.management
 The ClassLoadingMXBean and MemoryMXBean isVerbose Methods Are Now Consistent with Their setVerbose Methods (JDK-8338139)

The ClassLoadingMXBean::setVerbose(boolean enabled) method will set class+load* logging on log output stdout to level info if enabled is true, and to level off otherwise. In contrast, the isVerbose method would check if exactly class+load logging was enabled at the info level on _any_ log output. This could result in counter-intuitive behavior when logging class+load=info to a file via the command-line, as it caused isVerbose to return true, even after a call to setVerbose(false) had been made. A similar problem existed for the MemoryMXBean::isVerbose method. Starting with this release, the behavior is as follows:

  • ClassLoadingMXBean::isVerbose will return true only if class+load* logging (note the wildcard use) has been enabled at the `info` level (or above) on the stdout log output.
  • MemoryMXBean::isVerbose will return true only if gc logging has been enabled at the info level (or above) on the stdout log output.

 

Changes in Java SE 8u441-Perf

Bug Fixes

JDK 8u441 Enterprise Performance Pack includes the following fixes from JDK 17:
# BugId Component Summary
1JDK-8337066hotspot/compilerRepeated call of StringBuffer.reverse with double byte string returns wrong result
2JDK-8335709hotspot/compilerC2: assert(!loop->is_member(get_loop(useblock))) failed: must be outside loop
3JDK-8315988hotspot/gcParallel: Make TestAggressiveHeap use createTestJvm
4JDK-8338389hotspot/jfr[JFR] Long strings should be added to the string pool
5JDK-8319818hotspot/runtimeAddress GCC 13.2.0 warnings (stringop-overflow and dangling-pointer)
6JDK-8340387hotspot/runtimeUpdate OS detection code to recognize Windows Server 2025
7JDK-8337410hotspot/testThe makefiles should set problemlist and adjust timeout basing on the given VM flags

Java™ SE Development Kit 8, Update 441 (JDK 8u441)

Release date: January 21, 2025

The full version string for this update release is 1.8.0_441-b07 (where "b" means "build"). The version number is 8u441. This JDK conforms to version 8.6 of the Java SE Specification (JSR 337 MR 6 2024-07-02).

 

IANA TZ Data 2024b

JDK 8u441 contains IANA time zone data 2024b which contains the following changes since the previous update.

  • Improve historical data for Mexico, Mongolia, and Portugal.
  • System V names are now obsolescent.
  • The main data form now uses %z.
  • The code now conforms to RFC 8536 for early timestamps.
  • Support POSIX.1-2024, which removes asctime_r and ctime_r.

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

 

Security Baselines

The security baselines for the Java Runtime at the time of the release of JDK 8u441 are specified in the following table:

Java Family Version Security Baseline (Full Version String)
81.8.0_441-b07

 

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 8u441) be used after the next critical patch update scheduled for April 15, 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.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 8u441) on 2025-05-15. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version. For more information, see 23.1.2 JRE Expiration Date in the Java Platform, Standard Edition Deployment Guide.

 

JavaFX Will No Longer Be Included in JDK/JRE 8

This release, JDK and JRE 8 update 441, is the last release to bundle JavaFX. As announced in 2020, support for JavaFX on JDK 8, the last commercially supported version of JavaFX from Oracle, will end in March 2025. Accordingly, JDK 8 update 441 is the last upgrade of JDK/JRE 8 with JavaFX. Oracle continues to develop and release JavaFX as stand-alone modules via the OpenJFX project for the latest versions of Java only. For more details see the Java SE Spring 2024 Roadmap Update. Please contact Oracle Sales if you have any additional needs.

 

Other Notes

core-libs/java.lang
 ProcessBuilder on Windows Quotes Argument Strings Containing Any Space Character (JDK-8335428 (not public))

On Windows, the ProcessBuilder has expanded the quoting of argument strings when starting a process to ensure they are recognized by the application as a single command argument. The set of space characters has been expanded from space (0x20) to include all space characters as defined by java.lang.Character.isSpaceChar, which includes all Unicode space separator characters, such as EN-SPACE (0x2002), and line separator and paragraph separator characters.

core-libs/java.time
 Support for Time Zone Database 2024b (JDK-8339637)

IANA Time Zone Database has been upgraded to 2024b. This version mainly includes changes to improve historical data for Mexico, Mongolia, and Portugal. It also changes one timestamp abbreviation, for the time zone 'MET'. Also Asia/Choibalsan is now an alias for Asia/Ulaanbaatar.

The new tzdata changes also impact some legacy time zone IDs. As per 2024b changes "EST" links to "America/Panama", "HST" links to "Pacific/Honolulu" and "MST" links to "America/Phoenix". To maintain compatibility with the Java SE specification, the java.time.ZoneId.SHORT_IDS Map has not changed. Further details are available at JDK-8342331

client-libs
 Installation Configuration Change in Java 8u441 (JDK-8357512)

Starting from 8u441, the JDK and JRE installation process has been updated, resulting in a change to how registry settings are configured.

Specifically, the registry key, HKEY_CURRENT_USER\SOFTWARE\JavaSoft\DeploymentProperties, is no longer created during a clean installation, such as when no previous Java versions are present.

This change impacts applications that previously relied on this key. Users may need to adjust their application configuration to account for the updated behavior.

 

Updates to Third Party Libraries

Library New Version Module JBS
Pipewire 0.3.68 java.desktop JDK-8280982
Sparkle 2.6.4 JDK-8342000 (not public)
GStreamer 1.24.6 javafx.media JDK-8336940
Glib 2.80.4 javafx.media JDK-8336939
libFFI 3.4.6 javafx.media JDK-8336938
libxslt 1.1.42 javafx.web JDK-8336941

 

Bug Fixes

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

The following table lists the bug fixes included in the JDK 8u441 release:

# BugId Component Summary
1JDK-8280993client-libs/java.awt[XWayland] Popup is not closed on click outside of area controlled by XWayland
2JDK-8309756client-libs/java.awt Occasional crashes with pipewire screen capture on Wayland
3JDK-8313697client-libs/java.awt[XWayland][Screencast] consequent getPixelColor calls are slow
4JDK-8331011client-libs/java.awt[XWayland] TokenStorage fails under Security Manager
5JDK-8321176client-libs/java.awt[Screencast] make a second attempt on screencast failure
6JDK-8280994client-libs/java.awt[XWayland] Drag and Drop does not work in java -> wayland app direction
7JDK-8158380client-libs/java.awt[macosx] Regression: java/awt/List/ActionEventTest/ActionEventTest.java
8JDK-8215921client-libs/java.awtThere is no change when select different Foreground and Background by mouse.
9JDK-8014503client-libs/java.awtAWT Choice implementation should be made consistent across platforms.
10JDK-8280982client-libs/java.awt[Wayland] [XWayland] java.awt.Robot taking screenshots
11JDK-8329667client-libs/javax.accessibility[macos] Issue with JTree related fix for JDK-8317771
12JDK-8319103client-libs/javax.swingPopups that request focus are not shown on Linux with Wayland
13JDK-8079841core-libs/java.util.jarBuffer underflow with empty zip entry names
14JDK-8219448hotspot/compilersplit-if update_uses accesses stale idom data
15JDK-8340387hotspot/runtimeUpdate OS detection code to recognize Windows Server 2025
16JDK-8338701javafx/mediaProvide media support for libavcodec version 61
17JDK-8337481javafx/webFile API: file.name contains path instead of name
18JDK-8340208javafx/webAdditional WebKit 619.1 fixes from WebKitGTK 2.44.4
19JDK-8334124javafx/webRendering issues with CSS "text-shadow" in WebView
20JDK-8328723security-libs/java.securityIP Address error when client enables HTTPS endpoint check on server socket

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

The following sections summarize changes made in all Java SE 8u431 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 8u431 b31

Bug Fixes

Release date: October 15, 2024
BugId Category Subcategory Summary
JDK-8215757 hotspot compiler C2: PhaseIdealLoop::create_new_if_for_predicate() computes wrong IDOM
JDK-8219448 hotspot compiler split-if update_uses accesses stale idom data

Java™ SE Development Kit 8, Update 431 Enterprise Performance Pack (JDK 8u431-PERF)

Release date: October 15, 2024

The full version string for this update release is 1.8.0_431-perf-b11 (where "b" means "build"). The version number is 1.8.0_431-perf.

 

IANA TZ Data 2024a

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

 

Security Baselines

The security baselines for the Java Runtime at the time of the release of JDK 8u431 are specified in the following table:

Java Family Version Security Baseline (Full Version String)
81.8.0_431-perf-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 8u431) be used after the next critical patch update scheduled for January 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.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 8u431) on 2025-02-21. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version. For more information, see 23.1.2 JRE Expiration Date in the Java Platform, Standard Edition Deployment Guide.

 

New Features

security-libs/java.security
 Thread and Timestamp Options for java.security.debug System Property (JDK-8051959)

The java.security.debug system property now accepts arguments which add thread ID, thread name, caller information, and timestamp information to debug statements for all components or a specific component.

+timestamp can be appended to debug options to print a timestamp for that debug option. +thread can be appended to debug options to print thread and caller information for that debug option.

Examples: -Djava.security.debug=all+timestamp+thread adds timestamp and thread information to every debug statement generated.

-Djava.security.debug=properties+timestamp adds timestamp information to every debug statement generated for the properties component.

You can also specify -Djava.security.debug=help which will display a complete list of supported components and arguments.

See Printing Thread and Timestamp Information for more information.

 

Notable Issues Fixed

install/install
 JDK RPM Upgrade Leaves Orphan Alternatives Entry (JDK-8336107 (not public))

Fixed the issue with entries in the "java" and "javac" groups not being properly managed during an RPM upgrade.

Upgrading from an older Java RPM installed into a shared directory (/usr/lib/jvm/jdk-${FEATURE}-oracle-${ARCH}) to a Java RPM installing into a version-specific directory (/usr/lib/jvm/jdk-${VERSION}-oracle-${ARCH}), results in the older Java entries in the "java" and "javac" groups not being deleted.

The issue does not manifest until the new Java is uninstalled. When it is uninstalled and Java from the lower release is installed, running Java commands like java or keytool without the full path specified will result in the "command not found" error. For example, install 21.0.3; upgrade it to 21.0.4; uninstall 21.0.4; install any Java update of 17 or 11 or 8 release; run "java" from the command line. The command will fail with the "command not found" error.

Manually delete orphan Java entries in the "java" and "javac" groups to workaround the issue.

 

Other Notes

security-libs/java.security
 Added SSL.com TLS Root CA Certificates Issued in 2022 (JDK-8341057)

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

+ SSL.com

  + ssltlsrootecc2022
    DN: CN=SSL.com TLS ECC Root CA 2022, O=SSL Corporation, C=US

+ SSL.com
  + ssltlsrootrsa2022
    DN: CN=SSL.com TLS RSA Root CA 2022, O=SSL Corporation, C=US

client-libs
 Relax the java.awt.Robot Specification (JDK-8307779)

This JDK release relaxes the specification of java.awt.Robot to account for possible platform and desktop environment access restrictions or limitations.

core-libs/java.text
 MessageFormat ArgumentIndex Now Has a Limit (JDK-8331446 (not public))

In the JDK, java.text.MessageFormat now has an implementation limit for the ArgumentIndex pattern element. The hard limit for the value is 10,000.

If an ArgumentIndex value is equal to or exceeds the upper limit, an IllegalArgumentException will now be thrown by

  • MessageFormats constructors
  • applyPattern(String pattern) instance method
  • format(String pattern, Object... arguments) static method

De-serializing a MessageFormat object with an ArgumentIndex value at or over the limit will throw an InvalidObjectException.

tools/launcher
 Available Locales Information Now Listed with -XshowSettings:locale Option (JDK-8310201)

The showSettings launcher option no longer prints available locales information by default, when -XshowSettings is used. The -XshowSettings:locale option will continue to print all settings related to available locales.

core-libs/java.net
 New Default Limits in the JDK HTTP Implementations (JDK-8328286 (not public))

New, default limits have been added to HTTP in the JDK.

The JDK built-in implementation of the URL protocol handler for HTTP (HttpURLConnection) now has a default limit on the maximum response headers size that will be accepted from a remote party. The limit is set by default at 384kB (393216 bytes) and is computed as the cumulative size of all header names and header values plus an overhead of 32 bytes per header name value pair.

The default value of the limit can be changed by specifying a positive value with the jdk.http.maxHeaderSize system property on the command line, or in the conf/net.properties file. A negative or zero value is interpreted as no limit. If the limit is exceeded, the request will fail with a protocol exception.

The JDK built-in implementation of the com.sun.net.httpserver.HttpServer implements a similar limit for the maximum request header size the server is prepared to accept. The HttpServer limit can be changed by specifying a positive value with the sun.net.httpserver.maxReqHeaderSize system property on the command line. A negative or zero value is interpreted as no limit. The limit is set by default at 384kB (393216 bytes) and the size is computed in the same way as explained above. If the limit is exceeded, the connection is closed.

 

Changes in Java SE 8u431-Perf

Bug Fixes

JDK 8u431 Enterprise Performance Pack includes the following fixes from JDK 17:
# BugId Component Summary
1JDK-8005885hotspot/compilerenhance PrintCodeCache to print more data
2JDK-8329126hotspot/compilerNo native wrappers generated anymore with -XX:-TieredCompilation after JDK-8251462

Java™ SE Development Kit 8, Update 431 (JDK 8u431)

Release date: October 15, 2024

The full version string for this update release is 1.8.0_431-b10 (where "b" means "build"). The version number is 8u431.

 

IANA TZ Data 2024a

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

 

Security Baselines

The security baselines for the Java Runtime at the time of the release of JDK 8u431 are specified in the following table:

Java Family Version Security Baseline (Full Version String)
81.8.0_431-b10

 

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 8u431) be used after the next critical patch update scheduled for January 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.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 8u431) on 2025-02-21. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version. For more information, see 23.1.2 JRE Expiration Date in the Java Platform, Standard Edition Deployment Guide.

 

Notable Issues Resolved

install/install
 JDK RPM Upgrade Leaves Orphan Alternatives Entry (JDK-8336107 (not public))

Fixed the issue with entries in the "java" and "javac" groups not being properly managed during an RPM upgrade.

Upgrading from an older Java RPM installed into a shared directory (/usr/lib/jvm/jdk-${FEATURE}-oracle-${ARCH}) to a Java RPM installing into a version-specific directory (/usr/lib/jvm/jdk-${VERSION}-oracle-${ARCH}), results in the older Java entries in the "java" and "javac" groups not being deleted.

The issue does not manifest until the new Java is uninstalled. When it is uninstalled and Java from the lower release is installed, running Java commands like java or keytool without the full path specified will result in the "command not found" error. For example, install 21.0.3; upgrade it to 21.0.4; uninstall 21.0.4; install any Java update of 17 or 11 or 8 release; run "java" from the command line. The command will fail with the "command not found" error.

Manually delete orphan Java entries in the "java" and "javac" groups to workaround the issue.

 

Other Notes

core-libs/java.net
 New Default Limits in the JDK HTTP Implementations (JDK-8328286 (not public))

New, default limits have been added to HTTP in the JDK.

The JDK built-in implementation of the URL protocol handler for HTTP (HttpURLConnection) now has a default limit on the maximum response headers size that will be accepted from a remote party. The limit is set by default at 384kB (393216 bytes) and is computed as the cumulative size of all header names and header values plus an overhead of 32 bytes per header name value pair.

The default value of the limit can be changed by specifying a positive value with the jdk.http.maxHeaderSize system property on the command line, or in the $JAVA_HOME/jre/lib/net.properties file. A negative or zero value is interpreted as no limit. If the limit is exceeded, the request will fail with a protocol exception.

The JDK built-in implementation of the com.sun.net.httpserver.HttpServer implements a similar limit for the maximum request header size the server is prepared to accept. The HttpServer limit can be changed by specifying a positive value with the sun.net.httpserver.maxReqHeaderSize system property on the command line. A negative or zero value is interpreted as no limit. The limit is set by default at 384kB (393216 bytes) and the size is computed in the same way as explained above. If the limit is exceeded, the connection is closed.

security-libs/java.security
 Added SSL.com TLS Root CA Certificates Issued in 2022 (JDK-8341057)

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

+ SSL.com

  + ssltlsrootecc2022
    DN: CN=SSL.com TLS ECC Root CA 2022, O=SSL Corporation, C=US

+ SSL.com
  + ssltlsrootrsa2022
    DN: CN=SSL.com TLS RSA Root CA 2022, O=SSL Corporation, C=US

security-libs/javax.net.ssl
 Disabled TLS_ECDH Cipher Suites (JDK-8279164)

The TLS_ECDH cipher suites have been disabled by default, by adding "ECDH" to the jdk.tls.disabledAlgorithms security property in the java.security configuration file. The TLS_ECDH cipher suites do not preserve forward-secrecy and are rarely used in practice. Note that some TLS_ECDH cipher suites were already disabled because they use algorithms that are disabled, such as 3DES and RC4. This action disables the rest. Any attempts to use cipher suites starting with "TLS_ECDH_" will fail with an SSLHandshakeException. Users can, at their own risk, re-enable these cipher suites by removing "ECDH" from the jdk.tls.disabledAlgorithms security property.

Please note that this change has no effect on the TLS_ECDHE cipher suites, which are still enabled by default.

security-libs/javax.net.ssl
 Distrust TLS Server Certificates Anchored by Entrust Root Certificates and Issued After Nov 11, 2024 (JDK-8337664)

The JDK will stop trusting TLS server certificates issued after November 11, 2024 and anchored by Entrust root certificates, in line with similar plans recently announced by Google and Mozilla. The list of affected certificates includes certificates branded as AffirmTrust, which are managed by Entrust.

TLS server certificates issued on or before November 11, 2024 will continue to be trusted until they expire. Certificates issued after that date, and anchored by any of the Certificate Authorities in the table below, will be rejected.

The restrictions will be enforced in the JDK implementation (the SunJSSE Provider) of the Java Secure Socket Extension (JSSE) API. A TLS session will not be negotiated if the server's certificate chain is anchored by any of the Certificate Authorities in the table below and the certificate has been issued after November 11, 2024.

An application will receive an Exception with a message indicating the trust anchor is not trusted, for example:

TLS server certificate issued after 2024-11-11 and anchored by a distrusted legacy Entrust root CA: CN=Entrust.net Certification Authority (2048),

OU=(c) 1999 Entrust.net Limited, OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), O=Entrust.net

If necessary, and at your own risk, you can work around the restrictions by removing "ENTRUST_TLS" from the jdk.security.caDistrustPolicies security property in the java.security configuration file.

The restrictions are imposed on the following Entrust Root certificates included in the JDK:

Root Certificates distrusted after 2024-11-11
Distinguished Name SHA-256 Fingerprint
CN=Entrust Root Certification Authority, OU=(c) 2006 Entrust, Inc., OU=www.entrust.net/CPS is incorporated by reference, O=Entrust, Inc., C=US

73:C1:76:43:4F:1B:C6:D5:AD:F4:5B:0E:76:E7:27:28:7C:8D:E5:76:16:C1:E6:E6:14:1A:2B:2C:BC:7D:8E:4C

CN=Entrust Root Certification Authority - EC1, OU=(c) 2012 Entrust, Inc. - for authorized use only, OU=See www.entrust.net/legal-terms, O=Entrust, Inc., C=US

02:ED:0E:B2:8C:14:DA:45:16:5C:56:67:91:70:0D:64:51:D7:FB:56:F0:B2:AB:1D:3B:8E:B0:70:E5:6E:DF:F5

CN=Entrust Root Certification Authority - G2, OU=(c) 2009 Entrust, Inc. - for authorized use only, OU=See www.entrust.net/legal-terms, O=Entrust, Inc., C=US

43:DF:57:74:B0:3E:7F:EF:5F:E4:0D:93:1A:7B:ED:F1:BB:2E:6B:42:73:8C:4E:6D:38:41:10:3D:3A:A7:F3:39

CN=Entrust Root Certification Authority - G4, OU=(c) 2015 Entrust, Inc. - for authorized use only, OU=See www.entrust.net/legal-terms, O=Entrust, Inc., C=US

DB:35:17:D1:F6:73:2A:2D:5A:B9:7C:53:3E:C7:07:79:EE:32:70:A6:2F:B4:AC:42:38:37:24:60:E6:F0:1E:88

CN=Entrust.net Certification Authority (2048), OU=(c) 1999 Entrust.net Limited, OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), O=Entrust.net

6D:C4:71:72:E0:1C:BC:B0:BF:62:58:0D:89:5F:E2:B8:AC:9A:D4:F8:73:80:1E:0C:10:B9:C8:37:D2:1E:B1:77

CN=AffirmTrust Commercial, O=AffirmTrust, C=US

03:76:AB:1D:54:C5:F9:80:3C:E4:B2:E2:01:A0:EE:7E:EF:7B:57:B6:36:E8:A9:3C:9B:8D:48:60:C9:6F:5F:A7

CN=AffirmTrust Networking, O=AffirmTrust, C=US

0A:81:EC:5A:92:97:77:F1:45:90:4A:F3:8D:5D:50:9F:66:B5:E2:C5:8F:CD:B5:31:05:8B:0E:17:F3:F0B4:1B

CN=AffirmTrust Premium, O=AffirmTrust, C=US

70:A7:3F:7F:37:6B:60:07:42:48:90:45:34:B1:14:82:D5:BF:0E:69:8E:CC:49:8D:F5:25:77:EB:F2:E9:3B:9A

CN=AffirmTrust Premium ECC, O=AffirmTrust, C=US

BD:71:FD:F6:DA:97:E4:CF:62:D1:64:7A:DD:25:81:B0:7D:79:AD:F8:39:7E:B4:EC:BA:9C:5E:84:88:82:14:23

You can also use the keytool utility from the JDK to print out details of the certificate chain, as follows:

keytool -v -list -alias <your_server_alias> -keystore <your_keystore_filename>

If any of the certificates in the chain are issued by one of the root CAs in the table above are listed in the output you will need to update the certificate or contact the organization that manages the server.

client-libs
 Relax the java.awt.Robot Specification (JDK-8307779)

This JDK release relaxes the specification of java.awt.Robot to account for possible platform and desktop environment access restrictions or limitations.

core-libs/java.lang
 System Property for Java SE Specification Maintenance Version (JDK-8335224)

This JDK implements Maintenance Release 6 of the Java SE 8 specification JSR 337. This is indicated by the system property java.specification.maintenance.version having the value of "6".

core-libs/java.text
 MessageFormat ArgumentIndex Now Has a Limit (JDK-8331446 (not public))

In the JDK, java.text.MessageFormat now has an implementation limit for the ArgumentIndex pattern element. The hard limit for the value is 10,000.

If an ArgumentIndex value is equal to or exceeds the upper limit, an IllegalArgumentException will now be thrown by

  • MessageFormats constructors
  • applyPattern(String pattern) instance method
  • format(String pattern, Object... arguments) static method

De-serializing a MessageFormat object with an ArgumentIndex value at or over the limit will throw an InvalidObjectException.

install/uninstall
 The Java Uninstall Tool will repair the Windows registry (JDK-8343761 (not public))

There are some scenarios where upgrading from a JRE version 8u361 or below to a newer JRE version of Java 8 may break some of the Windows registry keys for the Java Runtime Environment. The Java Uninstall Tool will repair such situations, regardless if a JRE is selected for uninstall or not.

 

Updates to Third Party Libraries

Library New Version Module JBS
GIFlib 5.2.2 JDK-8328999
Libpng 1.6.43 JDK-8329004
Libxml2 2.12.17 JDK-8332539
WebKit 619.1 JDK-8328994

 

Bug Fixes

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

The following table lists the bug fixes included in the JDK 8u431 release:

# BugId Component Summary
1JDK-8325179client-libs/javax.swingRace in BasicDirectoryModel.validateFileCache
2JDK-8328953client-libs/javax.swingJEditorPane.read throws ChangedCharSetException
3JDK-8330415core-libs/java.langUpdate system property for Java SE specification maintenance version
4JDK-8267938core-libs/java.net(sctp) SCTP channel factory methods should check platform support
5JDK-8299058core-libs/java.netAssertionError in sun.net.httpserver.ServerImpl when connection is idle
6JDK-8332424core-libs/java.util:i18nUpdate IANA Language Subtag Registry to Version 2024-05-16
7JDK-8334418core-libs/java.util:i18nUpdate IANA Language Subtag Registry to Version 2024-06-14
8JDK-8334653core-libs/java.util:i18nISO 4217 Amendment 177 Update
9JDK-8337230docs/guidesUpdate JSSE security and system properties in Customizing JSSE
10JDK-8202948hotspot/compilerC2: assert(init_offset >= 0) failed: positive offset from object start
11JDK-8330462javafx/accessibilityStringIndexOutOfBoundException when typing anything into TextField
12JDK-8331881javafx/webWebView: Update Public Suffix List to 1cbd6e7
13JDK-8329011javafx/webUpdate SQLite to 3.45.3
14JDK-8338306javafx/webWebView Drag and Drop fails with WebKit 619.1
15JDK-8338307javafx/webAdditional WebKit 619.1 fixes from WebKitGTK 2.44.3
16JDK-8331765javafx/webWebsocket callbacks are not executed after WebKit 617.1 update
17JDK-8261433security-libs/javax.crypto:pkcs11Better pkcs11 performance for libpkcs11:C_EncryptInit/libpkcs11:C_DecryptInit
18JDK-8219991security-libs/javax.net.sslNew fix of the deadlock in sun.security.ssl.SSLSocketImpl
19JDK-8341059security-libs/javax.net.sslChange Entrust TLS distrust date to November 12, 2024

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

The following sections summarize changes made in all Java SE 8u421 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 8u421 b34

Bug Fixes

Release date: August 23, 2024
BugId Category Subcategory Summary
JDK-8336952 (not public) install jre msi installer can fail if run after using MSI Advertise option

 

Changes in Java SE 8u421 b33

Bug Fixes

Release date: August 12, 2024
BugId Category Subcategory Summary
JDK-8336107 (not public) install JDK rpm upgrade from 11.0.23 to 11.0.25 leaves "orphan" alternatives entry

 

Changes in Java SE 8u421 b32

Bug Fixes

Release date: July 16, 2024
BugId Category Subcategory Summary
JDK-8331765 javafx web Websocket callbacks are not executed after WebKit 617.1 update
JDK-8333859 core-libs java.util.jar Pack200.newUnpacker().unpack() throws IOException
JDK-8333447 (not public) install install "alternatives" uninstallation results into intermittent “Java not available” issues

Java SE 8u421 Enterprise Performance Pack - Bug Fixes and Updates

The following sections summarize changes made in Java SE 8u421 Enterprise Performance Pack. Bug fixes and any other changes are listed below in date order, most current update first. Note that bug fixes in the previous BPR are also included in the current update release.

 

Changes in Java SE 8u421-Perf b31

Bug Fixes

Release date: July 16, 2024
BugId Category Subcategory Summary
JDK-8333859 core-libs java.util.jar Pack200.newUnpacker().unpack() throws IOException

Java™ SE Development Kit 8, Update 421 Enterprise Performance Pack (JDK 8u421-PERF)

Release date: July 16, 2024

The full version string for this update release is 8u421-perf-b07 (where "b" means "build"). The version number is 8u421-perf.

 

IANA TZ Data 2024a

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

 

Security Baselines

The security baselines for the Java Runtime at the time of the release of JDK 8u421 are specified in the following table:

Java Family Version Security Baseline (Full Version String)
88u421-b09

 

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 8u421) be used after the next critical patch update scheduled for October 15, 2024.

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.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 8u421) on 2024-11-15. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version. For more information, see 23.1.2 JRE Expiration Date in the Java Platform, Standard Edition Deployment Guide.

 

Other Notes

security-libs/java.security
 Added GlobalSign R46 and E46 Root CA Certificates (JDK-8316138)

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

+ GlobalSign

  + globalsignr46
    DN: CN=GlobalSign Root R46, O=GlobalSign nv-sa, C=BE

+ GlobalSign
  + globalsigne46
    DN: CN=GlobalSign Root E46, O=GlobalSign nv-sa, C=BE

security-libs/javax.net.ssl
 Disabled DTLS 1.0 (JDK-8256660)

DTLS 1.0 has been disabled by default, by adding "DTLSv1.0" to the jdk.tls.disabledAlgorithms security property in the java.security configuration file. DTLS 1.0 has weakened over time and lacks support for stronger cipher suites. Any attempts to use DTLSv1.0 will fail with an SSLHandshakeException. Users can, at their own risk, re-enable the version by removing "DTLSv1.0" from the jdk.tls.disabledAlgorithms security property.

 

Changes in Java SE 8u421-Perf

Bug Fixes

JDK 8u421 Enterprise Performance Pack includes the following fixes from JDK 17:
# BugId Component Summary
1JDK-8321599hotspot/compilerData loss in AVX3 Base64 decoding
2JDK-8310844hotspot/compiler[AArch64] C1 compilation fails because monitor offset in OSR buffer is too large for immediate
3JDK-8324050hotspot/compilerIssue store-store barrier after re-materializing objects during deoptimization
4JDK-8326638hotspot/compilerCrash in PhaseIdealLoop::remix_address_expressions due to unexpected Region instead of Loop
5JDK-8319372hotspot/compilerC2 compilation fails with "Bad immediate dominator info"
6JDK-8282414hotspot/compilerx86: Enhance the assembler to generate more compact instructions
7JDK-8298129hotspot/jfrLet checkpoint event sizes grow beyond u4 limit
8JDK-8298649hotspot/jfrJFR: RemoteRecordingStream support for checkpoint event sizes beyond u4
9JDK-8286740hotspot/jfrJFR: Active Setting event emitted incorrectly
10JDK-8326106hotspot/jfrWrite and clear stack trace table outside of safepoint
11JDK-8298472hotspot/runtimeAArch64: Detect Ampere-1 and Ampere-1A CPUs and set default options
12JDK-8278241hotspot/runtimeImplement JVM SpinPause on linux-aarch64
13JDK-8296437hotspot/runtimeNMT incurs costs if disabled
14JDK-8327036hotspot/runtime[macosx-aarch64] SIGBUS in MarkActivationClosure::do_code_blob reached from Unsafe_CopySwapMemory0
15JDK-8319048hotspot/runtimeMonitor deflation unlink phase prolongs time to safepoint
16JDK-8324933hotspot/runtimeConcurrentHashTable::statistics_calculate synchronization is expensive

Java™ SE Development Kit 8, Update 421 (JDK 8u421)

Release date: July 16, 2024

The full version string for this update release is 8u421-b09 (where "b" means "build"). The version number is 8u421.

 

IANA TZ Data 2024a

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

 

Security Baselines

The security baselines for the Java Runtime at the time of the release of JDK 8u421 are specified in the following table:

Java Family Version Security Baseline (Full Version String)
88u421-b09

 

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 8u421) be used after the next critical patch update scheduled for October 15, 2024.

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.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 8u421) on 2024-11-15. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version. For more information, see 23.1.2 JRE Expiration Date in the Java Platform, Standard Edition Deployment Guide.

 

New Features

install/install
 Adding Debug Log Files in macOS for Java Updater and JCP (JDK-8319745 (not public))

Debug log files for Java Updater and JCP have been added to the directory $HOME/Library/Application Support/Oracle/Java/Java Updater/ for macOS x64 and aarch64. Logs for Java Updater and JCP are separated into two log files: JavaUpdaterLog.txt and JCPUpdateLog.txt.

JavaUpdaterLog.txt is generated and logs debug lines if it does not already exist when Java Updater is run. Likewise, JCPUpdateLog.txt is generated and logs debug lines if it does not already exist when Java Control Panel is run.

If a log file already exists for Java Updater or JCP, the newly logged debug lines are appended at the end of the log file. Each log session has a header with a timestamp of when the application was run.

security-libs/java.security
 New Security Category for -XshowSettings Launcher Option (JDK-8281658)

The -XshowSettings launcher has a new security category. Settings from security properties, security providers and TLS related settings are displayed with this option. A security sub-category can be passed as an argument to the security category option. See the output from java -X:

   -XshowSettings:security

       show all security settings and continue
   -XshowSettings:security:*sub-category*
       show settings for the specified security sub-category and continue. Possible *sub-category* arguments for this option include:
       all: show all security settings and continue
       properties: show security properties and continue
       providers: show static security provider settings and continue
       tls: show TLS related security settings and continue

Third party security provider details will be reported if they are included in the application class path or module path and such providers are configured in the java.security file.

 

Known Issues

deploy/webstart
 Browser Keystore Usage on Windows (JDK-8330728 (not public))

On Windows, once the feature “Use certificates and keys in browser keystore” is enabled (which it is by default), Java WebStart and Java Plugin can access the certificates that are currently trusted by the local machine. There is no guarantee that the full list of trusted certificates is available, since the certificates are dynamically loaded. As a result, Java applets and Java WebStart applications might experience signature validation and secure connection issues caused by a lack of relevant certificates since the Deployment framework can only access the certificates that are 'active' at the time of an application's launch.

 

Notable Issues fixed

install
 No Default Java after 8u371 32-bit Upgrade (JDK-8306784)

To allow the java, javaw, and javaws executables to be run from any location, the JRE 8 Windows installers copy java.exe, javaw.exe, and javaws.exe helper files into the following directory:

C:\Program Files (x86)\Common Files\Oracle\Java\java8path

Also, the system PATH variable is updated to include this location.

These helper files are lightweight executables that launch the latest version installed. They pass any commandline arguments along to the real executables in the bin directory. They are not specificially tied to a version other than the FileVersion of the exe. The installers will leave the latest versions of the shims in this location until the last Java 8 is uninstalled.

Note: In 8u411 and later releases, the directory name was changed from "javapath" to "java8path" to ensure compatibility with newer JDK family versions.

 

Removed Features and Options

install/install
 Remove Obsolete Desktop Integration from Linux Installers (JDK-8322234 (not public))

Delete nonfunctional desktop integration functionality from Linux installers. The installers will stop depositing files in /usr/share/icons, /usr/share/mime, and /usr/share/applications subtrees.

 

Other Notes

install/install
 Adding the STATIC=1 Argument to the JRE Installer (JDK-8313223 (not public))

This fix will add the STATIC=1 installer argument and deprecating the RETAIN_ALL_VERSIONS=1 installer argument. Passing STATIC=1 will protect older JRE 8 versions from being uninstalled during a manual upgrade or an auto-update.

install/install
 Provide Transition RPM with Old Package Name "jdk1.8" (JDK-8323482 (not public))

The "Obsoletes" tag has been removed from "jdk-1.8" and "jre-1.8" RPM packages.

New stub "jdk1.8" and "jre1.8" RPM packages have been provided. These are the pre-8u371 names without a dash. These packages do not install any files, but require corresponding update releases for "jdk-1.8" and "jre-1.8" packages, the post-8u371 name with the dash, respectively.

Users who only have 8u371 or newer RPM packages installed do not need to use the new stub "jdk1.8" or "jre1.8" RPM packages, and will not be affected by this change.

Users who install the new stub "jdk1.8" package and would like to downgrade it to 8u361 or an older version, will need to first manually uninstall the "jdk-1.8" package before the downgrade to prevent the side-by-side installation of older and newer Java 8 JDK RPM packages. The same applies to the "jre1.8" and "jre-1.8" packages.

If the "jdk-1.8" package is stored in an RPM repository, maintainers of the repository need to place an additional stub "jdk1.8" package next to "jdk-1.8" in that RPM repository. The same applies to the "jre1.8" and "jre-1.8" packages.

Users who install the "jdk-1.8" package from something other than an RPM repository need to specify paths to the RPM files with "jdk1.8" and "jdk-1.8" packages in a single update command if they would like to upgrade from 8u361 or older "jdk1.8" package. The same applies to the "jre1.8" and "jre-1.8" packages.

security-libs/java.security
 Added GlobalSign R46 and E46 Root CA Certificates (JDK-8316138)

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

+ GlobalSign

  + globalsignr46
    DN: CN=GlobalSign Root R46, O=GlobalSign nv-sa, C=BE

+ GlobalSign
  + globalsigne46
    DN: CN=GlobalSign Root E46, O=GlobalSign nv-sa, C=BE

infrastructure/build
 Native Executables and Libraries on Linux Use RPATH Instead of RUNPATH (JDK-8326891)

Native executables and libraries on Linux have switched to using RPATH instead of RUNPATH in this release.

JDK native executables and libraries use embedded runtime search paths to locate other internal JDK native libraries. On Linux these can be defined as either RPATH or RUNPATH. The main difference is that the dynamic linker considers RPATH before the LD_LIBRARY_PATH environment variable, while RUNPATH is only considered after LD_LIBRARY_PATH.

By making the change to using RPATH, it is no longer possible to replace JDK internal native libraries using LD_LIBRARY_PATH.

install/install
 Install DEB and RPM Java Packages in Version Directory (JDK-8325265 (not public))

The installation directory name of the Oracle JDK in RPM and DEB packages has changed from /usr/lib/jvm/jdk-1.8-oracle-${ARCH} to /usr/lib/jvm/jdk-${VERSION}-oracle-${ARCH}.

The installation directory name of the Oracle JRE in RPM and DEB packages has changed from /usr/lib/jvm/jre-1.8-oracle-${ARCH} to /usr/lib/jvm/jre-${VERSION}-oracle-${ARCH}.

Every update release will be installed in a separate directory on Linux platforms.

Installers will create a /usr/java/jdk-1.8-oracle-${ARCH} link pointing to the installation directory to allow programs to find the latest JDK8 version.

Installers will create a /usr/java/jre-1.8-oracle-${ARCH} link pointing to the installation directory to allow programs to find the latest JRE8 version.

install/install
 Installer Will Create a Junction Directory in a New Location (JDK-8329700 (not public))

The JRE will be installed in the following location, C:\Program Files\Java\jre$fullversion, where $fullversion is the technical version of the JRE. For instance, 8u421 will install into C:\Program Files\Java\jre1.8.0_421.

"C:\Program Files" will be adjusted to "C:\Program Files (x86)" for 32-bit Java.

For 64-bit installs, a junction will be created at C:\Program Files\Java\latest\jre-1.8. It will point to the latest 64-bit JRE of the Java 8 family.

For 32-bit installs, a junction will be created at C:\Program Files (x86)\Java\latest\jre-1.8. It will point to the latest 32-bit JRE of the Java 8 family.

This change of the JRE installation directories will also be reflected in the public JRE that is shipped with the JDK installer. Such changes were part of STATIC support implementation introduced in the 8u421 release.

 

Updates to Third Party Libraries

Library New Version Module JBS
ICU4C 74.2 javafx JDK-8324326
LCMS 2.16 java.desktop JDK-8321489
JPEG Image Decoding Software 9f java.desktop JDK-8324233
Zlib Data Compression Library 1.3.1 java.base JDK-8324632

 

Bug Fixes

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

The following table lists the bug fixes included in the JDK 8u421 release:

# BugId Component Summary
1JDK-8317771client-libs/javax.accessibility[macos14] Expand/collapse a JTree using keyboard freezes the application in macOS 14 Sonoma
2JDK-8296878client-libs/javax.swingDocument Filter attached to JPasswordField and setText("") is not cleared instead inserted characters replaced with unicode null characters
3JDK-8218917client-libs/javax.swingKeyEvent.getModifiers() returns inconsistent values for ALT keys
4JDK-8322239client-libs/javax.swing[macos] a11y : java.lang.NullPointerException is thrown when focus is moved on the JTabbedPane
5JDK-8318599core-libs/java.netHttpURLConnection cache issues leading to crashes in JGSS w/ native GSS introduced by 8303809
6JDK-8180310core-libs/java.rmi[testlibrary] TestSocketFactory null pointer when updating match bytes
7JDK-8324632core-libs/java.util.jarUpdate Zlib Data Compression Library to Version 1.3.1
8JDK-8315117core-libs/java.util.jarUpdate Zlib Data Compression Library to Version 1.3
9JDK-8318322core-libs/java.util:i18nUpdate IANA Language Subtag Registry to Version 2023-10-16
10JDK-8304761core-libs/java.util:i18nUpdate IANA Language Subtag Registry to Version 2023-03-22
11JDK-8302512core-libs/java.util:i18nUpdate IANA Language Subtag Registry to Version 2023-02-14
12JDK-8306031core-libs/java.util:i18nUpdate IANA Language Subtag Registry to Version 2023-04-13
13JDK-8308021core-libs/java.util:i18nUpdate IANA Language Subtag Registry to Version 2023-05-11
14JDK-8327631core-libs/java.util:i18nUpdate IANA Language Subtag Registry to Version 2024-03-07
15JDK-8313702core-libs/java.util:i18nUpdate IANA Language Subtag Registry to Version 2023-08-02
16JDK-8325029core-libs/javax.namingConnection.java now requires custom socket factories to implement javax.net.SocketFactory
17JDK-8285835hotspot/compilerSIGSEGV in PhaseIdealLoop::build_loop_late_post_work
18JDK-8287432hotspot/compilerC2: assert(tn->in(0) != __null) failed: must have live top node
19JDK-8197901hotspot/runtimeCrash during GC when logging level is debug
20JDK-8059924hotspot/runtimecom/sun/management/DiagnosticCommandMBean/DcmdMBeanPermissionsTest.java: assert(Universe::verify_in_progress() || !SafepointSynchronize::is_at_safepoint()) failed: invariant
21JDK-8329705javafx/accessibilityAdd missing Application thread checks to platform specific a11y methods
22JDK-8309374javafx/accessibilityAccessibility Focus Rectangle on ListItem is not drawn when ListView is shown for first time
23JDK-8311492javafx/graphicsFontSmoothingType LCD produces wrong color when transparency is used
24JDK-8324233javafx/graphicsUpdate JPEG Image Decoding Software to 9f
25JDK-8324326javafx/webUpdate ICU4C to 74.2
26JDK-8327177javafx/window-toolkitmacOS: wrong GlobalRef deleted in GlassMenu
27JDK-8326643security-libs/java.securityJDK server does not send a dummy change_cipher_spec record after HelloRetryRequest message
28JDK-8312383security-libs/javax.net.sslLog X509ExtendedKeyManager implementation class name in TLS/SSL connection
29JDK-8247907security-libs/javax.xml.cryptoXMLDsig logging does not work
30JDK-8303809security-libs/org.ietf.jgssDispose context in SPNEGO NegotiatorImpl

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

The following sections summarize changes made in all Java SE 8u411 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 8u411 b32

Bug Fixes

Release date: June 10, 2024

Fixes from the prior BPR are included in this version.


Java™ SE Development Kit 8, Update 411 Enterprise Performance Pack (JDK 8u411-PERF)

Release date: April 16, 2024

The full version string for this update release is 8u411-perf-b08 (where "b" means "build"). The version number is 8u411-perf.

 

IANA TZ Data 2024a

JDK 8u411 contains IANA time zone data 2024a which contains the following changes:

  • Ittoqqortoormiit, Greenland changes time zones on 2024-03-31.
  • Vostok, Antarctica changed time zones on 2023-12-18.
  • Casey, Antarctica changed time zones five times since 2020.
  • Code and data fixes for Palestine timestamps starting in 2072.
  • A new data file zonenow.tab for timestamps starting now.
  • Kazakhstan unifies on UTC+5 beginning 2024-03-01.
  • Palestine springs forward a week later after Ramadan.
  • zic no longer pretends to support indefinite-past DST.
  • localtime no longer mishandles Ciudad Juárez in 2422.

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

 

Security Baselines

The security baselines for the Java Runtime at the time of the release of JDK 8u411 are specified in the following table:

Java Family Version Security Baseline (Full Version String)
88u411-perf-b08

 

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 8u411) be used after the next critical patch update scheduled for July 16, 2024.

Java SE Subscription products customers managing JRE updates/installs for large number of desktops should consider Java Management Service (JMS).

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 8u411-perf) on 2024-08-16. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version. For more information, see 23.1.2 JRE Expiration Date in the Java Platform, Standard Edition Deployment Guide.


New Features

security-libs/javax.crypto
 Update XML Security for Java to 3.0.3 (JDK-8319124)

The XML Signature implementation has been updated to Santuario 3.0.3. Support for four new SHA-3 based RSA-MGF1 signature methods have been added: SHA3_224_RSA_MGF1, SHA3_256_RSA_MGF1, SHA3_384_RSA_MGF1, and SHA3_512_RSA_MGF1. While these new algorithm URIs are not defined in javax.xml.crypto.dsig.SignatureMethod in the JDK update releases, they may be represented as string literals in order to be functionally equivalent. SHA-3 hash algorithm support was delivered to JDK 9 via JEP 287. Releases earlier than that may use third party security providers.

Additionally, support for the following EdDSA signatures has been added: ED25519 and ED448. While these new algorithm URIs are not defined in javax.xml.crypto.dsig.SignatureMethod in the JDK Update releases, they may be represented as string literals in order to be functionally equivalent. The JDK supports EdDSA since JDK 15. Releases earlier than that may use 3rd party security providers. One other difference is that the JDK still supports the here() function by default. However, we recommend avoiding the use of the here() function in new signatures and replacing existing signatures that use the here() function. Future versions of the JDK will likely disable, and eventually remove, support for this function, as it cannot be supported using the standard Java XPath API. Users can now disable the here() function by setting the security property jdk.xml.dsig.hereFunctionSupported to "false".

 

Other Notes

java-libs/java.awt
 AWT SystemTray API Is Not Supported on Most Linux Desktops (JDK-8322750)

The java.awt.SystemTray API is used for notifications in a desktop taskbar and may include an icon representing an application. On Linux, the Gnome desktop's own icon support in the taskbar has not worked properly for several years due to a platform bug. This, in turn, has affected the JDK's API, which relies upon that.

Therefore, in accordance with the existing Java SE specification, java.awt.SystemTray.isSupported() will return false where ever the JDK determines the platform bug is likely to be present.

The impact of this is likely to be limited since applications always must check for that support anyway. Additionally, some distros have not supported the SystemTray for several years unless the end-user chooses to install non-bundled desktop extensions.

security-libs/java.security
 Added Certainly R1 and E1 Root Certificates (JDK-8321408)

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

+ Certainly

  + certainlyrootr1
    DN: CN=Certainly Root R1, O=Certainly, C=US

+ Certainly
  + certainlyroote1
    DN: CN=Certainly Root E1, O=Certainly, C=US

 

Changes in Java SE 8u411-Perf

Bug Fixes

JDK 8u411 Enterprise Performance Pack includes the following fixes from JDK 17:
# BugId Component Summary
1JDK-8271118hotspot/compilerC2: StressGCM should have higher priority than frequency-based policy
2JDK-8316679hotspot/compilerC2 SuperWord: wrong result, load should not be moved before store if not comparable
3JDK-8274060hotspot/compilerC2: Incorrect computation after JDK-8273454
4JDK-8273454hotspot/compilerC2: Transform (-a)*(-b) into a*b
5JDK-8315920hotspot/compilerC2: "control input must dominate current control" assert failure
6JDK-8297968hotspot/compilerCrash in PrintOptoAssembly
7JDK-8321215hotspot/compilerIncorrect x86 instruction encoding for VSIB addressing mode
8JDK-8316414hotspot/compilerC2: large byte array clone triggers "failed: malformed control flow" assertion failure on linux-x86
9JDK-8320209hotspot/compilerVectorMaskGen clobbers rflags on x86_64
10JDK-8318889hotspot/compilerC2: add bailout after assert Bad graph detected in build_loop_late
11JDK-8317507hotspot/compilerC2 compilation fails with "Exceeded _node_regs array"
12JDK-8277919hotspot/jfrOldObjectSample event causing bloat in the class constant pool in JFR recording
13JDK-8287113hotspot/jfrJFR: Periodic task thread uses period for method sampling events
14JDK-8322321hotspot/runtimeAdd man page doc for -XX:+VerifySharedSpaces
15JDK-8312585hotspot/runtimeRename DisableTHPStackMitigation flag to THPStackMitigation
16JDK-8312182hotspot/runtimeTHPs cause huge RSS due to thread start timing issue
17JDK-8312620hotspot/runtimeWSL Linux build crashes after JDK-8310233
18JDK-8312394hotspot/runtime[linux] SIGSEGV if kernel was built without hugepage support
19JDK-8323243hotspot/runtimeJNI invocation of an abstract instance method corrupts the stack

Java™ SE Development Kit 8, Update 411 (JDK 8u411)

Release date: April 16, 2024

The full version string for this update release is 8u411-b09 (where "b" means "build"). The version number is 8u411.

 

IANA TZ Data 2024a

JDK 8u411 contains IANA time zone data 2024a which contains the following changes:

  • Ittoqqortoormiit, Greenland changes time zones on 2024-03-31.
  • Vostok, Antarctica changed time zones on 2023-12-18.
  • Casey, Antarctica changed time zones five times since 2020.
  • Code and data fixes for Palestine timestamps starting in 2072.
  • A new data file zonenow.tab for timestamps starting now.
  • Kazakhstan unifies on UTC+5 beginning 2024-03-01.
  • Palestine springs forward a week later after Ramadan.
  • zic no longer pretends to support indefinite-past DST.
  • localtime no longer mishandles Ciudad Juárez in 2422.

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

 

Security Baselines

The security baselines for the Java Runtime at the time of the release of JDK 8u411 are specified in the following table:

Java Family Version Security Baseline (Full Version String)
88u411-b09

 

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 8u411) be used after the next critical patch update scheduled for July 16, 2024.

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.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 8u411) on 2024-08-16. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version. For more information, see 23.1.2 JRE Expiration Date in the Java Platform, Standard Edition Deployment Guide.

 

New Features

security-libs/javax.crypto
 Update XML Security for Java to 3.0.3 (JDK-8319124)

The XML Signature implementation has been updated to Santuario 3.0.3. Support for four new SHA-3 based RSA-MGF1 signature methods have been added: SHA3_224_RSA_MGF1, SHA3_256_RSA_MGF1, SHA3_384_RSA_MGF1, and SHA3_512_RSA_MGF1. While these new algorithm URIs are not defined in javax.xml.crypto.dsig.SignatureMethod in the JDK update releases, they may be represented as string literals in order to be functionally equivalent. SHA-3 hash algorithm support was delivered to JDK 9 via JEP 287. Releases earlier than that may use third party security providers.

Additionally, support for the following EdDSA signatures has been added: ED25519 and ED448. While these new algorithm URIs are not defined in javax.xml.crypto.dsig.SignatureMethod in the JDK Update releases, they may be represented as string literals in order to be functionally equivalent. The JDK supports EdDSA since JDK 15. Releases earlier than that may use 3rd party security providers. One other difference is that the JDK still supports the here() function by default. However, we recommend avoiding the use of the here() function in new signatures and replacing existing signatures that use the here() function. Future versions of the JDK will likely disable, and eventually remove, support for this function, as it cannot be supported using the standard Java XPath API. Users can now disable the here() function by setting the security property jdk.xml.dsig.hereFunctionSupported to "false".

 

Other Notes

client-libs/java.awt
 AWT SystemTray API Is Not Supported on Most Linux Desktops (JDK-8322750)

The java.awt.SystemTray API is used for notifications in a desktop taskbar and may include an icon representing an application. On Linux, the Gnome desktop's own icon support in the taskbar has not worked properly for several years due to a platform bug. This, in turn, has affected the JDK's API, which relies upon that.

Therefore, in accordance with the existing Java SE specification, java.awt.SystemTray.isSupported() will return false where ever the JDK determines the platform bug is likely to be present.

The impact of this is likely to be limited since applications always must check for that support anyway. Additionally, some distros have not supported the SystemTray for several years unless the end-user chooses to install non-bundled desktop extensions.

security-libs/java.security
 Added Certainly R1 and E1 Root Certificates (JDK-8321408)

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

+ Certainly

  + certainlyrootr1
    DN: CN=Certainly Root R1, O=Certainly, C=US

+ Certainly
  + certainlyroote1
    DN: CN=Certainly Root E1, O=Certainly, C=US

security-libs/javax.xml.crypto
 Enable XML Signature Secure Validation Mode by Default (JDK-8259801)

The XML Signature secure validation mode has been enabled by default (previously it was not enabled by default unless running with a security manager). When enabled, validation of XML signatures are subject to stricter checking of algorithms and other constraints as specified by the jdk.xml.dsig.secureValidationPolicy security property.

If necessary, and at their own risk, applications can disable the mode by setting the org.jcp.xml.dsig.secureValidation property to Boolean.FALSE with the DOMValidateContext.setProperty() API.

 

Updates to Third Party Libraries

Library New Version Module JBS
Libxslt 1.1.39 javafx JDK-8318388
WebKit 617.1 javafx JDK-8318614
Glib 2.78.1 javafx JDK-8318386
GStreamer 1.22.6 javafx JDK-8318387
libpng 1.6.40 java.desktop JDK-8316030
Joni 2.2.1 jdk.scripting.nashorn JDK-8322094
Xalan Java 2.7.3 java.xml JDK-8305814
XML Security for Java 3.0.3 java.xml.crypto JDK-8319124

 

Bug Fixes

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

The following table lists the bug fixes included in the JDK 8u411 release:

# BugId Component Summary
1JDK-8318951client-libs/2dAdditional negative value check in JPEG decoding
2JDK-8152924core-libs/java.util.concurrentImprove scalability of CompletableFuture with large number of dependents
3JDK-8186464core-libs/java.util.jarZipFile cannot read some InfoZip ZIP64 zip files
4JDK-8321480core-libs/java.util:i18nISO 4217 Amendment 176 Update
5JDK-8260556docs/guidesUpdate Security Guide for Enable XML Signature secure validation mode by default
6JDK-8244207hotspot/compilerSimplify usage of Compile::print_method() when debugging with gdb and enable its use with rr
7JDK-8144856hotspot/compilerfix assert in CompiledStaticCall::set_to_interpreted
8JDK-8236772hotspot/compilerFix build for windows 32-bit after 8212160 and 8234331.
9JDK-8231430hotspot/compilerC2: Memory stomp in max_array_length() for T_ILLEGAL type
10JDK-8318889hotspot/compilerC2: add bailout after assert Bad graph detected in build_loop_late
11JDK-8317507hotspot/compilerC2 compilation fails with "Exceeded _node_regs array"
12JDK-8147611hotspot/gcG1 - Missing memory barrier in start_cset_region_for_worker
13JDK-8061467hotspot/gcBad page size passed to setup_large_pages() on Solaris
14JDK-8212160hotspot/jvmtiJVMTI agent crashes with "assert(_value != 0LL) failed: resolving NULL _value"
15JDK-8227277hotspot/jvmtiHeapInspection::find_instances_at_safepoint walks dead objects
16JDK-8236124hotspot/jvmtiMinimal VM slowdebug build failed after JDK-8212160
17JDK-8322321hotspot/runtimeAdd man page doc for -XX:+VerifySharedSpaces
18JDK-8059586hotspot/runtimehs_err report should treat redirected core pattern.
19JDK-8323243hotspot/runtimeJNI invocation of an abstract instance method corrupts the stack
20JDK-8067447hotspot/svcFactor out the shared implementation of the VM flags manipulation code
21JDK-8284544javafx/accessibility[Win] Name-Property of Spinner cannot be changed
22JDK-8319079javafx/graphicsMissing range checks in decora
23JDK-8320267javafx/webWebView crashes on macOS 11 with WebKit 616.1
24JDK-8320260javafx/webWebView: Update Public Suffix List to b5bf572
25JDK-8323879javafx/webconstructor Path(Path) which takes another Path object fail to draw on canvas html
26JDK-8324337javafx/webCherry-pick WebKit 617.1 stabilization fixes
27JDK-8322703javafx/webIntermittent crash in WebView in a JFXPanel from IME calls on macOS
28JDK-8325258javafx/webAdditional WebKit 617.1 fixes from WebKitGTK 2.42.5
29JDK-8323880javafx/webCaret rendered at wrong position in case of a click event on RTL text
30JDK-8326989javafx/webText selection issues on WebView after WebKit 617.1
31JDK-8221261javafx/window-toolkitDeadlock on macOS in JFXPanel app when handling IME calls
32JDK-8319669javafx/window-toolkit[macos14] Running any JavaFX app prints Secure coding warning
33JDK-8319727other-libs/corba:idlHarden BufferManagerReadStream underflow logic
34JDK-8307185security-libs/javax.crypto:pkcs11pkcs11 native libraries make JNI calls into java code while holding GC lock
35JDK-8255867security-libs/javax.net.sslSignatureScheme JSSE property does not preserve ordering in handshake messages
36JDK-8308245tools/javacAdd -proc:full to describe current default annotation processing policy
37JDK-8317815xml/jaxpXerces-J - Version.java did not get updated in JDK-8282280

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

The following sections summarize changes made in all Java SE 8u401 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 8u401 b35

Bug Fixes

Release date: April 3, 2024
BugId Category Subcategory Summary
JDK-8326643 security-libs java.security JDK server does not send a dummy change_cipher_spec record after HelloRetryRequest message

 

Changes in Java SE 8u401 b34

Bug Fixes

Release date: March 14, 2024
BugId Category Subcategory Summary
JDK-8325580 (not public) install install Remove "alternatives --remove" call from Java rpm installer

 

Changes in Java SE 8u401 b33

Bug Fixes

Release date: February 22, 2024
BugId Category Subcategory Summary
JDK-8309374 javafx accessibility Accessibility Focus Rectangle on ListItem is not drawn when ListView is shown for first time
JDK-8311492 javafx graphics FontSmoothingType LCD produces wrong color when transparency is used
JDK-8325150 core-libs java.time (tz) Update Timezone Data to 2024a

 

Changes in Java SE 8u401 b32

Bug Fixes

Release date: February 5, 2024
BugId Category Subcategory Summary
JDK-8227277 hotspot jvmti HeapInspection::find_instances_at_safepoint walks dead objects
JDK-8322725 core-libs java.time (tz) Update Timezone Data to 2023d

 

Changes in Java SE 8u401 b31

Bug Fixes

Release date: January 16, 2024
BugId Category Subcategory Summary
JDK-8284544 javafx accessibility [Win] Name-Property of Spinner cannot be changed
JDK-8319727 other-libs corba:idl Harden BufferManagerReadStream underflow logic

Java SE 8u401 Enterprise Performance Pack - Bug Fixes and Updates

The following sections summarize changes made in Java SE 8u401 Enterprise Performance Pack. Bug fixes and any other changes are listed below in date order, most current update first. Note that bug fixes in the previous BPR are also included in the current update release.

 

Changes in Java SE 8u401-Perf b31

Bug Fixes

January 16, 2024

This BPR contains all of the fixes included in the previous JDK 8 Enterprise Performance Pack BPR.


Java™ SE Development Kit 8, Update 401 Enterprise Performance Pack (JDK 8u401-PERF)

January 16, 2024

The full version string for this update release is 8u401-perf-b10 (where "b" means "build"). The version number is 8u401-perf.

 

IANA TZ Data 2023c

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

 

Security Baselines

The security baselines for the Java Runtime at the time of the release of JDK 8u401 are specified in the following table:

Java Family Version Security Baseline (Full Version String)
88u401-perf-b10

 

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 8u401) be used after the next critical patch update scheduled for April 16, 2024.

Java SE Subscription products customers managing JRE updates/installs for large number of desktops should consider Java Management Service (JMS).

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 8u401-perf) on 2024-05-16. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version. For more information, see 23.1.2 JRE Expiration Date in the Java Platform, Standard Edition Deployment Guide.


New Features

security-libs/javax.xml.crypto
 New System Property to Toggle XML Signature Secure Validation Mode (JDK-8301260)

A new system property named org.jcp.xml.dsig.secureValidation has been added. It can be used to enable or disable the XML Signature secure validation mode. The system property should be set to "true" to enable, or "false" to disable. Any other value for the system property is treated as "false". If the system property is set, it supersedes the XMLCryptoContext property value.

Secure validation mode is enabled by default if you are running the code with a SecurityManager, otherwise it is disabled by default.

 

Known Issues

hotspot/compiler
 Potential Performance Regression Due to Limited Range Check Elimination (JDK-8314468 (not public))

When the C1 compiler is the only compiler available to the VM, it applies loop predication to remove array access range checks from loop bodies. Due to a defect, this optimization was disabled, potentially leading to a performance regression.

This only affects the client VM or VM's running with the non-default command line flags -XX:+NeverActAsServerClassMachine or -XX:TieredStopAtLevel=[1,2,3].

 

Other Notes

security-libs/java.security
 Added Four Root Certificates from DigiCert, Inc. (JDK-8318759)

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

+ DigiCert, Inc.

  + digicertcseccrootg5
    DN: CN=CN=DigiCert CS ECC P384 Root G5, O="DigiCert, Inc.", C=US

+ DigiCert, Inc.
  + digicertcsrsarootg5
    DN: CN=DigiCert CS RSA4096 Root G5, O="DigiCert, Inc.", C=US

+ DigiCert, Inc.
  + digicerttlseccrootg5
    DN: DigiCert TLS ECC P384 Root G5, O="DigiCert, Inc.", C=US

+ DigiCert, Inc.
  + digicerttlsrsarootg5
    DN: DigiCert TLS RSA4096 Root G5, O="DigiCert, Inc.", C=US

security-libs/java.security
 Added Three Root Certificates from eMudhra Technologies Limited (JDK-8319187)

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

+ eMudhra Technologies Limited

  + emsignrootcag1
    DN: CN=emSign Root CA - G1, O=eMudhra Technologies Limited, OU=emSign PKI, C=IN

+ eMudhra Technologies Limited
  + emsigneccrootcag3
    DN: CN=emSign ECC Root CA - G3, O=eMudhra Technologies Limited, OU=emSign PKI, C=IN

+ eMudhra Technologies Limited
  + emsignrootcag2
    DN: CN=emSign Root CA - G2, O=eMudhra Technologies Limited, OU=emSign PKI, C=IN

security-libs/java.security
 Added ISRG Root X2 CA Certificate from Let's Encrypt (JDK-8317374)

The following root certificate has been added to the cacerts truststore:

+ Let's Encrypt

  + letsencryptisrgx2
    DN: CN=ISRG Root X2, O=Internet Security Research Group, C=US

security-libs/javax.net.ssl
 Call X509KeyManager.chooseClientAlias Once for All Key Types (JDK-8262186)

The (D)TLS implementation in JDK now calls X509KeyManager.chooseClientAlias() only once during handshaking for client authentication, even if there are multiple algorithms requested .

 

Changes in Java SE 8u401-Perf

Bug Fixes

JDK 8u401 Enterprise Performance Pack includes the following fixes from JDK 17:
# BugId Component Summary
1JDK-8299658hotspot/compilerC1 compilation crashes in LinearScan::resolve_exception_edge
2JDK-8301489hotspot/compilerC1: ShortLoopOptimizer might lift instructions before their inputs
3JDK-8313626hotspot/compilerC2 crash due to unexpected exception control flow
4JDK-8313402hotspot/compilerC1: Incorrect LoadIndexed value numbering
5JDK-8312909hotspot/compilerC1 should not inline through interface calls with non-subtype receiver
6JDK-8303279hotspot/compilerC2: crash in SubTypeCheckNode::sub() at IGVN split if
7JDK-8304954hotspot/compilerSegmentedCodeCache fails when using large pages
8JDK-8316178hotspot/compilerBetter diagnostic header for CodeBlobs
9JDK-8315377hotspot/compilerC2: assert(u->find_out_with(Op_AddP) == nullptr) failed: more than 2 chained AddP nodes?
10JDK-8316514hotspot/compilerBetter diagnostic header for VtableStub
11JDK-8314024hotspot/compilerSIGSEGV in PhaseIdealLoop::build_loop_late_post_work due to bad immediate dominator info
12JDK-8313262hotspot/compilerC2: Sinking node may cause required cast to be dropped
13JDK-8312440hotspot/compilerassert(cast != nullptr) failed: must have added a cast to pin the node
14JDK-8313756hotspot/compiler[BACKOUT] 8308682: Enhance AES performance
15JDK-8313760hotspot/compiler[REDO] Enhance AES performance
16JDK-8308103hotspot/compilerMassive (up to ~30x) increase in C2 compilation time since JDK 17
17JDK-8307683hotspot/compilerLoop Predication should not hoist range checks with trap on success projection by negating their condition
18JDK-8309119hotspot/compiler[17u/11u] Redo JDK-8297951: C2: Create skeleton predicates for all If nodes in loop predication
19JDK-8275333hotspot/gcPrint count in "Too many recored phases?" assert
20JDK-8316906hotspot/gcClarify TLABWasteTargetPercent flag
21JDK-8270894hotspot/runtimeUse acquire semantics in ObjectSynchronizer::read_stable_mark()
22JDK-8305994hotspot/runtimeGuarantee eventual async monitor deflation
23JDK-8309228hotspot/runtimeClarify EXPERIMENTAL flags comment in hotspot/share/runtime/globals.hpp
24JDK-8306825hotspot/runtimeMonitor deflation might be accidentally disabled by zero intervals
25JDK-8279545hotspot/runtimeBuffer overrun in reverse_words of sharedRuntime_x86_64.cpp:3517
26JDK-8283326hotspot/runtimeImplement SafeFetch statically
27JDK-8314679hotspot/svc-agentSA fails to properly attach to JVM after having just detached from a different JVM

Java™ SE Development Kit 8, Update 401 (JDK 8u401)

January 16, 2024

The full version string for this update release is 8u401-b10 (where "b" means "build"). The version number is 8u401.

 

IANA TZ Data 2023c

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

 

Security Baselines

The security baselines for the Java Runtime at the time of the release of JDK 8u401 are specified in the following table:

Java Family Version Security Baseline (Full Version String)
88u401-b10

 

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 8u401) be used after the next critical patch update scheduled for April 16, 2024.

Java SE Subscription products customers managing JRE updates/installs for large number of desktops should consider using Java Management Service (JMS).

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 8u401) on 2024-05-16. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version. For more information, see 23.1.2 JRE Expiration Date in the Java Platform, Standard Edition Deployment Guide.

 

New Features

security-libs/javax.xml.crypto
 New System Property to Toggle XML Signature Secure Validation Mode (JDK-8301260)

A new system property named org.jcp.xml.dsig.secureValidation has been added. It can be used to enable or disable the XML Signature secure validation mode. The system property should be set to "true" to enable, or "false" to disable. Any other value for the system property is treated as "false". If the system property is set, it supersedes the XMLCryptoContext property value.

Secure validation mode is enabled by default if you are running the code with a SecurityManager, otherwise it is disabled by default.

core-libs/java.io:serialization
 JDK Flight Recorder Event for Deserialization (JDK-8261160)

A new JDK Flight Recorder (JFR) event has been added to monitor deserialization of objects. When JFR is enabled and the JFR configuration includes deserialization events, JFR will emit an event whenever the running program attempts to deserialize an object. The deserialization event is named java/deserialization, and it is disabled by default. The deserialization event contains information that is used by the serialization filter mechanism. Additionally, if a filter is enabled, the JFR event indicates whether the filter accepted or rejected deserialization of the object.

The new Deserialization Event captures:

  • Whether a serialization filter is configured or not.
  • The serialization filter status, if one is configured.
  • The class of the object being deserialized.
  • The number of array elements when deserializing an array.
  • The current graph depth.
  • The current number of object references.
  • The current number of bytes in the stream that have been consumed.
  • The exception type and message, if thrown by the serialization filter.

Refer to Context-Specific Deserialization Filter and Serialization Filtering Guide for details.

 

Known Issues

hotspot/compiler
 Potential Performance Regression Due to Limited Range Check Elimination (JDK-8314468 (not public))

When the C1 compiler is the only compiler available to the VM, it applies loop predication to remove array access range checks from loop bodies. Due to a defect, this optimization was disabled, potentially leading to a performance regression.

This only affects the client VM or VM's running with the non-default command line flags -XX:+NeverActAsServerClassMachine or -XX:TieredStopAtLevel=[1,2,3].

hotspot/compiler
 High CPU on C2 After Updating to JDK 8u401 (JDK-8334725 (not public))

In a rare case, the C2 compiler attempts to apply the split-if loop optimization indefinitely. This regression manifests as continued high CPU use by C2 compiler threads.

The issue is fixed in 8u431. If the issue is encountered in 8u401, 8u411 or 8u421, the VM flag ``-XX:-SplitIfBlocks``, which disables this optimization, can be used as a workaround.

 

Other Notes

security-libs/java.security
 Increase Default Value of the System Property jdk.jar.maxSignatureFileSize (JDK-8312489)

The system property, jdk.jar.maxSignatureFileSize, allows applications to control the maximum size of signature files in a signed JAR. Its default value has been increased from 8000000 bytes (8 MB) to 16000000 bytes (16 MB).

security-libs/java.security
 Added Four Root Certificates from DigiCert, Inc. (JDK-8318759)

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

+ DigiCert, Inc.

  + digicertcseccrootg5
    DN: CN=CN=DigiCert CS ECC P384 Root G5, O="DigiCert, Inc.", C=US

+ DigiCert, Inc.
  + digicertcsrsarootg5
    DN: CN=DigiCert CS RSA4096 Root G5, O="DigiCert, Inc.", C=US

+ DigiCert, Inc.
  + digicerttlseccrootg5
    DN: DigiCert TLS ECC P384 Root G5, O="DigiCert, Inc.", C=US

+ DigiCert, Inc.
  + digicerttlsrsarootg5
    DN: DigiCert TLS RSA4096 Root G5, O="DigiCert, Inc.", C=US

security-libs/java.security
 Added Three Root Certificates from eMudhra Technologies Limited (JDK-8319187)

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

+ eMudhra Technologies Limited

  + emsignrootcag1
    DN: CN=emSign Root CA - G1, O=eMudhra Technologies Limited, OU=emSign PKI, C=IN

+ eMudhra Technologies Limited
  + emsigneccrootcag3
    DN: CN=emSign ECC Root CA - G3, O=eMudhra Technologies Limited, OU=emSign PKI, C=IN

+ eMudhra Technologies Limited
  + emsignrootcag2
    DN: CN=emSign Root CA - G2, O=eMudhra Technologies Limited, OU=emSign PKI, C=IN

security-libs/java.security
 Added Telia Root CA v2 Certificate (JDK-8317373)

The following root certificate has been added to the cacerts truststore:

+ Telia Root CA v2

  + teliarootcav2
    DN: CN=Telia Root CA v2, O=Telia Finland Oyj, C=FI

security-libs/java.security
 Added ISRG Root X2 CA Certificate from Let's Encrypt (JDK-8317374)

The following root certificate has been added to the cacerts truststore:

+ Let's Encrypt

  + letsencryptisrgx2
    DN: CN=ISRG Root X2, O=Internet Security Research Group, C=US

security-libs/javax.net.ssl
 Call X509KeyManager.chooseClientAlias Once for All Key Types (JDK-8262186)

The (D)TLS implementation in JDK now calls X509KeyManager.chooseClientAlias() only once during handshaking for client authentication, even if there are multiple algorithms requested .

 

Bug Fixes

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

The following table lists the bug fixes included in the JDK 8u401 release:

# BugId Component Summary
1JDK-8286481client-libs/java.awtException printed to stdout on Windows when storing transparent image in clipboard
2JDK-6176679client-libs/java.awtApplication freezes when copying an animated gif image to the system clipboard
3JDK-8153090client-libs/javax.swingTAB key cannot change input focus after the radio button in the Color Selection dialog
4JDK-8313657core-libs/javax.namingcom.sun.jndi.ldap.Connection.cleanup does not close connections on SocketTimeoutErrors
5JDK-8314063core-libs/javax.namingThe socket is not closed in Connection::createSocket when the handshake failed for LDAP connection
6JDK-8302577docs/guidesUpdate JSSE Guide for JDK-8301700: Increase the default TLS Diffie-Hellman group size from 1024-bit to 2048-bit
7JDK-8283441hotspot/compilerC2: segmentation fault in ciMethodBlocks::make_block_at(int)
8JDK-8059735hotspot/compilermake_not_entrant_or_zombie sees zombies
9JDK-8075922hotspot/compilerassert(t == t_no_spec) fails in phaseX.cpp
10JDK-8067247hotspot/compilerCrash: assert(method_holder->data() == 0 ...) failed: a) MT-unsafe modification of inline cache
11JDK-8086053hotspot/compilerAddress inconsistencies regarding ZeroTLAB
12JDK-8169177hotspot/gcaarch64: SIGSEGV when "-XX:+ZeroTLAB" is specified along with GC options
13JDK-8149343hotspot/gcassert(rp->num_q() == no_of_gc_workers) failed: sanity
14JDK-8316906hotspot/gcClarify TLABWasteTargetPercent flag
15JDK-8032223hotspot/jvmtinsk/regression/b4663146 gets assert(SafepointSynchronize::is_at_safepoint() || JvmtiEnv::is_thread_fully_suspended(get_thread(), false, &debug_bits))
16JDK-8165496hotspot/jvmtiassert(_exception_caught == false) failed: _exception_caught is out of phase
17JDK-8193386hotspot/runtimeCompressedClassSize too large with MaxMetaspace
18JDK-8194246hotspot/runtimeJVM crashes when calling getStackTrace if stack contains a method that is a member of a very large class
19JDK-8163146hotspot/runtimeRemove os::check_heap on Windows
20JDK-8227815hotspot/svcMinimal VM: set_state is not a member of AttachListener
21JDK-8313856javafx/graphicsReplace VLA with malloc in pango
22JDK-8317508javafx/mediaProvide media support for libavcodec version 60
23JDK-8313900javafx/mediaPossible NULL pointer access in NativeAudioSpectrum and NativeVideoBuffer
24JDK-8311097javafx/webSynchron XMLHttpRequest not receiving data
25JDK-8315074javafx/window-toolkitPossible null pointer access in native glass
26JDK-8315958javafx/window-toolkitMissing range checks in GlassPasteboard
27JDK-8315657javafx/window-toolkitApplication window not activated in macOS 14 Sonoma
28JDK-8319066javafx/window-toolkitApplication window not always activated in macOS 14 Sonoma
29JDK-8320597security-libs/java.securityRSA signature verification fails on signed data that does not encode params correctly
30JDK-8302017security-libs/java.securityAllocate BadPaddingException only if it will be thrown
31JDK-8284910security-libs/javax.securityBuffer clean in PasswordCallback

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

The following sections summarize changes made in all Java SE 8u391 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 8u391 b33

Bug Fixes

December 14, 2023
BugId Category Subcategory Summary
JDK-8054022 core-libs java.net HttpURLConnection timeouts with Expect: 100-Continue and no chunking
JDK-8306784 install install No default java after 8u371 upgrade

 

Changes in Java SE 8u391 b32

Bug Fixes

November 6, 2023
BugId Category Subcategory Summary
JDK-8312489 security-libs java.security Increase jdk.jar.maxSignatureFileSize default which is too low for JARs such as WhiteSource/Mend unified agent jar

 

Changes in Java SE 8u391 b31

Bug Fixes

Fixes from the prior BPR are included in this version.


Java SE 8u391 Enterprise Performance Pack - Bug Fixes and Updates

The following sections summarize changes made in Java SE 8u391 Enterprise Performance Pack. Bug fixes and any other changes are listed below in date order, most current update first. Note that bug fixes in the previous BPR are also included in the current update release.

 

Changes in Java SE 8u391-Perf b33

Bug Fixes

October 19, 2023

This BPR contains all of the fixes included in the previous JDK 8 Enterprise Performance Pack BPR.


Java™ SE Development Kit 8, Update 391 Enterprise Performance Pack (JDK 8u391-PERF)

October 17, 2023

The full version string for this update release is 8u391-perf-b13 (where "b" means "build"). The version number is 8u391-perf.

 

IANA TZ Data 2023c

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 8u391 are specified in the following table:

JRE Family Version JRE Security Baseline (Full Version String)
88u391-perf-b13

 

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 8u391) be used after the next critical patch update scheduled for January 16, 2024.

Java SE Subscription customers managing JRE updates/installs for large number of desktops should consider using Java Advanced Management Console (AMC).

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 8u391) on 2024-02-16. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version. For more information, see 23.1.2 JRE Expiration Date in the Java Platform, Standard Edition Deployment Guide.


Other Notes

hotspot/compiler
 GregorianCalender.computeTime() JVM Crash (JDK-8308884)

A virtual machine crash was observed in JDK 11.0.19 and 17.0.7 when executing the GregorianCalender.computeTime() method (JDK-8307683). It was found that although the root cause of the crash is an old issue, a recent fix for a rare issue in the C2 compiler (JDK-8297951) made the crash much more likely. To mitigate this, the fix has been reverted in JDK 11.0.20 and 17.0.8 and will be reapplied once JDK-8307683 is resolved.

 

Changes in Java SE 8u391-Perf

Bug Fixes

JDK 8u391 Enterprise Performance Pack includes the following fixes from JDK 17:
# BugId Component Subcomponent Summary
1JDK-8274243hotspotcompilerImplement fast-path for ASCII-compatible CharsetEncoders on aarch64
2JDK-8299544hotspotcompilerImprove performance of CRC32C intrinsics (non-AVX-512) for small inputs
3JDK-8153837hotspotcompilerAArch64: Handle special cases for MaxINode & MinINode
4JDK-8272586hotspotcompileremit abstract machine code in hs-err logs
5JDK-8308192hotspotcompilerError in parsing replay file when staticfield is an array of single dimension
6JDK-8309266hotspotcompilerC2: assert(final_con == (jlong)final_int) failed: final value should be integer
7JDK-8300584hotspotcompilerAccelerate AVX-512 CRC32C for small buffers
8JDK-8274986hotspotcompilermax code printed in hs-err logs should be configurable
9JDK-8310126hotspotcompilerC1: Missing receiver null check in Reference::get intrinsic
10JDK-8284760hotspotcompilerCorrect type/array element offset in LibraryCallKit::get_state_from_digest_object()
11JDK-8299158hotspotcompilerImprove MD5 intrinsic on AArch64
12JDK-8303154hotspotcompilerInvestigate and improve instruction cache flushing during compilation
13JDK-8252990hotspotcompilerIntrinsify Unsafe.storeStoreFence
14JDK-8305088hotspotcompilerSIGSEGV in Method::is_method_handle_intrinsic
15JDK-8296545hotspotcompilerC2 Blackholes should allow load optimizations
16JDK-8292713hotspotcompilerUnsafe.allocateInstance should be intrinsified without UseUnalignedAccesses
17JDK-8302736hotspotcompilerMajor performance regression in Math.log on aarch64
18JDK-8307572hotspotcompilerAArch64: Vector registers are clobbered by some macroassemblers
19JDK-8280396hotspotgcG1: Full gc mark stack draining should prefer to make work available to other threads
20JDK-8308643hotspotgcIncorrect value of 'used' jvmstat counter
21JDK-8284532hotspotjfrMemory leak in BitSet::BitMapFragmentTable in JFR leak profiler
22JDK-8283520hotspotjfrJFR: Memory leak in dcmd_arena
23JDK-8307526hotspotjfr[JFR] Better handling of tampered JFR repository
24JDK-8309862hotspotjfrUnsafe list operations in JfrStringPool
25JDK-8307331hotspotjvmtiCorrectly update line maps when class redefine rewrites bytecodes
26JDK-8306428hotspotruntimeRunThese30M.java crashed with assert(early->flag() == current->flag() || early->flag() == mtNone)
27JDK-8297887hotspotruntimeUpdate Siphash
28JDK-8305425hotspotruntimeThread.isAlive0 doesn't need to call into the VM
29JDK-8269466hotspotruntimeFactor out the common code for initializing and starting internal VM JavaThreads
30JDK-8287854hotspotruntimeDangling reference in ClassVerifier::verify_class
31JDK-8303215hotspotruntimeMake thread stacks not use huge pages
32JDK-8290067hotspotruntimeShow stack dimensions in UL logging when attaching threads
33JDK-8283849hotspotsvcAsyncGetCallTrace may crash JVM on guarantee
34JDK-8301170hotspotsvcperfMemory_windows.cpp add free_security_attr to early returns
35JDK-8295657hotspotsvc-agentSA: Allow larger object alignments

Java™ SE Development Kit 8, Update 391 (JDK 8u391)

October 17, 2023

The full version string for this update release is 8u391-b13 (where "b" means "build"). The version number is 8u391.

 

IANA TZ Data 2023c

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 8u391 are specified in the following table:

JRE Family Version JRE Security Baseline (Full Version String)
88u391-b13

 

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 8u391) be used after the next critical patch update scheduled for January 16, 2024.

Java SE Subscription customers managing JRE updates/installs for large number of desktops should consider using Java Advanced Management Console (AMC).

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 8u391) on 2024-02-16. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version. For more information, see 23.1.2 JRE Expiration Date in the Java Platform, Standard Edition Deployment Guide.

 

New Features

security-libs/java.security
 New JFR Event: jdk.SecurityProviderService (JDK-8254711)

A new Java Flight Recorder (JFR) event has been added to record details of java.security.Provider.getService(String type, String algorithm) calls.

The new event name is jdk.SecurityProviderService and contains the following fields:

Field name Field Description
type Type of Service
algorithm Algorithm Name
provider Security Provider

This event is disabled by default and can be enabled via the JFR configuration files or via standard JFR options.

tools/launcher
 -XshowSettings:locale Output Now Includes Tzdata Version (JDK-8305950)

The -XshowSettings launcher option has been enhanced to print the tzdata version configured with the JDK. The tzdata version is displayed as part of the locale showSettings option.

Example output using -X:showSettings:locale:

.....

Locale settings:
    default locale = English
    default display locale = English
    default format locale = English
    tzdata version = 2023c
    .....

 

Known Issues

javafx/media
 Media Playback Does Not Work on Ubuntu 23.10 (JDK-8317508)

Media playback does not work on Ubuntu 23.10. This affects most media formats such as MP4 with H.264/H.265, MP3, AAC, and HTTP Live Streaming. This is because JavaFX Media does not support libavcodec version 60. Support for libavcodec version 60 will be added with JDK-8317508. As a workaround, install libavcodec version 59 compiled with support for at least the following:

  • decoder: aac, mp3, mp3float, h264, hevc
  • parser: aac, h264, hevc
  • demuxer: aac, h264, hevc, mpegts, mpegtsraw

 

Removed Features and Options

security-libs/java.security
 Removed SECOM Trust System's RootCA1 Root Certificate (JDK-8295894)

The following root certificate from SECOM Trust System has been removed from the cacerts keystore:

+ alias name "secomscrootca1 [jdk]"

  Distinguished Name: OU=Security Communication RootCA1, O=SECOM Trust.net, C=JP

infrastructure/build
 Removal of Linux ARM32 Support for JDK 8 (JDK-8305927 (not public))

Platform support for Linux ARM32 in JDK 8 has been removed. As a result, the ARM32 Hard Float ABI download will not be available. Operating Systems that supported ARM32 have reached their End of Life, thus there is no known OS support available.

 

Other Notes

security-libs/java.security
 Added Certigna Root CA Certificate (JDK-8314960)

The following root certificate has been added to the cacerts truststore:

+ Certigna (Dhimyotis)

  + certignarootca
    DN: CN=Certigna Root CA, OU=0002 48146308100036, O=Dhimyotis, C=FR

security-libs/java.security
 Ignore Allow and Disallow Options for java.security.manager System Property (JDK-8301118)

In JDK 12, two new token options for the java.security.manager system property, "allow" and "disallow", were introduced.

Many applications and frameworks are designed to run on multiple JDKs. For those that enable the SecurityManager at runtime via System.setSecurityManager, they have to specify the "allow" option as of JDK 18 (see JDK-8203316). However, these applications would also prefer to use the same command line across multiple versions of the JDK, especially if it is not known what JDK version a user will use.

Currently, if these options are specified in JDK 12 or earlier, the runtime attempts to load a SecurityManager implementation with the classname "allow" or "disallow", which results in a Could not create SecurityManager Error and the application will not start up.

From this release onward, the "allow" and "disallow" options for the java.security.manager system property will be ignored.

security-libs/javax.net.ssl
 The Default TLS Diffie-Hellman Group Size Has Been Increased from 1024-bit to 2048-bit (JDK-8301700)

The JDK implementation of TLS 1.2 now uses a default Diffie Hellman keysize of 2048 bits when a TLS_DHE cipher suite is negotiated and either the client or server does not support FFDHE, which can negotiate a stronger keysize. The JDK TLS implementation supports FFDHE and it is enabled by default.

As a workaround, users can revert to the previous size by setting the jdk.tls.ephemeralDHKeySize system property to 1024 (at their own risk).

This change does not affect TLS 1.3 as the minimum DH group size is already 2048 bits.

install/install
 Allow JDK 8 Installed by MSI to Install Side-by-Side with Other JRE 8 Installations (JDK-8306899 (not public))

In 8u371, the behavior of the JRE installer was changed from installing the JRE in a full-version-specific directory to installing the JRE into a common shared directory. It also removed all older JRE versions in that same family.

In JDK 8u391, a new argument, RETAIN_ALL_VERSIONS=1, was introduced for the MSI installer. If the argument is used, the JRE will install into a jre$fullversion directory. Other JREs of the Java SE 8 family will not be automatically removed. More information can be found in the MSI Enterprise JRE Installer Guide for Windows.

other-libs/corba:idl
 CORBA _DynAnyStub and Associated Subclasses readObject Accepts Only Stringified IORs in IOR: URI format (JDK-8303384 (not public))

The readObject method changes made to _DynAnyFactoryStub in JDK-8285021, have been extended to a set of stub classes that have been categoriezed as pseudo IDL interfaces. These include:

org.omg.DynamicAny._DynArrayStub,

org.omg.DynamicAny._DynEnumStub,
org.omg.DynamicAny._DynFixedStub, 
org.omg.DynamicAny._DynSequenceStub, 
org.omg.DynamicAny._DynStructStub, 
org.omg.DynamicAny._DynUnionStub, 
org.omg.DynamicAny._DynValueStub,
org.omg.DynamicAny._DynAnyStub, 

For each of these stub classes, the readObject method has been amended such that, when reading the stringified IOR from serialized data, it will, by default, accept stringified IORs in IOR: URI format only. As the above stub classes are termed, locally or as ORB constrained types, it is not useful that serialized data should contain corbaname or corbaloc URIs. Furthermore, an ORB will prohibit the binding of a name in the INS to an IOR of these stub classes. As such, using a corbaname to reference an instance of these locally constrained stub classes is not meaningful.

A system property is introduced, com.sun.CORBA.DynamicAny.Stubs.allowCorbanameInIOR, which when set to true, will revert the readObject method to its current behavior and disable the additional IOR checks. The default value of this system property is false. This system property can also be used to disable the IOR check performed in the org.omg.DynamicAny._DynAnyFactoryStub readObject method. As such, with respect to _DynAnyFactory, it complements the system property org.omg.DynamicAny.DynAnyFactoryStub.disableIORCheck introduced in JDK-8285021.

Additionally, the readObject method of the remote CORBA service stub classes:

org.omg.CosNaming._NamingContextStub.java,

org.omg.CosNaming._BindingIteratorStub.java,
org.omg.CosNaming._NamingContextExtStub.java,
org.omg.PortableServer._ServantActivatorStub.java,
org.omg.PortableServer._ServantLocatorStub.java,
com.sun.corba.se.spi.activation._ServerManagerStub.java,
com.sun.corba.se.spi.activation._ActivatorStub.java,
com.sun.corba.se.spi.activation._RepositoryStub.java,
com.sun.corba.se.spi.activation._InitialNameServiceStub.java,
com.sun.corba.se.spi.activation._LocatorStub.java,
com.sun.corba.se.spi.activation._ServerStub.java,

included in the JDK, have been similarly amended to include an IOR check when reading a stringified IOR from serialised data. To enable the IOR check, and prohibit corbaname or corbaloc URLs in a stringified IOR, the setting of the com.sun.CORBA.DynamicAny.Stubs.allowCorbanameInIOR system property to true is required.

A system property is introduced, com.sun.CORBA.IDL.Stubs.allowCorbanameInIOR, which when set to false, will activate an IOR check when reading a stringified IOR from serialised data and constrain a stringified IOR to that of IOR: URI format. Thus, prohibiting corbaname or corbaloc as a valid stringified IOR format. The default value of this system property is true. That is, corbaname or corbaloc are allowed in stringified IORs.

security-libs/javax.net.ssl
 Use Server Cipher Suites Preference by Default (JDK-8168261)

For TLS connections, the cipher suite selection, by default, is updated to use the server cipher suites preference. Applications can configure the behavior by using the SSLParameters.setUseCipherSuitesOrder​() method.

 

Bug Fixes

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

The following table lists the bug fixes included in the JDK 8u391 release:

# BugId Component Summary
1JDK-8311689client-libs/java.awtWrong visible amount in Adjustable of ScrollPane
2JDK-8310054client-libs/java.awtScrollPane insets are incorrect
3JDK-8297923client-libs/java.awtjava.awt.ScrollPane broken after multiple scroll up/down
4JDK-8305815client-libs/java.awtUpdate Libpng to 1.6.39
5JDK-8305517core-libs/java.netMemory leak in Java Solaris native code when calling NetworkInterface.getHardwareAddress()
6JDK-8300098core-libs/java.util.concurrentjava/util/concurrent/ConcurrentHashMap/ConcurrentAssociateTest.java fails with internal timeout when executed with TieredCompilation1/3
7JDK-8234808core-svc/debuggerjdb quoted option parsing broken
8JDK-8290451hotspot/compilerIncorrect result when switching to C2 OSR compilation from C1
9JDK-8213419hotspot/compilerC2 may hang in MulLNode::Ideal()/MulINode::Ideal() with gcc 8.2.1
10JDK-8183910hotspot/gcgc/arguments/TestAggressiveHeap.java fails intermittently
11JDK-8257239hotspot/gc[8u] G1: guarantee(!obj->is_forwarded()) failed: Object must not be forwarded
12JDK-8182703hotspot/gcCorrect G1 barrier queue lock orderings
13JDK-8207011hotspot/runtimeRemove uses of the register storage class specifier
14JDK-8297887hotspot/runtimeUpdate Siphash
15JDK-8284542javafx/accessibility[Accessibility] [Win] Missing attribute for toggle state of CheckBox in CheckBoxTreeItem
16JDK-8309508javafx/graphicsPossible memory leak in JPEG image loader
17JDK-8306328javafx/mediaUpdate libFFI to 3.4.4
18JDK-8306918javafx/webWebView: Update Public Suffix List to 88467c9
19JDK-8303748javafx/webWebKit build fails with Visual Studio 2022 17.5.0
20JDK-8306329javafx/webUpdate ICU4C to 73.1
21JDK-8310681javafx/webUpdate WebKit to 616.1
22JDK-8313177javafx/webWeb Workers timeout with Webkit 616.1
23JDK-8314212javafx/webCrash when loading cnn.com in WebView
24JDK-8313711javafx/webCherry-pick WebKit 616.1 stabilization fixes
25JDK-8313181javafx/webEnabling modern media controls on webkit 616.1 does not load button images on HTML5 video Element
26JDK-8144781javafx/window-toolkitAssertion failure in debug build running any JavaFX program on Mac
27JDK-8296452security-libs/javax.cryptoSolaris Ucrypto context memory leak on CRYPTO_BUFFER_TOO_SMALL error
28JDK-8236671security-libs/javax.cryptoNullPointerException in JKS keystore
29JDK-8232950security-libs/javax.crypto:pkcs11SUNPKCS11 Provider incorrectly check key length for PSS Signatures.
30JDK-8183107security-libs/javax.crypto:pkcs11PKCS11 regression regarding checkKeySize

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

The following sections summarize changes made in all Java SE 8u381 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 8u381 b33

Bug Fixes

BugId Category Subcategory Summary
JDK-6176679 client-libs java.awt Application freezes when copying an animated gif image to the system clipboard
JDK-8286481 client-libs java.awt Exception printed to stdout on Windows when storing transparent image in clipboard
JDK-8314188 (not public) install install [macOS] Installation complete confirmation message not displayed

 

Changes in Java SE 8u381 b32

Bug Fixes

BugId Category Subcategory Summary
JDK-8306899 (not public) install install JRE 8u371 MSI unable to install side-by-side JREs
JDK-8311244 (not public) hotspot gc frequent crashes at g1CollectedHeap.cpp:5923 after updating to JDK8u371

 

Changes in Java SE 8u381 b31

Bug Fixes

BugId Category Subcategory Summary
JDK-8284542 jfx accessibility Missing attribute for toggle state of CheckBox in CheckBoxTreeItem
JDK-8309557 (not public) install Update the JRE 8 Description in RPM packages

Java SE 8u381 Enterprise Performance Pack - Bug Fixes and Updates

The following sections summarize changes made in Java SE 8u381 Enterprise Performance Pack. Bug fixes and any other changes are listed below in date order, most current update first. Note that bug fixes in the previous BPR are also included in the current update release.

 

Changes in Java SE 8u381-Perf b31

Bug Fixes

This BPR contains all of the fixes included in the corresponding JDK 8 BPR.


Other Notes

hotspot/runtime
 ASLR Support for CDS Archive (JDK-8294323 (not public))

Starting with the July 2023 CPU, on operating systems where ASLR (Address Space Layout Randomization) is enabled, the CDS archive will be placed at a random address picked by the operating system.

This change may have a minor performance impact: (a) Start-up time may increase because the JVM needs to patch pointers inside the CDS archive; (b) Memory usage may increase because the memory used by the CDS archive is no longer shareable across processes. We expect the impact to be small because such increases should be only a small fraction of the overall application usage.

In the unlikely event that you must disable ASLR for CDS, you can use the JVM flags -XX:+UnlockDiagnosticVMOptions -XX:ArchiveRelocationMode=0. The usage of such flags is not recommended.

 

Changes in Java SE 8u381-Perf

Bug Fixes

JDK 8u381 Enterprise Performance Pack includes the following fixes from JDK 17:
# BugId Component Subcomponent Summary
1JDK-8280007hotspotcompilerEnable Neoverse N1 optimizations for Arm Neoverse V1 & N2
2JDK-8299179hotspotcompilerArrayFill with store on backedge needs to reduce length by 1
3JDK-8302595hotspotcompileruse-after-free related to GraphKit::clone_map
4JDK-8299959hotspotcompilerC2: CmpU::Value must filter overflow computation against local sub computation
5JDK-8303564hotspotcompilerC2: "Bad graph detected in build_loop_late" after a CMove is wrongly split thru phi
6JDK-8303508hotspotcompilerVector.lane() gets wrong value on x86
7JDK-8299570hotspotcompiler[JVMCI] Insufficient error handling when CodeBuffer is exhausted
8JDK-8300079hotspotcompilerSIGSEGV in LibraryCallKit::inline_string_copy due to constant NULL src argument
9JDK-8299259hotspotcompilerC2: Div/Mod nodes without zero check could be split through iv phi of loop resulting in SIGFPE
10JDK-8296318hotspotcompileruse-def assert: special case undetected loops nested in infinite loops
11JDK-8296412hotspotcompilerSpecial case infinite loops with unmerged backedges in IdealLoopTree::check_safepts
12JDK-8297730hotspotcompilerC2: Arraycopy intrinsic throws incorrect exception
13JDK-8301491hotspotcompilerC2: java.lang.StringUTF16::indexOfChar intrinsic called with negative character argument
14JDK-8303588hotspotcompiler[JVMCI] make JVMCI source directories conform with standard layout
15JDK-8201516hotspotcompilerDebugNonSafepoints generates incorrect information
16JDK-8302508hotspotcompilerAdd timestamp to the output TraceCompilerThreads
17JDK-8289748hotspotcompilerC2 compiled code crashes with SIGFPE with -XX:+StressLCM and -XX:+StressGCM
18JDK-8308884hotspotcompiler[17u/11u] Backout JDK-8297951
19JDK-8303511hotspotcompilerC2: assert(get_ctrl(n) == cle_out) during unrolling
20JDK-8291456hotspotjvmticom/sun/jdi/ClassUnloadEventTest.java failed with: Wrong number of class unload events: expected 10 got 4
21JDK-8280784hotspotruntimeVM_Cleanup unnecessarily processes all thread oops
22JDK-8294677hotspotruntimechunklevel::MAX_CHUNK_WORD_SIZE too small for some applications
23JDK-8277946hotspotruntimeNMT: Remove VM.native_memory shutdown jcmd command option
24JDK-8301123hotspotruntimeEnable Symbol refcounting underflow checks in PRODUCT
25JDK-8295974hotspotruntimejni_FatalError and Xcheck:jni warnings should print the native stack when there are no Java frames
26JDK-8287007hotspotruntime[cgroups] Consistently use stringStream throughout parsing code
27JDK-8278965hotspotruntimecrash in SymbolTable::do_lookup
28JDK-8301749hotspotruntimeTracking malloc pooled memory size

Java™ SE Development Kit 8, Update 381 (JDK 8u381)

July 18, 2023

The full version string for this update release is 8u381-b09 (where "b" means "build"). The version number is 8u381.

 

IANA TZ Data 2023c

JDK 8u381 contains IANA time zone data 2023c which contains the following changes since the previous update.

  • Egypt now uses DST again, from April through October.
  • This year Morocco springs forward April 23, not April 30.
  • Palestine delays the start of DST this year.
  • Much of Greenland still uses DST from 2024 on.
  • America/Yellowknife now links to America/Edmonton.
  • tzselect can now use current time to help infer timezone.
  • The code now defaults to C99 or later.
  • Fix use of C23 attributes.
  • This release's code and data are identical to 2023a.

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 8u381 are specified in the following table:

JRE Family Version JRE Security Baseline (Full Version String)
88u381-b09

 

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 8u381) be used after the next critical patch update scheduled for October 17, 2023.

Java SE Subscription customers managing JRE updates/installs for large number of desktops should consider using Java Advanced Management Console (AMC).

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 8u381) on 2023-11-17. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version. For more information, see 23.1.2 JRE Expiration Date in the Java Platform, Standard Edition Deployment Guide.

 

New Features

core-libs/java.lang
 Allow Additional Characters for GB18030-2022 Support (JDK-8301400)

The China National Standard body (CESI) has recently published GB18030-2022. This is an updated version of the GB18030 standard and brings GB18030 in sync with Unicode version 11.0. The purpose of this enhancement is to incorporate 35 code points (U+9FCD - U+9FEF) from Unicode 11.0 into Java SE 8 to allow implementations to comply with their Implementation Level 1 requirements.

core-libs/java.nio.charsets
 Support for GB18030-2022 (JDK-8307229)

The China National Standard body (CESI) has recently published GB18030-2022, which is an updated version of the GB18030 standard and brings GB18030 in sync with Unicode version 11.0. The Charset implementation for this new standard has now replaced the prior 2000 standard. However, this new standard has some incompatible changes from the prior implementation. For those who need to use the old mappings, a new system property, jdk.charset.GB18030, is introduced. By setting its value to 2000, the previous JDK releases' mappings for the GB18030 Charset are used, which are based on the 2000 standard.

core-libs/java.lang
 Allow Additional Characters for GB18030-2022 (Level 2) Support (JDK-8305681)

The China National Standard body (CESI) has recently published GB18030-2022. This is an updated version of the GB18030 standard and brings GB18030 in sync with Unicode version 11.0. The purpose of this enhancement is to incorporate 108 code points from CJK Unified Ideographs Extension E block from Unicode 11.0 into Java SE 8 to allow implementations to comply with their Implementation Level 2 requirements.

security-libs/javax.crypto
 JDK Now Accepts RSA Keys in PKCS#1 Format (JDK-8023980)

RSA private and public keys in PKCS#1 format can now be accepted by JDK providers, such as the RSA KeyFactory.impl from the SunRsaSign provider. The RSA private or public key object should have the PKCS#1 format and an encoding matching the ASN.1 syntax for a PKCS#1 RSA private key and public key.

 

Known Issues

install
 Problem Upgrading JDK on Windows if System User Is Using Shared Files (JDK-8310932 (not public))

Installing into the same, shared jdk-(family) directory is the default behavior for the JDK starting with the July 2023 CPU. It could lead to FilesInUse issues if JDK files are locked by the "System User". We recommend shutting down any apps using the JDK as the "System User" before upgrading.

hotspot/gc
 JVM Crashes with Internal Error (g1CollectedHeap.cpp:5923) after Upgrading to JDK 8u371 or JDK 8u381 (JDK-8311244 (not public))

There is the possibility of an application crash with the following error:


# Internal Error (g1CollectedHeap.cpp:5923), pid=xxxxx, tid=xxxxxx
# guarantee(!dcqs.completed_buffers_exist_dirty()) failed: must be

 

This affects JDK 8u371 and JDK 8u381 runtimes using G1 GC on all supported platforms.

The failure is now corrected in the JDK 8u381 b32 Bundle Patch Release available via My Oracle Support.

install
 No Default Java after 8u371 32-bit Upgrade (JDK-8306784 (not public))

Upgrading from an 8u361 (or earlier) 32-bit JRE to an 8u371 (or later) 32-bit JRE when an 8u371 (or later) 64-bit JRE is already installed will cause the java.exe command to not be found. For example:

  1. Install 32-bit 8u361
  2. Install 64-bit 8u371 (or later)
  3. Install 32-bit 8u371 (or later)

java.exe will now not work from all places. It will only work directly from the bin directory.

java.exe will not work unless you specify the full path to the bin directory of your JRE.

There are 2 workarounds:

  • Workaround 1: uninstall and reinstall the latest version of 64-bit 8u371 (or later)
  • Workaround 2: specify the full path to java.exe in the \bin directory of the JRE, for example: C:\Program Files\Java\jre-1.8\bin\java.exe

 

Other Notes

hotspot/runtime
 Cgroup v2 Support and Improvements in 8u381 (JDK-8307634)

JDK 8u381 includes several enhancements and fixes to improve the cgroup v1 and v2 support for containers. The improvements include accurately detecting the resource limits of containers, correctly reporting the collected container metrics, printing additional container information, and improving application stability in containerized environments.

Some of the notable stability enhancements are:

JDK-8292083: Java applications may experience out-of-memory errors and run the risk of being killed by the OOM killer when running in a containerized environment where the container is configured with a higher memory limit than the available physical memory on the host system. JDK 8u381 addresses this stability issue. In the previous release, this situation can be avoided by using either -XX:-UseContainerSupport, or -XX:MaxRAM=<physical memory>, or by setting a memory limit for your container that is lower than the physical memory.

JDK-8286030: This release addresses an issue where Java applications may encounter a fatal error when the same /tmp directory is shared across multiple containers. In earlier releases, this crash can be avoided by mounting /tmp to different locations for different containers. Alternatively, the '-XX:-UsePerfData' JVM option can be used to prevent JVMs running within different containers from writing performance data to the shared /tmp folder and thus avoid this issue.

install/install
 Starting in 8u371, the New RPM Package Obsoletes Older JDK 8 Packages and Disallows Downgrades (JDK-8307400)

Added an "Obsoletes" tag to JDK 8 RPM packages to allow automatic upgrades from older JDK 8 RPM packages.

  • jdk-1.8 package obsoletes jdk1.8 package.
  • jre-1.8 package obsoletes jre1.8 package.
  • jdk-1.8-headful package obsoletes jdk1.8 package.
  • jre-1.8-headful package obsoletes jre1.8 package.

No "Obsoletes" tag was added to the jdk-1.8-headless package to prevent upgrading from the full to headless JDK.

The changes allow automatic upgrades for JDK 8 RPM packages starting from the 8u151 update when jdk1.8 and jre1.8 package names were first introduced. Older JDK 8 updates will not be eligible for automatic upgrades to 8u381 and newer updates.

Due to the limitations of "Obsoletes" tag downgrades from 8u381 to older versions are not supported.

install/install
 Missing /usr/java/default Symlink on Linux Restored (JDK-8306690)

A regression where the /usr/java/default symlink is not created by RPM installers on Linux platforms has been fixed. Installers will create the /usr/java/default symlink if it doesn't exist, targeting the /usr/java/latest symlink.

install/install
 Installation of JDK RPM Corrupts Alternatives (JDK-8308244)

The JDK RPM installer will remove incorrectly constructed entries of "java" and "javac" groups registered by older Oracle JDK RPM installers from the alternatives before registering new "java" and "javac" entries.

An incorrectly constructed entry of the "java" group contains commands that are supposed to belong to the "javac" group.

An incorrectly constructed entry of the "javac" group contains commands that are supposed to belong to the "java" group.

All incorrectly constructed entries belonging to Oracle JDK RPM packages will be removed from the alternatives to avoid corruption of the alternatives internal data.

The removal has a potential side effect for users who have installed multiple JDK versions that are not updated to the latest release. Commands from a removed "java" or "javac" group are now unavailable for system Java switch, which potentially changes the current system Java without a warning. For example, if there is an out-of-date JDK RPM from an 11+ release, say 11.0.17, with an incorrectly constructed single "java" group installed and 8u381 RPM with this patch is installed, it will remove an entry from the "java" group belonging to the 11.0.17 RPM and thus will switch the current system Java from 11.0.17 to 8u381. The side effect will only happen when you install a lower JDK family with the fix, such as 8u381, and there is an out-of-date JDK from a higher family, such as 11.0.17, installed on the system. In that case, 8u381 will replace the older 11.0.17 as the latest. The remedy for the user is to install the latest JDK 11.

security-libs/java.security
 Added TWCA Root CA Certificate (JDK-8305975)

The following root certificate has been added to the cacerts truststore:

+ TWCA

  + twcaglobalrootca
    DN: CN=TWCA Global Root CA, OU=Root CA, O=TAIWAN-CA, C=TW

security-libs/java.security
 Added 4 GTS Root CA Certificates (JDK-8307134)

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

+ Google Trust Services LLC

 + gtsrootcar1
  DN: CN=GTS Root R1, O=Google Trust Services LLC, C=US

+ Google Trust Services LLC
 + gtsrootcar2
  DN: CN=GTS Root R2, O=Google Trust Services LLC, C=US

+ Google Trust Services LLC
 + gtsrootecccar3
  DN: CN=GTS Root R3, O=Google Trust Services LLC, C=US

+ Google Trust Services LLC
 + gtsrootecccar4
  DN: CN=GTS Root R4, O=Google Trust Services LLC, C=US

security-libs/java.security
 Added Microsoft Corporation's 2 TLS Root CA Certificates (JDK-8304760)

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

+ Microsoft Corporation

  + microsoftecc2017
    DN: CN=Microsoft ECC Root Certificate Authority 2017, O=Microsoft Corporation, C=US

+ Microsoft Corporation
  + microsoftrsa2017
    DN: CN=Microsoft RSA Root Certificate Authority 2017, O=Microsoft Corporation, C=US

core-libs/java.lang
 System Property java.specification.maintenance.version Set to 5 (JDK-8303028)

This JDK implements Maintenance Release 5 of the Java SE 8 specification (JSR 337). This is indicated by the system property java.specification.maintenance.version having the value of "5".

hotspot/runtime
 ASLR Support for CDS Archive (JDK-8294323 (not public))

Starting with the July 2023 CPU, on operating systems where ASLR (Address Space Layout Randomization) is enabled, the CDS archive will be placed at a random address picked by the operating system.

This change may have a minor performance impact: (a) Start-up time may increase because the JVM needs to patch pointers inside the CDS archive; (b) Memory usage may increase because the memory used by the CDS archive is no longer shareable across processes. We expect the impact to be small because such increases should be only a small fraction of the overall application usage.

In the unlikely event that you must disable ASLR for CDS, you can use the JVM flags -XX:+UnlockDiagnosticVMOptions -XX:ArchiveRelocationMode=0. The usage of such flags is not recommended.

security-libs/java.security
 Throw Error If Default java.security File Fails to Load (