java

Enterprise Performance Pack Release Notes

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