RELEASE NOTES: JDK openjdk8u352

Notes generated: Thu May 02 02:44:07 CEST 2024





Issue Description

Enable TLSv1.3 by Default on JDK 8 for Client Roles

The TLSv1.3 implementation is now enabled by default for client roles in 8u341. It has been enabled by default for server roles since 8u261. You can find more details in the Additional Information section of the Oracle JRE and JDK Cryptographic Roadmap.

Note that TLS 1.3 is not directly compatible with previous versions. Enabling it on the client may introduce compatibility issues on either the server or the client side. Here are some more details on potential compatibility issues that you should be aware of:

  • TLS 1.3 uses a half-close policy, while TLS 1.2 and prior versions use a duplex-close policy. For applications that depend on the duplex-close policy, there may be compatibility issues when upgrading to TLS 1.3.

  • The signaturealgorithmscert extension requires that pre-defined signature algorithms are used for certificate authentication. In practice, however, an application may use non-supported signature algorithms.

  • The DSA signature algorithm is not supported in TLS 1.3. If a server is configured to only use DSA certificates, it cannot upgrade to TLS 1.3.

  • The supported cipher suites for TLS 1.3 are not the same as TLS 1.2 and prior versions. If an application hard-codes cipher suites which are no longer supported, it may not be able to use TLS 1.3 without modifying the application code, for example TLSAES128GCMSHA256 (1.3 and later) versus TLSECDHERSAWITHAES128CBC_SHA (1.2 and earlier).

  • The TLS 1.3 session resumption and key update behaviors are different from TLS 1.2 and prior versions. The compatibility should be minimal, but it could be a risk if an application depends on the handshake details of the TLS protocols.

  • TLS 1.3 requires that the implementation support new cryptographic algorithms which previous versions of TLS did not, such as RSASSA-PSS. If your application is configured to use 3rd party JCE provider(s) which do not support the required algorithms, you may get handshake failures.


Issue Description

Update Timezone Data to 2022c

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

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 of 2022b


Issue Description

Phantom references are automatically cleared as soft and weak references

This enhancement changes phantom references to be automatically cleared by the garbage collector as soft and weak references.

An object becomes phantom reachable after it has been finalized. This change may cause the phantom reachable objects to be GC'ed earlier - previously the referent is kept alive until PhantomReference objects are GC'ed or cleared by the application. This potential behavioral change might only impact existing code that would depend on PhantomReference being enqueued rather than when the referent be freed from the heap.


System Property for Java SE Specification Maintenance Version

The java.specification.maintenance.version system property is defined to indicate the maintenance release number of the Java SE specification being implemented by the JDK. If the implemented specification has not undergone a maintenance release, the value of system property is not set.


java.lang.ref.Reference Does Not Support Cloning

java.lang.ref.Reference::clone method always throws CloneNotSupportedException. Reference objects cannot be meaningfully cloned. To create a new Reference object, call the constructor to create a Reference object with the same referent and reference queue instead.


java.lang.ref.Reference.enqueue method clears the reference object before enqueuing

java.lang.ref.Reference.enqueue method clears the reference object before it is added to the registered queue. When the enqueue method is called, the reference object is cleared and get() method will return null in JDK 9.

Typically when a reference object is enqueued, it is expected that the reference object is cleared explicitly via the clear method to avoid memory leak because its referent is no longer referenced. In other words the get method is expected not to be called in common cases once the enqueuemethod is called. In the case when the get method from an enqueued reference object and existing code attempts to access members of the referent, NullPointerException may be thrown. Such code will need to be updated.



Priority Bug Summary
P4 JDK-8155742 [Windows] robot.keyPress(KeyEvent.VK_ALT_GRAPH) throws java.lang.IllegalArgumentException in windows


Priority Bug Summary
P4 JDK-8136354 [TEST_BUG] Test java/awt/image/RescaleOp/ with Bad action for script


