Movatterモバイル変換


[0]ホーム

URL:


Country
Contact Sales
java

Release Notes for JDK 7 and JDK 7 Update Releases

This page contains all of the release notes for JDK 7.

Java SE 7 Advanced and Java SE 7 Support (formerly known as Java for Business 7)Release Notes

As of July, 2022 Java 7 has ended its service life. Oracle may provide additional restricted binaries with and for the sole purpose of running some Oracle products. Please contact Oracle Support for more information.

The Java SE 7 Advanced Platform, available for Java SE Suite, Java SE Advanced, and Java SE Support customers, is based on the current Java SE 7 release.

For more information on installation and licensing of Java SE Suite and Java SE Advanced, visitJava SE Products Overview.

See the following links to release notes including bug fixes, installation information, required licenses, supported configurations, and documentation links contained in this page.


Java™ SE Development Kit 7, Update 481 (JDK 7u481) - Restricted

Release date: October 21, 2025

The full version string for this update release is 1.7.0_481-b08 (where "b" means "build").The version number is 7u481. This JDK conforms to version 7.1 of the Java SE Specification (JSR 336 MR 1 2015-03-12).

As of July 2022, Java 7 has ended its service life. Oracle provides this restricted binary with and for the sole purpose of running some Oracle products. Please contact Oracle Support for more information.

 

IANA TZ Data 2025b

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

 

Security Baselines

The security baseline for the Java Runtime at the time of the release of JDK 7u481 is specified in the following table:

Java Family VersionSecurity Baseline (Full Version String)
71.7.0_481-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, theSecurity Baseline page canbe 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 onCritical Patch Updates, Security Alerts and Bulletins.It is not recommended that this JDK (version 7u481) be used after the next critical patch update scheduledfor 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 userclick 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 7u481) on2026-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, see23.1.2 JRE Expiration Date in theJava Platform, Standard Edition Deployment Guide.

 

New Features

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

TLS cipher suites can be disabled with thejdk.tls.disabledAlgorithms security property in thejava.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.

 

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 thecacerts 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

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 newjdk.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 newjdk.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 propertyjdk.jndi.rmi.object.factoriesFilter=com.sun.jndi.rmi.**;!* are allowed.

These new factory filter properties complement thejdk.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 ofjavax.naming.Reference instance returned, which may lead to aClassCastException being thrown in the application.

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

The XPath processor prevents evaluation of external DTD references in raw XML documents if secure processing is enabled explicitly, such as follows:

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 usingExternal 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.

 

Bug Fixes

This release also contains fixes for security vulnerabilities described in theOracle Critical Patch Update (CPU) Oct 2025 for Oracle Java SE (Doc ID xx).


Java™ SE Development Kit 7, Update 471 (JDK 7u471) - Restricted

Release date: July 15, 2025

The full version string for this update release is 1.7.0_471-b07 (where "b" means "build").The version number is 7u471. This JDK conforms to version 7.1 of the Java SE Specification (JSR 336 MR 1 2015-03-12).

As of July 2022, Java 7 has ended its service life. Oracle provides this restricted binary with and for the sole purpose of running some Oracle products. Please contact Oracle Support for more information.

 

IANA TZ Data 2025b

JDK 7u471 contains IANA time zone data2025b 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 toTimezone Data Versions in the JRE Software.

 

Security Baselines

The security baseline for the Java Runtime at the time of the release of JDK 7u471 is specified in the following table:

Java Family VersionSecurity Baseline (Full Version String)
71.7.0_471-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, theSecurity 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 7u471) 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 userclick 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 7u471) 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, see23.1.2 JRE Expiration Date in theJava 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 thecacerts 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 thecacerts 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

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 thecom.sun.jndi.ldap.object.trustSerialData system property has been updated tofalse.

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 thecom.sun.jndi.ldap.object.trustSerialData system property totrue.

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 theJarFile API, since thegetJarEntry method returnsnull as if the entry had never existed. With this change, thejarsigner -verify command analyzes the signature files and if some sections do not have matching file entries, it prints out the following warning: "This JAR contains signed entries for files that do not exist". Users can further find out the names of these entries by adding the-verbose option to the command.

 

Bug Fixes

This release also contains fixes for security vulnerabilities described in theOracle Critical Patch Update (CPU) Jul 2025 for Oracle Java SE (Doc ID 2992318.1).


Java™ SE Development Kit 7, Update 461 (JDK 7u461) - Restricted

Release date: April 15, 2025

The full version string for this update release is 1.7.0_461-b06 (where "b" means "build").The version number is 7u461. This JDK conforms to version 7.1 of the Java SE Specification (JSR 336 MR 1 2015-03-12).

As of July 2022, Java 7 has ended its service life. Oracle provides this restricted binary with and for the sole purpose of running some Oracle products. Please contact Oracle Support for more information.

 

IANA TZ Data 2025a

JDK 7u461 contains IANA time zone data2025a 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 toTimezone Data Versions in the JRE Software.

 

Security Baselines

The security baseline for the Java Runtime at the time of the release of JDK 7u461 is specified in the following table:

Java Family VersionSecurity Baseline (Full Version String)
71.7.0_441-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, theSecurity Baseline page canbe 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 onCritical Patch Updates, Security Alerts and Bulletins.It is not recommended that this JDK (version 7u461) be used after the next critical patch update scheduledfor 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 userclick 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 7u461) on2025-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, see23.1.2 JRE Expiration Date in theJava Platform, Standard Edition Deployment Guide.

 

Other Notes

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 (theSunJSSE 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 legacyCamerfirma 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 thejdk.security.caDistrustPolicies security property in thejava.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 NameSHA-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 thekeytool 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))

TheJarInputStream 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.

 

Bug Fixes

This release also contains fixes for security vulnerabilities described in theOracle Critical Patch Update (CPU) Apr 2025 for Oracle Java SE (Doc ID 2992318.1).


Java™ SE Development Kit 7, Update 451 (JDK 7u451) - Restricted

Release date: January 21, 2025

The full version string for this update release is 1.7.0_451-b06 (where "b" means "build").The version number is 7u451. This JDK conforms to version 7.1 of the Java SE Specification (JSR 336 MR 1 2015-03-12).

As of July 2022, Java 7 has ended its service life. Oracle provides this restricted binary with and for the sole purpose of running some Oracle products. Please contact Oracle Support for more information.

 

IANA TZ Data 2024b

JDK 7u451 contains IANA time zone data2024b 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 toTimezone Data Versions in the JRE Software.

 

Security Baselines

The security baseline for the Java Runtime at the time of the release of JDK 7u451 is specified in the following table:

Java Family VersionSecurity Baseline (Full Version String)
77u441-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, theSecurity Baseline page canbe 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 onCritical Patch Updates, Security Alerts and Bulletins.It is not recommended that this JDK (version 7u451) be used after the next critical patch update scheduledfor 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 userclick 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 7u451) on2025-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, see23.1.2 JRE Expiration Date in theJava Platform, Standard Edition Deployment Guide.

 

Other Notes

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

On Windows, theProcessBuilder 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 fromspace (0x20) to include all space characters as defined byjava.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, thejava.time.ZoneId.SHORT_IDS Map has not changed. Further details are available atJDK-8342331

 

Bug Fixes

This release also contains fixes for security vulnerabilities described in theOracle Critical Patch Update (CPU) Jan 2025 for Oracle Java SE (Doc ID 2992318.1).

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

#BugIdComponentSummary
1JDK-8340387hotspot/runtimeUpdate OS detection code to recognize Windows Server 2025


Java™ SE Development Kit 7, Update 441 (JDK 7u441) - Restricted

Release date: October 15, 2024

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

As of July 2022, Java 7 has ended its service life. Oracle provides this restricted binary with and for the sole purpose of running some Oracle products. Please contact Oracle Support for more information.

 

IANA TZ Data 2024a

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

 

Security Baselines

The security baseline for the Java Runtime at the time of the release of JDK 7u441 is specified in the following table:

Java Family VersionSecurity Baseline (Full Version String)
77u441-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, theSecurity Baseline page canbe 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 onCritical Patch Updates, Security Alerts and Bulletins.It is not recommended that this JDK (version 7u441) be used after the next critical patch update scheduledfor 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 userclick 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 7u441) on2025-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, see23.1.2 JRE Expiration Date in theJava Platform, Standard Edition Deployment Guide.

 

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 thejdk.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 thecom.sun.net.httpserver.HttpServer implements a similar limit for the maximum request header size the server is prepared to accept. TheHttpServer limit can be changed by specifying a positive value with thesun.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
 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 thejdk.security.caDistrustPolicies security property in thejava.security configuration file.

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

Root Certificates distrusted after 2024-10-31
Distinguished NameSHA-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 thekeytool 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-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 theArgumentIndex pattern element. The hard limit for the value is 10,000.

If anArgumentIndex value is equal to or exceeds the upper limit, anIllegalArgumentException will now be thrown by

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

De-serializing aMessageFormat object with anArgumentIndex value at or over the limit will throw anInvalidObjectException.

 

Bug Fixes

This release also contains fixes for security vulnerabilities described in theOracle Critical Patch Update (CPU) Jul 2024 for Oracle Java SE (Doc ID 2992318.1).

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

#BugIdComponentSummary
1JDK-8328999client-libs/java.awtUpdate GIFlib to 5.2.2
2JDK-8341059security-libs/javax.net.sslChange Entrust TLS distrust date to November 12, 2024


Java™ SE Development Kit 7, Update 431 (JDK 7u431) - Restricted

Release date: July 16, 2024

The full version string for this update release is 7u431-b04 (where "b" means "build").The version number is 7u431.

As of July 2022, Java 7 has ended its service life. Oracle provides this restricted binary with and for the sole purpose of running some Oracle products. Please contact Oracle Support for more information.

 

IANA TZ Data 2024a

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

 

Security Baselines

The security baseline for the Java Runtime at the time of the release of JDK 7u431 is specified in the following table:

Java Family VersionSecurity Baseline (Full Version String)
77u431-b04

 

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, theSecurity Baseline page canbe 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 onCritical Patch Updates, Security Alerts and Bulletins.It is not recommended that this JDK (version 7u431) be used after the next critical patch update scheduledfor 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 userclick 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 7u431) on2024-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, see23.1.2 JRE Expiration Date in theJava 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

 

Bug Fixes

This release also contains fixes for security vulnerabilities described in theOracle Critical Patch Update (CPU) Jul 2024 for Oracle Java SE (Doc ID 2992318.1).

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

#BugIdComponentSummary
1JDK-8323243hotspot/runtimeJNI invocation of an abstract instance method corrupts the stack


Java™ SE Development Kit 7, Update 421 (JDK 7u421) - Restricted

Release date: April 16, 2024

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

As of July 2022, Java 7 has ended its service life. Oracle provides this restricted binary with and for the sole purpose of running some Oracle products. Please contact Oracle Support for more information.

 

IANA TZ Data 2024a

JDK 7u421 contains IANA time zone data2024a which contains the following changes since the previous update.

  • 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 toTimezone Data Versions in the JRE Software.

 

Security Baselines

The security baseline for the Java Runtime at the time of the release of JDK 7u421 is specified in the following table:

Java Family VersionSecurity Baseline (Full Version String)
77u421-b06

 

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, theSecurity 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 7u421) 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 userclick 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 7u421) 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, see23.1.2 JRE Expiration Date in theJava Platform, Standard Edition Deployment Guide.

 

Other Notes

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

 

Bug Fixes

This release also contains fixes for security vulnerabilities described in theOracle Critical Patch Update (CPU) Apr 2024 for Oracle Java SE (Doc ID 2992318.1).

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

#BugIdComponentSummary
1JDK-8316030client-libs/java.awtUpdate Libpng to 1.6.40
2JDK-8317507hotspot/compilerC2 compilation fails with "Exceeded _node_regs array"


Java™ SE Development Kit 7, Update 411 (JDK 7u411) - Restricted

January 16, 2024

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

As of July 2022, Java 7 has ended its service life. Oracle provides this restricted binary with and for the sole purpose of running some Oracle products. Please contact Oracle Support for more information.

 

IANA TZ Data 2023c

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

 

Security Baselines

The security baseline for the Java Runtime at the time of the release of JDK 7u411 is specified in the following table:

Java Family VersionSecurity Baseline (Full Version String)
77u411-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, theSecurity Baseline page canbe 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 onCritical Patch Updates, Security Alerts and Bulletins.It is not recommended that this JDK (version 7u411) be used after the next critical patch update scheduledfor April 16, 2024.

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

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u411) on2024-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, see23.1.2 JRE Expiration Date in theJava 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 namedorg.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 theXMLCryptoContext property value.

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

 

Other Notes

security-libs/java.security
 Increase Default Value of the System Propertyjdk.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

 

Bug Fixes

This release also contains fixes for security vulnerabilities described in theOracle Critical Patch Update (CPU) Jan 2024 for Oracle Java SE (Doc ID 2992318.1).

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

#BugIdComponentSummary
1JDK-8320597security-libs/java.securityRSA signature verification fails on signed data that does not encode params correctly
2JDK-8302017security-libs/java.securityAllocate BadPaddingException only if it will be thrown


Java™ SE Development Kit 7, Update 401 (JDK 7u401) - Restricted

October 17, 2023

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

As of July 2022, Java 7 has ended its service life. Oracle provides this restricted binary with and for the sole purpose of running some Oracle products. Please contact Oracle Support for more information.

 

IANA TZ Data 2023c

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

 

Security Baselines

The security baseline for the Java Runtime at the time of the release of JDK 7u401 is specified in the following table:

JRE Family VersionJRE Security Baseline (Full Version String)
77u401-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, theSecurity Baseline page canbe 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 onCritical Patch Updates, Security Alerts and Bulletins.It is not recommended that this JDK (version 7u401) be used after the next critical patch update scheduledfor January 16, 2024.

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

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u401) on2024-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, see23.1.2 JRE Expiration Date in theJava Platform, Standard Edition Deployment Guide.

 

Other Notes

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 thecacerts keystore:

+ alias name "secomscrootca1 [jdk]"  Distinguished Name: OU=Security Communication RootCA1, O=SECOM Trust.net, C=JP

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 forjava.security.manager System Property (JDK-8301118)

In JDK 12, two new token options for thejava.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 viaSystem.setSecurityManager, they have to specify the "allow" option as of JDK 18 (seeJDK-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 aCould not create SecurityManager Error and the application will not start up.

From this release onward, the "allow" and "disallow" options for thejava.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 thejdk.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.

 

Bug Fixes

This release also contains fixes for security vulnerabilities described in theOracle Critical Patch Update (CPU) Oct 2023 for Oracle Java SE (Doc ID 2978178.1).

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

#BugIdComponentSummary
1JDK-8305815client-libs/java.awtUpdate Libpng to 1.6.39
2JDK-8297887hotspot/runtimeUpdate Siphash


Java™ SE Development Kit 7, Update 391 (JDK 7u391) - Restricted

July 18, 2023

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

As of July 2022, Java 7 has ended its service life. Oracle provides this restricted binary with and for the sole purpose of running some Oracle products. Please contact Oracle Support for more information.

 

IANA TZ Data 2023c

JDK 7u391 contains IANA time zone data2023c 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.
  • Lebanon delays the start of DST this year.
  • This release's code and data are identical to 2023a.

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

 

Security Baselines

The security baseline for the Java Runtime at the time of the release of JDK 7u391 is specified in the following table:

JRE Family VersionJRE Security Baseline (Full Version String)
77u391-b05

 

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, theSecurity 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 7u391) 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 usingJava Advanced Management Console (AMC).

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u391) 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, see23.1.2 JRE Expiration Date in theJava Platform, Standard Edition Deployment Guide.

 

Other Notes

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

security-libs/java.security
 New System Property to Control the Maximum Size of Signature Files (JDK-8300596 (not public))

A new system property,jdk.jar.maxSignatureFileSize, has been added to allow applications to control the maximum size of signature files in a signed JAR. The value of the system property is the desired size in bytes. The default value is 8000000 bytes.

 

Bug Fixes

This release also contains fixes for security vulnerabilities described in theOracle Critical Patch Update (CPU) Jul 2023 for Oracle Java SE (Doc ID ???.1).


Java™ SE Development Kit 7, Update 381 (JDK 7u381) - Restricted

April 18, 2023

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

As of July 2022, Java 7 has ended its service life. Oracle provides this restricted binary with and for the sole purpose of running some Oracle products. Please contact Oracle Support for more information.

 

IANA TZ Data 2022g

JDK 7u381 contains IANA time zone data2022g which contains the following changes since the previous update.

  • The northern edge of Chihuahua changes to US timekeeping.
  • Much of Greenland stops changing clocks after March 2023.
  • Fix some pre-1996 timestamps in northern Canada.
  • C89 is now deprecated; please use C99 or later.
  • Portability fixes for AIX, libintl, MS-Windows, musl, z/OS.
  • In C code, use more C23 features if available.
  • C23 timegm now supported by default.
  • Fixes for unlikely integer overflows.

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

 

Security Baselines

The security baseline for the Java Runtime at the time of the release of JDK 7u381 is specified in the following table:

JRE Family VersionJRE Security Baseline (Full Version String)
77u381-b08

 

Keeping the JDK up to Date

Oracle recommends that the JDK is updated with each Critical Patch Update. Use theSecurity Baseline page to determine the latest version for each release family.

Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Bulletins. It is not recommended to use this JDK (version 20.0.1) after the next critical patch update release, scheduled for July 18, 2023.

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

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u381) on 2023-08-18.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, see23.1.2 JRE Expiration Date in theJava Platform, Standard Edition Deployment Guide.

 

Other Notes

security-libs/java.security
 Added Certigna(Dhimyotis) CA Certificate (JDK-8245654)

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

+ Certigna (Dhimyotis)   + certignaca      DN: CN=Certigna, O=Dhimyotis, C=FR
security-libs/javax.net.ssl
 Removed SSLv2Hello and SSLv3 From Default Enabled TLS Protocols (JDK-8190492)

SSLv2Hello and SSLv3 have been removed from the default enabled TLS protocols.

After this update, if SSLv3 is removed from thejdk.tls.disabledAlgorithms security property, theSSLSocket.getEnabledProtocols(),SSLServerSocket.getEnabledProtocols(),SSLEngine.getEnabledProtocols() andSSLParameters.getProtocols() APIs will return "TLSv1.3, TLSv1.2, TLSv1.1, TLSv1". "SSLv3" will not be returned in this list.

If a client or server still needs to use the SSLv3 protocol they can do so by enabling it through thejdk.tls.client.protocols orjdk.tls.server.protocols system properties or with theSSLSocket.setEnabledProtocols(),SSLServerSocket.setEnabledProtocols() andSSLEngine.setEnabledProtocols() APIs.

infrastructure
 Toolchain Upgrade to Visual Studio 2022 (JDK-8299691)

As part of ongoing maintenance, the JDK for Windows is built using the Microsoft Visual Studio 2022 toolchain starting with this release.

If you have issues with a Java application and if you have native or JNI libraries that are compiled with a different release of the compiler, then you must consider compatibility issues between the runtimes. Specifically, your environment is supported only if you follow the Microsoft guidelines when dealing with multiple runtimes.

 

Bug Fixes

This release also contains fixes for security vulnerabilities described in theOracle Critical Patch Update (CPU) Apr 2023 for Oracle Java SE (Doc ID 2935948.1).

For a more complete list of the bug fixes included in this release, see theJDK 7u381 Bug Fixes page.


Java™ SE Development Kit 7, Update 371 (JDK 7u371) - Restricted

January 17, 2023

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

As of July 2022, Java 7 has ended its service life. Oracle provides this restricted binary with and for the sole purpose of running some Oracle products. Please contact Oracle Support for more information.

 

IANA TZ Data 2022d, 2022e, 2022f

JDK 7u371 contains IANA time zone data2022d,2022e,2022f.
  • Palestine transitions are now Saturdays at 02:00.
  • Simplify three Ukraine zones into one.
  • Jordan and Syria switch from +02/+03 with DST to year-round +03.
  • Mexico will no longer observe DST except near the US border.
  • Chihuahua moves to year-round -06 on 2022-10-30.
  • Fiji no longer observes DST.
  • Move links to 'backward'.
  • In vanguard form, GMT is now a Zone and Etc/GMT a link.
  • zic now supports links to links, and vanguard form uses this.
  • Simplify four Ontario zones.
  • Fix a Y2438 bug when reading TZif data.
  • Enable 64-bit time_t on 32-bit glibc platforms.
  • Omit large-file support when no longer needed.
  • In C code, use some C23 features if available.
  • Remove no-longer-needed workaround for Qt bug 53071.
For more information, refer toTimezone Data Versions in the JRE Software.

 

Security Baselines

The security baseline for the Java Runtime Environment (JRE) at the time of the release of JDK 7u371 is specified in the following table:

JRE Family VersionJRE Security Baseline (Full Version String)
77u371-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, theSecurity Baseline page canbe 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 onCritical Patch Updates, Security Alerts and Bulletins.It is not recommended that this JDK (version 7u371) be used after the next critical patch update scheduledfor April 18, 2023.

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

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u371) on2023-05-18.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, see23.1.2 JRE Expiration Date in theJava Platform, Standard Edition Deployment Guide.

 

Other Notes

client-libs/java.awt
 Headless AWT Mode Is Enabled Always (JDK-8289906)

Headless AWT mode is enabled by default always and it cannot be disabled. The JDK behaves as if the application was started with the-Djava.awt.headless=true JVM option. If the application calls a Java™ Platform, SE API which depends on a display, keyboard, or mouse, thenHeadlessException will be thrown in accordance with that Java SE specification for headless AWT mode.

tools/visualvm
 VisualVM tool no longer bundled (JDK-8294184)

This version of the JDK no longer includes a copy of Java VisualVM. VisualVM is now available as a separate download fromhttps://visualvm.github.io.

other-libs/corba
 CORBA _DynAnyFactoryStub readObject Accepts Only Stringified ior in IOR: URI format (JDK-8285021 (not public))

ThereadObject method of_DynAnyFactoryStub 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. AsDynAnyFactory is a locally or ORB constrained type, 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 aDynAnyFactory IOR, as such, using a corbaname to reference an instance ofDynAnyFactory is not meaningful.

A system property is introduced,org.omg.DynamicAny.DynAnyFactoryStub.disableIORCheck, which when set to true, will revert the_DynAnyFactoryStub::readObject to its current behavior and bypass the additional IOR checks.

 

Bug Fixes

This release contains fixes for security vulnerabilities described in theOracle Critical Patch Update (CPU) Jan 2023 for Oracle Java SE (Doc ID 2917310.1).


Java™ SE Development Kit 7, Update 361 (JDK 7u361) - Restricted

October 18, 2022

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

As of July 2022, Java 7 has ended its service life. Oracle provides this restricted binary with and for the sole purpose of running some Oracle products. Please contact Oracle Support for more information.

 

IANA TZ Data 2022b, 2022c

JDK 7u361 contains IANA time zone data2022b,2022c.

  • Chile's DST is delayed by a week in September 2022.
  • Iran no longer observes DST after 2022.
  • Rename Europe/Kiev to Europe/Kyiv.
  • New zic -R option
  • Vanguard form now uses %z.
  • Finish moving duplicate-since-1970 zones to 'backzone'.
  • New build option PACKRATLIST.
  • New tailored_tarballs target, replacing rearguard_tarballs.
  • Work around awk bug in FreeBSD, macOS, etc.
  • Improve tzselect on intercontinental Zones.
For more information, refer toTimezone Data Versions in the JRE Software.

 

Security Baselines

The security baseline for the Java Runtime Environment (JRE) at the time of the release of JDK 7u361 is specified in the following table:

JRE Family VersionJRE Security Baseline (Full Version String)
77u361-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, theSecurity Baseline page canbe 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 onCritical Patch Updates, Security Alerts and Bulletins.It is not recommended that this JDK (version 7u361) be used after the next critical patch update scheduledfor January 17, 2023.

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

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u361) on2023-02-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, see23.1.2 JRE Expiration Date in theJava Platform, Standard Edition Deployment Guide.

 

New Features

security-libs/java.security
 Upgrade the Default PKCS12 MAC Algorithm (JDK-8267880)

The default MAC algorithm used in a PKCS #12 keystore has been updated. The new algorithm is based on SHA-256 and is stronger than the old one based on SHA-1. See the security properties starting withkeystore.pkcs12 in thejava.security file for detailed information.

The new SHA-256 based MAC algorithms were introduced in the 11.0.12, 8u301, and 7u311 JDK versions. Keystores created using this newer, stronger, MAC algorithm cannot be opened in JDK versions earlier than 11.0.12, 8u301, and 7u311. A 'java.security.NoSuchAlgorithmException' exception will be thrown in such circumstances.

For compatibility, use thekeystore.pkcs12.legacy system property, which will revert the algorithms to use the older, weaker algorithms. There is no value defined for this property.

 

Other Notes

security-libs/java.security
 Disabled SHA-1 Signed JARs (JDK-8269039)

JARs signed with SHA-1 algorithms are now restricted by default and treated as if they were unsigned. This applies to the algorithms used to digest, sign, and optionally timestamp the JAR. It also applies to the signature and digest algorithms of the certificates in the certificate chain of the code signer and the Timestamp Authority, and any CRLs or OCSP responses that are used to verify if those certificates have been revoked. These restrictions also apply to signed JCE providers.

To reduce the compatibility risk for JARs that have been previously timestamped, there is one exception to this policy:

  • Any JAR signed with SHA-1 algorithms and timestamped prior to January 01, 2019 will not be restricted.

This exception may be removed in a future JDK release. To determine if your signed JARs are affected by this change, runjarsigner -verify -verbose -certs on the signed JAR, and look for instances of "SHA1" or "SHA-1" and "disabled" and a warning that the JAR will be treated as unsigned in the output.

For example:

-  Signed by "CN="Signer""     Digest algorithm: SHA-1 (disabled)     Signature algorithm: SHA1withRSA (disabled), 2048-bit keyWARNING: The jar will be treated as unsigned, because it is signed with a weak algorithm that is now disabled by the security property:  jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024, DSA keySize < 1024, SHA1 denyAfter 2019-01-01

JARs affected by these new restrictions should be replaced or re-signed with stronger algorithms.

Users can,at their own risk, remove these restrictions by modifying thejava.security configuration file (or override it by using thejava.security.properties system property) and removing "SHA1 usage SignedJAR & denyAfter 2019-01-01" from thejdk.certpath.disabledAlgorithms security property and "SHA1 denyAfter 2019-01-01" from thejdk.jar.disabledAlgorithms security property.

security-libs/org.ietf.jgss:krb5
 Deprecate 3DES and RC4 in Kerberos (JDK-8139348)

Thedes3-hmac-sha1 andrc4-hmac Kerberos encryption types (etypes) are now deprecated and disabled by default. Users can setallow_weak_crypto = true in thekrb5.conf configuration file to re-enable them (along with other weak etypes includingdes-cbc-crc anddes-cbc-md5) at their own risk. To disable a subset of the weak etypes, users can list preferred etypes explicitly in any of thedefault_tkt_enctypes,default_tgs_enctypes, orpermitted_enctypes settings.

core-libs/java.time
 Update Timezone Data to 2022c (JDK-8294042)

This version includes changes from 2022b that merged multiple regions that have the same timestamp data post-1970 into a single time zone data. All time zone IDs remain the same but the merged time zones will point to a shared zone data.

As a result, pre-1970 data may not be compatible with earlier JDK versions. The affected zones are Antarctica/Vostok, Asia/Brunei, Asia/Kuala_Lumpur, Atlantic/Reykjavik, Europe/Amsterdam, Europe/Copenhagen, Europe/Luxembourg, Europe/Monaco, Europe/Oslo, Europe/Stockholm, Indian/Christmas, Indian/Cocos, Indian/Kerguelen, Indian/Mahe, Indian/Reunion, Pacific/Chuuk, Pacific/Funafuti, Pacific/Majuro, Pacific/Pohnpei, Pacific/Wake, Pacific/Wallis, Arctic/Longyearbyen, Atlantic/Jan_Mayen, Iceland, Pacific/Ponape, Pacific/Truk, and Pacific/Yap.

For more details, refer to the announcement of2022b.

core-libs/java.net
 New System Property to Limit the Number of Open Connections to com.sun.net.httpserver.HttpServer (JDK-8286918 (not public))

A new system property namedjdk.httpserver.maxConnections has been introduced to allow users to configure thecom.sun.net.httpserver.HttpServer to limit the maximum number of open connections to the server at any given time. This system property takes an integer value and can be configured to be a positive integer. If the property is absent, set to 0, or a negative value, the server will not limit the number of open connections. By default, this system property is not set.

 

Bug Fixes

This release contains fixes for security vulnerabilities described in theOracle Critical Patch Update (CPU) Oct 2022 for Oracle Java SE (Doc ID 2897309.1). For a more complete list of the bug fixes included in this release, see theJDK 7u361 Bug Fixes page.


Java™ SE Development Kit 7, Update 351 (JDK 7u351)

July 19, 2022

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

 

IANA TZ Data 2022a

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

 

Security Baselines

The security baseline for the Java Runtime Environment (JRE) at the time of the release of JDK 7u351 is specified in the following table:

JRE Family VersionJRE Security Baseline (Full Version String)
77u351-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, theSecurity Baseline page canbe 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 onCritical Patch Updates, Security Alerts and Bulletins.It is not recommended that this JDK (version 7u351) be used after the next critical patch update scheduledfor October 18, 2022.

 

Other Notes

core-libs/java.util.jar
 Default JDK compressor will be closed when IOException is encountered

