RELEASE NOTES FOR: openjdk8u352 ==================================================================================================== Notes generated: Mon Jun 03 22:29:26 CEST 2024 Hint: Prefix bug IDs with https://bugs.openjdk.org/browse/ to reach the relevant JIRA entry. JAVA ENHANCEMENT PROPOSALS (JEP): None. RELEASE NOTES: security-libs/javax.net.ssl: 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](https://java.com/en/configure_crypto.html#EnableTLSv13) of the [Oracle JRE and JDK Cryptographic Roadmap](https://java.com/en/jre-jdk-cryptoroadmap.html). 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 signature_algorithms_cert 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 TLS_AES_128_GCM_SHA256 (1.3 and later) versus TLS_ECDHE_RSA_WITH_AES_128_CBC_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: 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](https://mm.icann.org/pipermail/tz-announce/2022-August/000071.html) core-libs/java.lang: 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 `enqueue`method 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. ALL FIXED ISSUES, BY COMPONENT AND PRIORITY: client-libs: (P4) JDK-8155742: [Windows] robot.keyPress(KeyEvent.VK_ALT_GRAPH) throws java.lang.IllegalArgumentException in windows client-libs/java.awt: (P4) JDK-8136354: [TEST_BUG] Test java/awt/image/RescaleOp/RescaleAlphaTest.java with Bad action for script client-libs/javax.imageio: (P4) JDK-7131823: bug in GIFImageReader client-libs/javax.swing: (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: (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: (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: (P3) JDK-8292579: (tz) Update Timezone Data to 2022c core-libs/java.util.concurrent: (P4) JDK-8214427: probable bug in logic of ConcurrentHashMap.addCount() core-libs/java.util.jar: (P4) JDK-8288763: Pack200 extraction failure with invalid size core-libs/java.util:i18n: (P4) JDK-8028265: Add legacy tz tests to OpenJDK hotspot/compiler: (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: (P3) JDK-8143847: Remove REF_CLEANER reference category hotspot/jfr: (P4) JDK-8260589: Crash in JfrTraceIdLoadBarrier::load(_jclass*) hotspot/jvmti: (P3) JDK-8173361: various crashes in JvmtiExport::post_compiled_method_load (P4) JDK-8235218: Minimal VM is broken after JDK-8173361 hotspot/runtime: (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: (P3) JDK-8283849: AsyncGetCallTrace may crash JVM on guarantee infrastructure/build: (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: (P4) JDK-8287521: Bump update version of OpenJDK: 8u352 security-libs: (P3) JDK-8282538: PKCS11 tests fail on CentOS Stream 9 (P4) JDK-8292688: Support Security properties in security.testlibrary.Proc security-libs/java.security: (P3) JDK-8285400: Add '@apiNote' to the APIs defined in Java SE 8 MR 3 security-libs/javax.crypto:pkcs11: (P3) JDK-8183107: PKCS11 regression regarding checkKeySize (P3) JDK-8232950: SUNPKCS11 Provider incorrectly check key length for PSS Signatures. security-libs/javax.net.ssl: (P3) JDK-8245263: Enable TLSv1.3 by default on JDK 8u for Client roles xml/javax.xml.xpath: (P3) JDK-8087283: Add support for the XML Signature here() function to the JDK XPath implementation