java

JDK 8u491 Release Notes

Java™ SE Development Kit 8, Update 491 (JDK 8u491)

Release date: April 21, 2026

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

 

IANA TZ Data 2026a

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

  • Several code changes for compatibility with FreeBSD.
  • The only changed data are leap second table expiration and pre-1976 time in Baja California.
  • Moldova has used EU transition times since 2022.
  • The "right" TZif files are no longer installed by default.
  • -DTZ_RUNTIME_LEAPS=0 disables runtime support for leap seconds.
  • TZif files are no longer limited to 50 bytes of abbreviations.
  • zic is no longer limited to 50 leap seconds.
  • Several integer overflow bugs have been fixed.

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

Java Family Version Security Baseline (Full Version String)
81.8.0_491-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 8u491) be used after the next critical patch update scheduled for July 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 8u491) on 2026-08-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
 Enhanced keytool Password Handling When Output Is Redirected (JDK-8354469)

The keytool command reads passwords from the system console to prevent them from being displayed on the screen. However, the console is usually available only when both the standard input and output streams are not redirected. Previously, if the standard output stream was redirected into a file or another command, the console was unavailable and the input password was echoed on the screen. This enhancement improves password handling to ensure that the password is not displayed on the screen even if the standard output stream is redirected. This enhancement has also been made to the jarsigner command and the JAAS TextCallbackHandler API.

security-libs/java.security
 Oracle JDK src.zip File Now Includes Source Code for the JSSE/JCE/JGSS Components (JDK-8369608)

The <java-home>/lib/src.zip file distributed with the Oracle JDK now contains sources for JCE, JGSS, and JSSE. Debugging tools can now examine or display most of the security source files.

security-libs/java.security
 New Security Property jdk.crypto.disabledAlgorithms for Restricting Algorithms at the JCE layer (JDK-8244336)

A new security property named jdk.crypto.disabledAlgorithms has been introduced to disable algorithms for JCE/JCA cryptographic services. Initially, this property only supports the Cipher, KeyStore, MessageDigest, and Signature services. This property is defined in the java.security file and initially no algorithms are disabled by default. However, this may change in the future. This security property can be overridden by a system property of the same name if applications need to re-enable algorithms.

See Disabled and Restricted Cryptographic Algorithms for more information.

 

Known Issues

client-libs/java.awt
 SLES 16 Requires a Non-default Package to Be Installed to Run AWT Applications (JDK-8378839 (not public))

A full SuSE Enterprise Linux Server, SLES for short, version 16 desktop installation does not include a package, xdg-desktop-portal-gnome, which is needed for full operation of the JDK desktop applications. This applies to all Oracle JDK versions.

Users should install this package, using standard SLES package repository commands, such as by running:

% sudo zypper install xdg-desktop-portal-gnome

% sudo reboot now

javafx/media
 Media Playback Does Not Work on Ubuntu 26.04 (JDK-8378510)

Media playback does not work on Ubuntu 26.04. 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 62. Support for libavcodec version 62 will be added with JDK-8378510. As a workaround, install libavcodec version 61 compiled with support for at least the following:

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

Other Notes

javafx/other
 Oracle JDK 8 Includes JavaFX for a Limited Time (JDK-8371301 (not public))

JavaFX is again included with JDK 8, although it has a shorter support timeline than JDK 8. Update releases of JDK 8 after March 2028 will not include JavaFX. Visit www.oracle.com/javase/javafx for details.

core-libs/java.net
 Implementation of java.net.CookieStore.getURIs() and get(URI) Methods Now Return an Immutable List (JDK-8365086)

The JDK's implementation of the java.net.CookieStore interface has been updated to return an immutable java.util.List from the getURIs() and get(URI) methods. The updated implementation now matches the specification of these two methods.

security-libs/java.security
 Distrust TLS Server Certificates Anchored by Chunghwa Root Certificates and Issued After March 17, 2026 (JDK-8369282)

The JDK will stop trusting TLS server certificates issued after March 17, 2026 and anchored by Chunghwa root certificates, in line with similar plans announced by Google and Mozilla.

TLS server certificates issued on or before March 17, 2026 will continue to be trusted until they expire. Certificates issued after that date, and anchored by the Certificate Authority listed 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 March 17, 2026.

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

"TLS Server certificate issued after 2026-03-17 and anchored by a distrusted legacy Chunghwa root CA: OU=ePKI Root Certification Authority, O="Chunghwa Telecom Co., Ltd." C=TW"


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

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

Root Certificates distrusted after 2026-03-17
Distinguished Name SHA-256 Fingerprint
OU=ePKI Root Certification Authority, O="Chunghwa Telecom Co., Ltd.", C=TW C0:A6:F4:DC:63:A2:4B:FD:CF:54:EF:2A:6A:08:2A:0A:72:DE:35:80:3E:2F:F5:FF:52:7A:E5:D8:72:06:DF:D5

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.

 

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 8u491 release:

# BugId Component Summary
1JDK-8162545client-libs/2dMac build failure
2JDK-8223045client-libs/2dGraphicsEnvironment does not detect resolution changes in multiscreen systems
3JDK-8373727client-libs/2dNew XBM images parser regression: only the first line of the bitmap array is parsed
4JDK-6899304client-libs/java.awtjava.awt.Toolkit.getScreenInsets(GraphicsConfiguration) returns incorrect values
5JDK-8372756client-libs/java.awtMouse additional buttons and horizontal scrolling are broken on XWayland GNOME >= 47 after JDK-8351907
6JDK-8372534client-libs/java.awtUpdate Libpng to 1.6.51
7JDK-8372048client-libs/java.awtPerformance improvement on Linux remote desktop
8JDK-8375063client-libs/java.awtUpdate Libpng to 1.6.54
9JDK-8372977client-libs/java.awtUnnecessary gthread-2.0 loading
10JDK-8366261core-libs/java.ioProvide utility methods for sun.security.util.Password
11JDK-8048192core-libs/java.nio(bf) Out of direct buffer memory message should include the limits
12JDK-8228343core-svc/toolsJCMD and attach fail to work across Linux Container boundary
13JDK-8371052javafx/mediaUpdate libFFI to 3.5.2
14JDK-8377099javafx/webAdditional WebKit 623.1 fixes from WebKitGTK 2.50.4
15JDK-8377930javafx/webAdditional WebKit 623.1 fixes from WebKitGTK 2.50.5
16JDK-8368572javafx/webUpdate WebKit to 623.1
17JDK-8380557javafx/webAdditional WebKit 623.1 fixes from WebKitGTK 2.50.6
18JDK-8375549security-libs/java.securityConcurrentModificationException if jdk.crypto.disabledAlgorithms has multiple entries with known oid
19JDK-8374555security-libs/java.securityNo need for visible input warning in s.s.u.Password when not reading from System.in
20JDK-8186831security-libs/org.ietf.jgss:krb5Kerberos ignores PA-DATA with a non-null s2kparams
21JDK-8336695xml/jaxpUpdate Commons BCEL to Version 6.10.0