DeflaterOutputStream.close() andGZIPOutputStream.finish() methods have been modified to close out the associated default JDK compressor before propagating a Throwable up the stack.ZIPOutputStream.closeEntry() method has been modified to close out the associated default JDK compressor before propagating an IOException, not of type ZipException, up the stack.

 

Bug Fixes

This release contains fixes for security vulnerabilities described in theOracle Critical Patch Update. For a more complete list of the bug fixes included in this release, see theJDK 7u351 Bug Fixes page.


Java SE 7u343 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u343 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

 

 

Changes in Java SE 7u343 b31

Fixes from the prior BPR are included in this version.


Java™ SE Development Kit 7, Patch 7u343 (JDK 7u343)

May 2, 2022

The full version string for this update release is 7u343-b02 (where "b" means "build"). The version number is 7u343.

 

IANA TZ Data 2022a

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

 

Security Baselines

The security baselines are unchanged from the release of JDK 7u341.

JRE Family VersionJRE Security Baseline (Full Version String)
77u341-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, theSecurity Baseline page canbe 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 onCritical Patch Updates, Security Alerts and Bulletins.It is not recommended that this JDK (version 7u343) be used after the next critical patch update scheduledfor July 19, 2022.

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

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u343) on2022-08-19.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, see23.1.2 JRE Expiration Date in theJava Platform, Standard Edition Deployment Guide.

 

Changes

core-libs/java.io
 New System Property to Disable Windows Alternate Data Stream Support in java.io.File

The Windows implementation ofjava.io.File allows access to NTFS Alternate Data Streams (ADS) by default. Such streams have a structure like “filename:streamname”. A system propertyjdk.io.File.enableADS has been added to control this behavior. To disable ADS support injava.io.File, the system propertyjdk.io.File.enableADS should be set tofalse (case ignored). Stricter path checking however prevents the use of special devices such asNUL:

 

 

Bug Fixes

This release is based on the previous CPU and does not contain any additional security fixes.


Java SE 7u341 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u341 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

 

 

Changes in Java SE 7u341 b31

Bug Fixes

BugIdCategorySubcategoryDescription
JDK-8283350core-libsjava.time(tz) Update Timezone Data to 2022a

Fixes from the previous BPR are included in this version.


Java™ SE Development Kit 7, Update 341 (JDK 7u341)

April 19, 2022

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

 

IANA TZ Data 2021e

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

 

Security Baselines

The security baseline for the Java Runtime Environment (JRE) at the time of the release of JDK 7u341 is specified in the following table:

JRE Family VersionJRE Security Baseline (Full Version String)
77u341-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, theSecurity Baseline page canbe 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 onCritical Patch Updates, Security Alerts and Bulletins.It is not recommended that this JDK (version 7u341) be used after the next critical patch update scheduledfor July 19, 2022.

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

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u341) on2022-08-19.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, see23.1.2 JRE Expiration Date in theJava Platform, Standard Edition Deployment Guide.

 

New Features

xml/jaxp
 New XML Processing Limits

Three processing limits have been added. These are:

  • jdk.xml.xpathExprGrpLimit

Description: Limits the number of groups an XPath expression can contain.

Type: integer

Value: A positive integer. A value less than or equal to 0 indicates no limit. If the value is not an integer, aNumberFormatException is thrown. Default 10.

  • jdk.xml.xpathExprOpLimit

Description: Limits the number of operators an XPath expression can contain.

Type: integer

Value: A positive integer. A value less than or equal to 0 indicates no limit. If the value is not an integer, aNumberFormatException is thrown. Default 100.

  • jdk.xml.xpathTotalOpLimit

Description: Limits the total number of XPath operators in an XSL Stylesheet.

Type: integer

Value: A positive integer. A value less than or equal to 0 indicates no limit. If the value is not an integer, aNumberFormatException is thrown. Default 10000.

Supported processors

  • jdk.xml.xpathExprGrpLimit andjdk.xml.xpathExprOpLimit are supported by the XPath processor.

  • All three limits are supported by the XSLT processor.

Setting properties

For the XSLT processor, the properties can be changed through theTransformerFactory. For example,

        TransformerFactory factory = TransformerFactory.newInstance();        factory.setAttribute("jdk.xml.xpathTotalOpLimit", "1000");

For both the XPath and XSLT processors, the properties can be set through the system property andjaxp.properties configuration file located in theconf directory of the Java installation. For example,

        System.setProperty("jdk.xml.xpathExprGrpLimit", "20");

or in thejaxp.properties file,

        jdk.xml.xpathExprGrpLimit=20

 

There are two known issues:

  1. An XPath expression that contains a short form of the parent axis ".." can return incorrect results. SeeJDK-8284920 for details.
  2. An invalid XPath expression that ends with a relational operator such as ‘<’ ‘>’ and ‘=’ will cause the processor to erroneously throw StringIndexOutOfBoundsException instead of XPathExpressionException. SeeJDK-8284548 for details.
JDK-8270504 (not public)

Other Notes

security-libs/java.security
 Only Expose Certificates With Proper Trust Settings as Trusted Certificate Entries in macOS KeychainStore

On macOS, only certificates with proper trust settings in the user keychain will be exposed as trusted certificate entries in the KeychainStore type of keystore. Also, calling theKeyStore::setCertificateEntry method or thekeytool -importcert command on a KeychainStore keystore now fails with aKeyStoreException. Instead, call the macOS "security add-trusted-cert" command to add a trusted certificate into the user keychain.

JDK-8278449 (not public)

core-libs/javax.naming
 Parsing of URL Strings in Built-in JNDI Providers Is More Strict

The parsing of URLs in the LDAP, DNS, and RMI built-in JNDI providers has been made more strict. The strength of the parsing can be controlled by system properties:

  -Dcom.sun.jndi.ldapURLParsing="legacy" | "compat" | "strict"    (to control "ldap:" URLs)  -Dcom.sun.jndi.dnsURLParsing="legacy" | "compat" | "strict"     (to control "dns:" URLs)  -Dcom.sun.jndi.rmiURLParsing="legacy" | "compat" | "strict"     (to control "rmi:" URLs)  -Dcom.sun.jndi.corbaURLParsing="legacy" | "compat" | "strict"   (to control "iiop:" and "iiopname:" URLs)

 

The default value is "compat" for all of the three providers.

  • The "legacy" mode turns the new validation off.
  • The "compat" mode limits incompatibilities.
  • The "strict" mode is stricter and may cause regression by rejecting URLs that an application might consider as valid.

In "compat" and "strict" mode, more validation is performed. As an example, in the URL authority component, the new parsing only accepts brackets around IPv6 literal addresses. Developers are encouraged to usejava.net.URI constructors or its factory method to build URLs rather than handcrafting URL strings.

If an illegal URL string is found, ajava.lang.IllegalArgumentException or ajavax.naming.NamingException (or a subclass of it) is raised.

JDK-8278972 (not public)

 

Bug Fixes

This release contains fixes for security vulnerabilities described in theOracle Critical Patch Update. For a more complete list of the bug fixes included in this release, see theJDK 7u341 Bug Fixes page.


Java™ SE Development Kit 7, Update 331 (JDK 7u331)

January 18, 2022

The full version string for this update release is 7u331-b06 (where "b" means "build"). The version number is 7u331.

 

IANA TZ Data 2021b, 2021c, 2021d, 2021e

JDK 7u331 contains IANA time zone data2021b,2021c,2021d,2021e.
  • Jordan now starts DST on February's last Thursday.
  • Samoa no longer observes DST.
  • Merge more location-based Zones whose timestamps agree since 1970.
  • Move some backward-compatibility links to 'backward'.
  • Rename Pacific/Enderbury to Pacific/Kanton.
  • Correct many pre-1993 transitions in Malawi, Portugal, etc.
  • zic now creates each output file or link atomically.
  • zic -L no longer omits the POSIX TZ string in its output.
  • zic fixes for truncation and leap second table expiration.
  • zic now follows POSIX for TZ strings using all-year DST.
  • Fix some localtime crashes and bugs in obscure cases.
  • zdump -v now outputs more-useful boundary cases.
  • tzfile.5 better matches a draft successor to RFC 8536.
  • A new file SECURITY.
  • Revert most 2021b changes to 'backward'.
  • Fix 'zic -b fat' bug in pre-1970 32-bit data.
  • Fix two Link line typos.
  • Distribute SECURITY file.

This release is intended as a bugfix release, to fix compatibility problems and typos reported since 2021b was released.

  • Fiji suspends DST for the 2021/2022 season.
  • 'zic -r' marks unspecified timestamps with "-00".
  • Palestine will fall back 10-29 (not 10-30) at 01:00.
For more information, refer toTimezone Data Versions in the JRE Software.

 

Security Baselines

The security baseline for the Java Runtime Environment (JRE) at the time of the release of JDK 7u331 is specified in the following table:

JRE Family VersionJRE Security Baseline (Full Version String)
77u331-b06

 

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, theSecurity Baseline page canbe 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 onCritical Patch Updates, Security Alerts and Bulletins.It is not recommended that this JDK (version 7u331) be used after the next critical patch update scheduledfor April 19, 2022.

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

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u331) on2022-05-19.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, see23.1.2 JRE Expiration Date in theJava Platform, Standard Edition Deployment Guide.

 

New Features

security-libs/javax.xml.crypto
 Apache Santuario Library Updated to Version 2.1.4

The Apache Santuario library has been upgraded to version 2.1.4. As a result, a new system propertycom.sun.org.apache.xml.internal.security.parser.pool-size has been introduced.

This new system property sets the pool size of the internalDocumentBuilder cache used when processing XML Signatures. The function is equivalent to theorg.apache.xml.security.parser.pool-size system property used in Apache Santuario and has the same default value of 20.

Removed Features and Options

security-libs/java.security
 Removed Google's GlobalSign Root Certificate

The following root certificate from Google has been removed from thecacerts keystore:

+ alias name "globalsignr2ca [jdk]"  Distinguished Name: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2

 

Other Notes

core-libs/java.time
 Update Timezone Data to 2021c

IANA Time Zone Database, on which JDK's Date/Time libraries are based, has made a tweak to some time zone rules since2021c. Note that since this update, some of the time zone rules prior to the year 1970 have been modified according to the changes which were introduced with 2021b. For more detail, refer to the announcement of2021b

 

Bug Fixes

This release contains fixes for security vulnerabilities described in theOracle Critical Patch Update. For a more complete list of the bug fixes included in this release, see theJDK 7u331 Bug Fixes page.


Java SE 7u321 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u321 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

 

 

Changes in Java SE 7u321 b31

Fixes from the previous BPR are included in this version.


Java™ SE Development Kit 7, Update 321 (JDK 7u321)

October 19, 2021

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

IANA TZ Data 2021a

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

Security Baselines

The security baseline for the Java Runtime Environment (JRE) at the time of the release of JDK 7u321 is specified in the following table:

JRE Family VersionJRE Security Baseline (Full Version String)
77u321-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, theSecurity Baseline page canbe 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 onCritical Patch Updates, Security Alerts and Bulletins.It is not recommended that this JDK (version 7u321) be used after the next critical patch update scheduledfor January 18, 2022.

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

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u321) on2022-02-18.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, see23.1.2 JRE Expiration Date in theJava Platform, Standard Edition Deployment Guide.

Removed Features and Options

security-libs/java.security
 Removed IdenTrust Root Certificate

The following root certificate from IdenTrust has been removed from thecacerts keystore:

+ alias name "identrustdstx3 [jdk]"  Distinguished Name: CN=DST Root CA X3, O=Digital Signature Trust Co.

Other Notes

core-libs/java.lang
 Release Doesn't Correctly Recognize Windows 11

This release doesn't correctly identify Windows 11. The propertyos.name is set toWindows 10 on Windows 11. In HotSpot error logs, the OS is identified asWindows 10; however, the HotSpot error log does show the Build number. Windows 11 has Build 22000.194 or above.

security-libs/javax.net.ssl
 Updated the Default Enabled Cipher Suites Preference

The default priority order of the cipher suites for TLS 1.0 to TLS 1.2 has been adjusted. Some of the intermediate suites have been lowered in priority as follows:

  • Cipher suites that do not preserve forward secrecy have been moved lower in priority than those that do support forward secrecy.
  • Cipher suites that use SHA-1 have been moved lower in priority.
  • The CBC suites will continue to be preferred over the GCM suites.

security-libs/javax.xml.crypto
Updated XML Signature Implementation to Apache Santuario 2.1.3
The XML Signature implementation in thejava.xml.crypto module has been updated to version 2.1.3 of Apache Santuario. New features include:

  • Added support for embedding elliptic curve public keys in the KeyValue element

SeeJDK-8219013

security-libs/javax.xml.crypto
 Updated xmldsig Implementation to Apache Santuario 2.1.1

The XMLDSig provider implementation in thejava.xml.crypto module has been updated to version 2.1.1 of Apache Santuario. New features include:

  • Support for the SHA-224 and SHA-3 DigestMethod algorithms specified in RFC 6931.
  • Support for the HMAC-SHA224, RSA-SHA224, ECDSA-SHA224, and RSASSA-PSS family of SignatureMethod algorithms specified in RFC 6931.

SeeJDK-8177334

security-libs/javax.xml.crypto
 Oracle Specific JDK Update of System Property to Fall Back to Legacy Base64 Encoding Format

Oracle JDK 8u231 has upgraded the Apache Santuario libraries to v2.1.3. This upgrade introduced an issue in which XML signatures using Base64 encoding appended&#xd or&#13 to the encoded output. This behavioral change was made in the Apache Santuario codebase to comply with RFC 2045. The Santuario team has adopted a position of keeping their libraries compliant with RFC 2045.

Oracle JDK 8u221 using the legacy encoder returns encoded data in a format without&#xd or&#13.

Therefore an Oracle specific JDK 8 Update of a new system propertycom.sun.org.apache.xml.internal.security.lineFeedOnly has been made available to fall back to legacy Base64 encoded format.

Users can set this flag in one of two ways:

  1. -Dcom.sun.org.apache.xml.internal.security.lineFeedOnly=true
  2. System.setProperty("com.sun.org.apache.xml.internal.security.lineFeedOnly", "true")

This new system property is disabled by default. It has no effect on default behavior or when thecom.sun.org.apache.xml.internal.security.ignoreLineBreaks property is set.

Later JDK family versions will only support the recommended property:com.sun.org.apache.xml.internal.security.ignoreLineBreaks

core-libs/java.net
 Modified HttpURLConnection Behavior When a Suitable Proxy Is Not Found

The behavior ofHttpURLConnection when usingProxySelector has been modified in this JDK release.HttpURLConnection used to fall back to a direct connection attempt if the configured proxy(s) failed to make a connection. Beginning with this release, the default behavior has been changed to no longer use a direct connection when the first proxy connection attempt fails.

A new system property,sun.net.http.fallbackToDirect, can be set to a value of "true" should an application need to fall back to the old behavior (fall back to a direct connection when the first proxy connection attempt fails).

core-libs/javax.naming
 System Property to Control Reconstruction of Reference Address Objects by JDK's Built-in JNDI LDAP Implementation

The scope of thecom.sun.jndi.ldap.object.trustSerialData system property has been extended to control the deserialization of java objects from thejavaReferenceAddress LDAP attribute. This system property now controls the deserialization of java objects from thejavaSerializedData andjavaReferenceAddress LDAP attributes.

To prevent deserialization of java objects from these attributes, the system property can be set tofalse. By default, the deserialization of java objects fromjavaSerializedData andjavaReferenceAddress attributes is allowed.

JDK-8267712 (not public)

hotspot/runtime
 Release Doesn't Correctly Recognize Windows Server

This release doesn't correctly identify Windows Server. The propertyos.name is set toWindows 2019 on Windows Server 2022. In HotSpot error logs, the OS is identified asWindows 10.0 for Windows Server releases 2016, 2019, and 2022; however, the HotSpot error log does show the Build number. Windows Server 2016 has Build 14393 or above, Windows Server 2019 has Build 17763 or above, and Windows Server 2022 has Build 20348 or above.

Bug Fixes

This release contains fixes for security vulnerabilities described in theOracle Critical Patch Update. For a more complete list of the bug fixes included in this release, see theJDK 7u321 Bug Fixes page.


Java SE 7u311 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u311 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

 

Changes in Java SE 7u311 b32

Bug Fixes

BugIdCategorySubcategoryDescription
JDK-8012322hotspotcompilerTiered: CompilationPolicy::can_be_compiled(CompLevel_all) mistakenly return false

 

Changes in Java SE 7u311 b31

Please note that fixes from the previous BPR (7u291 b32) are included in this version.

Java™ SE Development Kit 7, Update 311 (JDK 7u311)

July 20, 2021

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

IANA TZ Data 2021a

JDK 7u311 contains IANA time zone data2021a.

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

Security Baselines

The security baseline for the Java Runtime Environment (JRE) at the time of the release of JDK 7u311 is specified in the following table:

JRE Family VersionJRE Security Baseline (Full Version String)
77u311-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, theSecurity 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 onCritical Patch Updates, Security Alerts and Bulletins. It is not recommended that this JDK (version 7u311) be used after the next critical patch update scheduled for October 19, 2021.

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

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u311) on2021-11-19.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, see23.1.2 JRE Expiration Date in theJava Platform, Standard Edition Deployment Guide.


New Features

security-libs/java.security
 Customizing PKCS12 keystore Generation

New system and security properties have been added to enable users to customize the generation of PKCS #12 keystores. This includes algorithms and parameters for key protection, certificate protection, and MacData. The detailed explanation and possible values for these properties can be found in the "PKCS12 KeyStore properties" section of thejava.security file.

Also, support for the following SHA-2 based HmacPBE algorithms has been added to the SunJCE provider: HmacPBESHA224, HmacPBESHA256, HmacPBESHA384, HmacPBESHA512, HmacPBESHA512/224, HmacPBESHA512/256

Removed Features and Options

security-libs/java.security
 Removed Root Certificates with 1024-bit Keys

The following root certificates with weak 1024-bit RSA public keys have been removed from thecacerts keystore:

+ alias name "thawtepremiumserverca [jdk]"  Distinguished Name: EMAILADDRESS=premium-server@thawte.com,   CN=Thawte Premium Server CA, OU=Certification Services Division,   O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA+ alias name "verisignclass2g2ca [jdk]"  Distinguished Name: OU=VeriSign Trust Network,   OU="(c) 1998 VeriSign, Inc. - For authorized use only",   OU=Class 2 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US+ alias name "verisignclass3ca [jdk]"  Distinguished Name: OU=Class 3 Public Primary Certification Authority,   O="VeriSign, Inc.", C=US+ alias name "verisignclass3g2ca [jdk]"  Distinguished Name: OU=VeriSign Trust Network,   OU="(c) 1998 VeriSign, Inc. - For authorized use only",   OU=Class 3 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US+ alias name "verisigntsaca [jdk]"  Distinguished Name: CN=Thawte Timestamping CA,   OU=Thawte Certification, O=Thawte, L=Durbanville, ST=Western Cape, C=ZA+ alias name "gtecybertrustglobalca [jdk]"  Distinguished Name:CN=GTE CyberTrust Global Root,   OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US

security-libs/java.security
 Removed Telia Company's Sonera Class2 CA Certificate

The following root certificate has been removed from the cacerts truststore:

+ Telia Company  + soneraclass2ca    DN: CN=Sonera Class2 CA, O=Sonera, C=FI

Other Notes

security-libs/java.security
 JarFile Treats Signed JARs with Multiple Manifests as Unsigned

TheJarFile class now treats a signed JAR as unsigned if it detects a second manifest 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.

JDK-8260967 (not public)
security-libs/java.security
 Upgraded the Default PKCS12 Encryption Algorithms

The default encryption algorithms used in a PKCS #12 keystore have been updated. The new algorithms are based on AES-256 and SHA-256 and are stronger than the old algorithms that were based on RC2, DESede, and SHA-1. See the security properties starting withkeystore.pkcs12 in thejava.security file for detailed information.

For compatibility, a new system property namedkeystore.pkcs12.legacy is defined that will revert the algorithms to use the older, weaker algorithms. There is no value defined for this property.

security-libs/java.security
 Disable SHA-1 JARs

JARs signed with SHA-1 algorithms are now restricted by default and treated as if they were unsigned. This applies to the algorithms used to digest, sign, and optionally timestamp the JAR. It also applies to the signature and digest algorithms of the certificates in the certificate chain of the code signer and the Timestamp Authority, and any CRLs or OCSP responses that are used to verify if those certificates have been revoked.

In order to reduce the compatibility risk for applications that have been previously timestamped or use private CAs, there are two exceptions to this policy:

  • Any JAR signed with SHA-1 algorithms and timestamped prior to January 01, 2019 will not be restricted.
  • Any JAR signed with a SHA-1 certificate that does not chain back to a Root CA included by default in the JDKcacerts keystore will not be restricted.

These exceptions may be removed in a future JDK release.

Users can, at their own risk, remove these restrictions by modifying thejava.security configuration file (or overriding it using thejava.security.properties system property) and removing "SHA1 jdkCA & usage SignedJAR & denyAfter 2019-01-01" from thejdk.certpath.disabledAlgorithms security property and "SHA1 jdkCA & denyAfter 2019-01-01" from thejdk.jar.disabledAlgorithms security property.

core-libs/java.net
 URL FTP Protocol Handler: IPv4 Address Validation in Passive Mode

Client-side FTP support in the Java platform is available through the FTP URL stream protocol handler, henceforth referred to as the FTP Client.

The following system property has been added for validation of server addresses inFTP passive mode.

  • jdk.net.ftp.trustPasvAddress.

In this release, the FTP Client has been enhanced to reject an address sent by a server, in response to aPASV command from the FTP Client, when that address differs from the address which the FTP Client initially connected.

To revert to the prior behavior, thejdk.net.ftp.trustPasvAddress system property can be set totrue. The affect of setting this property is that the FTP Client accepts and uses the address value returned in reply to aPASV command

JDK-8258432 (not public)

Bug Fixes

This release contains fixes for security vulnerabilities described in theOracle Critical Patch Update. For a more complete list of the bug fixes included in this release, see theJDK 7u311 Bug Fixes page.


Java SE 7u301 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u301 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u301 b31

Please note that fixes from the previous BPR are included in this version.


Java™ SE Development Kit 7, Update 301 (JDK 7u301)

April 20, 2021

The full version string for this update release is 1.7.0_301-b09 (where "b" means "build"). The version number is 7u301.

IANA TZ Data 2020e, 2020f, 2021a

JDK 7u301 contains IANA time zone data2020e,2020f,2021a.

  • * Volgograd switches to Moscow time on 2020-12-27 at 02:00.
  • * South Sudan changes from +03 to +02 on 2021-02-01 at 00:00.

For more information, refer toTimezone 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 7u301 are specified in the following table:

JRE Family VersionJRE Security Baseline (Full Version String)
71.7.0_301-b09

Keeping the JDK up to Date

Oracle recommends that the JDK is updated with each Critical Patch Update (CPU). In order to determine if a release is the latest, theSecurity 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 advanceCritical Patch Updates, Security Alerts and Bulletins. It is not recommended that this JDK (version 7u301) be used after the next critical patch update scheduled for July 20, 2021.

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

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u301) on August 20, 2021. 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, see23.1.2 JRE Expiration Date in theJava Platform, Standard Edition Deployment Guide.

Other Notes

core-libs/javax.naming
 New System and Security Properties to Control Reconstruction of Remote Objects by JDK's Built-in JNDI RMI and LDAP Implementations

jdk.jndi.object.factoriesFilter: This system and security property allows a serial filter to be specified that controls the set of object factory classes permitted to instantiate objects from object references returned by naming/directory systems. The factory class named by the reference instance is matched against this filter during remote reference reconstruction. The filter property supports pattern-based filter syntax with the format specified by JEP 290. This property applies both to the JNDI/RMI and the JNDI/LDAP built-in provider implementations. The default value allows any object factory class specified in the reference to recreate the referenced object.

com.sun.jndi.ldap.object.trustSerialData: This system property allows control of the deserialization of java objects from thejavaSerializedData LDAP attribute. To prevent deserialization of java objects from the attribute, the system property can be set tofalse value. By default, deserialization of java objects from thejavaSerializedData attribute is allowed.

JDK-8244473 (not public)

security-libs/java.security
 Added 2 HARICA Root CA Certificates

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

+ HARICA  + haricarootca2015    DN: CN=Hellenic Academic and Research Institutions RootCA 2015, O=Hellenic Academic and Research Institutions Cert. Authority, L=Athens, C=GR  + haricaeccrootca2015    DN: CN=Hellenic Academic and Research Institutions ECC RootCA 2015, O=Hellenic Academic and Research Institutions Cert. Authority, L=Athens, C=GR

security-libs/javax.net.ssl
 Disable TLS 1.0 and 1.1

TLS 1.0 and 1.1 are versions of the TLS protocol that are no longer considered secure and have been superseded by more secure and modern versions (TLS 1.2 and 1.3).

These versions have now been disabled by default. If you encounter issues, you can, at your own risk, re-enable the versions by removing "TLSv1" and/or "TLSv1.1" from thejdk.tls.disabledAlgorithms security property in thejava.security configuration file.

core-libs/java.lang
 Less Ambiguous Processing of ProcessBuilder Quotes on Windows

In thejava.lang.ProcessBuilder implementation on Windows, the system propertyjdk.lang.Process.allowAmbiguousCommands=false ensures, for each argument, that double-quotes are properly encoded in the command string passed to WindowsCreateProcess. An argument with a final trailing double-quote preceded by a backslash is encoded as a literal double-quote; previously, the argument including the double-quote would be joined with the next argument. An empty argument is encoded as a pair of double-quotes ("") resulting in a zero length string passed for the argument to the process; previously, it was silently ignored. An argument containing double-quotes, other than first and last, is encoded to preserve the double-quotes when passed to the process; previously, the embedded double-quotes would be dropped and not passed to the process. If a security manager is set, such as in WebStart applications, double-quotes are encoded as described. When there is no security manager, there is no change to existing behavior; thejdk.lang.Process.allowAmbiguousCommands property can be set totrue:jdk.lang.Process.allowAmbiguousCommands=true orfalse. If left unset, it is the same as setting it totrue.

JDK-8250568 (not public)

Bug Fixes

This release contains fixes for security vulnerabilities described in theOracle Critical Patch Update. For a more complete list of the bug fixes included in this release, see theJDK 7u301 Bug Fixes page.


Java SE 7u291 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u291 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

 

Changes in Java SE 7u291 b32

Bug Fixes

BugIdCategorySubcategoryDescription
JDK-8255880java-libsjavax.swingUI of Swing components is not redrawn after their internal state changed
JDK-6596915client-libsjava.awtJCK-runtime-6a/tests/api/java_awt/Component/index.html tesPaintAll fails
JDK-8012224client-libsjava.awtAWT_TopLevels/TopLevelEvents/Automated/WindowIconifyDeiconifyEventsTest02 fails on Ubuntu 12.04 Unity shell
JDK-7157680client-libsjava.awtXAWT: Native components should not paint native part on UPDATE event
JDK-8258878core-libsjava.time(tz) Upgrade time-zone data to tzdata2020e

 

Changes in Java SE 7u291 b31

Please note that fixes from the previous BPR (7u281 b33) are included in this version.


Java™ SE Development Kit 7, Update 291 (JDK 7u291)

January 19, 2021

The full version string for this update release is 1.7.0_291-b09 (where "b" means "build"). The version number is 7u291.

IANA Data 2020d

JDK 7u291 contains IANA time zone data version 2020d. For more information, refer toTimezone 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 7u291 are specified in the following table:

JRE Family VersionJRE Security Baseline (Full Version String)
71.7.0_291-b09

Keeping the JDK up to Date

Oracle recommends that the JDK is updated with each Critical Patch Update (CPU). In order to determine if a release is the latest, theSecurity 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 advanceCritical Patch Updates, Security Alerts and Bulletins. It is not recommended that this JDK (version 7u291) be used after the next critical patch update scheduled for April 20, 2021.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u291) on May 20, 2021. 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, see23.1.2 JRE Expiration Date in theJava Platform, Standard Edition Deployment Guide.

Other Notes

core-libs/java.time
 JDK time-zone data upgraded to tzdata2020d

The JDK update incorporates tzdata2020d. The main change is

  • Palestine ends DST earlier than predicted, on 2020-10-24.

Please refer tohttps://mm.icann.org/pipermail/tz-announce/2020-October/000062.htmlfor more information.

core-libs/java.time
 JDK time-zone data upgraded to tzdata2020c

The JDK update incorporates tzdata2020c. The main change is

  • Fiji starts DST later than usual, on 2020-12-20.

Please refer tohttps://mm.icann.org/pipermail/tz-announce/2020-October/000060.htmlfor more information.

core-libs/java.time
 US/Pacific-New Zone Name Removed as Part of tzdata2020b

Following the JDK's update to tzdata2020b, the long-obsolete files namedpacificnew andsystemv have been removed. As a result, the "US/Pacific-New" Zone name declared in thepacificnew data file is no longer available for use.

Information regarding this update can be viewed athttps://mm.icann.org/pipermail/tz-announce/2020-October/000059.html

Bug Fixes

This release contains fixes for security vulnerabilities described in theOracle Critical Patch Update. For a more complete list of the bug fixes included in this release, see theJDK 7u291 Bug Fixes page.


Java SE 7u281 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u281 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u281 b33

Bug Fixes

BugIdCategorySubcategoryDescription
JDK-8254157core-libsjava.netInetAddress isReachable returns false for reachable known host

 

Changes in Java SE 7u281 b32

Bug Fixes

BugIdCategorySubcategoryDescription
JDK-8254177core-libsjava.time(tz) Upgrade time-zone data to tzdata2020b.

Java™ SE Development Kit 7, Update 281 (JDK 7u281)

