RELEASE NOTES: JDK 22.0.2

Notes generated: Thu Oct 03 11:58:22 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 a performance improvement that made OCSP clients 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 clients to fallback to POST-only behavior. This unblocks interactions with those OCSP responders through the use of -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 replace JDK internal native libraries using LD_LIBRARY_PATH.


security-libs/java.security

Issue Description
JDK-8316138

Added GlobalSign R46 and E46 Root CA Certificates


The following root certificates have been added to the cacerts truststore: ``` + GlobalSign + globalsignr46 DN: CN=GlobalSign Root R46, O=GlobalSign nv-sa, C=BE

  • GlobalSign
  • globalsigne46 DN: CN=GlobalSign Root E46, O=GlobalSign nv-sa, C=BE ```

hotspot/gc

Issue Description
JDK-8328744

Parallel GC Throws OOM Before Heap Is Fully Expanded


An existing bug may have prevented the full usage of the Java heap allotted with the command line flag -Xmx. That bug has been fixed with JDK-8328744. As a side effect of this fix, installations may experience an increased heap usage when using Parallel GC. Customers should, if necessary, adjust the maximum heap size.


JDK-8319548

Name Change for Filler Array Objects from `jdk.vm.internal.FillerArray` to `[Ljdk/internal/vm/FillerElement;`


One HotSpot virtual machine internal class to indicate an area of dead (unreachable) memory has been renamed to conform to the Java class naming standard to avoid confusing external applications parsing virtual machine class histograms provided by jmap -histo.

There are applications that parse the output of jmap -histo which fail when encountering the class jdk.vm.internal.FillerArray. In particular, the issue is that this type of filler object represents a flexibly sized range of unreachable memory but is named as if it were a fixed size non-array object. Then, for example, calculating the instance size of these objects from the jmap -histo output can result in non-integral instance sizes, confusing applications.

