RELEASE NOTES: JDK 22.0.2

Notes generated: Tue May 07 08:33:53 CEST 2024

JEPs

None.

RELEASE NOTES

tools/jpackage

Issue Description
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.


`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

Issue Description
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

Issue Description
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.


FIXED ISSUES

client-libs/java.awt

Priority Bug Summary
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

Priority Bug Summary
P4 JDK-8326140 src/jdk.accessibility/windows/native/libjavaaccessbridge/AccessBridgeJavaEntryPoints.cpp ReleaseStringChars might be missing in early returns

client-libs/javax.swing

Priority Bug Summary
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

Priority Bug Summary
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

Priority Bug Summary
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

Priority Bug Summary
P3 JDK-8309218 java/util/concurrent/locks/Lock/OOMEInAQS.java still times out with ZGC, Generational ZGC, and SerialGC

core-libs/java.util.jar

Priority Bug Summary
P4 JDK-8324632 Update Zlib Data Compression Library to Version 1.3.1

core-libs/java.util.logging

Priority Bug Summary
P4 JDK-8329013 StackOverflowError when starting Apache Tomcat with signed jar

core-libs/java.util.stream

Priority Bug Summary
P4 JDK-8328316 Finisher cannot emit if stream is sequential and integrator returned false

core-libs/java.util:collections

Priority Bug Summary
P4 JDK-8328066 WhiteBoxResizeTest failure on linux-x86: Could not reserve enough space for 2097152KB object heap

core-libs/java.util:i18n

Priority Bug Summary
P4 JDK-8327631 Update IANA Language Subtag Registry to Version 2024-03-07

core-libs/javax.naming

Priority Bug Summary
P3 JDK-8325579 Inconsistent behavior in com.sun.jndi.ldap.Connection::createSocket

core-svc/tools

Priority Bug Summary
P4 JDK-8327468 Do not restart close if errno is EINTR [macOS/linux]

docs

Priority Bug Summary
P4 JDK-8327174 Create documentation for system property sun.java2d.metal

docs/guides

Priority Bug Summary
P3 JDK-8325562 Test jextract examples in the Core Libraries guide for JDK 22

hotspot/compiler

Priority Bug Summary
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

Priority Bug Summary
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

Priority Bug Summary
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

Priority Bug Summary
P4 JDK-8330011 [s390x] update block-comments to make code consistent

hotspot/runtime

Priority Bug Summary
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

Priority Bug Summary
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

Priority Bug Summary
P4 JDK-8327467 Bump version numbers for 22.0.2

infrastructure/build

Priority Bug Summary
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

Priority Bug Summary
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

Priority Bug Summary
P4 JDK-8312383 Log X509ExtendedKeyManager implementation class name in TLS/SSL connection

security-libs/javax.security

Priority Bug Summary
P4 JDK-8329213 Better validation for com.sun.security.ocsp.useget option
P4 JDK-8328638 Fallback option for POST-only OCSP requests

specification/language

Priority Bug Summary
P4 JDK-8327598 Update the index page for specs

tools

Priority Bug Summary
P4 JDK-8328703 Illegal accesses in Java_jdk_internal_org_jline_terminal_impl_jna_linux_CLibraryImpl_ioctl0

tools/jpackage

Priority Bug Summary
P2 JDK-8295111 dpkg appears to have problems resolving symbolically linked native libraries