October 20, 2020

The full version string for this update release is 1.7.0_281-b06 (where "b" means "build"). The version number is 7u281.

IANA Data 2020a

JDK 7u281 contains IANA time zone data version 2020a. For more information, refer toTimezone 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 7u281 are specified in the following table:

JRE Family VersionJRE Security Baseline (Full Version String)
71.7.0_281-b06

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Bulletins. This JRE (version 7u281) will expire with the release of the next critical patch update scheduled for January 19, 2021.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u281) on February 19, 2021. 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, seeJRE Expiration Date.

New Features

hotspot/runtime
JDK/JRE Runtime Windows Visual Studio Library (DLL) Dependency Changes

As part of ongoing maintenance, the Microsoft Visual Studio 2017 tool chain will be used to build JDK 7 and JDK 8 for Windows. JDK 8u261, in the July 2020 CPU, was built with Visual Studio 2017. With the release of the January 2021 CPU, JDK 7u291 will move to Visual Studio 2017.

Moving to Visual Studio 2017 for JDK 7 and JDK 8 requires changing the runtime library that the JDK/JRE depends on. Before this change, JDK/JRE implementations used and shipped the Microsoft Visual C++ 2010 SP1 Redistributable Package (x86/x64) that includedMSVCR100.dll [a][b]. Microsoft Visual Studio 2017 uses a different set of libraries/DLLs.

Native applications (including JNI) that have depended on and assumed the presence ofMSCVR100.dll in the JDK/JRE directory will fail to run. When this happens, users will see an error such as:

"The code execution cannot proceed because MSVCR100.dll was not found.Reinstalling the program may fix this problem."

These applications should be rebuilt and shipped with modern C++ runtime dependencies that use a later instance of Visual Studio. Applications should not depend on DLLs included with the JDK/JRE that are not documented in the product as offering support for the specification or other functionality in Java SE.

[a]http://support.microsoft.com/kb/2019667

[b]https://docs.microsoft.com/en-us/lifecycle/end-of-support/end-of-support-2020

JDK-8246783 (not public)

security-libs/java.security
 Weak Named Curves in TLS, CertPath, and Signed JAR Disabled by Default

Weak named curves are disabled by default by adding them to the followingdisabledAlgorithms security properties:jdk.tls.disabledAlgorithms,jdk.certpath.disabledAlgorithms, andjdk.jar.disabledAlgorithms. The named curves are listed below.

With 47 weak named curves to be disabled, adding individual named curves to eachdisabledAlgorithms property would be overwhelming. To relieve this, a new security property,jdk.disabled.namedCurves, is implemented that can list the named curves common to all of thedisabledAlgorithms properties. To use the new property in thedisabledAlgorithms properties, precede the full property name with the keywordinclude. Users can still add individual named curves todisabledAlgorithms properties separate from this new property. No other properties can be included in thedisabledAlgorithms properties.

To restore the named curves, remove theinclude jdk.disabled.namedCurves either from specific or from alldisabledAlgorithms security properties.To restore one or more curves, remove the specific named curve(s) from thejdk.disabled.namedCurves property.

Curves that are disabled throughjdk.disabled.namedCurves include the following:secp112r1, secp112r2, secp128r1, secp128r2, secp160k1, secp160r1, secp160r2, secp192k1, secp192r1, secp224k1, secp224r1, secp256k1, sect113r1, sect113r2, sect131r1, sect131r2, sect163k1, sect163r1, sect163r2, sect193r1, sect193r2, sect233k1, sect233r1, sect239k1, sect283k1, sect283r1, sect409k1, sect409r1, sect571k1, sect571r1, X9.62 c2tnb191v1, X9.62 c2tnb191v2, X9.62 c2tnb191v3, X9.62 c2tnb239v1, X9.62 c2tnb239v2, X9.62 c2tnb239v3, X9.62 c2tnb359v1, X9.62 c2tnb431r1, X9.62 prime192v2, X9.62 prime192v3, X9.62 prime239v1, X9.62 prime239v2, X9.62 prime239v3, brainpoolP256r1, brainpoolP320r1, brainpoolP384r1, brainpoolP512r1

Curves that remain enabled are: secp256r1, secp384r1, secp521r1, X25519, X448

security-libs/javax.net.ssl
 Improve Certificate Chain Handling

A new system property,jdk.tls.maxHandshakeMessageSize, has been added to set the maximum allowed size for the handshake message in TLS/DTLS handshaking. The default value of the system property is 32768 (32 kilobytes).

A new system property,jdk.tls.maxCertificateChainLength, has been added to set the maximum allowed length of the certificate chain in TLS/DTLS handshaking. The default value of the system property is 10.

JDK-8245417 (not public)

security-libs/java.security
 Tools Warn If Weak Algorithms Are Used

Thekeytool andjarsigner tools have been updated to warn users when weak cryptographic algorithms are used in keys, certificates, and signed JARs before they are disabled. The weak algorithms are set in thejdk.security.legacyAlgorithms security property in thejava.security configuration file. In this release, the tools issue warnings for the SHA-1 hash algorithm and 1024-bit RSA/DSA keys.

Other notes

core-libs/javax.naming
 Added Property to Control LDAP Authentication Mechanisms Allowed to Authenticate Over Clear Connections

A new environment property,jdk.jndi.ldap.mechsAllowedToSendCredentials, has been added tocontrol which LDAP authentication mechanisms are allowed to sendcredentials overclear LDAP connections - a connection not securedwith TLS. Anencrypted LDAP connection is a connection openedby usingldaps scheme, or a connection opened by usingldap schemeand then upgraded to TLS with a STARTTLS extended operation.

The value of the property, which is by default not set, is a commaseparated list of the mechanism names that are permitted to authenticateover aclear connection. If a value is not specified for the property, then all mechanismsare allowed. If the specified value is an empty list, then no mechanisms areallowed (except fornone andanonymous). The default value for this property is 'null'( i.e.System.getProperty("jdk.jndi.ldap.mechsAllowedToSendCredentials") returns 'null'). To explicitly permit all mechanisms to authenticate over aclear connection, the propertyvalue can be set to"all". If a connection is downgraded fromencrypted toclear, then only the mechanisms that are explicitly permitted are allowed.

The property can be supplied to the LDAP context environment map, orset globally as a system property. When both are supplied, theenvironment map takes precedence.

Note:none andanonymous authentication mechanisms are exemptedfrom these rules and are always allowed regardless of the property value.

JDK-8237990 (not public)

security-libs/java.security
 Added 3 SSL Corporation Root CA Certificates

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

+ SSL Corporation  + sslrootrsaca    DN: CN=SSL.com Root Certification Authority RSA, O=SSL Corporation, L=Houston, ST=Texas, C=US  + sslrootevrsaca    DN: CN=SSL.com EV Root Certification Authority RSA R2, O=SSL Corporation, L=Houston, ST=Texas, C=US  + sslrooteccca    DN: CN=SSL.com Root Certification Authority ECC, O=SSL Corporation, L=Houston, ST=Texas, C=US

security-libs/java.security
 Added Entrust Root Certification Authority - G4 certificate

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

+ Entrust  + entrustrootcag4    DN: 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

core-libs/java.io:serialization
 Enhanced Support of Proxy Class

The deserialization ofjava.lang.reflect.Proxy objects can be limited by setting the system propertyjdk.serialProxyInterfaceLimit.The limit is the maximum number of interfaces allowed per Proxy in the stream.Setting the limit to zero prevents any Proxies from being deserialized including Annotations, a limit of less than 2 might interfere with RMI operations.

JDK-8236862 (not public)

client-libs
 Removed Consumer JRE

From 7u281 and on, the JRE is installed by the enterprise JRE installer rather than the consumer JRE. This has resulted in two changes:

(1) No public JRE installation GUI is offered during the JDK install. This removes the user’s ability during the JDK installation to specify a custom directory in the GUI for the public JRE. If a directory other than the default is desired, use the/INSTALLDIRPUBJRE command-line option to set an installation path for the JRE. Users can also deselect the public JRE during the JDK installation and install it separately.

(2) The JRE is installed into a version directory instead of a family directory. Because the consumer JRE is no longer installed, there is no patch-in-place. It uses the enterprise JRE method of installing, which includes the full version.

JDK-8246488 (not public)

Bug Fixes

This release contains fixes for security vulnerabilities described in theOracle Critical Patch Update. For a more complete list of the bug fixes included in this release, see theJDK 7u281 Bug Fixes page.


Java SE 7u271 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u271 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u271 b31

Bug Fixes

BugIdCategorySubcategoryDescription
8251927client-libsjavax.swingJMenu(Bar) misbehaves after resizing window
8250665globalizationlocale-dataWrong translation for the month of May in ar_JO, ar_LB and ar_SY

Java™ SE Development Kit 7, Update 271 (JDK 7u271)

July 14, 2020

The full version string for this update release is 1.7.0_271-b10 (where "b" means "build"). The version number is 7u271.

IANA Data 2020a

JDK 7u271 contains IANA time zone data version 2020a. For more information, refer toTimezone 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 7u271 are specified in the following table:

JRE Family VersionJRE Security Baseline (Full Version String)
71.7.0_271-b10

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Bulletins. This JRE (version 7u271) will expire with the release of the next critical patch update scheduled for October 20, 2020.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u271) on November 17, 2020. 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, seeJRE Expiration Date.

New Features

security-libs/javax.crypto
 JCE Jurisdiction Policy Files updated

Since January 2018 (8u161, 7u171) unlimited Java Cryptography Extension (JCE) Jurisdiction Policy files have been bundled with the JDK and enabled by default (see JDKCryptographic Roadmap).

The certificate for the old stand alone jar has expired, and if used the following exception will be seen:

Caused By: java.lang.SecurityException: The jurisdiction policy files are not signed by the expected signer! (Policy files are specific per major JDK release.Ensure the correct version is installed.) at javax.crypto.JarVerifier.verifyPolicySigned(JarVerifier.java:336) at
javax.crypto.JceSecurity.loadPolicies(JceSecurity.java:378) at
javax.crypto.JceSecurity.setupJurisdictionPolicies(JceSecurity.java:323) at
javax.crypto.JceSecurity.access$000(JceSecurity.java:50) at
javax.crypto.JceSecurity$1.run(JceSecurity.java:85) at java.security.AccessController.doPrivileged(Native Method) at javax.crypto.JceSecurity.<clinit>(JceSecurity.java:82)

If still required for older releases the re-signed files can be found at https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html

JDK-8245319 (not public)

Removed Features and Options

security-libs/java.security
Removal of Comodo Root CA Certificate

The following expired Comodo root CA certificate was removed from thecacerts keystore:

  • alias name "addtrustclass1ca [jdk]"

    Distinguished Name: CN=AddTrust Class 1 CA Root, OU=AddTrust TTP Network, O=AddTrust AB, C=SE

security-libs/java.security
Removal of DocuSign Root CA Certificate

The following expired DocuSign root CA certificate was removed from thecacerts keystore:

  • alias name "keynectisrootca [jdk]"

    Distinguished Name: CN=KEYNECTIS ROOT CA, OU=ROOT, O=KEYNECTIS, C=FR

Other notes

core-libs/java.util:collections
Better Listing of Arrays

The preferred way to copy a collection is to use a "copy constructor." For example, to copy a collection into a new ArrayList, one would writenew ArrayList<>(collection). In certain circumstances, an additional, temporary copy of the collection's contents might be made in order to improve robustness. If the collection being copied is exceptionally large, then the application should be (aware of/monitor) the significant resources required involved in making the copy.

JDK-8231800 (not public)

install/install
Java Mission Control Is No Longer Bundled With the JDK

This version of the JDK no longer includes Java Mission Control (JMC). Thejmc launcher has been removed from the JDKbin directory, and themissioncontrol directory has been removed from the JDKlib directory. The.jfr file association is not registered by JDK installers. JMC is now available as a separate download. Please visit https://www.oracle.com/javase/jmc for more information.

JDK-8244662 (not public)

client-libs/2d
Support for OpenType CFF Fonts

Previously, Oracle JDK 7 did not include OpenType CFF fonts (.otf fonts) into the standard logical fonts (such as "Dialog" and "SansSerif"). This resulted in missing glyphs when rendering text. In the most extreme cases where only CFF fonts were installed on the system, a Java exception could be thrown.

Several Linux distributions were affected by this issue because they rely on CFF fonts to support some languages, which is common for CJK (Chinese, Japanese, and Korean) languages.

Oracle JDK 7 now uses these CFF fonts, and this issue has been resolved.

Bug Fixes

This release contains fixes for security vulnerabilities described in theOracle Critical Patch Update. For a more complete list of the bug fixes included in this release, see theJDK 7u271 Bug Fixes page.

Java™ SE Development Kit 7, Update 261 (JDK 7u261)

April 14, 2020

The full version string for this update release is 1.7.0_261-b07 (where "b" means "build"). The version number is 7u261.

IANA Data 2019c

JDK 7u261 contains IANA time zone data version 2019c. For more information, refer toTimezone 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 7u261 are specified in the following table:

JRE Family VersionJRE Security Baseline (Full Version String)
71.7.0_261-b07

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Bulletins. This JRE (version 7u261) will expire with the release of the next critical patch update scheduled for July 14, 2020.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u261) on August 14, 2020. 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, seeJRE Expiration Date.

Bug Fixes

This release contains fixes for security vulnerabilities described in theOracle Critical Patch Update. For a more complete list of the bug fixes included in this release, see theJDK 7u261 Bug Fixes page.

Java™ SE Development Kit 7, Update 251 (JDK 7u251)

January 14, 2020

The full version string for this update release is 1.7.0_251-b08 (where "b" means "build"). The version number is 7u251.

IANA Data 2019c

JDK 7u251 contains IANA time zone data version 2019c. For more information, refer toTimezone 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 7u251 are specified in the following table:

JRE Family VersionJRE Security Baseline (Full Version String)
71.7.0_251-b08

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Bulletins. This JRE (version 7u251) will expire with the release of the next critical patch update scheduled for April 14, 2020.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u251) on May 14, 2020. 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, seeJRE Expiration Date.

New Features

security-libs/javax.security
 Allow SASL Mechanisms to Be Restricted

A security property namedjdk.sasl.disabledMechanisms has been added that can be used to disable SASL mechanisms. Any disabled mechanism will be ignored if it is specified in themechanisms argument ofSasl.createSaslClient or themechanism argument ofSasl.createSaslServer. The default value for this security property is empty, which means that no mechanisms are disabled out-of-the-box.


Other notes


security-libs/java.security
 New Checks on Trust Anchor Certificates

New checks have been added to ensure that trust anchors are CA certificates and contain proper extensions. Trust anchors are used to validate certificate chains used in TLS and signed code. Trust anchor certificates must include a Basic Constraints extension with the cA field set to true. Also, if they include a Key Usage extension, the keyCertSign bit must be set.

A new system property namedjdk.security.allowNonCaAnchor has been introduced to restore the previous behavior, if necessary. If the property is set to the empty String or "true" (case-insensitive), trust anchor certificates can be used if they do not have proper CA extensions.

The default value of this property, if not set, is "false".

Note that the property does not apply to X.509 v1 certificates (since they don't support extensions).

This property is currently used by the JDK implementation. It is not guaranteed to be supported by other Java SE implementations.

JDK-8230318 (not public)

security-libs/java.security
 Exact Match Required for Trusted TLS Server Certificate

A TLS server certificate must be an exact match of a trusted certificate on the client in order for it to be trusted when establishing a TLS connection.

JDK-8227758 (not public)

security-libs/java.security
 Added LuxTrust Global Root 2 Certificate

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

+ LuxTrust + luxtrustglobalroot2ca DN: CN=LuxTrust Global Root 2, O=LuxTrust S.A., C=LU
security-libs/java.security
Added 4 Amazon Root CA Certificates

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

+ Amazon  + amazonrootca1    DN: CN=Amazon Root CA 1, O=Amazon, C=US  + amazonrootca2    DN: CN=Amazon Root CA 2, O=Amazon, C=US  + amazonrootca3    DN: CN=Amazon Root CA 3, O=Amazon, C=US  + amazonrootca4    DN: CN=Amazon Root CA 4, O=Amazon, C=US
core-libs/java.rmi
 Improve Registry Support

Thejava.rmi.Remote marker interface identifies interfaces containing methods that can be invoked remotely by using the following specification:

  • Methods declared in interfaces that directly or indirectly extendjava.rmi.Remote can be invoked remotely
  • Methods declared in interfaces that do not extendRemote directly or indirectly cannot be invoked remotely

This affects remote objects in thejava.rmi.registry.Registry and any other remote object.

JDK-8230967 (not public)

Bug Fixes

The following are some of the notable bug fixes included in this release:

core-libs/java.io:serialization
 Better Serial Filter Handling

Thejdk.serialFilter system property can only be set on the command line. If the filter has not been set on the command line, it can be set can be set withjava.io.ObjectInputFilter.Config.setSerialFilter. Setting the jdk.serialFilter withjava.lang.System.setProperty has no effect.

JDK-8231422 (not public)

This release contains fixes for security vulnerabilities described in theOracle Critical Patch Update. For a more complete list of the bug fixes included in this release, see theJDK 7u251 Bug Fixes page.


Java SE 7u241 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u241 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u241 b31

Please note that fixes from prior BPR (7u231 b32) are included in this version.

Bug Fixes

BugIdCategorySubcategoryDescription
8230303core-svcdebuggerJDB hangs when running monitor command

Java™ SE Development Kit 7, Update 241 (JDK 7u241)

October 15, 2019

The full version string for this update release is 1.7.0_241-b08 (where "b" means "build"). The version number is 7u241.

IANA Data 2019b

JDK 7u241 contains IANA time zone data version 2019b. For more information, refer toTimezone 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 7u241 are specified in the following table:

JRE Family VersionJRE Security Baseline (Full Version String)
71.7.0_241-b08

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Bulletins. This JRE (version 7u241) will expire with the release of the next critical patch update scheduled for January 14, 2020.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u241) on February 14, 2020. 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, seeJRE Expiration Date.

Removed Features and Options

javafx/other
 Removal of JavaFX from Oracle JDK 7 

The JavaFX UI Toolkit has been removed from Oracle JDK 7. As documented in theJava SE Support Roadmap, JavaFX is not supported in JDK 7 after July 2019.

JDK-8219489 (not public)

Other notes

docs
 Using the JDK or JRE on macOS Catalina (10.15)

Changes introduced in macOS 10.15 (Catalina) have caused JCK test failures which will prevent Java from being supported on macOS 10.15. If you still want to install and test then please seehttp://www.oracle.com/java/technologies/javase/jdk-jre-macos-catalina.html.

JDK-8230057 (not public)

security-libs/javax.net.ssl
 Remove Obsolete NIST EC Curves from the Default TLS Algorithms

This change removes obsolete NIST EC curves from the default Named Groups used during TLS negotiation. The curves removed are sect283k1, sect283r1, sect409k1, sect409r1, sect571k1, sect571r1, and secp256k1.

To re-enable these curves, use thejdk.tls.namedGroups system property. The property contains a comma-separated list within quotation marks of enabled named groups in preference order. For example:

java -Djdk.tls.namedGroups="secp256r1, secp384r1,                  secp521r1, sect283k1, sect283r1, sect409k1, sect409r1, sect571k1, sect571r1, secp256k1" ...

JDK-8228825 (not public)

security-libs/javax.crypto
 System Property jdk.security.useLegacyECC is Turned Off by Default

The system propertyjdk.security.useLegacyECC, which was introduced in the update releases 7u231 and 8u221, is turned off by default.

This option allows control of which implementation of ECC is in use.

When the system property,jdk.security.useLegacyECC, is explicitly set to "true" (the value is case-insensitive) the JDK uses the old, native implementation of ECC. If the option is set to an empty string, it is treated as if it were set to "true". This makes it possible to specify-Djdk.security.useLegacyECC in the command line. Setting the option to true or the empty string is not recommended.

If the option is set to "false", or if it is not specified at all, the provider decides which implementation of ECC is used. This is the recommended setting, as the JDK will use modern and timing resistant implementations of the NIST secp256r1, secp384r1, and secp521r1 curves. For more information on which curves are recommended and which are legacy, see https://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html#SunEC.

JDK-8224499 (not public)

core-libs/java.lang
 Runtime.exec and ProcessBuilder Argument Restrictions 

Runtime.exec andProcessBuilder have been updated in this release to tighten the constraints on the quoting of arguments to processes created by these APIs. The changes may impact applications on Microsoft Windows that are deployed with a security manager. The changes have no impact on applications that are run without a security manager.

In applications where there is no security manager, there is no change in the default behavior and the new restrictions are opt-in. To enable the restrictions, set the system propertyjdk.lang.Process.allowAmbiguousCommands tofalse.

In applications where there is a security manager, the new restrictions are opt-out. To revert to the previous behavior set the system propertyjdk.lang.Process.allowAmbiguousCommands totrue.

Applications usingRuntime.exec orProcessBuilder with a security manager to invoke.bat or.cmd and command names that do not end in ".exe" may be more restrictive in the characters accepted for arguments if they contain double-quote, "&", "|", "<", ">", or "^". The arguments passed to applications may be quoted differently than in previous versions.

For.exe programs, embedded double quotes are allowed and are encoded so they are passed to Windows as literal quotes. In the case where the entire argument has been passed with quotes or must be quoted to encode special characters including space and tab, the encoding ensures they are passed to the application correctly. The restrictions are enforced if there is a security manager and thejdk.lang.Process.allowAmbiguousCommands property is "false" or there is no security manager and property is not "false".

JDK-8221858 (not public)

client-libs
 GTK2 Libraries Must be Downloaded 

The Swing GTK Look & Feel in JDK 7u depends on GTK2 libraries provided by the OS. If these are not pre-installed, please download them from your OS vendor's software repository. In the event the vendor no longer supports or provides GTK2, then the GTK2 based Swing Look & Feel will also be unsupported.

JDK-8226854 (not public)

Bug Fixes

This release contains fixes for security vulnerabilities described in theOracle Critical Patch Update. For a more complete list of the bug fixes included in this release, see theJDK 7u241 Bug Fixes page.


Java SE 7u231 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u231 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u231 b32

Please note that fixes from prior BPR (7u221 b35) are included in this version.


Java™ SE Development Kit 7, Update 231 (JDK 7u231)

July 16, 2019

The full version string for this update release is 1.7.0_231-b08 (where "b" means "build"). The version number is 7u231.

IANA Data 2018i

JDK 7u231 contains IANA time zone data version 2018i. For more information, refer toTimezone 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 7u221 are specified in the following table:

JRE Family VersionJRE Security Baseline(Full Version String)
71.7.0_231-b08

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Bulletins. This JRE (version 7u231) will expire with the release of the next critical patch update scheduled for October 15, 2019.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u231) on November 15, 2019. 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, seeJRE Expiration Date.

New Features

security-libs
Weak Encryption Disabled by Default

The DES-related Kerberos 5 encryption types are not supported by default. These encryption types can be enabled by addingallow_weak_crypto=true in thekrb5.conf file, but DES-related encryption types are considered highly insecure and should be avoided.

hotspot/runtime
HotSpot Windows OS Detection Correctly Identifies Windows Server 2019

Prior to this fix, Windows Server 2019 was recognized as "Windows Server 2016", which produced incorrect values in theos.name system property and thehs_err_pid file.

Removed Features and Options

security-libs/java.security
Removal of Two DocuSign Root CA Certificates

Two DocuSign root CA certificates are expired and have been removed from thecacerts keystore:

  • alias name "certplusclass2primaryca [jdk]"

    Distinguished Name: CN=Class 2 Primary CA, O=Certplus, C=FR

  • alias name "certplusclass3pprimaryca [jdk]"

    Distinguished Name: CN=Class 3P Primary CA, O=Certplus, C=FR

security-libs/java.security
Removal of Two Comodo Root CA Certificates

Two Comodo root CA certificates are expired and have been removed from thecacerts keystore:

  • alias name "utnuserfirstclientauthemailca [jdk]"

    Distinguished Name: CN=UTN-USERFirst-Client Authentication and Email, OU=http://www.usertrust.com, O=The USERTRUST Network, L=Salt Lake City, ST=UT, C=US

  • alias name "utnuserfirsthardwareca [jdk]"

    Distinguished Name: CN=UTN-USERFirst-Hardware, OU=http://www.usertrust.com, O=The USERTRUST Network, L=Salt Lake City, ST=UT, C=US

security-libs/java.security
Removal of T-Systems Deutsche Telekom Root CA 2 Certificate

The T-Systems Deutsche Telekom Root CA 2 certificate is expired and has been removed from thecacerts keystore:

  • alias name "deutschetelekomrootca2 [jdk]"

    Distinguished Name: CN=Deutsche Telekom Root CA 2, OU=T-TeleSec Trust Center, O=Deutsche Telekom AG, C=DE

Other notes

security-libs/javax.crypto
System Property to Switch Between Implementations of ECC

A new boolean system property,jdk.security.useLegacyECC, has been introduced that enables switching between implementations of ECC.

When the system property,jdk.security.useLegacyECC, is set to "true" (the value is case-insensitive) the JDK uses the old, native implementation of ECC. If the option is set to an empty string, it is treated as if it were set to "true". This makes it possible to specify-Djdk.security.useLegacyECC in the command line.

If the option is explicitly set to "false", the provider decides which implementation of ECC is used.

The default value of the option is "true". Note that the default value might change in a future update release of the JDK.

JDK-8217763 (not public)

security-libs/java.security
jarsigner Prints When a timestamp Will Expire

Thejarsigner tool now shows more information about the lifetime of a timestamped JAR. New warning and error messages are displayed when a timestamp has expired or is expiring within one year.

Bug Fixes

This release contains fixes for security vulnerabilities described in theOracle Critical Patch Update. For a more complete list of the bug fixes included in this release, see theJDK 7u231 Bug Fixes page.


Java SE 7u221 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u221 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u221 b35

Bug Fixes

BugIdCategorySubcategoryDescription
8054446core-libsjava.util.concurrentRepeated offer and remove on ConcurrentLinkedQueue lead to an OutOfMemoryError

Changes in Java SE 7u221 b34

Bug Fixes

BugIdCategorySubcategoryDescription
8210153core-libsjava.util:i18nlocalized currency symbol of VES
8209775core-libsjava.util:i18nISO 4217 Amendment #169 Update

Changes in Java SE 7u221 b32

Bug Fixes

BugIdCategorySubcategoryDescription
8219333(Confidential)hotspotcompilerKitchensink bigapps fails with VM Crash

Changes in Java SE 7u221 b31

Please note that fixes from prior BPR (7u211 b32) are included in this version.


Java™ SE Development Kit 7, Update 221 (JDK 7u221)

April 16, 2019

The full version string for this update release is 1.7.0_221-b08 (where "b" means "build"). The version number is 7u221.

IANA Data 2018g

JDK 7u221 contains IANA time zone data version 2018g. For more information, refer toTimezone 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 7u221 are specified in the following table:

JRE Family VersionJRE Security Baseline(Full Version String)
71.7.0_221-b08
61.6.0_221

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Bulletins. This JRE (version 7u221) will expire with the release of the next critical patch update scheduled for July 16, 2019.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u221) on August 16, 2019. 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, seeJRE Expiration Date.

Issues Fixed

core-libs/java.net
Restriction on Windows NTLM Transparent Authentication

This change limits the use of transparent HTTP authentication on Microsoft Windows for the NTLM scheme. In that scheme, the security credentials based on the currently logged in user's name and password are obtained directly from the operating system, without prompting the user.

A new networking system property,jdk.http.ntlm.transparentAuth, has been added with the following possible values:

  • "disabled" means transparent authentication is not used and the user application is always prompted for NTLM credentials. This is the default and preferred setting. NTLM authentication is still usable in this mode through thejava.net.Authenticator class.
  • "trustedHosts" means transparent authentication is only used for hosts identified as trusted in the Windows networking configuration.
  • "allHosts" means transparent authentication is always used.

Any other value, or no value, is treated the same as "disabled". Care should be taken before enabling this mechanism.

Changes

security-libs/java.security
Added GlobalSign R6 Root Certificate

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

  • GlobalSign
    • globalsignrootcar6

      DN: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R6

JDK-8216577 (not public)

security-libs/javax.net.ssl
Distrust TLS Server Certificates Anchored by Symantec Root CAs

The JDK will stop trusting TLS Server certificates issued by Symantec, in line with similar plans recently announced by Google, Mozilla, Apple, and Microsoft. The list of affected certificates includes certificates branded as GeoTrust, Thawte, and VeriSign, which were managed by Symantec.

TLS Server certificates issued on or before April 16, 2019 will continue to be trusted until they expire. Certificates issued after that date will be rejected. See theDigiCert support page for information on how to replace your Symantec certificates with a DigiCert certificate (DigiCert took over validation and issuance for all Symantec Website Security SSL/TLS certificates on December 1, 2017).

An exception to this policy is that TLS Server certificates issued through two subordinate Certificate Authorities managed by Apple, and identified below, will continue to be trusted as long as they are issued on or before December 31, 2019.