Priority Bug Summary
P4 JDK-7131823 bug in GIFImageReader


Priority Bug Summary
P3 JDK-8194873 right ALT key hotkeys no longer work in Swing components
P3 JDK-8130895 Test javax/swing/system/6799345/ fails on Solaris11 Sparcv9


Priority Bug Summary
P2 JDK-8178832 (ref) jdk.lang.ref.disableClearBeforeEnqueue property is ignored
P2 JDK-8175797 (ref) Reference::enqueue method should clear the reference object before enqueuing
P3 JDK-8071507 (ref) Clear phantom reference as soft and weak references do
P3 JDK-8201793 (ref) Reference object should not support cloning
P3 JDK-8193780 (ref) Remove the undocumented "jdk.lang.ref.disableClearBeforeEnqueue" system property
P3 JDK-8287132 Retire Runtime.runFinalizersOnExit so that it always throws UOE
P4 JDK-8285497 Add system property for Java SE specification maintenance version


Priority Bug Summary
P4 JDK-8049228 Improve multithreaded scalability of InetAddress cache
P4 JDK-7186258 InetAddress$Cache should replace currentTimeMillis with nanoTime for more precise and accurate
P4 JDK-8147862 Null check too late in


Priority Bug Summary
P3 JDK-8292579 (tz) Update Timezone Data to 2022c


Priority Bug Summary
P4 JDK-8214427 probable bug in logic of ConcurrentHashMap.addCount()


Priority Bug Summary
P4 JDK-8288763 Pack200 extraction failure with invalid size


Priority Bug Summary
P4 JDK-8028265 Add legacy tz tests to OpenJDK


Priority Bug Summary
P2 JDK-8288865 [aarch64] LDR instructions must use legitimized addresses
P3 JDK-8235385 Crash on aarch64 JDK due to long offset
P3 JDK-8233019 java.lang.Class.isPrimitive() (C1) returns wrong result if Klass* is aligned to 32bit
P4 JDK-8150669 C1 intrinsic for Class.isPrimitive


Priority Bug Summary
P3 JDK-8143847 Remove REF_CLEANER reference category


Priority Bug Summary
P4 JDK-8260589 Crash in JfrTraceIdLoadBarrier::load(_jclass*)


Priority Bug Summary
P3 JDK-8173361 various crashes in JvmtiExport::post_compiled_method_load
P4 JDK-8235218 Minimal VM is broken after JDK-8173361


Priority Bug Summary
P2 JDK-8173339 AArch64: Fix minimum stack size computations
P4 JDK-8256722 handle VC++:1927 VS2019 in abstract_vm_version
P4 JDK-8280963 Incorrect PrintFlags formatting on Windows


Priority Bug Summary
P3 JDK-8283849 AsyncGetCallTrace may crash JVM on guarantee


Priority Bug Summary
P3 JDK-8139668 Generate README-build.html from markdown
P4 JDK-8290000 Bump macOS GitHub actions to macOS 11
P4 JDK-8254178 Remove .hgignore
P4 JDK-8254318 Remove .hgtags


Priority Bug Summary
P4 JDK-8287521 Bump update version of OpenJDK: 8u352


Priority Bug Summary
P3 JDK-8282538 PKCS11 tests fail on CentOS Stream 9
P4 JDK-8292688 Support Security properties in security.testlibrary.Proc


Priority Bug Summary
P3 JDK-8285400 Add '@apiNote' to the APIs defined in Java SE 8 MR 3


Priority Bug Summary
P3 JDK-8183107 PKCS11 regression regarding checkKeySize
P3 JDK-8232950 SUNPKCS11 Provider incorrectly check key length for PSS Signatures.


Priority Bug Summary
P3 JDK-8245263 Enable TLSv1.3 by default on JDK 8u for Client roles


Priority Bug Summary
P3 JDK-8087283 Add support for the XML Signature here() function to the JDK XPath implementation