RELEASE NOTES FOR: 22.0.2 ==================================================================================================== Notes generated: Tue May 07 08:33:53 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: tools/jpackage: JDK-8295111: `jpackage` Apps May Fail to Build on Debian Linux Distros Due to Missing Shared Libraries There is an issue on Debian Linux distros where `jpackage` could not always build an accurate list of required packages from shared libraries with symbolic links in their paths, causing installations to fail due to missing shared libraries. JDK-8295111: `jpackage` May Produce an Inaccurate List of Required Packages on Debian Linux Distros Fixed an issue on Debian Linux distros where `jpackage` could not always build an accurate list of required packages from shared libraries with symbolic links in their paths, causing installations to fail due to missing shared libraries. security-libs/javax.security: JDK-8328638: Fallback Option For POST-only OCSP Requests JDK 17 introduced the performance improvement that made OCSP client unconditionally use GET requests for small requests, while doing POST requests for everything else. This is explicitly allowed and recommended by RFC 5019 and RFC 6960. However, we have seen OCSP responders that, despite RFC requirements, are not working well with GET requests. This release introduces a new JDK system property to allow fallback to POST-only behavior to unblock interaction with those OCSP responders: `-Dcom.sun.security.ocsp.useget={false,true}`. This amends the original change that introduced GET OCSP requests (JDK-8179503). The default behavior is not changed; the option defaults to `true`. Set the option to `false` to disable GET OCSP requests. Any value other than `false` (case-insensitive) defaults to `true`. This option is non-standard, and might go away once problematic OCSP responders get upgraded. infrastructure/build: JDK-8326891: Native Executables and Libraries on Linux Use `RPATH` Instead of `RUNPATH` Native executables and libraries on Linux have switched to using `RPATH` instead of `RUNPATH` in this release. JDK native executables and libraries use embedded runtime search paths to locate other internal JDK native libraries. On Linux these can be defined as either `RPATH` or `RUNPATH`. The main difference is that the dynamic linker considers `RPATH` before the `LD_LIBRARY_PATH` environment variable, while `RUNPATH` is only considered after `LD_LIBRARY_PATH`. By making the change to using `RPATH`, it is no longer possible to inject external replacements for JDK internal native libraries using `LD_LIBRARY_PATH`. ALL FIXED ISSUES, BY COMPONENT AND PRIORITY: client-libs/java.awt: (P3) JDK-8185862: AWT Assertion Failure in ::GetDIBits(hBMDC, hBM, 0, 1, 0, gpBitmapInfo, 0) 'awt_Win32GraphicsDevice.cpp', at line 185 client-libs/javax.accessibility: (P4) JDK-8326140: src/jdk.accessibility/windows/native/libjavaaccessbridge/AccessBridgeJavaEntryPoints.cpp ReleaseStringChars might be missing in early returns client-libs/javax.swing: (P3) JDK-8323801: tag doesn't strikethrough the text (P3) JDK-8187759: Background not refreshed when painting over a transparent JFrame (P3) JDK-8328953: JEditorPane.read throws ChangedCharSetException (P3) JDK-8325179: Race in BasicDirectoryModel.validateFileCache (P4) JDK-8323670: A few client tests intermittently throw ConcurrentModificationException (P4) JDK-8327137: Add test for ConcurrentModificationException in BasicDirectoryModel (P4) JDK-8238169: BasicDirectoryModel getDirectories and DoChangeContents.run can deadlock (P4) JDK-8320692: Null icon returned for .exe without custom icon (P4) JDK-8305072: Win32ShellFolder2.compareTo is inconsistent core-libs/java.lang: (P4) JDK-8328524: [x86] StringRepeat.java failure on linux-x86: Could not reserve enough space for 2097152KB object heap (P4) JDK-8325567: jspawnhelper without args fails with segfault (P4) JDK-8323782: Race: Thread::interrupt vs. AbstractInterruptibleChannel.begin (P4) JDK-8325730: StringBuilder.toString allocation for the empty String (P4) JDK-8320707: Virtual thread test updates core-libs/java.nio: (P4) JDK-8325028: (ch) Pipe channels should lazily set socket to non-blocking mode on first use by virtual thread (P4) JDK-8325743: test/jdk/java/nio/channels/unixdomain/SocketOptions.java enhance user name output in error case core-libs/java.util.concurrent: (P3) JDK-8309218: java/util/concurrent/locks/Lock/OOMEInAQS.java still times out with ZGC, Generational ZGC, and SerialGC core-libs/java.util.jar: (P4) JDK-8324632: Update Zlib Data Compression Library to Version 1.3.1 core-libs/java.util.logging: (P4) JDK-8329013: StackOverflowError when starting Apache Tomcat with signed jar core-libs/java.util.stream: (P4) JDK-8328316: Finisher cannot emit if stream is sequential and integrator returned false core-libs/java.util:collections: (P4) JDK-8328066: WhiteBoxResizeTest failure on linux-x86: Could not reserve enough space for 2097152KB object heap core-libs/java.util:i18n: (P4) JDK-8327631: Update IANA Language Subtag Registry to Version 2024-03-07 core-libs/javax.naming: (P3) JDK-8325579: Inconsistent behavior in com.sun.jndi.ldap.Connection::createSocket core-svc/tools: (P4) JDK-8327468: Do not restart close if errno is EINTR [macOS/linux] docs: (P4) JDK-8327174: Create documentation for system property sun.java2d.metal docs/guides: (P3) JDK-8325562: Test jextract examples in the Core Libraries guide for JDK 22 hotspot/compiler: (P2) JDK-8328702: C2: Crash during parsing because sub type check is not folded (P3) JDK-8326201: [S390] Need to bailout cleanly if creation of stubs fails when code cache is out of space (P3) JDK-8324121: SIGFPE in PhaseIdealLoop::extract_long_range_checks (P4) JDK-8310513: [s390x] Intrinsify recursive ObjectMonitor locking (P4) JDK-8324874: AArch64: crypto pmull based CRC32/CRC32C intrinsics clobber V8-V15 registers (P4) JDK-8323519: Add applications/ctw/modules to Hotspot tiered testing (P4) JDK-8325095: C2: bailout message broken: ResourceArea allocated string used after free (P4) JDK-8329163: C2: possible overflow in PhaseIdealLoop::extract_long_range_checks() (P4) JDK-8325613: CTW: Stale method cleanup requires GC after Sweeper removal (P4) JDK-8325432: enhance assert message "relocation addr must be in this section" (P4) JDK-8328165: improve assert(idx < _maxlrg) failed: oob (P4) JDK-8326974: ODR violation in macroAssembler_aarch64.cpp (P4) JDK-8329823: RISC-V: Need to sync CPU features with related JVM flags (P4) JDK-8330094: RISC-V: Save and restore FRM in the call stub hotspot/gc: (P1) JDK-8329528: G1 does not update TAMS correctly when dropping retained regions during Concurrent Start pause (P2) JDK-8322484: 22-b26 Regression in J2dBench-bimg_misc-G1 (and more) on Windows-x64 and macOS-x64 (P2) JDK-8328166: Epsilon: 'EpsilonHeap::allocate_work' misuses the parameter 'size' as size in bytes (P2) JDK-8328168: Epsilon: Premature OOM when allocating object larger than uncommitted heap size (P2) JDK-8328744: Parallel: Parallel GC throws OOM before heap is fully expanded (P4) JDK-8329570: G1: Excessive is_obj_dead_cond calls in verification (P4) JDK-8322503: Shenandoah: Clarify gc state usage (P4) JDK-8319548: Unexpected internal name for Filler array klass causes error in VisualVM hotspot/jfr: (P3) JDK-8326106: Write and clear stack trace table outside of safepoint (P4) JDK-8327990: [macosx-aarch64] Various tests fail with -XX:+AssertWXAtThreadSync (P4) JDK-8326521: JFR: CompilerPhase event test fails on windows 32 bit (P4) JDK-8326529: JFR: Test for CompilerCompile events fails due to time out hotspot/other: (P4) JDK-8330011: [s390x] update block-comments to make code consistent hotspot/runtime: (P2) JDK-8329545: [s390x] Fix garbage value being passed in Argument Register (P3) JDK-8329850: [AIX] Allow loading of different members of same shared library archive (P3) JDK-8329656: assertion failed in MAP_ARCHIVE_MMAP_FAILURE path: Invalid immediate -5 0 (P3) JDK-8328812: Update and move siphash license (P4) JDK-8328776: [AIX] remove checked_vmgetinfo, use vmgetinfo directly (P4) JDK-8326496: [test] checkHsErrFileContent support printing hserr in error case (P4) JDK-8328709: AIX os::get_summary_cpu_info support Power 10 (P4) JDK-8320005: Allow loading of shared objects with .a extension on AIX (P4) JDK-8324933: ConcurrentHashTable::statistics_calculate synchronization is expensive (P4) JDK-8327059: os::Linux::print_proc_sys_info add swappiness information (P4) JDK-8323685: PrintSystemDictionaryAtExit has mutex rank assert (P4) JDK-8328604: remove on_aix() function (P4) JDK-8326936: RISC-V: Shenandoah GC crashes due to incorrect atomic memory operations (P4) JDK-8330242: RISC-V: Simplify and remove CORRECT_COMPILER_ATOMIC_SUPPORT in atomic_linux_riscv.hpp (P4) JDK-8321075: RISC-V: UseSystemMemoryBarrier lacking proper OS support (P4) JDK-8322943: runtime/CompressedOops/CompressedClassPointers.java fails on AIX (P4) JDK-8325862: set -XX:+ErrorFileToStderr when executing java in containers for some container related jtreg tests (P4) JDK-8328589: unify os::breakpoint among posix platforms (P4) JDK-8322962: Upcall stub might go undetected when freezing frames (P5) JDK-8330156: RISC-V: Range check auipc + signed 12 imm instruction hotspot/test: (P4) JDK-8326006: Allow TEST_VM_FLAGLESS to set flagless mode (P4) JDK-8323994: gtest runner repeats test name for every single gtest assertion (P4) JDK-8327030: Kitchensink: Remove NoSystemExitSecurityManager infrastructure: (P4) JDK-8327467: Bump version numbers for 22.0.2 infrastructure/build: (P1) JDK-8328948: GHA: Restoring sysroot from cache skips the build after JDK-8326960 (P4) JDK-8328705: GHA: Cross-compilation jobs do not require build JDK (P4) JDK-8326960: GHA: RISC-V sysroot cannot be debootstrapped due to ongoing Debian t64 transition (P4) JDK-8326891: Prefer RPATH over RUNPATH for $ORIGIN rpaths in internal JDK binaries (P4) JDK-8324834: Use _LARGE_FILES on AIX security-libs/java.security: (P3) JDK-8328825: Google CAInterop test failures (P3) JDK-8326643: JDK server does not send a dummy change_cipher_spec record after HelloRetryRequest message (P4) JDK-8324646: Avoid Class.forName in SecureRandom constructor (P4) JDK-8324648: Avoid NoSuchMethodError when instantiating NativePRNG security-libs/javax.net.ssl: (P4) JDK-8312383: Log X509ExtendedKeyManager implementation class name in TLS/SSL connection security-libs/javax.security: (P4) JDK-8329213: Better validation for com.sun.security.ocsp.useget option (P4) JDK-8328638: Fallback option for POST-only OCSP requests specification/language: (P4) JDK-8327598: Update the index page for specs tools: (P4) JDK-8328703: Illegal accesses in Java_jdk_internal_org_jline_terminal_impl_jna_linux_CLibraryImpl_ioctl0 tools/jpackage: (P2) JDK-8295111: dpkg appears to have problems resolving symbolically linked native libraries