The restrictions are enforced in the JDK implementation (theSunJSSE 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.

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

"TLS Server certificate issued after 2019-04-16 and anchored by a distrusted legacy Symantec root CA: CN=GeoTrust Global CA, O=GeoTrust Inc., C=US"

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

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

Root Certificates distrusted after 2019-04-16

Distinguished NameSHA-256 Fingerprint
CN=GeoTrust Global CA, O=GeoTrust Inc., C=US

FF:85:6A:2D:25:1D:CD:88:D3:66:56:F4:50:12:67:98:CF:AB:AA: DE:40:79:9C:72:2D:E4:D2:B5:DB:36:A7:3A

CN=GeoTrust Primary Certification Authority, O=GeoTrust Inc., C=US

37:D5:10:06:C5:12:EA:AB:62:64:21:F1:EC:8C:92:01:3F:C5:F8: 2A:E9:8E:E5:33:EB:46:19:B8:DE:B4:D0:6C

CN=GeoTrust Primary Certification Authority - G2, OU=(c) 2007 GeoTrust Inc. - For authorized use only, O=GeoTrust Inc., C=US

5E:DB:7A:C4:3B:82:A0:6A:87:61:E8:D7:BE:49:79:EB:F2:61:1F: 7D:D7:9B:F9:1C:1C:6B:56:6A:21:9E:D7:66

CN=GeoTrust Primary Certification Authority - G3, OU=(c) 2008 GeoTrust Inc. - For authorized use only, O=GeoTrust Inc., C=US

B4:78:B8:12:25:0D:F8:78:63:5C:2A:A7:EC:7D:15:5E:AA:62:5E: E8:29:16:E2:CD:29:43:61:88:6C:D1:FB:D4

CN=GeoTrust Universal CA, O=GeoTrust Inc., C=US

A0:45:9B:9F:63:B2:25:59:F5:FA:5D:4C:6D:B3:F9:F7:2F:F1:93: 42:03:35:78:F0:73:BF:1D:1B:46:CB:B9:12

CN=thawte Primary Root CA, OU="(c) 2006 thawte, Inc. - For authorized use only", OU=Certification Services Division, O="thawte, Inc.", C=US

8D:72:2F:81:A9:C1:13:C0:79:1D:F1:36:A2:96:6D:B2:6C:95:0A: 97:1D:B4:6B:41:99:F4:EA:54:B7:8B:FB:9F

CN=thawte Primary Root CA - G2, OU="(c) 2007 thawte, Inc. - For authorized use only", O="thawte, Inc.", C=US

A4:31:0D:50:AF:18:A6:44:71:90:37:2A:86:AF:AF:8B:95:1F:FB: 43:1D:83:7F:1E:56:88:B4:59:71:ED:15:57

CN=thawte Primary Root CA - G3, OU="(c) 2008 thawte, Inc. - For authorized use only", OU=Certification Services Division, O="thawte, Inc.", C=US

4B:03:F4:58:07:AD:70:F2:1B:FC:2C:AE:71:C9:FD:E4:60:4C: 06:4C:F5:FF:B6:86:BA:E5:DB:AA:D7:FD:D3:4C

EMAILADDRESS=premium-server@thawte.com, CN=Thawte Premium Server CA, OU=Certification Services Division, O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA

3F:9F:27:D5:83:20:4B:9E:09:C8:A3:D2:06:6C:4B:57:D3:A2:47: 9C:36:93:65:08:80:50:56:98:10:5D:BC:E9

OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 2 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US

3A:43:E2:20:FE:7F:3E:A9:65:3D:1E:21:74:2E:AC:2B:75:C2:0F: D8:98:03:05:BC:50:2C:AF:8C:2D:9B:41:A1

OU=Class 3 Public Primary Certification Authority, O="VeriSign, Inc.", C=US

A4:B6:B3:99:6F:C2:F3:06:B3:FD:86:81:BD:63:41:3D:8C:50:09: CC:4F:A3:29:C2:CC:F0:E2:FA:1B:14:03:05

OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 3 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US

83:CE:3C:12:29:68:8A:59:3D:48:5F:81:97:3C:0F:91:95:43:1E: DA:37:CC:5E:36:43:0E:79:C7:A8:88:63:8B

CN=VeriSign Class 3 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US

EB:04:CF:5E:B1:F3:9A:FA:76:2F:2B:B1:20:F2:96:CB:A5:20:C1: B9:7D:B1:58:95:65:B8:1C:B9:A1:7B:72:44

CN=VeriSign Class 3 Public Primary Certification Authority - G4, OU="(c) 2007 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US

69:DD:D7:EA:90:BB:57:C9:3E:13:5D:C8:5E:A6:FC:D5:48:0B:60: 32:39:BD:C4:54:FC:75:8B:2A:26:CF:7F:79

CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US

9A:CF:AB:7E:43:C8:D8:80:D0:6B:26:2A:94:DE:EE:E4:B4:65:99: 89:C3:D0:CA:F1:9B:AF:64:05:E4:1A:B7:DF

CN=VeriSign Universal Root Certification Authority, OU="(c) 2008 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US

23:99:56:11:27:A5:71:25:DE:8C:EF:EA:61:0D:DF:2F:A0:78:B5: C8:06:7F:4E:82:82:90:BF:B8:60:E8:4B:3C

Subordinate Certificates distrusted after 2019-12-31

Distinguished NameSHA-256 Fingerprint
CN=Apple IST CA 2 - G1, OU=Certification Authority, O=Apple Inc., C=US

AC:2B:92:2E:CF:D5:E0:17:11:77:2F:EA:8E:D3:72:DE:9D:1E:22:45:FC:E3:F5:7A: 9C:DB:EC:77:29:6A:42:4B

CN=Apple IST CA 8 - G1, OU=Certification Authority, O=Apple Inc., C=US

A4:FE:7C:7F:15:15:5F:3F:0A:EF:7A:AA:83:CF:6E:06:DE:B9:7C:A3:F9:09:DF:92:0A: C1:49:08:82:D4:88:ED

If you have a TLS Server certificate issued by one of the CAs above, you should have received a message from DigiCert with information about replacing that certificate, free of charge.

You can also use thekeytool 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 if not yours.

core-libs/java.time
New Japanese Era Name Reiwa

Support for the new Japanese Reiwa era has been added to this update. The new Japanese era name is "`Reiwa`" and its abbreviated format is "`R`".

core-libs/java.util:i18n
Japanese New Era Implementation

The placeholder "NewEra" has been replaced with "Reiwa." Refer to the release note forJDK-8205432.

Japanese calendars, both injava.time.chrono andjava.util packages support the upcoming Japanese new era, which will be in effect from May 1st, 2019. At the moment, the name of the era is not yet known, placeholder names ("元号" for Japanese, "NewEra" for other languages) are provided for its display names. The placeholder names will be replaced with the legitimate era name in a future update, thus applications should not depend on those placeholder names. Use integer values to refer to the new era instead. For example:

java.time.chrono.JapaneseEra.of(3).getDisplayName(TextStyle.FULL, Locale.US)

or

  new java.util.Calendar.Builder()    .setCalendarType("japanese")    .setFields(Calendar.ERA, 5,        Calendar.YEAR, 1,        Calendar.MONTH, Calendar.MAY,        Calendar.DAY_OF_MONTH, 1)    .build()    .getDisplayName(Calendar.ERA, Calendar.LONG, Locale.US)

will output "NewEra."

Bug Fixes

This release contains fixes for security vulnerabilities described in theOracle Critical Patch Update. For a more complete list of the bug fixes included in this release, see theJDK 7u221 Bug Fixes page.


Java SE 7u211 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u211 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u211 b32

Bug Fixes

BugIdCategorySubcategoryDescription
8145952core-libsjava.util:i18nCurrency update needed for ISO 4217 Amendment #161
8129988security-libsjavax.net.sslJSSE should create a single instance of the cacerts KeyStore
8164784core-libsjava.util:i18nCurrency update needed for ISO 4217 Amendment #162.
8203190security-libsjavax.net.sslSessionId.hashCode generates too many collisions

Changes in Java SE 7u211 b31

Please note that fixes from prior BPR (7u201 b31) are included in this version.

Bug Fixes

BugIdCategorySubcategoryDescription
8217479(Confidential)core-libsjava.netLocal hostname lookup issue with long host names

Java™ SE Development Kit 7, Update 211 (JDK 7u211)

January 15, 2019

The full version string for this update release is 1.7.0_211-b07 (where "b" means "build"). The version number is 7u211.

IANA Data 2018e

JDK 7u211 contains IANA time zone data version 2018g. For more information, refer toTimezone 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 7u211 are specified in the following table:

JRE Family VersionJRE Security Baseline(Full Version String)
71.7.0_211-b07
61.6.0_221

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Bulletins. This JRE (version 7u211) will expire with the release of the next critical patch update scheduled for April 16, 2019.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u211) on May 16, 2019. 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, seeJRE Expiration Date.

New Features

security-libs/javax.net.ssl
Support for Customization of Default Enabled Cipher Suites via System Properties

The system propertyjdk.tls.client.cipherSuites can be used to customize the default enabled cipher suites for the client side of SSL/TLS connections. In a similar way, the system propertyjdk.tls.server.cipherSuites can be used for customization on the server side.

The system properties contain a comma-separated list of supported cipher suite names that specify the default enabled cipher suites. All other supported cipher suites are disabled for this default setting. Unrecognized or unsupported cipher suite names specified in properties are ignored. Explicitly setting enabled cipher suites will override the system properties.

Refer to theJava Cryptography Architecture Standard Algorithm Name Documentation for the standard JSSE cipher suite names, and theJava Cryptography Architecture Oracle Providers Documentation for the cipher suite names supported by the SunJSSE provider.

Note that the actual use of enabled cipher suites is restricted by algorithm constraints.

Note also that these system properties are currently supported by the JDK Reference Implementation. They are not guaranteed to be supported by other implementations.

Warning: These system properties can be used to configure weak cipher suites, or the configured cipher suites may become more weak over time. We do not recommend using the system properties unless you understand the security implications. Use them at your own risk.

security-libs/javax.crypto
Added Support for PBKDF2 SecretKeyFactory and PBES2 Cipher Algorithms

Support for stronger PBKDF2 and PBES2 password-based key derivation and encryption algorithms have been added to JDK 7u211. SeeJEP 121: Stronger Algorithms for Password-Based Encryption for more details on the algorithms that are now supported.

Changes

security-libs/javax.net.ssl
TLS anon and NULL Cipher Suites are Disabled

The TLS anon (anonymous) and NULL cipher suites have been added to thejdk.tls.disabledAlgorithms security property and are now disabled by default.

security-libs/javax.net.ssl
Disabled All RC4 TLS Cipher Suites on JDK 7

RC4-based TLS cipher suites are considered obsolete and should no longer be used. RC4-based cipher suites have been deactivated by default in the SunJSSE implementation by adding the "RC4" identifier to thejdk.tls.disabledAlgorithms security property. These cipher suites can be reactivated by removing "RC4" from thejdk.tls.disabledAlgorithms security property in thejava.security file or by dynamically calling theSecurity.setProperty() method. In both cases re-enabling RC4 must be followed by adding RC4-based cipher suites to the enabled cipher suite list using theSSLSocket.setEnabledCipherSuites() orSSLEngine.setEnabledCipherSuites() methods.

Note that prior to this change, RC4_40 (but not all RC4) suites were disabled via thejdk.tls.disabledAlgorithms security property. All RC4 suites are already disabled in JDK 8u60 and later JDK releases.

hotspot/runtime
Linux Native Code Checks

Additional safeguards to protect against buffer overruns in native code have been enabled on Linux. If a buffer overrun is encountered the system will write the message “stack smashing detected” and the program will exit. Issues of this type should be reported to your vendor.

JDK-8196902 (not public)

Bug Fixes

This release contains fixes for security vulnerabilities described in theOracle Critical Patch Update. For a more complete list of the bug fixes included in this release, see theJDK 7u211 Bug Fixes page.


Java SE 7u201 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u201 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u201 b31

Please note that fixes from prior BPR (7u191 b32) are included in this version.

Bug Fixes

BugIdCategorySubcategoryDescription
8183504client-libsjavax.swing8u131 Win 10, issue with wrong position of Sogou IME popup
8176072client-libsjava.awtREADING attributes are not available on TSF

Java™ SE Development Kit 7, Update 201 (JDK 7u201)

October 16, 2018

The full version string for this update release is 1.7.0_201-b11 (where "b" means "build"). The version number is 7u201.

IANA Data 2018e

JDK 7u201 contains IANA time zone data version 2018e. For more information, refer toTimezone 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 7u201 are specified in the following table:

JRE Family VersionJRE Security Baseline(Full Version String)
71.7.0_201-b11
61.6.0_211-b11

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Bulletins. This JRE (version 7u201) will expire with the release of the next critical patch update scheduled for January 15, 2019.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u201) on February 15, 2018. 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, seeJRE Expiration Date.

Changes

security-libs/javax.net.ssl
Disabled All DES TLS Cipher Suites

DES-based TLS cipher suites are considered obsolete and should no longer be used. DES-based cipher suites have been deactivated by default in the SunJSSE implementation by adding the "DES" identifier to thejdk.tls.disabledAlgorithms security property. These cipher suites can be reactivated by removing "DES" from thejdk.tls.disabledAlgorithms security property in thejava.security file or by dynamically calling theSecurity.setProperty() method. In both cases re-enabling DES must be followed by adding DES-based cipher suites to the enabled cipher suite list using theSSLSocket.setEnabledCipherSuites() orSSLEngine.setEnabledCipherSuites() methods.

Note that prior to this change, DES40_CBC (but not all DES) suites were disabled via thejdk.tls.disabledAlgorithms security property.

security-libs/java.security
Removal of Several Symantec Root CAs

The following Symantec root certificates are no longer in use and have been removed:

  • Symantec
    • equifaxsecureca

      DN: OU=Equifax Secure Certificate Authority, O=Equifax, C=US

    • equifaxsecureglobalebusinessca1

      DN: CN=Equifax Secure Global eBusiness CA-1, O=Equifax Secure Inc., C=US

    • equifaxsecureebusinessca1

      DN: CN=Equifax Secure eBusiness CA-1, O=Equifax Secure Inc., C=US

    • verisignclass1g3ca

      DN: CN=VeriSign Class 1 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US

    • verisignclass2g3ca

      DN: CN=VeriSign Class 2 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US

    • verisignclass1g2ca

      DN: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 1 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US

    • verisignclass1ca

      DN: OU=Class 1 Public Primary Certification Authority, O="VeriSign, Inc.", C=US

security-libs/java.security
Removal of Baltimore Cybertrust Code Signing CA

The following Baltimore CyberTrust Code Signing root certificate is no longer in use and has been removed:

  • baltimorecodesigningca

    DN: CN=Baltimore CyberTrust Code Signing Root, OU=CyberTrust, O=Baltimore, C=IE

security-libs/java.security
Removal of SECOM Root Certificate

The following SECOM root certificate is no longer in use and has been removed:

  • secomevrootca1

    DN: OU=Security Communication EV RootCA1, O="SECOM Trust Systems CO.,LTD.", C=JP

client-libs/java.awt
Touch Keyboard for Swing/AWT Text Components

This release adds support for automatically showing the touch keyboard for Swing/AWT text components on Microsoft Windows 8 or later. A user can display the touch keyboard either by using a touch screen to tap the text component area or by using a mouse to click in the area, when a keyboard is not attached to a computer.

The system propertyawt.touchKeyboardAutoShowIsEnabled controls whether this functionality is enabled in the JDK. This functionality is enabled by default. However, if the functionality is not needed, the user can switch it off from the command line by setting the system property tofalse:

-Dawt.touchKeyboardAutoShowIsEnabled=false

security-libs/javax.crypto
Improved Cipher Inputs

The specification ofjavax.crypto.CipherInputStream has been clarified to indicate that this class may catch BadPaddingException and other exceptions thrown by failed integrity checks during decryption. These exceptions are not re-thrown, so the client may not be informed that integrity checks failed. Because of this behavior, this class may not be suitable for use with decryption in an authenticated mode of operation (e.g. GCM). Applications that require authenticated encryption can use the Cipher API directly as an alternative to using this class.

JDK-8201756 (not public)

Bug Fixes

The following are some of the notable bug fixes included in this release:

core-libs/java.net
Better HTTP Redirection Support

In this release, the behavior of methods which application code uses to set request properties injava.net.HttpURLConnection has changed. When a redirect occurs automatically from the original destination server to a resource on a different server, then all such properties are cleared for the redirect and any subsequent redirects. If these properties are required to be set on the redirected requests, then the redirect responses should be handled by the application by callingHttpURLConnection.setInstanceFollowRedirects(false) for the original request.

JDK-8196902 (not public)

This release also contains fixes for security vulnerabilities described in theOracle Critical Patch Update. For a more complete list of the bug fixes included in this release, see theJDK 7u201 Bug Fixes page.


Java SE 7u191 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u191 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u191 b32

Bug Fixes

BugIdCategorySubcategoryDescription
8211107core-libsjavax.namingLDAPS communication failure with jdk 1.8.0_181

Changes in Java SE 7u191 b31

Please note that fixes from prior BPR (7u181 b31) are included in this version.

Java™ SE Development Kit 7, Update 191 (JDK 7u191)

July 17, 2018

The full version string for this update release is 1.7.0_191-b08 (where "b" means "build"). The version number is 7u191.

IANA Data 2018e

JDK 7u191 contains IANA time zone data version 2018e. For more information, refer toTimezone 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 7u191 are specified in the following table:

JRE Family VersionJRE Security Baseline(Full Version String)
71.7.0_191-b08
61.6.0_201-b07

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Bulletins. This JRE (version 7u191) will expire with the release of the next critical patch update scheduled for October 16, 2018.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u191) on November 16, 2018. 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, seeJRE Expiration Date.

New Features

security-libs/javax.net.ssl
Add support for TLS GCM Cipher Suites

The following GCM TLS Cipher Suites are now supported:

  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_DHE_DSS_WITH_AES_128_GCM_SHA256
  • TLS_DHE_DSS_WITH_AES_256_GCM_SHA384
  • TLS_DHE_RSA_WITH_AES_256_GCM_SHA384

Removed Features and Options

other-libs/javadb
Removal of Java DB

Java DB, also known as Apache Derby, has been removed in this release.

We recommend that you obtain the latest Apache Derby directly from the Apache project at:

https://db.apache.org/derby

JDK-8197871 (not public)

Changes

core-libs/javax.naming
Improve LDAP support

Endpoint identification has been enabled on LDAPS connections.

To improve the robustness of LDAPS (secure LDAP over TLS) connections, endpoint identification algorithms have been enabled by default.

Note that there may be situations where some applications that were previously able to successfully connect to an LDAPS server may no longer be able to do so. Such applications may, if they deem appropriate, disable endpoint identification using a new system property:com.sun.jndi.ldap.object.disableEndpointIdentification.

Define this system property (or set it totrue) to disable endpoint identification algorithms.

JDK-8200666 (not public)

core-libs/java.io:serialization
Better stack walking

New access checks have been added during the object creation phase of deserialization. This should not affect ordinary uses of deserialization. However, reflective frameworks that make use of JDK-internal APIs may be impacted. The new checks can be disabled if necessary by setting the system propertyjdk.disableSerialConstructorChecks to the value "true". This must be done by adding the argument-Djdk.disableSerialConstructorChecks=true to the Java command line.

JDK-8197925 (not public)

Bug Fixes

The following are some of the notable bug fixes included in this release:

core-libs/javax.naming
LDAPS Communication Failure

Application code using LDAPS with a socket connect timeout that is <= 0 ( the default value ), running on the July CPU 2018 ( 8u181, 7u191, and 6u201 ), may encounter an exception when establishing the connection.

The top most frames from Exception stack traces of applications encountering such issues might resemble the following:

    javax.naming.ServiceUnavailableException: <server:port> socket closedat com.sun.jndi.ldap.Connection.readReply(Unknown Source)at com.sun.jndi.ldap.LdapClient.ldapBind(Unknown Source)...

This release also contains fixes for security vulnerabilities described in theOracle Critical Patch Update. For a more complete list of the bug fixes included in this release, see theJDK 7u191 Bug Fixes page.


Java SE 7u181 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u181 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u181 b31

Please note that fixes from prior BPR (7u171 b31) are included in this version.

Bug Fixes

BugIdCategorySubcategoryDescription
8202263security-libsjava.securitykeytool exception: Failed to parse input on crt files containing whitespace
8178536hotspotsvcOOM ERRORS + SERVICE-THREAD TAKES A PROCESSOR TO 100%

Java™ SE Development Kit 7, Update 181 (JDK 7u181)

April 17, 2018

The full version string for this update release is 1.7.0_181-b09 (where "b" means "build"). The version number is 7u181.

IANA Data 2018c

JDK 7u181 contains IANA time zone data version 2018c. For more information, refer toTimezone 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 7u181 are specified in the following table:

JRE Family VersionJRE Security Baseline(Full Version String)
71.7.0_181-b09
61.6.0_191-b09

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Third Party Bulletin. This JRE (version 7u181) will expire with the release of the next critical patch update scheduled for July 17, 2018.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u181) on August 17, 2018. 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, seeJRE Expiration Date.

Notes

security-libs/javax.crypto
CipherOutputStream Usage

The specification ofjavax.crypto.CipherOutputStream has been clarified to indicate that this class catches BadPaddingException and other exceptions thrown by failed integrity checks during decryption. These exceptions are not re-thrown, so the client is not informed that integrity checks have failed. Because of this behavior, this class may not be suitable for use with decryption in an authenticated mode of operation (for example, GCM) if the application requires explicit notification when authentication fails. These applications can use the Cipher API directly as an alternative to using this class.

JDK-8182362 (not public)

New Features

security-libs/javax.crypto
Enhanced KeyStore Mechanisms

A new security property namedjceks.key.serialFilter has been introduced. If this filter is configured, the JCEKS KeyStore uses it during the deserialization of the encrypted Key object stored inside a SecretKeyEntry. If it is not configured or if the filter result is UNDECIDED (for example, none of the patterns match), then the filter configured byjdk.serialFilter is consulted.

If the system propertyjceks.key.serialFilter is also supplied, it supersedes the security property value defined here.

The filter pattern uses the same format asjdk.serialFilter. The default pattern allowsjava.lang.Enum,java.security.KeyRep,java.security.KeyRep$Type, andjavax.crypto.spec.SecretKeySpec but rejects all the others.

Customers storing a SecretKey that does not serialize to the above types must modify the filter to make the key extractable.

JDK-8189997 (not public)

Changes

security-libs/java.security
Additional TeliaSonera Root Certificate

"TeliaSonera Root CA v1" has been added to thecacerts keystore.

JDK-8190851 (not public)

security-libs/javax.net.ssl
3DES Cipher Suites Disabled

To improve the strength of SSL/TLS connections, 3DES cipher suites have been disabled in SSL/TLS connections in the JDK via thejdk.tls.disabledAlgorithms Security Property.

JDK-8175075 (not public)

core-libs/java.util.logging
System Property Controls the java.util.logging.FileHandler's MAX_LOCKS Limit

A new JDK implementation specific system propertyjdk.internal.FileHandlerLogging.maxLocks has been introduced to control thejava.util.logging.FileHandler MAX_LOCKS limit. The default value of the current MAX_LOCKS (100) is retained if this new system property is not set or an invalid value is provided to the property. Valid values for this property are integers ranging from 1 to Integer.MAX_VALUE-1.

install
Change to Internal Java Package Names in RPM Installers

On the Linux platform, the names of JRE and JDK packages provided by Java RPM installers have been changed. The names of JRE and JDK packages now followjre andjdk patterns respectively, instead ofjre andjdk previously used. For example, the new names of JRE and JDK packages arejre1.7 andjdk1.7 respectively.

On the Linux platform, the names of installation directories of Java products have also been changed. The installation directories of products from the 7u181 release are as follows:

  • /usr/java/jre1.7.0_181-i586 for 32bit JRE
  • /usr/java/jdk1.7.0_181-i586 for 32bit JDK
  • /usr/java/jre1.7.0_181-amd64 for 64bit JRE
  • /usr/java/jdk1.7.0_181-amd64 for 64bit JDK

Bug Fixes

The following are some of the notable bug fixes included in this release:

core-libs/java.rmi
Server-side HTTP-tunneled RMI Connections Disabled

This release disables server side HTTP-tunneled RMI connections by default. The previous behavior can be re-enabled after due consideration of any impact by setting the runtime propertysun.rmi.server.disableIncomingHttp tofalse. Note that this should not be confused with thesun.rmi.server.disableHttp property, which disables HTTP-tunneling on the client side and is false by default.

JDK-8193833 (not public)

This release also contains fixes for security vulnerabilities described in theOracle Critical Patch Update. For a more complete list of the bug fixes included in this release, see theJDK 7u181 Bug Fixes page.


Java SE 7u171 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u171 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u171 b31

Please note that fixes from prior BPR (7u161 b33) are included in this version.

Bug Fixes

BugIdCategorySubcategoryDescription
8189789core-libsjava.util.jartomcat gzip-compressed response bodies appear to be broken in update 151

Java™ SE Development Kit 7, Update 171 (JDK 7u171)

January 16, 2018

The full version string for this update release is 1.7.0_171-b11 (where "b" means "build"). The version number is 7u171.

IANA Data 2017c

JDK 7u171 contains IANA time zone data version 2017c. For more information, refer toTimezone 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 7u171 are specified in the following table:

JRE Family VersionJRE Security Baseline(Full Version String)
71.7.0_171-b11
61.6.0_181-b10

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Third Party Bulletin. This JRE (version 7u171) will expire with the release of the next critical patch update scheduled for April 17, 2018.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u171) on May 17, 2018. 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, seeJRE Expiration Date.

New Features

security-libs/java.security
PKCS12 Support for Secret Keys and Trusted Certificates

The PKCS12 KeyStore implementation has been enhanced to support storage of secret keys and trusted certificates. This allows complete migration of existing JKS and JCEKS KeyStores to PKCS12 using theimportkeystore option of thekeytool utility.

security-libs/javax.net.ssl
Added TLS session hash and extended master secret extension support

Support has been added for the TLS session hash and extended master secret extension (RFC 7627) in JDK JSSE provider. Note that in general, server certificate change is restricted if endpoint identification is not enabled and the previous handshake is a session-resumption abbreviated initial handshake, unless the identities represented by both certificates can be regarded as the same. However, if the extension is enabled or negotiated, the server certificate changing restriction is not necessary and will be discarded accordingly. In case of compatibility issues, an application may disable negotiation of this extension by setting the System Propertyjdk.tls.useExtendedMasterSecret tofalse in the JDK. By setting the System Propertyjdk.tls.allowLegacyResumption tofalse, an application can reject abbreviated handshaking when the session hash and extended master secret extension is not negotiated. By setting the System Propertyjdk.tls.allowLegacyMasterSecret tofalse, an application can reject connections that do not support the session hash and extended master secret extension.

security-libs/javax.crypto
Support DHE sizes up to 8192-bits and DSA sizes up to 3072-bits

Enhance the JDK security providers to support 3072-bit DiffieHellman and DSA parameters generation, pre-computed DiffieHellman parameters up to 8192 bits and pre-computed DSA parameters up to 3072 bits.

security-libs/java.security
Support keystore type detection for JKS and PKCS12 keystores

To aid interoperability, the Java keystore type JKS now supports keystore compatibility mode by default. This mode enables JKS keystores to access both JKS and PKCS12 file formats. To disable keystore compatibility mode, set the Security propertykeystore.type.compat to the string valuefalse.

core-svc/java.lang.management
New system property for the remote JMX connector

New JMX agent property -jmxremote.host

A new property,com.sun.management.jmxremote.host, is introduced that specifies the bind address for the default JMX agent. If the latter is not specified, the default JMX agent will listen on all interfaces (0.0.0.0) and the host value placed in the agent service URL (JMXServiceURL) is the IP address returned from invocation of theInetAddress.getLocalHost() method.

  • Name:com.sun.management.jmxremote.host
  • Definition : Specifies the bind address for the default JMX agent. It can be specified via command line while starting the JVM or as part of agent config file (management.properties).
  • Value: IP address of any network interface of the machine
other-libs/corba
Add additional IDL stub type checks to org.omg.CORBA.ORBstring_to_object method

Applications that either explicitly or implicitly callorg.omg.CORBA.ORB.string_to_object, and wish to ensure the integrity of the IDL stub type involved in theORB::string_to_object call flow, should specify additional IDL stub type checking. This is an "opt in" feature and is not enabled by default.

To take advantage of the additional type checking, the list of valid IDL interface class names of IDL stub classes is configured by one of the following:

  • Specifying the security propertycom.sun.CORBA.ORBIorTypeCheckRegistryFilter located in the fileconf/security/java.security in Java SE 9 or injre/lib/security/java.security in Java SE 8 and earlier.

  • Specifying the system propertycom.sun.CORBA.ORBIorTypeCheckRegistryFilter with the list of classes. If the system property is set, its value overrides the corresponding property defined in thejava.security configuration.

If thecom.sun.CORBA.ORBIorTypeCheckRegistryFilter property is not set, the type checking is only performed against a set of class names of the IDL interface types corresponding to the built-in IDL stub classes.

JDK-8160104 (not public)

Changes

core-libs/java.util.jar
java.util.zip.ZipFile.getEntry() now always returns the ZipEntry instance with a / ended entry name for directory entry

Thejava.util.zip.ZipEntry API doc specifies "A directory entry is defined to be one whose name ends with a/". However, in previous JDK releases,java.util.zip.ZipFile.getEntry(String entryName) may return aZipEntry instance with an entry name that does not end with/ for an existing zip directory entry when

  • the passed in argumententryName does not end with a/, and
  • there is a matching zip directory entry with nameentryName +/ in the zip file.

With this release, the name of theZipEntry instance returned fromjava.util.zip.ZipFile.getEntry() always ends with/ for any zip directory entry.

To revert to the previous behavior, set the system propertyjdk.util.zip.ensureTrailingSlash to "false".This change was made in order to fix a regression introduced in JDK 8u141 when verifying signed JARs that has caused some WebStart applications to fail to load.

security-libs/javax.crypto
Provider default key size is updated

