RELEASE NOTES: JDK openjdk8u352

Notes generated: Tue Apr 02 02:43:42 CEST 2024

JEPs

None.

RELEASE NOTES

security-libs/javax.net.ssl

Issue Description
JDK-8245263

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.


core-libs/java.time

Issue Description
JDK-8292579

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


core-libs/java.lang

Issue Description
JDK-8071507

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.


JDK-8285497

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.


JDK-8201793

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.


JDK-8175797

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.


FIXED ISSUES

client-libs

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

client-libs/java.awt

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

client-libs/javax.imageio

Priority Bug Summary
P4 JDK-7131823 bug in GIFImageReader

client-libs/javax.swing

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

core-libs/java.lang

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

core-libs/java.net

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 sun.net.httpserver.ServerImpl

core-libs/java.time

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

core-libs/java.util.concurrent

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

core-libs/java.util.jar

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

core-libs/java.util:i18n

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

hotspot/compiler

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

hotspot/gc

Priority Bug Summary
P3 JDK-8143847 Remove REF_CLEANER reference category

hotspot/jfr

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

hotspot/jvmti

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

hotspot/runtime

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

hotspot/svc

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

infrastructure/build

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

infrastructure/release_eng

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

security-libs

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

security-libs/java.security

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

security-libs/javax.crypto:pkcs11

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

security-libs/javax.net.ssl

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

xml/javax.xml.xpath

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