This problem has been fixed by changing the name of this class to the array-like name [Ljdk/internal/vm/FillerElement;.


FIXED ISSUES

client-libs

Priority Bug Summary
P4 JDK-8324243 Compilation failures in java.desktop module with gcc 14

client-libs/2d

Priority Bug Summary
P4 JDK-8331746 Create a test to verify that the cmm id is not ignored

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-8320692 Null icon returned for .exe without custom icon
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-8310072 JComboBox/DisabledComboBoxFontTestAuto: Enabled and disabled ComboBox does not match in these LAFs: GTK+
P4 JDK-8305072 Win32ShellFolder2.compareTo is inconsistent

core-libs

Priority Bug Summary
P4 JDK-8326351 Update the Zlib version in open/src/java.base/share/legal/zlib.md to 1.3.1

core-libs/java.io

Priority Bug Summary
P4 JDK-8330748 ByteArrayOutputStream.writeTo(OutputStream) pins carrier

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-8325621 Improve jspawnhelper version checks
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.lang.foreign

Priority Bug Summary
P4 JDK-8323552 AbstractMemorySegmentImpl#mismatch returns -1 when comparing distinct areas of the same instance of MemorySegment

core-libs/java.net

Priority Bug Summary
P4 JDK-8330814 Cleanups for KeepAliveCache tests
P4 JDK-8330523 Reduce runtime and improve efficiency of KeepAliveTest
P4 JDK-8330815 Use pattern matching for instanceof in KeepAliveCache

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

Priority Bug Summary
P3 JDK-8325255 jdk.internal.util.ReferencedKeySet::add using wrong test

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
P3 JDK-8328366 Thread.setContextClassloader from thread in FJP commonPool task no longer works after JDK-8327501
P4 JDK-8327501 Common ForkJoinPool prevents class unloading in some cases

core-libs/java.util.jar

Priority Bug Summary
P4 JDK-8330615 avoid signed integer overflows in zip_util.c readCen / hashN
P4 JDK-8332490 JMH org.openjdk.bench.java.util.zip.InflaterInputStreams.inflaterInputStreamRead OOM
P4 JDK-8324632 Update Zlib Data Compression Library to Version 1.3.1
P4 JDK-8322078 ZipSourceCache.testKeySourceMapping() test fails with The process cannot access the file because it is being used by another process

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
P4 JDK-8331331 :tier1 target explanation in doc/testing.md is incorrect
P4 JDK-8331872 jsse.enableFFDHE system property typo in JSSE Reference Guide

hotspot/compiler

Priority Bug Summary
P2 JDK-8328702 C2: Crash during parsing because sub type check is not folded
P2 JDK-8322726 C2: Unloaded signature class kills argument value
P3 JDK-8326201 [S390] Need to bailout cleanly if creation of stubs fails when code cache is out of space
P3 JDK-8328822 C2: "negative trip count?" assert failure in profile predicate code
P3 JDK-8331885 C2: meet between unloaded and speculative types is not symmetric
P3 JDK-8324121 SIGFPE in PhaseIdealLoop::extract_long_range_checks
P4 JDK-8331894 [jdk22] compiler/print/CompileCommandMemLimit.java fails after backporting JDK-8325095
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-8331344 No compiler replay file with CompilerCommand MemLimit
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-8330275 Crash in XMark::follow_array
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
P3 JDK-8329223 Parallel: Parallel GC resizes heap even if -Xms = -Xmx
P3 JDK-8325587 Shenandoah: ShenandoahLock should allow blocking in VM
P3 JDK-8316328 Test jdk/jfr/event/oldobject/TestSanityDefault.java times out for some heap sizes
P3 JDK-8329109 Threads::print_on() tries to print CPU time for terminated GC threads
P4 JDK-8329840 Fix ZPhysicalMemorySegment::_end type
P4 JDK-8329570 G1: Excessive is_obj_dead_cond calls in verification
P4 JDK-8329134 Reconsider TLAB zapping
P4 JDK-8328075 Shenandoah: Avoid forwarding when objects don't move in full-GC
P4 JDK-8322503 Shenandoah: Clarify gc state usage
P4 JDK-8319548 Unexpected internal name for Filler array klass causes error in VisualVM
P4 JDK-8330576 ZYoungCompactionLimit should have range check
P5 JDK-8333093 Incorrect comment in zAddress_aarch64.cpp

hotspot/jfr

Priority Bug Summary
P3 JDK-8326446 The User and System of jdk.CPULoad on Apple M1 are inaccurate
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-8332253 Linux arm32 build fails after 8292591
P3 JDK-8328812 Update and move siphash license
P3 JDK-8329958 Windows x86 build fails: downcallLinker.cpp(36) redefinition
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-8331298 avoid alignment checks in UBSAN enabled build
P4 JDK-8329961 Buffer overflow in os::Linux::kernel_version
P4 JDK-8324933 ConcurrentHashTable::statistics_calculate synchronization is expensive
P4 JDK-8329605 hs errfile generic events - move memory protections and nmethod flushes to separate sections
P4 JDK-8329663 hs_err file event log entry for thread adding/removing should print current thread
P4 JDK-8330464 hserr generic events - add entry for the before_exit calls
P4 JDK-8330027 Identity hashes of archived objects must be based on a reproducible random seed
P4 JDK-8330524 Linux ppc64le compile warning with clang in os_linux_ppc.cpp
P4 JDK-8331714 Make OopMapCache installation lock-free
P4 JDK-8331942 On Linux aarch64, CDS archives should be using 64K alignment by default
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-8328997 Remove unnecessary template parameter lists in GrowableArray
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-8331167 UBSan enabled build fails in adlc on macOS
P4 JDK-8328589 unify os::breakpoint among posix platforms
P4 JDK-8331031 unify os::dont_yield and os::naked_yield across 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
P4 JDK-8325763 Revert properties: vm.opt.x.*

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-8331164 createJMHBundle.sh download jars fail when url needed to be redirected
P4 JDK-8331352 error: template-id not allowed for constructor/destructor in C++20
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-8316138 Add GlobalSign 2 TLS root certificates
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.crypto:pkcs11

Priority Bug Summary
P3 JDK-8261433 Better pkcs11 performance for libpkcs11:C_EncryptInit/libpkcs11:C_DecryptInit

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

tools/launcher

Priority Bug Summary
P4 JDK-8329862 libjli GetApplicationHome cleanups and enhance jli tracing