This change updates the JDK providers to use 2048 bits as the default key size for DSA instead of 1024 bits when applications have not explicitly initialized thejava.security.KeyPairGenerator andjava.security.AlgorithmParameterGenerator objects with a key size.

If compatibility issues arise, existing applications can set the system propertyjdk.security.defaultKeySize introduced inJDK-8181048 with the algorithm and its desired default key size.

JDK-8178466 (not public)

security-libs/javax.crypto
Stricter key generation

ThegenerateSecret(String) method has been mostly disabled in thejavax.crypto.KeyAgreement services of the SunJCE and SunPKCS11 providers. Invoking this method for these providers will result in aNoSuchAlgorithmException for most algorithm string arguments. The previous behavior of this method can be re-enabled by setting the value of thejdk.crypto.KeyAgreement.legacyKDF system property totrue (case insensitive). Re-enabling this method by setting this system property is not recommended.

Prior to this change, the following code could be used to produce secret keys for AES using Diffie-Hellman:

  • KeyAgreement ka = KeyAgreement.getInstance("DiffieHellman");
  • ka.init(...);
  • ka.doPhase(...);
  • SecretKey sk = ka.generateSecret("AES");

The issue with this code is that it is unspecified how the provider should derive a secret key from the output of the Diffie-Hellman operation. There are several options for how this key derivation function can work, and each of these options has different security properties. For example, the key derivation function may bind the secret key to some information about the context or the parties involved in the key agreement. Without a clear specification of the behavior of this method, there is a risk that the key derivation function will not have some security property that is expected by the client.

To address this risk, thegenerateSecret(String) method ofKeyAgreement was mostly disabled in the DiffieHellman services, and code like the example above will now result in ajava.security.NoSuchAlgorithmException. Clients still may use the no-argumentgenerateSecret method to obtain the raw Diffie-Hellman output, which can be used with an appropriate key derivation function to produce a secret key.

Existing applications that use thegenerateSecret(String) method of this service will need to be modified. Here are a few options:

A) Implement the key derivation function from an appropriate standard. For example, NIST SP 800-56Ar2[1] section 5.8 describes how to derive keys from Diffie-Hellman output.

B) Implement the following simple key derivation function:

  • 1) CallKeyAgreement.generateSecret() to get the shared secret as a byte array
  • 2) Hash the byte array produced in step 1 using SHA-256
  • 3) Pass the byte array produced in step 2 into the constructor ofSecretKeySpec. This constructor also requires the standard name of the secret-key algorithm (e.g. "AES")

This is a simple key derivation function that may provide adequate security in a typical application. Developers should note that this method provides no protection against the reuse of key agreement output in different contexts, so it is not appropriate for all applications. Also, some additional effort may be required to enforce key size restrictions like the ones in Table 2 of NIST SP 800-57pt1r4[2].

C) Set thejdk.crypto.KeyAgreement.legacyKDF system property to "true". This will restore the previous behavior of thisKeyAgreement service. This solution should only be used as a last resort if the application code cannot be modified, or if the application must interoperate with a system that cannot be modified. The "legacy" key derivation function and its security are unspecified.

JDK-8185292 (not public)

security-libs/javax.crypto
Unlimited cryptography enabled by default

The JDK uses the Java Cryptography Extension (JCE) Jurisdiction Policy files to configure cryptographic algorithm restrictions. Previously, the Policy files in the JDK placed limits on various algorithms. This release ships with both the limited and unlimited jurisdiction policy files, with unlimited being the default. The behavior can be controlled via the newcrypto.policy Security property found in the /lib/java.security file. Refer to that file for more information on this property.

security-libs/javax.crypto
RSA public key validation

In 7u171, the RSA implementation in the SunRsaSign provider will reject any RSA public key that has an exponent that is not in the valid range as defined by PKCS#1 version 2.2. This change will affect JSSE connections as well as applications built on JCE.

JDK-8174756 (not public)

security-libs/javax.net.ssl
Restrict Diffie-Hellman keys less than 1024 bits

Diffie-Hellman keys less than 1024 bits are considered too weak to use in practice and should be restricted by default in SSL/TLS/DTLS connections. Accordingly, Diffie-Hellman keys less than 1024 bits have been disabled by default by addingDH keySize < 1024 to thejdk.tls.disabledAlgorithms security property in thejava.security file. Although it is not recommended, administrators can update the security property (jdk.tls.disabledAlgorithms) and permit smaller key sizes (for example, by settingDH keySize < 768).

JDK-8148108 (not public)

security-libs/java.security
keytool now prints warnings when reading or generating certificates/certificate requests/CRLs using weak algorithms

With one exception, keytool will always print a warning if the certificate, certificate request, or CRL it is parsing, verifying, or generating is using a weak algorithm or key. When a certificate is from an existingTrustedCertificateEntry, either in the keystore directly operated on or in thecacerts keystore when the-trustcacerts option is specified for the-importcert command, keytool will not print a warning if it is signed with a weak signature algorithm. For example, suppose the filecert contains a CA certificate signed with a weak signature algorithm,keytool -printcert -file cert andkeytool -importcert -file cert -alias ca -keystore ks will print out a warning, but after the last command imports it into the keystore,keytool -list -alias ca -keystore ks will not show a warning anymore.

An algorithm or a key is weak if it matches the value of thejdk.certpath.disabledAlgorithms security property defined in theconf/security/java.security file.

core-libs/java.rmi
The RMI Registry filter is relaxed to allow binding arrays of any type

The RMI Registry built-in serial filter is modified to check only the array size and not the component type. The maximum array size is increased to 1,000,000. The override filter can be used to decrease the limit. Array sizes greater than the maxarray limit will be rejected and otherwise will be allowed. Thejava.security file contains more information about thesun.rmi.registry.registryFilter property and it will be updated in theconf/security/java.security configuration file to better describe the default behavior and how to override it.

security-libs/javax.net.ssl
Disable exportable cipher suites

To improve the strength of SSL/TLS connections, exportable cipher suites have been disabled in SSL/TLS connections in the JDK by thejdk.tls.disabledAlgorithms Security Property.

security-libs/java.security
Disable JARs signed with DSA keys less than 1024 bits

DSA keys less than 1024 bits have been added to thejdk.jar.disabledAlgorithms Security property in thejava.security file. This property contains a list of disabled algorithms and key sizes for signed JAR files. If a signed JAR file uses a disabled algorithm or key size less than the minimum length, signature verification operations will ignore the signature and treat the JAR as if it were unsigned. This can potentially occur in the following types of applications that use signed JAR files:

  1. Applets or Web Start Applications
  2. Standalone or Server Applications run with a SecurityManager enabled and that are configured with a policy file that grants permissions based on the code signer(s) of the JAR file.

Runningjarsigner -verify -verbose on a JAR file signed with a weak algorithm or key will print more information about the disabled algorithm or key.

For example, to check a JAR file namedtest.jar, use this command :jarsigner -verify -verbose test.jar

If the file in this example was signed with a weak key such as 512 bit DSA, this output would be seen:

    - Signed by "CN=weak_signer"    Digest algorithm: SHA1    Signature algorithm: SHA1withDSA, 512-bit key (weak)

To address the issue, the JAR file will need to be re-signed with a stronger key size. Alternatively, the restrictions can be reverted by removing the applicable weak algorithms or key sizes from thejdk.jar.disabledAlgorithms security property; however, this option is not recommended. Before re-signing affected JARs, the existing signature(s) should be removed from the JAR file. This can be done with thezip utility, as follows:

zip -d test.jar 'META-INF/*.SF' 'META-INF/*.RSA' 'META-INF/*.DSA'

Periodically check the Oracle JRE and JDK Cryptographic Roadmap athttp://java.com/cryptoroadmap for planned restrictions to signed JARs and other security components.

JDK-8185909 (not public)

xml/jax-ws
Added wsimport tool command line option -disableXmlSecurity

Thewsimport tool has been changed to disallow DTDs in Web Service descriptions, specifically:

  • DOCTYPE declaration is disallowed in documents
  • External general entities are not included by default
  • External parameter entities are not included by default
  • External DTDs are completely ignored

To restore the previous behavior:

  • Set the System propertycom.sun.xml.internal.ws.disableXmlSecurity totrue
  • Use thewsimport tool command line option-disableXmlSecurity

JDK-8182873 (not public)

core-svc/javax.management
JMX Connections need deserialization filters

New public attributes,RMIConnectorServer.CREDENTIALS_FILTER_PATTERN andRMIConnectorServer.SERIAL_FILTER_PATTERN have been added toRMIConnectorServer.java. With these new attributes, users can specify the deserialization filter pattern strings to be used while making aRMIServer.newClient() remote call and while sending deserializing parameters over RMI to server respectively.

The user can also provide a filter pattern string to the default agent viamanagement.properties. As a result, a new attribute is added tomanagement.properties.

Existing attributeRMIConnectorServer.CREDENTIAL_TYPES is superseded byRMIConnectorServer.CREDENTIALS_FILTER_PATTERN and has been removed.

JDK-8159377 (not public)

security-libs/java.security
Add warnings to keytool when using JKS and JCEKS

When keytool is operating on a JKS or JCEKS keystore, a warning may be shown that the keystore uses a proprietary format and migrating to PKCS12 is recommended. The keytool's-importkeystore command is also updated so that it can convert a keystore from one type to another if the source and destination point to the same file.

JDK-8182879 (not public)

security-libs/java.security
keytool now prints out information of a certificate's public key

Keytool now prints out the key algorithm and key size of a certificate's public key, in the form ofSubject Public Key Algorithm:<size>-bit RSA key, where <size> is the key size in bits (ex: 2048).

xml/jaxp
JDK Transform, Validation and XPath use the system-default parser

Java SE 9 changes the JDK'sTransform,Validation andXPath implementations to use the JDK's system-default parser even when a third party parser is on the classpath. In order to override the JDK system-default parser, applications need to explicitly set the new System propertyjdk.xml.overrideDefaultParser.

  1. Support through the API

TheoverrideDefaultParser property is supported by the following APIs:

  • TransformerFactory::setFeature
  • SchemaFactory::setFeature
  • Validator::setFeature
  • XPathFactory::setFeature
  1. Support as a System property

TheoverrideDefaultParser property can be set through the System.setProperty.

  1. Support as a JAXP system property

TheoverrideDefaultParser property can be set in the JAXP configuration filejaxp.properties.

  1. Scope and order

TheoverrideDefaultParser property follows the same rule as other JDK JAXP properties in that a setting of a narrower scope takes preference over that of a wider scope. A setting through the API overrides the System property which in turn overrides that in thejaxp.properties file.

JDK-8186080 (not public)

Bug Fixes

The following are some of the notable bug fixes included in this release:

hotspot/compiler
Compilers accept modification of final fields outside initializer methods

According to the Java VM Specification, final fields can be modified by theputfield byte code instruction only if the instruction appears in the instance initializer method<init> of the field's declaring class. Similar, static final fields can be modified by aputstatic instruction only if the instruction appears in the class initializer method<clinit> of the field's declaring class. With the JDK 9 release, the HotSpot VM fully enforces the previously mentioned restrictions, but only for class files with version number >= 53. For class files with version numbers < 53, restrictions are only partially enforced (as it is done by releases preceding JDK 9). That is, for class files with version number < 53, final fields can be modified in any method of the class declaring the field (not only class/instance initializers).

This release also contains fixes for security vulnerabilities described in theOracle Critical Patch Update. For a more complete list of the bug fixes included in this release, see theJDK 7u171 Bug Fixes page.


Java SE 7u161 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u161 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u161 b33

Bug Fixes

BugIdCategorySubcategoryDescription
8185346core-libsjava.rmiRelax RMI Registry Serial Filter to allow arrays of any type
8191608installinstallJava RPMs should allow for side-by-side installation of JDK and JRE, 32 and 64 bit, and only one update for each major version
8193218installinstallSimplify build system building rpms
8191607installinstallundo 8189805: 64 and 32 bit RPMS must co-exist
8189805installinstall64 and 32 bit RPMS must co-exist

Changes in Java SE 7u161 b32

Bug Fixes

BugIdCategorySubcategoryDescription
8190258core-libsjava.time(tz) Support tzdata2017c
8190836xmljaxbNPE on ExceptionBean when processing SOAP Fault
8180048hotspotgcInterned string and symbol table leak memory during parallel unlinking

Changes in Java SE 7u161 b31

Please note that fixes from prior BPR (7u151 b33) are included in this version.


Java™ SE Development Kit 7, Update 161 (JDK 7u161)

October 17, 2017

The full version string for this update release is 1.7.0_161-b13 (where "b" means "build"). The version number is 7u161.

IANA Data 2017b

JDK 7u161 contains IANA time zone data version 2017b. For more information, refer toTimezone 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 7u161 are specified in the following table:

JRE Family VersionJRE Security Baseline(Full Version String)
71.7.0_161-b13
61.6.0_171-b13

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Third Party Bulletin. This JRE (version 7u161) will expire with the release of the next critical patch update scheduled for January 16, 2018.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u161) on February 16, 2018. 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, seeJRE Expiration Date.

Known Issues

deploy
Windows - There is a non-functional Java icon in the control panel after installing 6u171 or 7u161

Deployment features in 6u171 and 7u161 have been removed. Installing a version of the JRE that has deployment technologies supportAFTER having installed the current JRE will cause the Windows Control Panel to display a non-functional Java Control panel icon.

JDK-8185373 (not public)

core-libs/java.util.jar
Decode error with Tomcat version 7.x

Thezlib version shipped in the 8u151 and 7u161 JDK releases was updated tozlib v1.2.11. The deflate functionality in this version causes a compatibility issue with Tomcat v7.x. Server responses can appear as corrupt or can fail to be decoded. The issue is seen if Tomcat is using compression (e.g. compression="on" inserver.xml). This issue is being fixed viaJDK-8189789.

Users can disable the compression mode on their Tomcat servers as a workaround. Tomcat versions 8.x and later don't appear to be affected.

Notes

security-libs/java.security
Better keystore handling

Due to the more rigorous procedure of reading a keystore content, some keystores (particularly, those created with old versions of the JDK or with a JDK from other vendors) might need to be regenerated.

The following procedure can be used to import the keystore:

1. Before you start, create a backup of your keystore. For example, if your keystore file is/DIR/KEYSTORE, make a copy of it:

cp /DIR/KEYSTORE /DIR/KEYSTORE.BK

Download an older release of the JDK, prior CPU17_04, and install it in a separate location. For example: 6u161, 7u151, or 8u141. Suppose, that older JDK is installed in the directory/JDK8U141

2. Make sure that the keystore can be successfully read with the keytool from that older directory. For example, if the keystore file is located in/DIR/KEYSTORE, the following command should successfully list its content:

/JDK8U141/bin/keytool -list /DIR/KEYSTORE

3. Import the keystore. For example:

    /JDK8U141/bin/keytool -importkeystore \-srckeystore /DIR/KEYSTORE \-srcstoretype JCEKS \-srcstorepass PASSWORD \-destkeystore /DIR/KEYSTORE.NEW \-deststoretype JCEKS \-deststorepass PASSWORD

4. Verify that the newly created keystore is correct. At the very least, make sure that the keystore can be read with keytool from a newer JDK:

/NEW_JDK/bin/keytool -list /DIR/KEYSTORE.NEW

After successful verification, replace the old keystore with the new one:

mv /DIR/KEYSTORE.NEW /DIR/KEYSTORE

Keep the backup copy of the keystore at least until you are sure the imported keystore is correct.

JDK-8181370 (not public)

install
Demo references in Solaris install documentation

Demos were removed from packagetar.Z bundle (JDK-7066713). There is a separate Demos&Samples bundle beginning with 7u2 b08 and 6u32 b04, but Solaris patches still containSUNWj7dmo/SUNWj6dmo. The 64 bit packages areSUNWj7dmx/SUNWj6dmx

Demo packages remain in the existing Solaris patches; however, just because they are there doesn't mean they are installed. They will be patched only if the end user has them installed on the system.

http://docs.oracle.com/javase/7/docs/webnotes/install/solaris/solaris-jdk.html

The link above is to the Solaris OS Install Directions for the JDK. TheSUNWj7dmx package is mentioned in thetar.Z portion of the directions. This is confusing to some as, according to the cited bug, theSUNWj7dmx package shouldn't be part of thetar.Z bundle.

core-libs/java.net
Default timeouts have changed for FTP URL handler

Timeouts used by the FTP URL protocol handler have been changed from infinite to 5 minutes. This will result in an IOException from connect and read operations if the FTP server is unresponsive. For example,new URL("ftp://example.com").openStream().read(), will fail withjava.net.SocketTimeoutException in case a connection or reading could not be completed within 5 minutes.

To revert this behaviour to that of previous releases, the following system properties may be used,sun.net.client.defaultReadTimeout=0,sun.net.client.defaultConnectTimeout=0

JDK-8181612 (not public)

New Features

security-libs/javax.crypto
New Security property to control crypto policy

This release introduces a new feature whereby the JCE jurisdiction policy files used by the JDK can be controlled via a new Security property. In older releases, JCE jurisdiction files had to be downloaded and installed separately to allow unlimited cryptography to be used by the JDK. The download and install steps are no longer necessary. To enable unlimited cryptography, one can use the newcrypto.policy Security property. If the new Security property (crypto.policy) is set in the java.security file, or has been set dynamically using the Security.setProperty() call before the JCE framework has been initialized, that setting will be honored. By default, the property will be undefined. If the property is undefined and the legacy JCE jurisdiction files don't exist in the legacy lib/security directory, then the default cryptographic level will remain at 'limited'. To configure the JDK to use unlimited cryptography, set the crypto.policy to a value of 'unlimited'. See the notes in the java.security file shipping with this release for more information.

Note: On Solaris, it's recommended that you remove the old SVR4 packages before installing the new JDK updates. If an SVR4 based upgrade (without uninstalling the old packages) is being done on a JDK release earlier than 6u131, 7u121, 8u111, then you should set the new crypto.policy Security property in the java.security file.

Because the old JCE jurisdiction files are left in<java-home>/lib/security, they may not meet the latest security JAR signing standards, which were refreshed in 6u131, 7u121, 8u111, and later updates. An exception similar to the following might be seen if the old files are used:

    Caused by: java.lang.SecurityException: Jurisdiction policy files are not signed by trusted signers!    at javax.crypto.JceSecurity.loadPolicies(JceSecurity.java:593)    at javax.crypto.JceSecurity.setupJurisdictionPolicies(JceSecurity.java:524)
other-libs/corba
 Add Additional IDL Stub Type Checks to org.omg.CORBA.ORB::string_to_object Method

Applications that either explicitly or implicitly callorg.omg.CORBA.ORB.string_to_object, and wish to ensure the integrity of the IDL stub type involved in theORB::string_to_object call flow, should specify additional IDL stub type checking. This is an "opt in" feature and is not enabled by default.

To take advantage of the additional type checking, the list of valid IDL interface class names of IDL stub classes is configured by one of the following:

  • Specifying the security propertycom.sun.CORBA.ORBIorTypeCheckRegistryFilter located in the fileconf/security/java.security in Java SE 9 or injre/lib/security/java.security in Java SE 8 and earlier.

  • Specifying the system propertycom.sun.CORBA.ORBIorTypeCheckRegistryFilter with the list of classes. If the system property is set, its value overrides the corresponding property defined in thejava.security configuration.

If thecom.sun.CORBA.ORBIorTypeCheckRegistryFilter property is not set, the type checking is only performed against a set of class names of the IDL interface types corresponding to the built-in IDL stub classes.

JDK-8160104 (not public)

Certificate Changes

Remove revoked Swisscom root certificate "swisscomrootevca2"

One Swisscom root certificate has been revoked by Swisscom and has been removed:

    Swisscom Root EV CA 2alias: "swisscomrootevca2 [jdk]"DN: CN=Swisscom Root EV CA 2, OU=Digital Certificate Services, O=Swisscom, C=ch

JDK-8186330 (not public)

Changes

deploy
JRE 6 and JRE 7 update releases will no longer include deployment technologies

Starting with the Oct 2017 Critical Patch Update, updates for JRE 6 and JRE 7 will no longer include the Java Deployment Technologies required for launching Java applications.

If an application requires a Java SE 6 or 7 JRE, the Java Deployment technology in JRE 8 release can be used to run such applications.

If you need this functionality, please refer to the following deployment invocation methods:

See also:Support Note: the Java SE Deployment Technology Support Lifetime (Doc ID 1640397.1)

JDK-8185747 (not public)

core-libs/java.util:collections
Collections use serialization filter to limit array sizes

Deserialization of certain collection instances will cause arrays to be allocated. TheObjectInputFilter.checkInput() method is now called prior to allocation of these arrays. Deserializing instances ofArrayDeque,ArrayList,IdentityHashMap,PriorityQueue,java.util.concurrent.CopyOnWriteArrayList, and the immutable collections (as returned byList.of,Set.of, andMap.of) will callcheckInput() with a FilterInfo instance whose>serialClass() method returnsObject[].class. Deserializing instances ofHashMap,HashSet,Hashtable, and Properties will callcheckInput() with a FilterInfo instance whoseserialClass() method returnsMap.Entry[].class. In both cases, theFilterInfo.arrayLength() method will return the actual length of the array to be allocated. The exact circumstances under which the serialization filter is called, and with what information, is subject to change in future releases.

JDK-8174109 (not public)

security-libs/java.security
Refactor existing providers to refer to the same constants for default values for key length

Two important changes have been made for this issue:

1. A new system property has been introduced that allows users to configure the default key size used by the JDK provider implementations of KeyPairGenerator and AlgorithmParameterGenerator. This property is named "jdk.security.defaultKeySize" and the value of this property is a list of comma-separated entries. Each entry consists of a case-insensitive algorithm name and the corresponding default key size (in decimal) separated by ":". In addition, white space is ignored.

By default, this property will not have a value, and JDK providers will use their own default values. Entries containing an unrecognized algorithm name will be ignored. If the specified default key size is not a parseable decimal integer, that entry will be ignored as well.

2. The DSA KeyPairGenerator implementation of the SUN provider no longer implements java.security.interfaces.DSAKeyPairGenerator. Applications which cast the SUN provider's DSA KeyPairGenerator object to a java.security.interfaces.DSAKeyPairGenerator can set the system property "jdk.security.legacyDSAKeyPairGenerator". If the value of this property is "true", the SUN provider will return a DSA KeyPairGenerator object which implements thejava.security.interfaces.DSAKeyPairGenerator interface. This legacy implementation will use the same default value as specified by the javadoc in the interface.

By default, this property will not have a value, and the SUN provider will return a DSA KeyPairGenerator object which does not implement thejava.security.interfaces.DSAKeyPairGenerator interface and thus can determine its own provider-specific default value as stated in thejava.security.KeyPairGenerator class or by the "jdk.security.defaultKeySize" system property if set.

JDK-8181048 (not public)

security-libs/java.security
New defaults for DSA keys in jarsigner and keytool

For DSA keys, the default signature algorithm forkeytool andjarsigner has changed from SHA1withDSA to SHA256withDSA and the default key size forkeytool has changed from 1024 bits to 2048 bits.

Users wishing to revert to the previous behavior can use the-sigalg option ofkeytool andjarsigner and specify SHA1withDSA and the-keysize option ofkeytool and specify 1024.

There are a few potential compatibility risks associated with this change:

1. If you have a script that uses the default key size ofkeytool to generate a DSA keypair but then subsequently specifies a specific signature algorithm, ex:

  keytool -genkeypair -keyalg DSA -keystore keystore -alias mykey ...keytool -certreq -sigalg SHA1withDSA -keystore keystore -alias mykey ...

it will fail with one of the following exceptions, because the new 2048-bit keysize default is too strong for SHA1withDSA:

  keytool error: java.security.InvalidKeyException: The securitystrength of SHA-1 digest algorithm is not sufficient for this key sizekeytool error: java.security.InvalidKeyException: DSA key must be at most 1024 bits

The workaround is to remove the-sigalg option and use the stronger SHA256withDSA default or, at your own risk, use the-keysize option ofkeytool to specify a smaller key size (1024).

2. If you usejarsigner to sign JARs with the new defaults, previous versions (than this release) of JDK 6 and 7 do not support the stronger defaults and will not be able to verify the JAR.jarsigner -verify on an earlier release of JDK 6 or 7 will output the following error:jar is unsigned. (signatures missing or not parsable)

If you add-J-Djava.security.debug=jar to thejarsigner command line, the cause will be output:

jar: processEntry caught: java.security.NoSuchAlgorithmException: SHA256withDSA Signature not available

If compatibility with earlier releases is important, you can, at your own risk, use the-sigalg option ofjarsigner and specify the weaker SHA1withDSA algorithm.

3. If you use aPKCS11 keystore, the SunPKCS11 provider does not support theSHA256withDSA algorithm.jarsigner and somekeytool commands may fail with the following exception ifPKCS11 is specified with the-storetype option, ex:

   jar: processEntry caught: java.security.NoSuchAlgorithmException: SHA256withDSA Signature not available

A similar error may occur if you are using NSS with the SunPKCS11 provider. The workaround is to use the-sigalg option ofkeytool and specify SHA1withDSA.

tools
Improve javadoc generation

The Javadoc Standard Doclet documentation has been enhanced to specify that it doesn't validate the content of documentation comments for conformance, nor does it attempt to correct any errors in documentation comments. See the Conformance section in the Doclet documentation.

JDK-8179042 (not public)

Bug Fixes

This release contains fixes for security vulnerabilities described in theOracle Critical Patch Update. For a more complete list of the bug fixes included in this release, see theJDK 7u161 Bug Fixes page.


Java SE 7u151 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u151 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u151 b33

Bug Fixes

BugIdCategorySubcategoryDescription
8184993security-libsjava.securityJar file verification failing with SecurityException: digest missing xxx

Changes in Java SE 7u151 b32

Please note that fixes from prior BPR (7u141 b33) are included in this version.


Java™ SE Development Kit 7, Update 151 (JDK 7u151)

July 18, 2017

The full version string for this update release is 1.7.0_151-b15 (where "b" means "build"). The version number is 7u151.

IANA Data 2017b

JDK 7u151 contains IANA time zone data version 2017b. For more information, refer toTimezone 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 7u151 are specified in the following table:

JRE Family VersionJRE Security Baseline(Full Version String)
71.7.0_151-b15
61.6.0_161-b13

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Third Party Bulletin. This JRE (version 7u151) will expire with the release of the next critical patch update scheduled for October 17, 2017.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u151) on November 17, 2017. 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, seeJRE Expiration Date.

Known Issues

deploy/plugin
JAR file validation changes

Safari browsers, version 10.1 and higher, detect all JDK 7 Java Plug-in software as out-of-date, even if they are above the security baseline. Users can workaround this issue by updating the Java 7 Plug-in settings in the Safari browser's preferences. The setting is accessible by clicking "Security -> Plugin-in Settings..." and unchecking "Enable Security Protection" in the drop list.

JDK-8182641 (not public)

deploy/webstart
Java Plug-in blocked in Safari versions 10.1 and higher

After upgrading to the JDK July CPU release (8u141/7u151/6u161), when executing Java Webstart applications, customers may encounter an exception like“java.lang.SecurityException: digest missing for …” that prevents the application from loading.

The issue is observed in signed JAR files whose manifest contains package version information[1] and does not have a trailing"/" in the name of the package (e.g.: Name:org/apache/xml/resolver). While we work towards resolving this issue, in the interim, users can work-around the issue as follows:

NOTE: We recommend use of this workaround only if the distributor of the JAR files can "re-sign" the JAR files.

  • 1. Extract the contents of the signed JAR file (e.g.:jar xf jar-file ).
  • 2. Modify META-INF/MANIFEST.MF file and add a trailing “/” to the name of the package ( e.g.: Name:org/apache/xml/resolver/).
  • 3. Remove the current signature files ( e.g.:rm -f META-INF/*.SF META-INF/*.RSA META-INF/*.DSA ).
  • 4. Recreate the JAR file ( e,g.:jar cfm jar-file META-INF/MANIFEST.MF input-file(s) ).
NOTE: You must use thejar utility. Otherjar creation tools might re-introduce the issue.5. Re-sign the JAR file.[1]https://docs.oracle.com/javase/8/docs/technotes/guides/versioning/spec/versioning2.html#wp91706

Certificate Changes

New Let's Encrypt certificates added to root CAs

One new root certificate has been added:

    ISRG Root X1alias: letsencryptisrgx1DN: CN=ISRG Root X1, O=Internet Security Research Group, C=US

JDK-8177539 (not public)

New Features

security-libs/java.security
Disable SHA-1 TLS Server Certificates

Any TLS server certificate chain containing a SHA-1 certificate (end-entity or intermediate CA) and anchored by a root CA certificate included by default in Oracle's JDK is now blocked by default. TLS Server certificate chains that are anchored by enterprise or private CAs are not affected. Only X.509 certificate chains that are validated by thePKIX implementation of theCertPathValidator andCertPathBuilder APIs and theSunX509 andPKIX implementations of theTrustManagerFactory API are subject to the restrictions. Third-party implementations of these APIs are directly responsible for enforcing their own restrictions.

To implement this restriction and provide more flexibility for configuring your own restrictions, additional features have been added to thejdk.certpath.disabledAlgorithms andjdk.jar.disabledAlgorithms Security Properties in thejava.security file, as follows:

  • jdk.certpath.disabledAlgorithms:

    Three new constraints have been added to this Security Property:

    A new constraint namedjdkCA, that when set, restricts the algorithm if it is used in a certificate chain that is anchored by a trust anchor that is pre-installed in the JDK cacerts keystore. This condition does not apply to certificate chains that are anchored by other certificates, including those that are subsequently added to the cacerts keystore. Also, note that the restriction does not apply to trust anchor certificates, since they are directly trusted.

    A new constraint nameddenyAfter, that when set, restricts the algorithm if it is used in a certificate chain after the specified date. The restriction does not apply to trust anchor certificates, since they are directly trusted. Also, code signing certificate chains as used in signed JARs are treated specially as follows:

    • if the certificate chain is used with a signed JAR that is not timestamped, it will be restricted after the specified date

    • if the certificate chain is used with a signed JAR that is timestamped, it will not be restricted if it is timestamped before the specified date. If the JAR is timestamped after the specified date, it will be restricted.

    A new constraint namedusage, that when set, restricts the algorithm if it is used in a certificate chain for the specified use(s). Three usages are initially supported:TLSServer for TLS/SSL server certificate chains,TLSClient for TLS/SSL client certificate chains, andSignedJAR for certificate chains used with signed JARs.

Multiple constraints can be combined to constrain an algorithm when delimited by '&'. For example, to disable SHA-1 TLS Server certificate chains that are anchored by pre-installed root CAs, the constraint is "SHA1 jdkCA & usage TLSServer".

  • jdk.jar.disabledAlgorithms:

    A new constraint has been added nameddenyAfter, that when set, restricts the algorithm if it is used in a signed JAR after the specified date, as follows:

    • if the JAR is not timestamped, it will be restricted (treated as unsigned) after the specified date

    • if the JAR is timestamped, it will not be restricted if it is timestamped before the specified date. If the JAR is timestamped after the specified date, it will be restricted.

    For example, to restrict SHA1 in JAR files signed after January 1st 2018, add the following to the property: "SHA1 denyAfter 2018-01-01". The syntax is the same as the certpath property, however certificate checking will not be performed by this property.

Changes

core-svc/java.lang.management
JMX Diagnostic improvements

com.sun.management.HotSpotDiagnostic::dumpHeap API is modified to throw an IllegalArgumentException if the supplied file name does not end with “.hprof” suffix. Existing applications that do not provide a file name ending with the “.hprof” extension will fail with an IllegalArgumentException. In that case, applications can either choose to handle the exception or restore old behaviour by setting system property 'jdk.management.heapdump.allowAnyFileSuffix' to true.

JDK-8176055 (not public)

xml/jax-ws
Tighter secure checks on processing WSDL files by wsimport tool

Thewsimport tool has been changed to disallow DTDs in Web Service descriptions, specifically:

  • DOCTYPE declaration is disallowed in documents
  • External general entities are not included by default
  • External parameter entities are not included by default
  • External DTDs are completely ignored

To restore the previous behavior:

  • Set the System propertycom.sun.xml.internal.ws.disableXmlSecurity to true
  • Use thewsimport tool command line option–disableXmlSecurity NOTE: JDK 7 and JDK 6 support for this option inwsimport will be provided via a Patch release post July CPU

JDK-8182054 (not public)

Bug Fixes

This release contains fixes for security vulnerabilities described in theOracle Java SE Critical Patch Update Advisory. For a more complete list of the bug fixes included in this release, see theJDK 7u151 Bug Fixes page.


Java SE 7u141 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u141 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u141 b33

Bug Fixes

BugIdCategorySubcategoryDescription
8075484core-libsjava.netSocketInputStream.socketRead0 can hang even with soTimeout set

Changes in Java SE 7u141 b32

Bug Fixes

BugIdCategorySubcategoryDescription
8164002hotspotcompilerAdd a new CPU family (S_family) for SPARC S7 and above processors
8165482hotspotcompilerjava in ldoms, with cpu-arch=generic has problems
8134119hotspotcompilerUse new API to get cache line sizes
8177817hotspotruntimeRemove assertions in 8u that were removed by 8056124 in 9.
8049717hotspotruntimeexpose L1_data_cache_line_size for diagnostic/sanity checks
8043913hotspotcompilerremove legacy code in SPARC's VM_Version::platform_features
8177449core-libsjava.time(tz) Support tzdata2017b
8175251security-libsjava.securityFailed to load RSA private key from pkcs12

Changes in Java SE 7u141 b31

Please note that fixes from prior BPR (7u131 b31) are included in this version.


Java™ SE Development Kit 7, Update 141 (JDK 7u141)

The full version string for this update release is 1.7.0_141-b11 (where "b" means "build"). The version number is 7u141.

IANA Data 2017a

JDK 7u141 contains IANA time zone data version 2017a. For more information, refer toTimezone 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 7u141 are specified in the following table:

JRE Family VersionJRE Security Baseline(Full Version String)
71.7.0_141-b11
61.6.0_151-b10

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Third Party Bulletin. This JRE (version 7u141) will expire with the release of the next critical patch update scheduled for July 18, 2017.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u141) on August 18, 2017. 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, seeJRE Expiration Date.

Changes

security-libs/java.security
MD5 added to jdk.jar.disabledAlgorithms Security property

This JDK release introduces a new restriction on how MD5 signed JAR files are verified. If the signed JAR file uses MD5, signature verification operations will ignore the signature and treat the JAR as if it were unsigned. This can potentially occur in the following types of applications that use signed JAR files:

  • Applets or Web Start Applications
  • Standalone or Server Applications that are run with a SecurityManager enabled and are configured with a policy file that grants permissions based on the code signer(s) of the JAR file.

The list of disabled algorithms is controlled via the security property,jdk.jar.disabledAlgorithms, in thejava.security file. This property contains a list of disabled algorithms and key sizes for cryptographically signed JAR files.

To check if a weak algorithm or key was used to sign a JAR file, one can use the jarsigner binary that ships with this JDK. Running"jarsigner -verify" on a JAR file signed with a weak algorithm or key will print more information about the disabled algorithm or key.

For example, to check a JAR file namedtest.jar, use the following command:

jarsigner -verify test.jar

If the file in this example was signed with a weak signature algorithm like MD5withRSA, the following output would be displayed:

The jar will be treated as unsigned, because it is signed with a weak algorithm that is now disabled. Re-run jarsigner with the -verbose option for more details.

More details can be displayed by using the verbose option:

jarsigner -verify -verbose test.jar

The following output would be displayed:

- Signed by "CN=weak_signer"    Digest algorithm: MD5 (weak)     Signature algorithm: MD5withRSA (weak), 512-bit key (weak)   Timestamped by "CN=strong_tsa" on Mon Sep 26 08:59:39 CST 2016     Timestamp digest algorithm: SHA-256     Timestamp signature algorithm: SHA256withRSA, 2048-bit key

To address the issue, the JAR file will need to be re-signed with a stronger algorithm or key size. Alternatively, the restrictions can be reverted by removing the applicable weak algorithms or key sizes from thejdk.jar.disabledAlgorithms security property; however, this option is not recommended. Before re-signing affected JARs, the existing signature(s) should be removed from the JAR file. This can be done with the.zip utility, as follows:

zip -d test.jar 'META-INF/.SF' 'META-INF/.RSA' 'META-INF/*.DSA'

Please periodically check the Oracle JRE and JDK Cryptographic Roadmap athttp://java.com/cryptoroadmap for planned restrictions to signed JARs and other security components.

JDK-8171121 (not public)

core-libs/java.net
New system property to control caching for HTTP SPNEGO connection.

A new JDK implementation specific system property to control caching for HTTP SPNEGO (Negotiate/Kerberos) connections is introduced. Caching for HTTP SPNEGO connections remains enabled by default, so if the property is not explicitly specified, there will be no behavior change.

When connecting to an HTTP server that uses SPNEGO to negotiate authentication, and when connection and authentication with the server is successful, the authentication information will then be cached and reused for further connections to the same server. In addition, connecting to an HTTP server using SPNEGO usually involves keeping the underlying connection alive and reusing it for further requests to the same server. In some applications, it may be desirable to disable all caching for the HTTP SPNEGO (Negotiate/Kerberos) protocol in order to force requesting new authentication with each new request to the server.

With this change, we now provide a new system property that allows control of the caching policy for HTTP SPNEGO connections. Ifjdk.spnego.cache is defined and evaluates to false, then all caching will be disabled for HTTP SPNEGO connections. Setting this system property to false may, however, result in undesirable side effects:

  • Performance of HTTP SPNEGO connections may be severely impacted as the connection will need to be re-authenticated with each new request, requiring several communication exchanges with the server.
  • Credentials will need to be obtained again for each new request, which, depending on whether transparent authentication is available or not, and depending on the global Authenticator implementation, may result in a popup asking the user for credentials for every new request.

JDK-8170814 (not public)

core-libs/java.net
New system property to control caching for HTTP NTLM connection.

A new JDK implementation specific system property to control caching for HTTP NTLM connection is introduced. Caching for HTTP NTLM connection remains enabled by default, so if the property is not explicitly specified, there will be no behavior change.

On some platforms, the HTTP NTLM implementation in the JDK can support transparent authentication, where the system user credentials are used at system level. When transparent authentication is not available or unsuccessful, the JDK only supports getting credentials from a global authenticator. If connection to the server is successful, the authentication information will then be cached and reused for further connections to the same server. In addition, connecting to an HTTP NTLM server usually involves keeping the underlying connection alive and reusing it for further requests to the same server. In some applications, it may be desirable to disable all caching for the HTTP NTLM protocol in order to force requesting new authentication with each new requests to the server.

With this change, we now provide a new system property that allows control of the caching policy for HTTP NTLM connections. Ifjdk.ntlm.cache is defined and evaluates to false, then all caching will be disabled for HTTP NTLM connections. Setting this system property to false may, however, result in undesirable side effects:

  • Performance of HTTP NTLM connections may be severely impacted as the connection will need to be re-authenticated with each new request, requiring several communication exchanges with the server.
  • Credentials will need to be obtained again for each new request, which, depending on whether transparent authentication is available or not, and depending on the global Authenticator implementation, may result in a popup asking the user for credentials for every new request.

JDK-8163520 (not public)

Bug Fixes

The following are some of the notable bug fixes included in this release:

security-libs/javax.net.ssl
Correction of IllegalArgumentException from TLS handshake

A recent issue from the JDK-8173783 fix can cause issue for some TLS servers. The problem originates from an IllegalArgumentException thrown by the TLS handshaker code:

java.lang.IllegalArgumentException: System property jdk.tls.namedGroups(null) contains no supported elliptic curves

The issue can arise when the server doesn't have elliptic curve cryptography support to handle an elliptic curve name extension field (if present). Users are advised to upgrade to this release. By default, JDK 7 Updates and later JDK families ship with the SunEC security provider which provides elliptic curve cryptography support. Those releases should not be impacted unless security providers are modified.

This release also contains fixes for security vulnerabilities described in theOracle Java SE Critical Patch Update Advisory. For a more complete list of the bug fixes included in this release, see theJDK 7u141 Bug Fixes page.


Java SE 7u131 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u131 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u131 b31

Please note that fixes from prior BPR (7u121 b32) are included in this version.


Java™ SE Development Kit 7, Update 131 (JDK 7u131)

The full version string for this update release is 1.7.0_131-b12 (where "b" means "build"). The version number is 7u131.

IANA Data 2016i

JDK 7u131 contains IANA time zone data version 2016i. For more information, refer toTimezone 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 7u131 are specified in the following table:

JRE Family VersionJRE Security Baseline(Full Version String)
71.7.0_131-b12
61.6.0_141-b12

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Third Party Bulletin. This JRE (version 7u131) will expire with the release of the next critical patch update scheduled for April 18, 2017.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u131) on May 18, 2017. 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, seeJRE Expiration Date.

Notes

core-libs/javax.naming

Improved protection for JNDI remote class loading Remote class loading via JNDI object factories stored in naming and directory services is disabled by default. To enable remote class loading by the RMI Registry or COS Naming service provider, set the following system property to the string "true", as appropriate:

    com.sun.jndi.rmi.object.trustURLCodebase    com.sun.jndi.cosnaming.object.trustURLCodebase

JDK-8158997 (not public)

security-libs/java.security
jarsigner -verbose -verify should print the algorithms used to sign the jar

The jarsigner tool has been enhanced to show details of the algorithms and keys used to generate a signed JAR file and will also provide an indication if any of them are considered weak.

Specifically, when "jarsigner -verify -verbose filename.jar" is called, a separate section is printed out showing information of the signature and timestamp (if it exists) inside the signed JAR file, even if it is treated as unsigned for various reasons. If any algorithm or key used is considered weak, as specified in the Security propertyjdk.jar.disabledAlgorithms, it will be labeled with "(weak)".

For example:

- Signed by "CN=weak_signer"   Digest algorithm: MD2 (weak)    Signature algorithm: MD2withRSA (weak), 512-bit key (weak) Timestamped by "CN=strong_tsa" on Mon Sep 26 08:59:39 CST 2016   Timestamp digest algorithm: SHA-256    Timestamp signature algorithm: SHA256withRSA, 2048-bit key

New Features

security-libs/java.security
Add support for the SHA224withDSA and SHA256withDSA signature algorithms and DSA keys with sizes up to 2048 bits

Support has been added for the SHA224withDSA and SHA256withDSA signature algorithms and for DSA keys with sizes up to 2048 bits. Previously, only DSA keys with sizes up to 1024 bits were supported.

docs/release_notes
Support SHA224withDSA and SHA256withDSA in the SunJSSE provider

The SHA224withDSA and SHA256withDSA algorithms are now supported in the TLS 1.2 "signature_algorithms" extension in the SunJSSE provider. Note that this extension does not apply to TLS 1.1 and previous versions.

core-libs/java.io:serialization
Serialization Filter Configuration release note

Serialization Filtering introduces a new mechanism which allows incoming streams of object-serialization data to be filtered in order to improve both security and robustness. Every ObjectInputStream applies a filter, if configured, to the stream contents during deserialization. Filters are set using either a system property or a configured security property. The value of the "jdk.serialFilter" patterns are described inJEP 290 Serialization Filtering and in <JRE>/lib/security/java.security. Filter actions are logged to the 'java.io.serialization' logger, if enabled.

core-libs/java.rmi
RMI Better constraint checking

RMI Registry and Distributed Garbage Collection use the mechanisms ofJEP 290 Serialization Filtering to improve service robustness. RMI Registry and DGC implement built-in white-list filters for the typical classes expected to be used with each service. Additional filter patterns can be configured using either a system property or a security property. The "sun.rmi.registry.registryFilter" and "sun.rmi.transport.dgcFilter" property pattern syntax is described in JEP 290 and in <JRE>/lib/security/java.security.

JDK-8156802 (not public)

security-libs
Add mechanism to allow non-default root CAs to not be subject to algorithm restrictions*New certpath constraint: jdkCA*

In the java.security file, an additional constraint namedjdkCA is added to thejdk.certpath.disabledAlgorithms property. This constraint prohibits the specified algorithm only if the algorithm is used in a certificate chain that terminates at a marked trust anchor in thelib/security/cacerts keystore. If the jdkCA constraint is not set, then all chains using the specified algorithm are restricted.jdkCA may only be used once in a DisabledAlgorithm expression.

Example: To apply this constraint to SHA-1 certificates, include the following:

SHA1 jdkCA

Changes

hotspot/compiler
BigInteger performance improvements turned on by default

The performance improvements described inJDK-8130150 andJDK-8081778 have now been turned on by default. They can be turned off by using the following command options:

    -XX:-UseMontgomerySquareIntrinsic -XX:-UseMontgomeryMultiplyIntrinsic     -XX:-UseSquareToLenIntrinsic -XX:-UseMultiplyToLenIntrinsic
SHA224 removed from the default support list if SunMSCAPI enabled

SunJSSE allows SHA224 as an available signature and hash algorithm for TLS 1.2 connections. However, the current implementation of SunMSCAPI does not yet support SHA224. This can cause problems if SHA224 and SunMSCAPI private keys are used at the same time.To mitigate the problem, we remove SHA224 from the default support list if SunMSCAPI is enabled.

security-libs/javax.net.ssl
Make 3DES as a legacy algorithm in the JSSE provider

For SSL/TLS/DTLS protocols, the security strength of 3DES cipher suites is not sufficient for persistent connections. By adding3DES_EDE_CBC to thejdk.tls.legacyAlgorithms security property by default in JDK, 3DES cipher suites will not be negotiated unless there are no other candidates during the establishing of SSL/TLS/DTLS connections.

At their own risk, applications can update this restriction in the security property (jdk.tls.legacyAlgorithms) if 3DES cipher suites are really preferred.

JDK-8165071 (not public)

security-libs/javax.net.ssl
Improve the default strength of EC in JDK

To improve the default strength of EC cryptography, EC keys less than 224 bits have been deactivated in certification path processing (via thejdk.certpath.disabledAlgorithms Security Property) and SSL/TLS connections (via thejdk.tls.disabledAlgorithms Security Property) in JDK. Applications can update this restriction in the Security Properties and permit smaller key sizes if really needed (for example, "EC keySize < 192"). EC curves less than 256 bits are removed from the SSL/TLS implementation in JDK. The new System Property,jdk.tls.namedGroups, defines a list of enabled named curves for EC cipher suites in order of preference. If an application needs to customize the default enabled EC curves or the curves preference, please update the System Property accordingly. For example:

    jdk.tls.namedGroups="secp256r1, secp384r1, secp521r1"

Note that the default enabled or customized EC curves follow the algorithm constraints. For example, the customized EC curves cannot re-activate the disabled EC keys defined by the Java Security Properties.

tools/javadoc(tool)
New --allow-script-in-comments option for javadoc

The javadoc tool will now reject any occurrences of JavaScript code in the javadoc documentation comments and command-line options, unless the command-line option,--allow-script-in-comments is specified.

With the--allow-script-in-comments option, the javadoc tool will preserve JavaScript code in documentation comments and command-line options. An error will be given by the javadoc tool if JavaScript code is found and the command-line option is not set.

JDK-8138725 (not public)

security-libs/javax.xml.crypto
Increase the minimum key length to 1024 for XML Signatures

The secure validation mode of the XML Signature implementation has been enhanced to restrict RSA and DSA keys less than 1024 bits by default as they are no longer secure enough for digital signatures. Additionally, a new security property namedjdk.xml.dsig.SecureValidationPolicy has been added to thejava.security file and can be used to control the different restrictions enforced when the secure validation mode is enabled.

The secure validation mode is enabled either by setting the xml signature propertyorg.jcp.xml.dsig.secureValidation to true with thejavax.xml.crypto.XMLCryptoContext.setProperty method, or by running the code with aSecurityManager.

If an XML Signature is generated or validated with a weak RSA or DSA key, an XMLSignatureException will be thrown with the message, "RSA keys less than 1024 bits are forbidden when secure validation is enabled" or "DSA keys less than 1024 bits are forbidden when secure validation is enabled".

JDK-8140353 (not public)

docs/release_notes
Restrict certificates with DSA keys less than 1024 bits.

DSA keys less than 1024 bits are not strong enough and should be restricted in certification path building and validation. Accordingly, DSA keys less than 1024 bits have been deactivated by default by adding "DSA keySize < 1024" to the "jdk.certpath.disabledAlgorithms" security property. Applications can update this restriction in the security property ("jdk.certpath.disabledAlgorithms") and permit smaller key sizes if really needed (for example, "DSA keySize < 768").

JDK-8139565 (not public)

security-libs/javax.net.ssl
Add TLS v1.1 and v1.2 to the client list of default-enabled protocols

TLSv1.2 and TLSv1.1 are now enabled by default on the TLS client end-points. This is similar behavior to what already happens in JDK 8 releases.

Seedetails from crypto roadmap for more details.

security-libs
More checks added to DER encoding parsing code

More checks are added to the DER encoding parsing code to catch various encoding errors. In addition, signatures which contain constructed indefinite length encoding will now lead to IOException during parsing. Note that signatures generated using JDK default providers are not affected by this change.

JDK-8168714 (not public)

core-libs/java.net
Additional access restrictions for URLClassLoader.newInstance

Class loaders created by thejava.net.URLClassLoader.newInstance methods can be used to load classes from a list of given URLs. If the calling code does not have access to one or more of the URLs and the URL artifacts that can be accessed do not contain the required class, then a ClassNotFoundException, or similar, will be thrown. Previously, a SecurityException would have been thrown when access to a URL was denied. If required to revert to the old behavior, this change can be disabled by setting thejdk.net.URLClassPath.disableRestrictedPermissions system property.

JDK-8151934 (not public)

Bug Fixes

This release contains fixes for security vulnerabilities described in theOracle Java SE Critical Patch Update Advisory. For a more complete list of the bug fixes included in this release, see theJDK 7u131 Bug Fixes page.

Known Issues

security-libs/javax.net.ssl
IllegalArgumentException from TLS handshake

A recent issue from the JDK-8148516 fix can cause issue for some TLS servers. The problem originates from an *IllegalArgumentException* thrown by the TLS handshaker code:

     java.lang.IllegalArgumentException: System property jdk.tls.namedGroups(null) contains no supported elliptic curves

The issue can arise when the server doesn't have elliptic curve cryptography support to handle an elliptic curve name extension field (if present). Users are advised to upgrade to this release. By default, JDK 7 Updates and later JDK families ship with the SunEC security provider which provides elliptic curve cryptography support. Those releases should not be impacted unless security providers are modified.


Java SE 7u121 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u121 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u121 b32

Bug Fixes

BugIdCategorySubcategoryDescription
8164410deploypluginJRE 6u121 causes applet to fail with: Reset deny session certificate store
8167179xmljaxpMake XSL generated namespace prefixes local to transformation process

Changes in Java SE 7u121 b31

Please note that fixes from prior BPR (7u111 b32) are included in this version.

Bug Fixes

BugIdCategorySubcategoryDescription
8068881hotspotcompilerSIGBUS in C2 compiled method weblogic.wsee.jaxws.framework.jaxrpc.
EnvironmentFactory$Simulated
WsdlDefinitions.
8165867deployplugin[macos] JVM continuously throw a NullPointerException on new MacOS 10.12
8166875core-libsjava.time(tz) Support tzdata2016g
8063089(Confidential)hotspotjfrVM fails to start on Windows with enabled JFR
8166878(Confidential)security-libsjavax.net.ssljava.net.SocketException: Connection reset (works with 7u80, fails with 7u111)

Java™ SE Development Kit 7, Update 121 (JDK 7u121)

October 18, 2016

The full version string for this update release is 1.7.0_121-b15 (where "b" means "build"). The version number is 7u121.

IANA Data 2016f

JDK 7u121 contains IANA time zone data version 2016f. For more information, refer toTimezone Data Versions in the JRE Software.SeeJDK-8159684

Security Baselines

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

JRE Family VersionJRE Security Baseline(Full Version String)
71.7.0_121-b15
61.6.0_131-b14

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Third Party Bulletin. This JRE (version 7u121) will expire with the release of the next critical patch update scheduled for January 17, 2017.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u121) on February 17, 2017. 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, seeJRE Expiration Date.

Certificate Changes

New JCE Code Signing Root CA In order to support longer key lengths and stronger signature algorithms, a new JCE Provider Code Signing root certificate authority has been created and its certificate added to Oracle JDK. New JCE provider code signing certificates issued from this CA will be used to sign JCE providers at a date in the near future. By default, new requests for JCE provider code signing certificates will be issued from this CA.Existing certificates from the current JCE provider code signing root will continue to validate. However, this root CA may be disabled at some point in the future. We recommend that new certificates be requested and existing provider JARs be re-signed.For details on the JCE provider signing process, please refer to theHow to Implement a Provider in the Java Cryptography Architecture documentation.

JDK-8141340 (not public)

Notes

security-libs/javax.crypto
MSCAPI KeyStore can handle same-named certificates Java SE KeyStore does not allow certificates that have the same aliases (http://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html).

However, on Windows, multiple certificates stored in one keystore are allowed to have non-unique friendly names. The fix forJDK-6483657 makes it possible to operate on such non-uniquely named certificates through the Java API by artificially making the visible aliases unique.Please note, this fix does not enable creating same-named certificates with the Java API. It only allows you to deal with same-named certificates that were added to the keystore by 3rd party tools.It is still recommended that your design not use multiple certificates with the same name. In particular, the following sentence will not be removed from the Java documentation:"In order to avoid problems, it is recommended not to use aliases in a KeyStore that only differ in case."(http://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html)

Changes

client-libs/java.awt
Service Menu services

The lifecycle management of AWT menu components exposed problems on certain platforms. This fix improves state synchronization between menus and their containers.

JDK-8158993 (not public)

core-libs/java.net
Disable Basic authentication for HTTPS tunneling

In some environments certain authentication schemes may be undesirable when proxying HTTPS. Accordingly, theBasic authentication scheme has been deactivated, by default, in the Oracle Java Runtime, by addingBasic to thejdk.http.auth.tunneling.disabledSchemes networking property in thenet.properties file. Now, proxies requiringBasic authentication when setting up a tunnel for HTTPS will no longer succeed by default. If required, this authentication scheme can be reactivated by removingBasic from thejdk.http.auth.tunneling.disabledSchemes networking property, or by setting a system property of the same name to "" ( empty ) on the command line.

Additionally, thejdk.http.auth.tunneling.disabledSchemes andjdk.http.auth.proxying.disabledSchemes networking properties, and system properties of the same name, can be used to disable other authentication schemes that may be active when setting up a tunnel for HTTPS, or proxying plain HTTP, respectively.

JDK-8160838 (not public)

security-libs/java.security
Restrict JARs signed with weak algorithms and keys

This JDK release introduces new restrictions on how signed JAR files are verified. If the signed JAR file uses a disabled algorithm or key size less than the minimum length, signature verification operations will ignore the signature and treat the JAR file as if it were unsigned. The list of disabled algorithms is controlled via a new security property,jdk.jar.disabledAlgorithms, in thejava.security file. This property contains a list of disabled algorithms and key sizes for cryptographically signed JAR files.

The following algorithms and key sizes are restricted in this release:

  1. MD2 (in either the digest or signature algorithm)
  2. RSA keys less than 1024 bits

NOTE: We are planning to restrict MD5-based signatures in signed JARs in the April 2017 CPU.

To check if a weak algorithm or key was used to sign a JAR file, you can use thejarsigner binary that ships with this JDK. Runningjarsigner -verify -J-Djava.security.debug=jar on a JAR file signed with a weak algorithm or key will print more information about the disabled algorithm or key.

For example, to check a JAR file namedtest.jar, use the following command:jarsigner -verify -J-Djava.security.debug=jar test.jar

If the file in this example was signed with a weak signature algorithm like MD2withRSA, the following output would be displayed:jar: beginEntry META-INF/my_sig.RSA jar: processEntry: processing block jar: processEntry caught: java.security.SignatureException: Signature check failed. Disabled algorithm used: MD2withRSA jar: done with meta! The updatedjarsigner command will exit with the following warning printed to standard output:"Signature not parsable or verifiable. The jar will be treated as unsigned. The jar may have been signed with a weak algorithm that is now disabled. For more information, rerunjarsigner with debug enabled (-J-Djava.security.debug=jar)"

To address the issue, the JAR file will need to be re-signed with a stronger algorithm or key size.Alternatively, the restrictions can be reverted by removing the applicable weak algorithms or key sizes from thejdk.jar.disabledAlgorithms security property; however, this option is not recommended. Before re-signing affected JAR files, the existing signature(s) should be removed from the JAR. This can be done with thezip utility, as follows:

zip -d test.jar 'META-INF/*.SF' 'META-INF/*.RSA' 'META-INF/*.DSA'

Please periodically check theOracle JRE and JDK Cryptographic Roadmap athttp://java.com/cryptoroadmap for planned restrictions to signed JAR files and other security components. In particular, please note the current plan is to restrict MD5-based signatures in signed JAR files in the April 2017 CPU.

To test if your JARs have been signed with MD5, addMD5 to thejdk.jar.disabledAlgorithms security property, ex:

jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024 and then runjarsigner -verify -J-Djava.security.debug=jar on your JAR files as described above.

JDK-8155973 (not public)

deploy
Warning message added to deployment authenticator dialog

A warning has been added to the plugin authentication dialog in cases where HTTP Basic authentication (credentials are sent unencrypted) is used while using a proxy or while not using SSL/TLS protocols:"WARNING: Basic authentication scheme will effectively transmit your credentials in clear text. Do you really want to do this?"

JDK-8161647 (not public)

Known Issues

hotspot//compiler
Message "CodeCache is full. Compiler has been disabled"

This message indicates that the CodeCache (a memory area where the JIT compiler keeps the generated compiled code) is full. For that reason, the JIT compiler has been disabled and it won't compile any more methods and won't generate more compiled code. This can impact the performance of the application.

To avoid this situation, please increase the CodeCache size by using the JVM option,ReservedCodeCacheSize. The default maximum size of the CodeCache on most of the platforms is 48M.

JDK-8163956 (not public)

deploy
JVM throws NullPointerExceptions on macOS Sierra 10.12

On macOS Sierra 10.12, if a user presses modifier keys (such as Command, Shift, or Alt) while an applet is running in a browser, an error box named “Internal Error” might be displayed. It will also show the “exec” icon in the macOS dock. The user can dismiss the applet, or try to rerun the applet while not pressing a modifier key. To fix this problem, users can install JRE 8u112.

Bug Fixes

This release also contains fixes for security vulnerabilities described in theOracle Java SE Critical Patch Update Advisory. For a more complete list of the bug fixes included in this release, see theJDK 7u121 Bug Fixes page.


Java SE 7u111 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u111 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u111 b32

Bug Fixes

BugIdCategorySubcategoryDescription
8160664client-libs2dJVM crashed with font manager on Solaris 12
8154069client-libsjavax.accessibilityJaws reads wrong values from comboboxes when no element is selected
8161700deploywebstartDeadlock in Java Web Start application involving JNLPClassLoader
8160275(Confidential)deploydeployment_toolkit7u95 java does not start after the java splash screen in jws application
8156977(Confidential)deploywebstartjava.lang.NumberFormatException: For input string: 1z

Changes in Java SE 7u111 b31

Please note that fixes from prior BPR (7u101 b32) are included in this version.

Bug Fixes

BugIdCategorySubcategoryDescription
8154788(Confidential)installinstallENT MSI installers should support system account
8036630hotspotruntimeNull ProtectionDomain in JVM can cause NPE because principals field is not initialized to an empty array

Java™ SE Development Kit 7, Update 111 (JDK 7u111)

The full version string for this update release is 1.7.0_111-b13 (where "b" means "build"). The version number is 7u111.

IANA Data 2016d

JDK 7u111 contains IANA time zone data version 2016d. For more information, refer toTimezone 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 7u111 are specified in the following table:

JRE Family VersionJRE Security Baseline(Full Version String)
71.7.0_111-b13
61.6.0_121-b09

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Third Party Bulletin. This JRE (version 7u111) will expire with the release of the next critical patch update scheduled for October 19, 2016.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u111) on November 19, 2016. 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, seeJRE Expiration Date.

Certificate Changes

  • New DTrust certificates added to root CAs
  • Two new root certificates have been added:

  • D-TRUST Root Class 3 CA 2 2009
  • alias: dtrustclass3ca2
  • DN: CN=D-TRUST Root Class 3 CA 2 2009, O=D-Trust GmbH, C=DE

  • D-TRUST Root Class 3 CA 2 EV 2009
  • alias: dtrustclass3ca2ev
  • DN: CN=D-TRUST Root Class 3 CA 2 EV 2009, O=D-Trust GmbH, C=DE
  • SeeJDK-8153080

  • New IdenTrust certificates added to root CAs
  • Three new root certificates have been added:

  • IdenTrust Public Sector Root CA 1
  • alias: identrustpublicca
  • DN: CN=IdenTrust Public Sector Root CA 1, O=IdenTrust, C=US

  • IdenTrust Commercial Root CA 1
  • alias: identrustcommercial
  • DN: CN=IdenTrust Commercial Root CA 1, O=IdenTrust, C=US

  • IdenTrust DST Root CA X3
  • alias: identrustdstx3
  • DN: CN=DST Root CA X3, O=Digital Signature Trust Co.
  • SeeJDK-8154757

  • Comodo Root CA removed
  • The Comodo "UTN - DATACorp SGC" root CA certificate has been removed from the cacerts file.
  • SeeJDK-8141540

  • Sonera Class1 CA removed
  • The "Sonera Class1 CA" root CA certificate has been removed from the cacerts file.
  • SeeJDK-8141276

Enhancements

hotspot/runtime
New property jdk.lang.processReaperUseDefaultStackSize

When a large TLS (Thread local storage) size is set for Threads, the JVM results in a stack overflow exception. The reason for this behavior is that the reaper thread was created with a low stack size of 32768k. When a large TLS size is set, it steals space from the threads stack, which eventually results in a stack overflow. This is a known glibc bug.To overcome this issue, we have introduced a workaround (jdk.lang.processReaperUseDefaultStackSize) in which the user can set the reaper threads stack size to a default instead of to 32768. This gives the reaper thread a bigger stack size, so for a large TLS size, such as 32k, the process will not fail.

  • Users can set this flag in one of two ways:
  • 1.-Djdk.lang.processReaperUseDefaultStackSize=true
  • 2.System.setProperty("jdk.lang.processReaperUseDefaultStackSize", "true")

The problem has been observed only when the JVM is started from JNI code in which TLS is declared using "__thread"

hotspot/compiler
Implemented performance improvements for BigInteger.montgomeryMultiply

We have implemented improvements that will improve performance of several security algorithms, especially when using ciphers with key lengths of 2048-bit or greater. To turn on these improvements, use the options-XX:+UseMontgomeryMultiplyIntrinsic and-XX:+UseMontgomerySquareIntrinsic. This improvement is only for Linux and Solaris on x86_64 architecture.

core-libs
os.name support for Windows 10

JDK 7u111 now prints Windows 10 for os.name System property queries running on Windows 10 systems.

Changes

other-libs/corba
Improve access control to javax.rmi.CORBA.ValueHandler

Thejavax.rmi.CORBA.Util class provides methods that can be used by stubs and ties to perform common operations. It also acts as a factory for ValueHandlers. Thejavax.rmi.CORBA.ValueHandler interface provides services to support the reading and writing of value types to GIOP streams. The security awareness of these utilities has been enhanced with the introduction of a permissionjava.io.SerializablePermission("enableCustomValueHanlder"). This is used to establish a trust relationship between the users of thejavax.rmi.CORBA.Util andjavax.rmi.CORBA.ValueHandler APIs.

The required permission is"enableCustomValueHanlder" SerializablePermission. Third party code running with a SecurityManager installed, but not having the new permission while invokingUtil.createValueHandler(), will fail with an AccessControlException.

This permission check behaviour can be overridden, in JDK8u and previous releases, by defining a system property,"jdk.rmi.CORBA.allowCustomValueHandler".

As such, external applications that explicitly calljavax.rmi.CORBA.Util.createValueHandler require a configuration change to function when a SecurityManager is installed and neither of the following two requirements is met:

  • 1. Thejava.io.SerializablePermission("enableCustomValueHanlder") is not granted by SecurityManager.
  • 2. In the case of applications running on JDK8u and before, the system property"jdk.rmi.CORBA.allowCustomValueHandler" is either not defined or is defined equal to "false" (case insensitive).

Please note that the"enableCustomValueHanlder" typo will be corrected in the October 2016 releases. In those and future JDK releases,"enableCustomValueHandler" will be the correct SerializationPermission to use.

JDK-8079718 (not public)

security-libs/java.security
Support added to jarsigner for specifying timestamp hash algorithm

A new-tsadigestalg option is added tojarsigner to specify the message digest algorithm that is used to generate the message imprint to be sent to the TSA server. In older JDK releases, the message digest algorithm used was SHA-1. If this new option is not specified, SHA-256 will be used on JDK 7 Updates and later JDK family versions. On JDK 6 Updates, SHA-1 will remain the default but a warning will be printed to the standard output stream.

security-libs/javax.net.ssl
Modify requirements on Authority Key Identifier extension field during X509 certificate chain building

The requirement to have the Authority Key Identifier (AKID) and Subject Key Identifier (SKID) fields matching when building X509 certificate chains has been modified for some cases.

deploy
Deployment Tookit API methods no longer install JRE

The Deployment Toolkit APIinstallLatestJRE() andinstallJRE(requestedVersion) methods fromdeployJava.js and theinstall() method fromdtjava.js no longer install the JRE. If a user's version of Java is below the security baseline, it redirects the user to java.com to get an updated JRE.

JDK-8148310 (not public)

hotspot/gc
Providing more granular levels for GC verification

This enhancement provides a way to specify more granular levels for the GC verification enabled using theVerifyBeforeGC,VerifyAfterGC, andVerifyDuringGC diagnostic options. It introduces a new diagnostic optionVerifySubSet with which one can specify the subset of the memory system that should be verified.

With this new option, one or more sub-systems can be specified in a comma separated string. Valid memory sub-systems are:threads,heap,symbol_table,string_table,codecache,dictionary,classloader_data_graph,metaspace, jni_handles,c-heap, andcodecache_oops.

During the GC verification, only the sub-systems specified usingVerifySubSet get verified:

     D:\\tests>java -XX:+UnlockDiagnosticVMOptions -XX:+VerifyBeforeGC -XX:VerifySubSet="threads,c-heap" -Xlog:gc+verify=debug Test[0.095s][debug ][gc,verify] Threads[0.099s][debug ][gc,verify] C-heap[0.105s][info ][gc,verify] Verifying Before GC (0.095s, 0.105s) 10.751ms[0.120s][debug ][gc,verify] Threads[0.124s][debug ][gc,verify] C-heap[0.130s][info ][gc,verify] Verifying Before GC (0.120s, 0.130s) 9.951ms[0.148s][debug ][gc,verify] Threads[0.152s][debug ][gc,verify] C-heap

If any invalid memory sub-systems are specified withVerifySubSet, the Java process exits with the following error message:

     D:\\tests>java -XX:+UnlockDiagnosticVMOptions -XX:+VerifyBeforeGC -XX:VerifySubSet="threads,c-heap,hello" -Xlog:gc+verify=debug oomError occurred during initialization of VMVerifySubSet: 'hello' memory sub-system is unknown, please correct it
hotspot/compiler
Removed PICL warning message

In 8u40 and 7u80, a new feature was introduced to use the PICL library on Solaris to get some system information. If this library was not found, we printed an error message:

Java HotSpot(TM) Server VM warning: PICL (libpicl.so.1) is missing.Performance will not be optimal.

This warning was misleading. Not finding the PICL library is a very minor issue, and the warnings mostly lead to confusion. In this release, the warning was removed.

core-libs/javax.naming
Improved exception handling for bad LDAP referral replies

The JDK was throwing a NullPointerException when a non-compliant REFERRAL status result was sent but no referral values were included. With this change, a NamingException with message value of "Illegal encoding: referral is empty" will be thrown in such circumstances.

security-libs/java.security
DomainCombiner will no longer consult runtime policy for static ProtectionDomain objects when combining ProtectionDomain objects

Applications which use static ProtectionDomain objects (created using the 2-arg constructor) with an insufficient set of permissions may now get an AccessControlException with this fix. They should either replace the static ProtectionDomain objects with dynamic ones (using the 4-arg constructor) whose permission set will be expanded by the current Policy or construct the static ProtectionDomain object with all the necessary permissions.

JDK-8147771 (not public)

Bug Fixes

The following are some of the notable bug fixes included in this release:

security-libs/javax.net.ssl
Fix to resolve "Unable to process PreMasterSecret, may be too big" issue

Recent JDK updates introduced an issue for applications that depend on having a delayed provider selection mechanism. The issue was introduced in JDK 8u71, JDK 7u95, and JDK 6u111. The main error seen corresponded to an exception like the following: handling exception: javax.net.ssl.SSLProtocolException: Unable to process PreMasterSecret, may be too big

This release also contains fixes for security vulnerabilities described in theOracle Java SE Critical Patch Update Advisory. For a more complete list of the bug fixes included in this release, see theJDK 7u111 Bug Fixes page.


Java SE 7u101 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u101 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u101 b32

Bug Fixes

BugIdCategorySubcategoryDescription
8149450core-libsjavax.namingLdapCtx.processReturnCode() throwing Null Pointer Exception
8154304core-libsjavax.namingNullpointerException at LdapReferralException.getReferralContext
8146336deploypluginpac file returns wrong proxy with IE only due to broken wildcarding

Changes in Java SE 7u101 b31

Please note that fixes from prior BPR (7u99 b31) are included in this version.

Java™ SE Development Kit 7, Update 101 (JDK 7u101)

The full version string for this update release is 1.7.0_101-b14 (where "b" means "build"). The version number is 7u101.

This update release contains several enhancements and changes including the following:

IANA Data 2016a

JDK 7u101 contains IANA time zone data version 2016a. For more information, refer toTimezone 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 7u101 are specified in the following table:

JRE Family VersionJRE Security Baseline(Full Version String)
71.7.0_101
61.6.0_115

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Third Party Bulletin. This JRE (version 7u101) will expire with the release of the next critical patch update scheduled for July 19, 2016.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u101) on August 19, 2016. 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, seeJRE Expiration Date.

Bug Fixes

This release contains fixes for security vulnerabilities. For more information, seeOracle Java SE Critical Patch Update Advisory. For a list of bug fixes included in this release, seeJDK 7u101 Bug Fixes page.

The following are some of the notable bug fixes included in this release:

Regression in Applet startup time fixed

JDK-8080977 introduced delay on applet launch. The delay appears only on IE and lasts about 20 seconds. JDK-8136759 removed this delay.

DSA signature generation is now subject to a key strength check For signature generation, if the security strength of the digest algorithm is weaker than the security strength of the key used to sign the signature (e.g. using (2048, 256)-bit DSA keys with SHA1withDSA signature), the operation will fail with the error message:

"The security strength of SHA1 digest algorithm is not sufficient for this key size."

JDK-8138593 (not public)

New JVM Options added: ExitOnOutOfMemory and CrashOnOutOfMemory

Two new JVM flags have been added:

  • ExitOnOutOfMemory - When you enable this option, the JVM exits on the first occurrence of an out-of-memory error. It can be used if you prefer restarting an instance of the JVM rather than handling out of memory errors.

  • CrashOnOutOfMemoryError - If this option is enabled, when an out-of-memory error occurs, the JVM crashes and produces text and binary crash files (if core files are enabled).

New system property to control re-enabling of RC4-based ciphersuites in 7u101, 6u115 releases

Setting-Djdk.tls.enableRC4CipherSuites=true adds the following RC4 based ciphersuites back to the default enabled JSSE ciphersuite list:

  • TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
  • TLS_ECDHE_RSA_WITH_RC4_128_SHA
  • TLS_ECDH_ECDSA_WITH_RC4_128_SHA
  • TLS_ECDH_RSA_WITH_RC4_128_SHA
  • SSL_RSA_WITH_RC4_128_SHA
  • SSL_RSA_WITH_RC4_128_MD5

This system property will only have impact from the JDK 7u101 and JDK 6u115 releases. By default, RC4-based ciphersuites are not in the default enabled list. They were removed in the JDK 6u101 and JDK 7u85 releases.

Firefox 42 liveconnect problem

Because it might cause the browser to hang, we don't process JavaScript-to-Java calls when the Java plugin is launched fromplugin-container.exe (the default behavior for Firefox 42) and the applet status is not Ready(2). If the applet is not ready (the status is not 2), we don't execute the actual Java method and only return null.

If the plugin is launched fromplugin-container.exe, do not use JavaScript-To-Java calls that may require more than 11 seconds(the default value ofdom.ipc.plugins.hangUITimeoutSecs) to be completed or show a modal dialog during JavaScript-To-Java call. In this case, the main browser thread must be blocked, which might cause the browser to hang and the plugin to terminate.

Workaround (for Firefox 42):User’s can setdom.ipc.plugins.enabled=false. The side effect of this workaround is that it changes the setting for all plugins.

JDK-8144079 (not public)

New attribute for JMX RMI JRMP servers specifies a list of class names to use when deserializing server credentials

A new java attribute has been defined for the environment to allow a JMX RMI JRMP server to specify a list of class names. These names correspond to the closure of class names that are expected by the server when deserializing credentials. For instance, if the expected credentials were a List<string>, then the closure would constitute all the concrete classes that should be expected in the serial form of a list of Strings.

By default, this attribute is used only by the default agent with the following:

 {   "[Ljava.lang.String;",      "java.lang.String"  }

Only arrays of Strings and Strings will be accepted when deserializing the credentials.The attribute name is:

"jmx.remote.rmi.server.credential.types"

The following is an example of a user starting a server with the specified credentials class names:

Map<String, Object> env = new HashMap<>(1);  env.put (  "jmx.remote.rmi.server.credential.types",   new String[]{   String[].class.getName(),   String.class.getName()   }   );   JMXConnectorServer server   = JMXConnectorServerFactory.newJMXConnectorServer(url, env, mbeanServer);

The new feature should be used by directly specifying:

"jmx.remote.rmi.server.credential.types

JDK-8144430 (not public)

  • New certificates added to root CAs
  • Eight new root certificates have been added :

  • QuoVadis Root CA 1 G3
  • alias: quovadisrootca1g3
  • DN: CN=QuoVadis Root CA 1 G3, O=QuoVadis Limited, C=BM

  • QuoVadis Root CA 2 G3
  • alias: quovadisrootca2g3
  • DN: CN=QuoVadis Root CA 2 G3

  • QuoVadis Root CA 3 G3
  • alias: quovadisrootca3g3
  • DN: CN=QuoVadis Root CA 3 G3, O=QuoVadis Limited, C=BM

  • DigiCert Assured ID Root G2
  • alias: digicertassuredidg2
  • DN: CN=DigiCert Assured ID Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US

  • DigiCert Assured ID Root G3
  • alias: digicertassuredidg3
  • DN: CN=DigiCert Assured ID Root G3, OU=www.digicert.com, O=DigiCert Inc, C=US

  • DigiCert Global Root G2
  • alias: digicertglobalrootg2
  • DN: CN=DigiCert Global Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US

  • DigiCert Global Root G3
  • alias: digicertglobalrootg3
  • DN: CN=DigiCert Global Root G3, OU=www.digicert.com, O=DigiCert Inc, C=US

  • DigiCert Trusted Root G4
  • alias: digicerttrustedrootg4
  • DN: CN=DigiCert Trusted Root G4, OU=www.digicert.com, O=DigiCert Inc, C=US


Java SE 7u72 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u72 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u99 b31

Please note that fixes from prior BPR (7u97 b33) are included in this version.

Java™ SE Development Kit 7, Update 99 (JDK 7u99)

The full version string for this update release is 1.7.0_99-b04 (where "b" means "build"). The version number is 7u99.

This update release contains several enhancements and changes including the following:

IANA Data 2016a

JDK 7u99 contains IANA time zone data version 2016a. For more information, refer toTimezone 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 7u99 are specified in the following table:

JRE Family VersionJRE Security Baseline(Full Version String)
71.7.0_99
61.6.0_111

For more information about security baselines, seeDeploying Java Applets With Family JRE Versions in Java Plug-in for Internet Explorer.

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Third Party Bulletin. This JRE (version 7u99) will expire with the release of the next critical patch update scheduled for April 19, 2016.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u99) on May 19, 2016. 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, seeJRE Expiration Date.

Notes

The demos, samples, and Documentation bundles for 7u99 are not impacted by the Security Alert for CVE-2016-0636, so version 7u95 demos, samples, and Documentation bundles remain the most up to-date version until the April Critical Patch Update release.

Bug Fixes

This release contains fixes for security vulnerabilities. For more information, seeOracle Java SE Critical Patch Update Advisory.


Java SE 7u97 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u97 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u97 b33

Bug Fixes

BugIdCategorySubcategoryDescription
8046339core-libsrmisun.rmi.transport.DGCAckHandler leaks memory
8130150hotspotcompilerImplement BigInteger.montgomeryMultiply intrinsic
8151522hotspotcompilerDisable 8130150 and 8081778 intrinsics by default

Changes in Java SE 7u97 b32

Bug Fixes

BugIdCategorySubcategoryDescription
8144593xmljaxpSuppress not recognized property/feature warning messages from SAXParser

Changes in Java SE 7u97 b31

Please note that fixes from prior BPR (7u95 b32) are included in this version.

Java™ SE Development Kit 7, Update 97 (JDK 7u97)

The full version string for this update release is 1.7.0_97-b02 (where "b" means "build"). The version number is 7u97.

This update release contains several enhancements and changes including the following:

IANA Data 2015g

JDK 7u97 contains IANA time zone data version 2015g. For more information, refer toTimezone 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 7u97 are specified in the following table:

JRE Family VersionJRE Security Baseline(Full Version String)
71.7.0_95
61.6.0_111

For more information about security baselines, seeDeploying Java Applets With Family JRE Versions in Java Plug-in for Internet Explorer.

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Third Party Bulletin. This JRE (version 7u97) will expire with the release of the next critical patch update scheduled for April 19, 2016.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u97) on May 19, 2016. 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, seeJRE Expiration Date.

Notes

Oracle strongly recommends that Java users who have downloaded affected versions and plan future installations with these downloaded versions discard these old downloads. Java users who have installed the January 2016 Critical Patch Update versions of Java SE 6, 7, or 8 need take no action. Java users who have not installed the January 2016 Critical Patch Update versions of Java SE 6, 7, or 8 should upgrade to the Java SE 6, 7, or 8 releases from the Security Alert for CVE-2016-0603.

The demos, samples, and Documentation bundles for 7u97 are not impacted by the Security Alert for CVE-2016-0603, so version 7u95 demos, samples, and Documentation bundles remain the most up to-date version until the April Critical Patch Update release.

Bug Fixes

This release contains fixes for security vulnerabilities. For more information, see theOracle Java SE Critical Patch Update Advisory.

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

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

To determine the version of your JDK software, use the following command:

java -version

All our BPR releases are configured with Java Auto Update disabled as default unless otherwise mentioned.


Java SE 7u95 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u95 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u95 b32

Bug Fixes

BugIdCategorySubcategoryDescription
8144483hotspotruntimeOne long Safepoint pause directly after each GC log rotation

Changes in Java SE 7u95 b31

Please note that fixes from prior BPR (7u91 b33) are included in this version.

Changes in Java SE 7u95 b13

Bug Fixes

BugIdCategorySubcategoryDescription
8075773core-svctoolsjps running as root fails after the fix of JDK-8050807
8136759deploydeployment_toolkit

Regression in Applet startup time with Internet Explorer on 8u60 and 8u65-b14


Java™ SE Development Kit 7, Update 95 (JDK 7u95)

The full version string for this update release is 1.7.0_95-b14 (where "b" means "build"). The version number is 7u95.

This update release contains several enhancements and changes including the following:

IANA Data 2015g

JDK 7u95 contains IANA time zone data version 2015g. For more information, refer toTimezone 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 7u95 are specified in the following table:

JRE Family VersionJRE Security Baseline(Full Version String)
71.7.0_95
61.6.0_111

For more information about security baselines, seeDeploying Java Applets With Family JRE Versions in Java Plug-in for Internet Explorer.

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Third Party Bulletin. This JRE (version 7u95) will expire with the release of the next critical patch update scheduled for April 19, 2016.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u95) on May 19, 2016. 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, seeJRE Expiration Date.

New Features and Changes

The following are some of the notable new features and changes in this release:

*MD5 now disabled for X509 Certificate validating*

MD5 must not be used for digital signatures where collision resistance is required. To prevent the use of X.509 certificates that include an MD5-based digital signature algorithm, MD5 has been added to the jdk.certpath.disabledAlgorithms security property. Applications should upgrade or replace certificates that include an MD5-based digital signature.

Reversing this change is possible by removing MD5 from the jdk.certpath.disabledAlgorithms security property in the java.security file. This is not recommended.

JDK-8141287 (not public)

Disable MD5withRSA signature algorithm in the JSSE provider

The MD5withRSA signature algorithm is now considered insecure and should no longer be used. Accordingly, MD5withRSA has been deactivated by default in the Oracle JSSE implementation by adding "MD5withRSA" to the "jdk.tls.disabledAlgorithms" security property. Now, both TLS handshake messages and X.509 certificates signed with MD5withRSA algorithm are no longer acceptable by default. This change extends the previous MD5-based certificate restriction ("jdk.certpath.disabledAlgorithms") to also include handshake messages in TLS version 1.2. If required, this algorithm can be reactivated by removing "MD5withRSA" from the "jdk.tls.disabledAlgorithms" security property.

JDK-8144773 (not public)

jdk.tls.client.protocols system property added to JDK 7

The jdk.tls.client.protocols system property is now available with the release of JDK 7u95. This property was originally introduced in JDK 8 and behaves in the same way. SeeJSSE User Guide.

Bug Fixes

This release contains fixes for security vulnerabilities. For more information, seeOracle Java SE Critical Patch Update Advisory. For a list of bug fixes included in this release, seeJDK 7u95 Bug Fixes page. The following are some of the notable bug fixes included in this release:

Nondeterministic wrong answer on arithmetic corrected

When performing OSR on loops with huge stride and/or initial values, in very rare cases, the tiered/server compilers could produce non-canonical loop shapes that produce nondeterministic answers when the answers should be deterministic. This issue has now been fixed.

Running jps as root does not show all information

After the fix ofJDK-8050807 (fixed in 8u31, 7u75 and 6u91), running jps as root did not show all the information from Java processes started by other users on some systems. This has now been fixed.

JFR reports abnormally high machine CPU consumption on Linux

On Linux kernels 2.6 and later, the JDK would include time spent waiting for IO completion as "CPU usage". During periods of heavy IO activity, this could result in misleadingly high values reported as CPU consumption in various tools like Flight Recorder and performance counters. This issue has been resolved.

Correction to end time checking for native TGT

The end times for native TGTs (ticket-granting tickets) are now compared with UTC time stamps.


Java SE 7u91 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u91 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u91 b33

Bug Fixes

BugIdCategorySubcategoryDescription
8136759(Confidential)deploydeployment_toolkitRegression in Applet startup time with Internet Explorer on 8u60 and 8u65-b14
8133523deployplugin_releaseObject called from wrong thread
8076369security-libsjavax.net.sslIntroduce the jdk.tls.client.protocols system property for JDK 7u
Regression in Applet startup time fixed

JDK-8080977 introduced delay on applet launch. The delay appears only on IE and lasts about 20 seconds. JDK-8136759 removed this delay.

Changes in Java SE 7u91 b32

Please note that fixes from prior BPR (7u85 b34) are included in this version.

Bug Fixes

BugIdCategorySubcategoryDescription
8135307(Confidential)toolsjavacCompletionFailure thrown when calling FieldDoc.type, if the field's type is missing

Changes in Java SE 7u91 b17

Bug Fixes

Bug IdCategorySubcategoryDescription
JDK-8075609client-libsjava.awt

java.lang.IllegalArgumentException: a Container is not a focus cycle root of a Component

JDK-8077409client-libsjava.awtDrawing deviates when validate() is invoked on java.awt.ScrollPane
JDK-8076455client-libsjava.awt.i18nIME Composition Window is displayed on incorrect position
JDK-8033069client-libsjavax.swing

mouse wheel scroll closes combobox popup

JDK-8072448client-libsjavax.swing

Can not input Japanese in JTextField on RedHat Linux

JDK-8133321core-libs

(tz) Support tzdata2015f

JDK-7119643core-libsjava.io

Not possible to read files with a path longer than 2048 characters

JDK-7150092core-libsjava.net

NTLM authentication fail if user specified a different realm

JDK-8072384core-libsjava.net

Setting IP_TOS on java.net sockets not working on unix

JDK-8080819core-libsjava.net

Inet4AddressImpl regression caused by JDK-7180557

JDK-7044727core-libsjava.util:i18n

(tz) TimeZone.getDefault() call returns incorrect value in Windows terminal session

JDK-8072602core-libsjava.util:i18n

Unpredictable timezone on Windows when OS's timezone is not found in tzmappings

JDK-8074350core-libsjava.util:i18n

Support ISO 4217 "Current funds codes" table (A.2)

JDK-7011441core-libsjavax.naming

./jndi/ldap/Connection.java needs to avoid spurious wakeup

JDK-7059542core-libsjavax.naming

JNDI name operations should be locale independent

JDK-8077855deployplugin

When applet is relaunched, extra JUT records can be sent

JDK-8133665deployplugin

REGRESSION: Hidden applet does not load in 8u60 and 8u65

JDK-8080774globalization

DateFormat for Singapore/English locale (en_SG) is M/d/yy instead of d/M/yy

JDK-8056124core-svccompiler

Hotspot should use PICL interface to get cacheline size on SPARC

JDK-8062591hotspotcompiler

SPARC PICL causes significantly longer startup times

JDK-8078113hotspotcompiler

8011102 changes may cause incorrect results.

JDK-8080012hotspotcompiler

JVM times out with vdbench on SPARC M7-16

JDK-6904403hotspotjvmti

assert(f == k->has_finalizer(),"inconsistent has_finalizer") with debug VM

JDK-8035150hotspotjvmti

ShouldNotReachHere() in ConstantPool::copy_entry_to

JDK-7127066hotspotruntime

Class verifier accepts an invalid class file

JDK-8048353hotspotruntime

jstack -l crashes VM when a Java mirror for a primitive type is locked

JDK-8072147hotspotruntime

Preloading libjsig.dylib causes deadlock when signal() is called

JDK-8072863hotspotruntime

Replace fatal() with vm_exit_during_initialization() when an incorrect class is found on the bootclasspath

JDK-8075331hotspotsvc

jdb eval java.util.Arrays.asList(array) shows inconsistent behaviour

JDK-8075410installinstall

Registry path for jvm.dll is set to client instead of server

JDK-8050123other-libscorba

Incorrect property name documented in CORBA InputStream API

JDK-7107611security-libsjava.security

sun.security.pkcs11.SessionManager is scalability blocker

JDK-7190945security-libsjava.security

pkcs11 problem loading NSS libs on Ubuntu

JDK-8062834security-libsjavax.crypto

Allow DHKeyPair generation for bit lengths > 1024 in 6u, 7u

JDK-8059588security-libsjavax.net.ssl

deadlock in java/io/PrintStream when verbose java.security.debug flags are set

JDK-8077102security-libsorg.ietf.igss:krb5

dns_lookup_realm should be false by default

JDK-8077822toolslauncher

javac does not recognize '*.java' as file if '-J' option is specified

JDK-7156085xmljavax.xml.parsers

ArrayIndexOutOfBoundsException throws in UTF8Reader of SAXParser

JDK-8062518xmljaxp

AIOBE occurs when accessing to document function in extended function in JAXP

JDK-8081392xmljaxp

getNodeValue should return 'null' value for Element nodes


Java™ SE Development Kit 7, Update 91 (JDK 7u91)

The full version string for this update release is 1.7.0_91-b15 (where "b" means "build"). The version number is 7u91.

This update release contains several enhancements and changes including the following:

IANA Data 2015f

JDK 7u91 contains IANA time zone data version 2015f. For more information, refer toTimezone 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 7u91 are specified in the following table:

JRE Family VersionJRE Security Baseline(Full Version String)
71.7.0_91
61.6.0_105

For more information about security baselines, seeDeploying Java Applets With Family JRE Versions in Java Plug-in for Internet Explorer.

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Third Party Bulletin. This JRE (version 7u91) will expire with the release of the next critical patch update scheduled for January 19, 2016.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u91) on February 20, 2015. 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, seeJRE Expiration Date.

Notes

When running on OSX 10.11 "El Capitan", when SIP is enabled, certain environment variables intended for debugging applications, such asDYLD_LIBRARY_PATH, may be stripped from the environment when running Java from the command line or when double-clicking a JAR file. Applications should not rely on these variables in a production environment, they are only intended for debugging during development.

New Features and Changes

The following are some of the notable new features and changes in this release:

xml/jaxp
A new property "maxXMLNameLimit" is added

A new property,maxXMLNameLimit, is added to limit the maximum size of XML names, including element name, attribute name and namespace prefix and URI. It is recommended that users set the limit to the smallest possible number so that malformed XML files can be caught quickly. For more about XML processing limits, please seeThe Java Tutorials, Processing Limits

JDK-8086733 (not public)

dns_lookup_realm should be false by default

The dns_lookup_realm setting in Kerberos'krb5.conf file is by default false.

Support ISO 4217 "Current funds codes" table (A.2)

This enhancement adds support for ISO 4217table A.2 fund codes. Previously the JDK only supported those currencies listed intable A.1.

DHKeyPairs with Bit Lengths Greater Than 1024

DHKeyPair generation now supports use of key sizes up to 2048 bits. Key size must be multiples of 64 if less than 1024 bits, or 2048 bits.

Bug Fixes

This release contains fixes for security vulnerabilities. For more information, seeOracle Java SE Critical Patch Update Advisory. For a list of bug fixes included in this release, seeJDK 7u91 Bug Fixes page.

The following are some of the notable bug fixes included in this release:

Use Safe Prime Diffie-Hellman Groups

In the JDK SSL/TLS implementation (SunJSSE provider), safe prime Diffie-Hellman groups are used by default. Users can customize Diffie-Hellman groups with the security property, "jdk.tls.server.defaultDHEParameters".

Kerberos changes for applications running with security manager

This JDK release introduces some changes to how Kerberos requests are handled when a security manager is present.

Note that if a security manager is installed while a KerberosPricipal is being created, a {@link ServicePermission} must be granted and the service principal of the permission must minimally be inside the{@code KerberosPrincipal}'s realm.

For example, if the result of{@code new KerberosPrincipal("user")} is{@code user@EXAMPLE.COM}, then a{@code ServicePermission} with service principal{@code host/www.example.com@EXAMPLE.COM} (and any action) must be granted.

Also note that if a single GSS-API principal entity that contains a Kerberos name element without providing its realm is being created via theorg.ietf.jgss.GSSName interface and a security manager is installed, then this release introduces a new requirement. A{@link javax.security.auth.kerberos.ServicePermission ServicePermission} must be granted and the service principal of the permission must minimally be inside the Kerberos name element's realm.

For example, if the result of{@link GSSManager#createName(String, Oid) createName("user", NT_USER_NAME)} contains a Kerberos name element{@code user@EXAMPLE.COM}, then a{@code ServicePermission} with service principal{@code host/www.example.com@EXAMPLE.COM} (and any action) must be granted. Otherwise, the creation will throw a{@link GSSException} containing the{@code GSSException.FAILURE} error code.

JDK-8048030 (not public)

Hotspot should use PICL interface to get cacheline size on SPARC

The libpicl library is now required on Solaris/SPARC to determine the size of the cache lines. In case the library is not present or the PICL service is not available the JVM will display a warning and compiler optimizations that utilize the BIS (Block Initializing Store) instruction will be turned off.

Preloading libjsig.dylib causes deadlock when signal() is called

Applications need to preload thelibjsig library to enable signal chaining. Previously, on OS X, afterlibjsig.dylib was preloaded, any call from native code tosignal() caused a deadlock. This has been corrected.


Java SE 7u85 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u85 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u85 b34

Bug Fixes

BugIdCategorySubcategoryDescription
8075773core-svctoolsjps running as root fails after the fix of JDK-8050807
8133196core-libsjava.netHTTPS hostname invalid issue with InetAddress
8081297(Confidential)security-libsjavax.net.sslUnable to process PreMasterSecret Tomcat issue
8132082security-libsjavax.net.sslLet OracleUcrypto accept RSAPrivateKey
8062834security-libsjavax.cryptoAllow DHKeyPair generation for bit lengths > 1024 in 6u, 7u
8006935(Confidential)security-libsjavax.cryptoNeed to take care of long secret keys in HMAC/PRF computation

Changes in Java SE 7u85 b33

Bug Fixes

BugIdCategorySubcategoryDescription
8080012hotspotcompilerJVM times out with vdbench on SPARC M7-16

Changes in Java SE 7u85 b31

Please note that fixes from prior BPR (7u80 b35) are included in this version.

Bug Fixes

BugIdCategorySubcategoryDescription
8072384core-libsjava.netSetting IP_TOS on java.net sockets not working on unix

Java™ SE Development Kit 7, Update 85 (JDK 7u85)

The full version string for this update release is 1.7.0_85-b15 (where "b" means "build"). The version number is 7u85.

Highlights

This update release contains several enhancements and changes including the following:

IANA Data 2015d

JDK 7u85 contains IANA time zone data version 2015d. For more information, refer toTimezone 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 7u85 are specified in the following table:

JRE Family VersionJRE Security Baseline(Full Version String)
71.7.0_85
61.6.0_101

For more information about security baselines, seeDeploying Java Applets With Family JRE Versions in Java Plug-in for Internet Explorer.

JRE Expiration Date

The JRE expires whenever a new release with security vulnerability fixes becomes available. Critical patch updates, which contain security vulnerability fixes, are announced one year in advance onCritical Patch Updates, Security Alerts and Third Party Bulletin. This JRE (version 7u85) will expire with the release of the next critical patch update scheduled for October 20, 2015.

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u85) on November 20, 2015. 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, seeJRE Expiration Date.

JavaFX Release Notes

This JDK release includes JavaFX version 2.2.85.

New Features and Changes

Ephemeral DH keys less than 768 bits deactivated

Ephemeral DH keys less than 768 bits are deactivated in JDK. New algorithm restrictionDH keySize < 768 is added to Security Propertyjdk.tls.disabledAlgorithms.

JDK-8076328 (not public)

IBM1166 character set now available

This release adds IBM1166 character set. It provides support for cyrillic multilingual with euro for Kazakhstan. Aliases for this new character set includecp1166,ibm1166,ibm-1166, and1166.

Operating system's restricted environment (Native Sandbox)

JDK 8u51 introduced the following changes to Native Sandbox:

  • Native sandbox is available on Windows platform only.

  • Native sandbox can be enabled or disabled throughJava Control Panel->Advanced settings->Enable the operating system's restricted environment (native sandbox) or by settingdeployment.security.use.native.sandbox property to true indeployment.properties file.

    Native sandbox is disabled by default.

  • When native sandbox is enabled, the sandbox applets or web-start applications will run in a restricted environment, that is provided by the operating system. This will not affect the all-permission applications and they will continue to run as before.

  • Native sandbox will be disabled for applications included the in Exception Site List (ESL) or when Deployment Rule Set (DRS) is used.

  • Sandbox applets deployed with HTML applet tag which includes all-permissions JAR files from theClass-Path manifest attribute, will run in native sandbox.

    In such cases, a special warning dialog will display, informing the user that the applet may not work properly, when such an applet tries to access the all-permission JAR files.

  • Custom preloader will be disabled in certain cases when native sandbox is enabled:

    • Custom preloader will be disabled when sandbox applets or web-start applications are initializing and the default preloader will be used instead. After application is initialized, Java VM restarts with native sandbox enabled and the custom preloader will be used.
    • For all-permission applications, custom preloader will be disabled if it is located in the JNLP file with sandbox permission, until user agrees to run application from the Security Dialog, which grants unrestricted access (privileged) to application.
Support stronger strength ephemeral DH keys in the SunJSSE provider

The ephemeral DH key size now defaults to 1024 bits during SSL/TLS handshaking in the SunJSSE provider. A new system property, "jdk.tls.ephemeralDHKeySize", is defined to customize the ephemeral DH key sizes. This can be set to "legacy" if the older JDK behavior (DH keysize of 768 bits) is desired. The DH key size for exportable ciphersuites remains at 512 bits.

JDK-8081080 (not public)

Bug Fixes

This release contains fixes for security vulnerabilities. For more information, seeOracle Java SE Critical Patch Update Advisory.

For a list of bug fixes included in this release, seeJDK 7u85 Bug Fixes page.

The following are some of the notable bug fixes included in this release:

Area: security-libs/java.security

Synopsis: Add new Comodo roots to root CAs

Four new root certificates have been added for Commodo:

1. COMODO ECC Certification Authority    alias: comodoeccca    DN: CN=COMODO ECC Certification Authority, O=COMODO CA Limited, L=Salford,     ST=Greater Manchester, C=GB2. COMODO RSA Certification Authority    alias: comodorsaca    DN: CN=COMODO RSA Certification Authority, O=COMODO CA Limited, L=Salford,     ST=Greater Manchester, C=GB3. USERTrust ECC Certification Authority    alias: usertrusteccca    DN: CN=USERTrust ECC Certification Authority, O=The USERTRUST Network,     L=Jersey City, ST=New Jersey, C=US4. USERTrust RSA Certification Authority    alias: usertrustrsaca    DN: CN=USERTrust RSA Certification Authority, O=The USERTRUST Network,     L=Jersey City, ST=New Jersey, C=US

JDK-8077998 (not public)

Area: security-libs/java.security

Synopsis: Add new GlobalSign roots to root CAs

Two root certificates have been added for GlobalSign:

1. GlobalSign ECC Root CA - R4alias: globalsigneccrootcar4DN: CN=GlobalSign, O=GlobalSign, OU=GlobalSign ECC Root CA - R42. GlobalSign ECC Root CA - R5alias: globalsigneccrootcar5DN: CN=GlobalSign, O=GlobalSign, OU=GlobalSign ECC Root CA - R5

JDK-8077996 (not public)

Area: security-libs/java.security

Synopsis: Add Actalis to root CAs

Added one new root certificate:

Actalis Authentication Root CA   alias: actalisauthenticationrootca   DN: CN=Actalis Authentication Root CA, O=Actalis S.p.A./03358520967,    L=Milan, C=IT

JDK-8077904 (not public)

Area: security-libs/java.security

Synopsis: Add new Entrust ECC root

Added one new root certificate:

Entrust Root Certification Authority - EC1  alias: entrustrootcaec1  DN: 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

JDK-8073287 (not public)

Area: security-libs/java.security

Synopsis: Remove old Valicert Class 1 and 2 Policy roots

Removed two root certificates with 1024-bit keys:

  1. ValiCert Class 1 Policy Validation Authority      alias: secomvalicertclass1ca      DN: EMAILADDRESS=info@valicert.com, CN=http://www.valicert.com/,       OU=ValiCert Class 1 Policy Validation Authority, O="ValiCert, Inc.",       L=ValiCert Validation Network  2. ValiCert Class 2 Policy Validation Authority      alias: valicertclass2ca      DN: EMAILADDRESS=info@valicert.com, CN=http://www.valicert.com/,       OU=ValiCert Class 2 Policy Validation Authority, O="ValiCert, Inc.",       L=ValiCert Validation Network

JDK-8077887 (not public)

Area: security-libs/java.security

Synopsis: Remove old Thawte roots

Removed two root certificates with 1024-bit keys:

1. Thawte Server CA    alias: thawteserverca    DN: EMAILADDRESS=server-certs@thawte.com, CN=Thawte Server CA,     OU=Certification Services Division, O=Thawte Consulting cc,     L=Cape Town, ST=Western Cape, C=ZA2. Thawte Personal Freemail CA    alias: thawtepersonalfreemailca    DN: EMAILADDRESS=personal-freemail@thawte.com,     CN=Thawte Personal Freemail CA, OU=Certification Services Division,     O=Thawte Consulting, L=Cape Town, ST=Western Cape, C=ZA

JDK-8074424 (not public)

Area: security-libs/java.security

Synopsis: Remove more old Verisign, Equifax, and Thawte roots

Removed five root certificates with 1024-bit keys:

1. Verisign Class 3 Public Primary Certification Authority - G2    alias: verisignclass3g2ca    DN: OU=VeriSign Trust Network,     OU="(c) 1998 VeriSign, Inc. - For authorized use only",     OU=Class 3 Public Primary Certification Authority - G2,     O="VeriSign, Inc.", C=US2. Thawte Premium Server CA    alias: thawtepremiumserverca    DN: EMAILADDRESS=premium-server@thawte.com, CN=Thawte Premium Server CA,     OU=Certification Services Division, O=Thawte Consulting cc, L=Cape Town,     ST=Western Cape, C=ZA3. Equifax Secure Certificate Authority    alias: equifaxsecureca    DN: OU=Equifax Secure Certificate Authority, O=Equifax, C=US4. Equifax Secure eBusiness CA-1    alias: equifaxsecureebusinessca1    DN: CN=Equifax Secure eBusiness CA-1, O=Equifax Secure Inc., C=US5. Equifax Secure Global eBusiness CA-1,    alias: equifaxsecureglobalebusinessca1    DN: CN=Equifax Secure Global eBusiness CA-1, O=Equifax Secure Inc., C=US

JDK-8076203 (not public)

Area: security-libs/java.security

Synopsis: Remove TrustCenter CA roots from cacerts

Removed three root certificates:

1. TC TrustCenter Universal CA I    alias: trustcenteruniversalcai    DN: CN=TC TrustCenter Universal CA I, OU=TC TrustCenter Universal CA,     O=TC TrustCenter GmbH, C=DE2. TC TrustCenter Class 2 CA II    alias: trustcenterclass2caii    DN: CN=TC TrustCenter Class 2 CA II, OU=TC TrustCenter Class 2 CA,     O=TC TrustCenter GmbH, C=DE3. TC TrustCenter Class 4 CA II    alias: trustcenterclass4caii    DN: CN=TC TrustCenter Class 4 CA II, OU=TC TrustCenter Class 4 CA,     O=TC TrustCenter GmbH, C=DE

JDK-8072959 (not public)

Area: security-libs/javax.net.ssl

Synopsis: Deprecate RC4 in SunJSSE provider

RC4 is now considered as a weak cipher. Server should not select RC4 unless there is no other stronger candidate in the client requested cipher suites. A new security property,jdk.tls.legacyAlgorithms, is added to define the legacy algorithms in Oracle JSSE implementation. RC4 related algorithms are added to the legacy algorithms list.

JDK-8074007 (not public)

Area: security-libs/javax.net.ssl

Synopsis: Prohibit RC4 cipher suites

RC4 is now considered as a compromised cipher. RC4 cipher suites have been removed from both client and server default enabled cipher suite list in Oracle JSSE implementation. These cipher suites can still be enabled bySSLEngine.setEnabledCipherSuites() andSSLSocket.setEnabledCipherSuites() methods.

JDK-8077110 (not public)

Area: security-libs/javax.net.ssl

Synopsis: Improved certification checking

With this fix, JSSE endpoint identification does not perform reverse name lookup for IP addresses by default in JDK.

If an application does need to perform reverse name lookup for raw IP addresses in SSL/TLS connections, and encounter endpoint identification compatibility issue, System property "jdk.tls.trustNameService" can be used to switch on reverse name lookup. Note that if the name service is not trustworthy, enabling reverse name lookup may be susceptible to MITM attacks.

JDK-8067696 (not public)

Known Issues

Area: deploy

Synopsis: JNLP files won't launch from IE11 on Windows 10 Creators Update

Web-start applications cannot be launched when clicking JNLP link from IE 11 on Windows 10 Creators Update when 64-bit JRE is installed. Workaround is to uninstall 64-bit JRE and use only 32-bit JRE.


Java SE 7u80 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u80 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u80 b35

Bug Fixes

BugIdCategorySubcategoryDescription
8069161deploypluginSlow cache performance since JRE deploy plugin
8079223deploypluginunnecessary performance degradation caused by fix to JDK-8052111
8056124hotspotcompilerHotspot should use PICL interface to get cacheline size on SPARC hotspot
8062591hotspotcompilerSPARC PICL causes significantly longer startup times hotspot

Changes in Java SE 7u80 b34

Please note that Java Auto Update is enabled in this version.

Changes in Java SE 7u80 b33

Please note that fixes from prior BPR (7u76 b38) are included in this version.


Changes in Java SE 7u80

For details, refer toJava SE 7 Update 80 Release Notes.


Java SE 7u76 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u76 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u76 b38

Please note that fixes from prior BPR (7u76 b37) are included in this version.

Changes in Java SE 7u76 b37

Please note that Java Auto Update is enabled in this version.

Bug Fixes

BugIdCategorySubcategoryDescription
7171412client-libsjava.awtawt Choice doesn't fire ItemStateChange when selecting item after select() call
8002045(Confidential)client-libsjava.awtAuto failed and threw exception:java.lang.UnsatisfiedLinkError: java.awt.Choice.initIDs()V for 8b62.

Changes in Java SE 7u76 b36

Please note that fixes from prior BPR (7u76 b35) are included in this version.

Changes in Java SE 7u76 b35

Please note that Java Auto Update is enabled in this version.

Bug Fixes

BugIdCategorySubcategoryDescription
8033400(Confidential)deployDRS: Mechanism for system administrators to overrule the JRE version used to launch an applet
8044043(Confidential)deployWarn user of invalid elements and attributes in ruleset.xml
8072011(Confidential)deploypluginBackport DRS 'force' feature
8067236deploypluginDRS with non-force version run rule can block when it should not.
8071897deploywebstartJRE 8U25 and 8u31 b32 cannot launch Java Web Start with proxy pac but works fine for 7u67
8067846core-libsjava.net(sctp) InternalError when receiving SendFailedNotification
8067680core-libsjava.net(sctp) Possible race initializing native IDs
8062032(Confidential)deploypluginClient certificate authentication issues with TLS 1.2 and browser keystore

Changes in Java SE 7u76 b34

Please note that fixes from prior BPR (7u76 b33) are included in this version.

Changes in Java SE 7u76 b33

Please note that Java Auto Update is enabled in this version.

Bug Fixes

BugIdCategorySubcategoryDescription
8031471client-libsjava.awtTest closed/java/awt/dnd/FileDialogDropTargetTest/FileDialogDropTargetTest.java fails on Solaris zones virtual hosts
8001579security-libsjava.securityCleanup warnings in security native code
8065082(Confidential)deployplugin7u72 https fails with CertificateException: Java couldn't trust Server
8044758(Confidential)deployplugin didn't use proxy to download files in javadl
8025332(Confidential)deploypluginREGRESSION: AUTOVUE applet is not embedded in web page on jdk 8

Changes in Java SE 7u76 b32

Please note that fixes from prior BPR (7u72 b33) are included in this version.

Bug Fixes

BugIdCategorySubcategoryDescription
8061648deploywebstartJavaWS fails with proxy autoconfig due to missing "dnsResolve"

Changes in Java SE 7u76

For details, refer toJava SE 7 Update 76 Release Notes.


Java SE 7u72 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u72 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u72 b33

Bug Fixes

BugIdCategorySubcategoryDescription
8050838deployJRE Install Error in localized Windows 8.1 after join in AD domain
8048887client-libsjavax.swingSortingFocusTraversalPolicy throws IllegalArgumentException from the sort method
8054841core-libsjava.lang(process) ProcessBuilder leaks native memory

Changes in Java SE 7u72 b32

Bug Fixes

BugIdCategorySubcategoryDescription
8052691(Confidential)deploypluginCaller_allowable_codebase does not honor checkbox when starting with a "t"
8061643deploywebstartJavaWS fails with proxy autoconfig due to missing "resolve" permission

Changes in Java SE 7u72 b31

Please note that fixes from prior BPR (7u67 b34) are included in this version.


Changes in Java SE 7u72

For details, refer toJava SE 7 Update 72 Release Notes.


Java SE 7u67 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u67 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u67 b34

Bug Fixes

BugIdCategorySubcategoryDescription
8040617client-libs2d[macosx] Large JTable cell results in a OutOfMemoryException
8016545client-libsjava.beansjava.beans.XMLEncoder.writeObject output is wrong
8041990client-libsjava.awt[macosx] Language specific keys does not work in applets when opened outside the browser
8031046security-libsorg.ietf.jgss:krb5Native Windows ccache might still get unsupported ticket
8021804security-libsjava.securityCertpath validation fails if validity period of root cert does not include validity period of intermediate cert
8056211(Confidential)client-libsjava.awtapi/java_awt/Event/InputMethodEvent/serial
/index.html#Input[serial2002] failure

Changes in Java SE 7u67 b31

Please note that fixes from prior BPR (7u65 b33) are included in this version.

Changes in Java SE 7u67

For details, refer toJava SE 7 Update 67 Release Notes.


Java SE 7u65 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u65 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u65 b33

Please note that fixes from prior BPR (7u60 b32) are included in this version.

Bug Fixes

BugIdCategorySubcategoryDescription
8039396core-libsjava.io.serializationNPE when writing a class descriptor object to a custom ObjectOutputStream

Changes in Java SE 7u65

For details, refer toJava SE 7 Update 65 Release Notes.


Java SE 7u60 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u60 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u60 b33

Bug Fixes

BugIdCategorySubcategoryDescription
8038000(Confidential)client-libs2djava.awt.image.RasterFormatException: Incorrect scanline stride
7185456core-libsjava.lang.reflect(ann) Optimize Annotation handling in java/sun.reflect.* code for small number of annotationsC
7122142core-libsjava.lang(ann) Race condition between isAnnotationPresent and getAnnotations
8005232core-libsjava.lang(JEP-149) Class Instance size reduction
8028627security-libsjavax.cryptoUnsynchronized code path from javax.crypto.Cipher to the WeakHashMap used by JceSecurity to store codebase mappings
8028192security-libsjavax.net.sslUse of PKCS11-NSS provider in FIPS mode broken

Changes in Java SE 7u60 b32

Please note that fixes from prior BPR (7u55 b36) are included in this version.

Bug Fixes

BugIdCategorySubcategoryDescription
8038621deployjavafxPlugin doesn't work for javafx applets

Changes in Java SE 7u60

For details, refer toJava SE 7 Update 60 Release Notes.


Java SE 7u55 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u55 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u55 b35

Bug Fixes

BugIdCategorySubcategoryDescription
8012026client-libsjava.awt[macosx] Component.getMousePosition() does not work in an applet on MacOS
8032669client-libsjavax.swingMouse release not being delivered to Swing component in 7u45

Changes in Java SE 7u55 b33

Bug Fixes

BugIdCategorySubcategoryDescription
6653795hotspotcompilerC2 intrinsic for Unsafe.getAddress performs pointer sign extension on 32-bit systems
8037363hotspotjfrJFR hangs the JVM when machine was booted with maxcpus kernel flag

Changes in Java SE 7u55 b32

Bug Fixes

BugIdCategorySubcategoryDescription
8013611client-libsjavax.swingModal dialog fails to obtain keyboard focus
8032781deploydeployment_toolkitRun rule not working in case of html applet
8032206deploypluginApplet with jnlp.Packenabled=True And jnlp.versionEnabled=True Fails

Changes in Java SE 7u55 b31

Please note that fixes from prior BPR (7u51 b34) are included in this version.

Changes in Java SE 7u55

For details, refer toJava SE 7 Update 55 Release Notes.


Java SE 7u51 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u51 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u51 b33

Bug Fixes

BugIdCategorySubcategoryDescription
8029922deploywebstart32-bit only Java Web Start apps fail to run on 32- and 64-bit JRE configs

Changes in Java SE 7u51 b32

Bug Fixes

BugIdCategorySubcategoryDescription
7111452deploywebstartA .jnlp file specifying several, large,elements cannot be launched

Changes in Java SE 7u51 b31

Please note that fixes from prior BPR (7u45 b34) are included in this version.

Changes in Java SE 7u51

For details, refer toJava SE 7 Update 51 Release Notes.


Java SE 7u45 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u45 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u45 b34

Bug Fixes

BugIdCategorySubcategoryDescription
8028390deploypluginallow insecure properties in jnlp file when main application is covered by a DRS Run rule.

Changes in Java SE 7u45 b33

Bug Fixes

BugIdCategorySubcategoryDescription
8025981deploypluginMulti-JREs/ Latest, secure jre 6 version can not be selected for launching specified jre 6 family version applet

Changes in Java SE 7u45 b32

Bug Fixes

BugIdCategorySubcategoryDescription
8025981deploypluginMulti-JREs/ Latest, secure jre 6 version can not be selected for launching specified jre 6 family version applet

Changes in Java SE 7u45 b31

Please note that fixes from prior BPR (7u40 b62) are included in this version.


Changes in Java SE 7u45

For details, refer toJava SE 7 Update 45 Release Notes.


Java SE 7u40 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u40 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u40 b62

Bug Fixes

BugIdCategorySubcategoryDescription
8020943core-svcjava.lang.managementMemory leak when GCNotifier uses create_from_platform_dependent_str()

Changes in Java SE 7u40

For details, refer toJava SE 7 Update 40 Release Notes.


Java SE 7u25 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u25 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u25 b35

Bug Fixes

BugIdCategorySubcategoryDescription
8015640deploypluginREGRESSION: Security boxes appear 2 times with uppercase jnlp codebase

Changes in Java SE 7u25 b34

Bug Fixes

BugIdCategorySubcategoryDescription
8010437hotspotcompilerguarantee(this->is8bit(imm8)) failed: Short forward jump exceeds 8-bit offset

Changes in Java SE 7u25 b33

Please note that fixes from prior BPR (7u21 b31) are included in this version.

Bug Fixes

BugIdCategorySubcategoryDescription
8014611hotspotruntimereserve_and_align() assumptions are invalid on windows
6725714hotspotgcpar compact - add a table to speed up bitmap searches
6550588client-libjava.awtjava.awt.Desktop cannot open file with Windows UNC filename
8005019client-libjavax.swingJTable passes row index instead of length when inserts selection interval

Changes in Java SE 7u25

For details, refer toJava SE 7 Update 25 Release Notes.


Java SE 7u21 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u21 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u21 b31

Please note that fixes from prior BPR (7u17 b32) are included in this version.

Bug Fixes

BugIdCategorySubcategoryDescription
7146246hotspotgcG1: expose some of the -XX flags that drive which old regions to collect during mixed GCs
7193157hotspotgcG1: Make some develpflags available in product builds
8001424hotspotgcG1: Rename certain G1-specific flags
8001425hotspotgcG1: Change the default values for certain G1 specific flags
7162955hotspotsvcAttach api on Solaris, too many open files
6550588client-libjava.awtjava.awt.Desktop cannot open file with Windows UNC filename
8005019client-libjavax.swingswing JTable passes row index instead of length when inserts selection interval

Changes in Java SE 7u21

For details, refer toJava SE 7 Update 21 Release Notes.


Java SE 7u17 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u17 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u17 b32

Bug Fixes

BugIdCategorySubcategoryDescription
8007740deploydeployment_toolkitwebstart https offline mode failure

Changes in Java SE 7u17 b31

Please note that fixes from prior BPR (7u15 b33) are included in this version.


Changes in Java SE 7u17

For details, refer toJava SE 7 Update 17 Release Notes.


Changes in Java SE 7u15

For details, refer toJava SE 7 Update 15 Release Notes.


Changes in Java SE 7u13

For details, refer toJava SE 7 Update 13 Release Notes.


Java SE 7u11 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u11 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u11 b32

Please note that fixes from prior BPR (7u10 b31) are included in this version.


Changes in Java SE 7u11

For details, refer toJava SE 7 Update 11 Release Notes.


Java SE 7u10 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u10 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u10 b31

Please note that fixes from prior BPR (7u9 b32) are included in this version.


Changes in Java SE 7u10

For details, refer toJava SE 7 Update 10 Release Notes.


Java SE 7u9 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u9 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u9 b32

Bug Fixes

BugIdCategorySubcategoryDescription
7191616deploywebstartjavaws.exe crashes when starting jnlp file
7193219client-libjava.awtJComboBox serialization fails in JDK 1.7

Changes in Java SE 7u9 b31

Please note that fixes from prior BPR (7u7 b32) are included in this version.


Changes in Java SE 7u9

For details, refer toJava SE 7 Update 9 Release Notes.


Java SE 7u7 Advanced - Bundled Patch Release (BPR) - Bug Fixes and Updates

The following sections summarize changes made in all Java SE 7u7 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

Changes in Java SE 7u7 b32

Bug Fixes

BugIdCategorySubcategoryDescription
JDK-6957028javawebstartotherHigh lock time for com.sun.org.apache.xerces.
internal.impl.dv.DTDDVFactory.getInstance()
JDK-7171399java_deploymentsecurityApplet throws AccessControlException sporadically whilereading user.home

Changes in Java SE 7u7

For details, refer toJava SE 7 Update 7 Release Notes.


Changes in Java SE 7u6

For details, refer toJava SE 7 Update 6 Release Notes.


Changes in Java SE 7u5

For details, refer toJava SE 7 Update 5 Release Notes.


Changes in Java SE 7u4

For details, refer toJava SE 7 Update 4 Release Notes.

Version Name Changed

The following changes were made to the output of the commandjava -version to releases starting from 7u4 and BPR releases:

  • The string "rev" was removed from the version name of the BPR (for example,1.7.0_04-b31).
  • The text "for Business" was removed from the output of the command.

In addition, the string "fb" was removed from the bundle name (the file name of the installer).


Changes in Java SE 7u3

For details, refer toJava SE 7 Update 3 Release Notes.


Changes in Java SE 7u2

For details, refer toJava SE 7 Update 2 Release Notes.


Changes in Java SE 7u1

For details, refer toJava SE 7 Update 1 Release Notes.



[8]ページ先頭

©2009-2025 Movatter.jp