RELEASE NOTES: JDK 21.0.6

Notes generated: Sat Dec 21 06:02:56 CET 2024

JEPs

None.

RELEASE NOTES

core-libs/java.util.jar

Issue Description
JDK-8335912

Add an operation mode to the jar command when extracting to not overwriting existing files


The jar tool's extract operation has been enhanced to allow the --keep-old-files or the -k options to be used to preventing overwriting existing files.

Example Usages:

jar xkf foo.jar

or

jar --extract --keep-old-files --file foo.jar

Either of these commands will extract the foo.jar, and if an entry with the same name already exist in the target directory, then the existing file will not be overwritten.


core-libs/java.time

Issue Description
JDK-8339637

Support for Time Zone Database 2024b


IANA Time Zone Database has been upgraded to 2024b. This version mainly includes changes to improve historical data for Mexico, Mongolia, and Portugal. It also changes one timestamp abbreviation, for the time zone 'MET'. Also Asia/Choibalsan is now an alias for Asia/Ulaanbaatar.

The new tzdata changes also impact some legacy zone IDs. Mapping of EST/MST/HST in java.time.ZoneId.SHORT_IDS have changed from fixed offset zones to links to other existing time zones with 2024b. "EST" now links to "America/Panama", "HST" links to "Pacific/Honolulu" and "MST" links to "America/Phoenix". Parsing of the short zone names "EST", "MST", and "HST" is not affected by this change. Further details are available at JDK-8340138


Support for Time Zone Database 2024b


IANA Time Zone Database has been upgraded to 2024b. This version mainly includes changes to improve historical data for Mexico, Mongolia, and Portugal. It also changes one timestamp abbreviation, for the time zone 'MET'. Also Asia/Choibalsan is now an alias for Asia/Ulaanbaatar.

The new tzdata changes also impact some legacy time zone IDs. As per 2024b changes "EST" links to "America/Panama", "HST" links to "Pacific/Honolulu" and "MST" links to "America/Phoenix". To maintain compatibility with the Java SE specification, the java.time.ZoneId.SHORT_IDS Map has not changed. Further details are available at JDK-8342331


FIXED ISSUES

client-libs

Priority Bug Summary
P3 JDK-8340899 Remove wildcard bound in PositionWindows.positionTestWindows
P4 JDK-8328242 Add a log area to the PassFailJFrame
P4 JDK-8340306 Add border around instructions in PassFailJFrame
P4 JDK-8340799 Add border inside instruction frame in PassFailJFrame
P4 JDK-8340466 Add description for PassFailJFrame constructors
P4 JDK-8340461 Amend description for logArea
P4 JDK-8338751 ConfigureNotify behavior has changed in KWin 6.2
P4 JDK-8328402 Implement pausing functionality for the PassFailJFrame
P4 JDK-8341235 Improve default instruction frame title in PassFailJFrame
P4 JDK-8340308 PassFailJFrame: Make rows default to number of lines in instructions
P4 JDK-8340365 Position the first window of a window list
P4 JDK-8317116 Provide layouts for multiple test UI in PassFailJFrame
P4 JDK-8340785 Update description of PassFailJFrame and samples
P5 JDK-8325851 Hide PassFailJFrame.Builder constructor

client-libs/2d

Priority Bug Summary
P4 JDK-8340801 Disable ubsan checks in some awt/2d coding
P4 JDK-8320673 PageFormat/CustomPaper.java has no Pass/Fail buttons; multiple instructions

client-libs/java.awt

Priority Bug Summary
P3 JDK-8312518 [macos13] setFullScreenWindow() shows black screen on macOS 13 & above
P3 JDK-8315701 [macos] Regression: KeyEvent has different keycode on different keyboard layouts
P4 JDK-8296972 [macos13] java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java: getExtendedState() != 6 as expected.
P4 JDK-8335267 [XWayland] move screencast tokens from .awt to .java folder
P4 JDK-8340210 Add positionTestUI() to PassFailJFrame.Builder
P4 JDK-8195675 Call to insertText with single character from custom Input Method ignored
P4 JDK-8328021 Convert applet test java/awt/List/SetFontTest/SetFontTest.html to main program
P4 JDK-8328379 Convert URLDragTest.html applet test to main
P4 JDK-8336413 gtk headers : Fix typedef redeclaration of GMainContext and GdkPixbuf
P4 JDK-8340008 KeyEvent/KeyTyped/Numpad1KeyTyped.java has 15 seconds timeout
P4 JDK-8340007 Refactor KeyEvent/FunctionKeyTest.java
P4 JDK-8332901 Select{Current,New}ItemTest.java for Choice don't open popup on macOS
P4 JDK-8325762 Use PassFailJFrame.Builder.splitUI() in PrintLatinCJKTest.java
P5 JDK-8327924 Simplify TrayIconScalingTest.java

client-libs/javax.accessibility

Priority Bug Summary
P3 JDK-8283214 [macos] Screen magnifier does not show the magnified text for JComboBox

client-libs/javax.imageio

Priority Bug Summary
P3 JDK-8332866 Crash in ImageIO JPEG decoding when MEM_STATS in enabled

client-libs/javax.swing

Priority Bug Summary
P3 JDK-8322754 click JComboBox when dialog about to close causes IllegalComponentStateException
P3 JDK-8225220 When the Tab Policy is checked,the scroll button direction displayed incorrectly.
P4 JDK-8339731 java.desktop/share/classes/javax/swing/text/html/default.css typo in margin settings

core-libs

Priority Bug Summary
P4 JDK-8319678 Several tests from corelibs areas ignore VM flags
P4 JDK-8320665 update jdk_core at open/test/jdk/TEST.groups
P4 JDK-8320586 update manual test/jdk/TEST.groups

core-libs/java.lang

Priority Bug Summary
P4 JDK-8339487 ProcessHandleImpl os_getChildren sysctl call - retry in case of ENOMEM and enhance exception message
P4 JDK-8321470 ThreadLocal.nextHashCode can be static final

core-libs/java.lang.invoke

Priority Bug Summary
P2 JDK-8340812 LambdaForm customization via MethodHandle::updateForm is not thread safe
P5 JDK-8333824 Unused ClassValue in VarHandles

core-libs/java.lang:reflect

Priority Bug Summary
P3 JDK-8320575 generic type information lost on mandated parameters of record's compact constructors

core-libs/java.net

Priority Bug Summary
P3 JDK-8343877 Test AsyncClose.java intermittent fails - Socket.getInputStream().read() wasn't preempted
P4 JDK-8338759 Add extra diagnostic to java/net/InetAddress/ptr/Lookup.java
P4 JDK-8339787 Add some additional diagnostic output to java/net/ipv6tests/UdpTest.java
P4 JDK-8335530 Java file extension missing in AuthenticatorTest
P4 JDK-8318442 java/net/httpclient/ManyRequests2.java fails intermittently on Linux

core-libs/java.nio

Priority Bug Summary
P2 JDK-8341997 Tests create files in src tree instead of scratch dir
P3 JDK-8334719 (se) Deferred close of SelectableChannel may result in a Selector doing the final close before concurrent I/O on channel has completed
P3 JDK-8338748 [17u,21u] Test Disconnect.java compile error: cannot find symbol after JDK-8299813
P4 JDK-8337966 (fs) Files.readAttributes fails with Operation not permitted on older docker releases
P4 JDK-8325399 Add tests for virtual threads doing Selector operations
P4 JDK-8322166 Files.isReadable/isWritable/isExecutable expensive when file does not exist
P4 JDK-8334405 java/nio/channels/Selector/SelectWithConsumer.java#id0 failed in testWakeupDuringSelect

core-libs/java.time

Priority Bug Summary
P3 JDK-8339637 (tz) Update Timezone Data to 2024b
P4 JDK-8339803 Acknowledge case insensitive unambiguous keywords in tzdata files
P4 JDK-8319640 ClassicFormat::parseObject (from DateTimeFormatter) does not conform to the javadoc and may leak DateTimeException
P4 JDK-8339644 Improve parsing of Day/Month in tzdata rules

core-libs/java.util

Priority Bug Summary
P4 JDK-8340684 Reading from an input stream backed by a closed ZipFile has no test coverage

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
P4 JDK-8344993 [21u] [REDO] Backport JDK-8327501 and JDK-8328366 to JDK 21
P4 JDK-8342905 Thread.setContextClassloader from thread in FJP commonPool task no longer works after JDK-8327501 redux

core-libs/java.util.jar

Priority Bug Summary
P4 JDK-8322830 Add test case for ZipFile opening a ZIP with no entries
P4 JDK-8326100 DeflaterDictionaryTests should use Deflater.getBytesWritten instead of Deflater.getTotalOut
P4 JDK-8321616 Retire binary test vectors in test/jdk/java/util/zip/ZipFile
P5 JDK-8335912 Add an operation mode to the jar command when extracting to not overwriting existing files

core-libs/javax.naming

Priority Bug Summary
P4 JDK-8323562 SaslInputStream.read() may return wrong value

core-svc/debugger

Priority Bug Summary
P4 JDK-8328303 3 JDI tests timed out with UT enabled
P4 JDK-8240343 JDI stopListening/stoplis001 "FAILED: listening is successfully stopped without starting listening"
P4 JDK-8326898 NSK tests should listen on loopback addresses only
P4 JDK-8333235 vmTestbase/nsk/jdb/kill/kill001/kill001.java fails with C1

core-svc/java.lang.management

Priority Bug Summary
P4 JDK-8306446 java/lang/management/ThreadMXBean/Locks.java transient failures

core-svc/javax.management

Priority Bug Summary
P2 JDK-8336257 Additional tests in jmxremote/startstop to match on PID not app name
P3 JDK-8207908 JMXStatusTest.java fails assertion intermittently
P4 JDK-8328619 sun/management/jmxremote/bootstrap/SSLConfigFilePermissionTest.java failed with BindException: Address already in use

hotspot/compiler

Priority Bug Summary
P2 JDK-8340214 C2 compilation asserts with "no node with a side effect" in PhaseIdealLoop::try_sink_out_of_loop
P2 JDK-8337066 Repeated call of StringBuffer.reverse with double byte string returns wrong result
P2 JDK-8340230 Tests crash: assert(is_in_encoding_range || k->is_interface() || k->is_abstract()) failed: sanity
P3 JDK-8320682 [AArch64] C1 compilation fails with "Field too big for insn"
P3 JDK-8342701 [PPC64] TestOSRLotsOfLocals.java crashes
P3 JDK-8342962 [s390x] TestOSRLotsOfLocals.java crashes
P3 JDK-8342496 C2/Shenandoah: SEGV in compiled code when running jcstress
P3 JDK-8335709 C2: assert(!loop->is_member(get_loop(useblock))) failed: must be outside loop
P4 JDK-8337876 [IR Framework] Add support for IR tests with @Stable
P4 JDK-8340398 [JVMCI] Unintuitive behavior of UseJVMCICompiler option
P4 JDK-8343724 [PPC64] Disallow OptoScheduling
P4 JDK-8334560 [PPC64]: postalloc_expand_java_dynamic_call_sched does not copy all fields
P4 JDK-8343884 [s390x] Disallow OptoScheduling
P4 JDK-8342409 [s390x] C1 unwind_handler fails to unlock synchronized methods with LM_MONITOR
P4 JDK-8343506 [s390x] multiple test failures with ubsan
P4 JDK-8319970 AArch64: enable tests compiler/intrinsics/Test(Long|Integer)UnsignedDivMod.java on aarch64
P4 JDK-8338924 C1: assert(0 <= i && i < _len) failed: illegal index 5 for length 5
P4 JDK-8323688 C2: Fix UB of jlong overflow in PhaseIdealLoop::is_counted_loop()
P4 JDK-8325610 CTW: Add StressIncrementalInlining to stress options
P4 JDK-8316907 Fix nonnull-compare warnings
P4 JDK-8330621 Make 5 compiler tests use ProcessTools.executeProcess
P4 JDK-8320397 RISC-V: Avoid passing t0 as temp register to MacroAssembler:: cmpxchg_obj_header/cmpxchgptr
P4 JDK-8337780 RISC-V: C2: Change C calling convention for sp to NS
P4 JDK-8340590 RISC-V: C2: Small improvement to vector gather load and scatter store
P4 JDK-8319960 RISC-V: compiler/intrinsics/TestInteger/LongUnsignedDivMod.java failed with "counts: Graph contains wrong number of nodes"
P4 JDK-8339248 RISC-V: Remove li64 macro assembler routine and related code
P4 JDK-8342014 RISC-V: ZStoreBarrierStubC2 clobbers rflags
P4 JDK-8344628 Test TestEnableJVMCIProduct.java run with virtual thread intermittent fails
P4 JDK-8338112 Test testlibrary_tests/ir_framework/tests/TestPrivilegedMode.java fails with release build
P4 JDK-8338344 Test TestPrivilegedMode.java intermittent fails java.lang.NoClassDefFoundError: jdk/test/lib/Platform
P4 JDK-8332461 ubsan : dependencies.cpp:906:3: runtime error: load of value 4294967295, which is not a valid value for type 'DepType'
P4 JDK-8333098 ubsan: bytecodeInfo.cpp:318:59: runtime error: division by zero
P4 JDK-8342823 Ubsan: ciEnv.cpp:1614:65: runtime error: member call on null pointer of type 'struct CompileTask'
P4 JDK-8340109 Ubsan: ciEnv.cpp:1660:65: runtime error: member call on null pointer of type 'struct CompileTask'
P4 JDK-8338449 ubsan: division by zero in sharedRuntimeTrans.cpp
P4 JDK-8333248 VectorGatherMaskFoldingTest.java failed when maximum vector bits is 64
P5 JDK-8317575 AArch64: C2_MacroAssembler::fast_lock uses rscratch1 for cmpxchg result
P5 JDK-8335142 compiler/c1/TestTraceLinearScanLevel.java occasionally times out with -Xcomp
P5 JDK-8332724 x86 MacroAssembler may over-align code

hotspot/gc

Priority Bug Summary
P3 JDK-8342681 TestLoadBypassesNullCheck.java fails improperly specified VM option
P4 JDK-8339416 [s390x] Provide implementation for resolve_global_jobject
P4 JDK-8316428 G1: Nmethod count statistics only count last code root set iterated
P4 JDK-8336640 Shenandoah: Parallel worker use in parallel_heap_region_iterate
P4 JDK-8311656 Shenandoah: Unused ShenandoahSATBAndRemarkThreadsClosure::_claim_token
P4 JDK-8333728 ubsan: shenandoahFreeSet.cpp:1347:24: runtime error: division by zero
P4 JDK-8334475 UnsafeIntrinsicsTest.java#ZGenerationalDebug assert(!assert_on_failure) failed: Has low-order bits set
P4 JDK-8326121 vmTestbase/gc/g1/unloading/tests/unloading_keepRef_rootClass_inMemoryCompilation_keep_cl failed with Full gc happened. Test was useless.
P4 JDK-8336911 ZGC: Division by zero in heuristics after JDK-8332717
P4 JDK-8339648 ZGC: Division by zero in rule_major_allocation_rate

hotspot/jfr

Priority Bug Summary
P3 JDK-8338389 [JFR] Long strings should be added to the string pool

hotspot/jvmti

Priority Bug Summary
P3 JDK-8339725 Concurrent GC crashed due to GetMethodDeclaringClass
P3 JDK-8337331 crash: pinned virtual thread will lead to jvm crash when running with the javaagent option
P4 JDK-8308429 jvmti/StopThread/stopthrd007 failed with "NoClassDefFoundError: Could not initialize class jdk.internal.misc.VirtualThreads"
P4 JDK-8311301 MethodExitTest may fail with stack buffer overrun
P4 JDK-8328665 serviceability/jvmti/vthread/PopFrameTest failed with a timeout

hotspot/other

Priority Bug Summary
P4 JDK-8341722 Fix some warnings as errors when building on Linux with toolchain clang

hotspot/runtime

Priority Bug Summary
P2 JDK-8329353 ResolvedReferencesNotNullTest.java failed with Incorrect resolved references array, quxString should not be archived
P3 JDK-8320892 AArch64: Restore FPU control state after JNI
P3 JDK-8319973 AArch64: Save and restore FPCR in the call stub
P3 JDK-6942632 Hotspot should be able to use more than 64 logical processors on Windows
P3 JDK-8343285 java.lang.Process is unresponsive and CPU usage spikes to 100%
P3 JDK-8339741 RISC-V: C ABI breakage for integer on stack
P3 JDK-8335449 runtime/cds/DeterministicDump.java fails with File content different at byte ...
P3 JDK-8340387 Update OS detection code to recognize Windows Server 2025
P3 JDK-8340383 VM issues warning failure to find kernel32.dll on Windows nanoserver
P4 JDK-8334567 [test] runtime/os/TestTracePageSizes move ppc handling
P4 JDK-8341688 Aarch64: Generate comments in -XX:+PrintInterpreter to link to source code
P4 JDK-8331393 AArch64: u32 _partial_subtype_ctr loaded/stored as 64
P4 JDK-8332340 Add JavacBench as a test case for CDS
P4 JDK-8339386 Assertion on AIX - original PC must be in the main code section of the compiled method
P4 JDK-8326611 Clean up vmTestbase/nsk/stress/stack tests
P4 JDK-8338550 Do libubsan1 installation in test container only if requested
P4 JDK-8333144 docker tests do not work when ubsan is configured
P4 JDK-8342607 Enhance register printing on x86_64 platforms
P4 JDK-8324861 Exceptions::wrap_dynamic_exception() doesn't have ResourceMark
P4 JDK-8338110 Exclude Fingerprinter::do_type from ubsan checks
P4 JDK-8321940 Improve CDSHeapVerifier in handling of interned strings
P4 JDK-8338058 map_or_reserve_memory_aligned Windows enhance remap assertion
P4 JDK-8335664 Parsing jsr broken: assert(bci>= 0 && bci < c->method()->code_size()) failed: index out of bounds
P4 JDK-8338101 remove old remap assertion in map_or_reserve_memory_aligned after JDK-8338058
P4 JDK-8341562 RISC-V: Generate comments in -XX:+PrintInterpreter to link to source code
P4 JDK-8341146 RISC-V: Unnecessary fences used for load-acquire in template interpreter
P4 JDK-8325038 runtime/cds/appcds/ProhibitedPackage.java can fail with UseLargePages
P4 JDK-8321299 runtime/logging/ClassLoadUnloadTest.java doesn't reliably trigger class unloading
P4 JDK-8316895 SeenThread::print_action_queue called on a null pointer
P4 JDK-8337067 Test runtime/classFileParserBug/Bad_NCDFE_Msg.java won't compile
P4 JDK-8321474 TestAutoCreateSharedArchiveUpgrade.java should be updated with JDK 21
P4 JDK-8329533 TestCDSVMCrash fails on libgraal
P4 JDK-8340923 The class LogSelection copies uninitialized memory
P4 JDK-8321550 Update several runtime/cds tests to use vm flags or mark as flagless

hotspot/svc

Priority Bug Summary
P5 JDK-8339384 Unintentional IOException in jdk.jdi module when JDWP end of stream occurs

hotspot/svc-agent

Priority Bug Summary
P4 JDK-8340657 [PPC64] SA determines wrong unextendedSP

hotspot/test

Priority Bug Summary
P4 JDK-8342669 [21u] Fix TestArrayAllocatorMallocLimit after backport of JDK-8315097
P4 JDK-8342765 [21u] RTM tests assume UnlockExperimentalVMOptions is disabled by default
P4 JDK-8341261 Tests assume UnlockExperimentalVMOptions is disabled by default
P4 JDK-8332777 Update JCStress test suite
P4 JDK-8332112 Update nsk.share.Log to don't print summary during VM shutdown hook
P4 JDK-8333108 Update vmTestbase/nsk/share/DebugeeProcess.java to don't use finalization

infrastructure

Priority Bug Summary
P4 JDK-8339591 Mark jdk/jshell/ExceptionMessageTest.java intermittent

infrastructure/build

Priority Bug Summary
P4 JDK-8313374 --enable-ccache's CCACHE_BASEDIR breaks builds
P4 JDK-8341024 [test] build/AbsPathsInImage.java fails with OOM when using ubsan-enabled binaries
P4 JDK-8340815 Add SECURITY.md file
P4 JDK-8316893 Compile without -fno-delete-null-pointer-checks
P4 JDK-8340804 doc/building.md update Xcode instructions to note that full install is required
P4 JDK-8341806 Gcc version detection failure on Alinux3
P4 JDK-8340418 GHA: MacOS AArch64 bundles can be removed prematurely
P4 JDK-8342578 GHA: RISC-V: Bootstrap using Debian snapshot is still failing
P4 JDK-8339548 GHA: RISC-V: Use Debian snapshot archive for bootstrap
P4 JDK-8338402 GHA: some of bundles may not get removed
P4 JDK-8343923 GHA: Switch to Xcode 15 on MacOS AArch64 runners
P5 JDK-8340552 Harden TzdbZoneRulesCompiler against missing zone names

infrastructure/other

Priority Bug Summary
P4 JDK-8343474 [updates] Customize README.md to specifics of update project

infrastructure/release_eng

Priority Bug Summary
P4 JDK-8339080 Bump update version for OpenJDK: jdk-21.0.6

security-libs

Priority Bug Summary
P4 JDK-8318105 [jmh] the test java.security.HSS failed with 2 active threads

security-libs/java.security

Priority Bug Summary
P2 JDK-8341927 Replace hardcoded security providers with new test.provider.name system property
P2 JDK-8342183 Update tests to use stronger algorithms and keys
P2 JDK-8342181 Update tests to use stronger Key and Salt size
P2 JDK-8342188 Update tests to use stronger key parameters and certificates
P3 JDK-8333754 Add a Test against ECDSA and ECDH NIST Test vector
P3 JDK-8337826 Improve logging in OCSPTimeout and SimpleOCSPResponder to help diagnose JDK-8309754
P3 JDK-8328723 IP Address error when client enables HTTPS endpoint check on server socket
P3 JDK-8028127 Regtest java/security/Security/SynchronizedAccess.java is incorrect
P3 JDK-8320192 SHAKE256 does not work correctly if n >= 137
P3 JDK-8335344 test/jdk/sun/security/tools/keytool/NssTest.java fails to compile
P3 JDK-8331864 Update Public Suffix List to 1cbd6e7
P4 JDK-8335172 Add manual steps to run security/auth/callback/TextCallbackHandler/Password.java test
P4 JDK-8334562 Automate com/sun/security/auth/callback/TextCallbackHandler/Default.java test
P4 JDK-8336854 CAInterop.java#actalisauthenticationrootca conflicted with /manual and /timeout
P4 JDK-8331391 Enhance the keytool code by invoking the buildTrustedCerts method for essential options
P4 JDK-8325506 Ensure randomness is only read from provided SecureRandom object
P4 JDK-8319673 Few security tests ignore VM flags
P4 JDK-8330278 Have SSLSocketTemplate.doClientSide use loopback address
P4 JDK-8324841 PKCS11 tests still skip execution
P4 JDK-8339892 Several security shell tests don't set TESTJAVAOPTS
P4 JDK-8296787 Unify debug printing format of X.509 cert serial numbers
P5 JDK-8343848 Fix typo of property name in TestOAEPPadding after 8341927

security-libs/javax.crypto

Priority Bug Summary
P5 JDK-8336240 Test com/sun/crypto/provider/Cipher/DES/PerformanceTest.java fails with java.lang.ArithmeticException

security-libs/javax.crypto:pkcs11

Priority Bug Summary
P3 JDK-8333317 Test sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java failed with: Invalid ECDH ServerKeyExchange signature
P3 JDK-8321543 Update NSS to version 3.96

security-libs/javax.net.ssl

Priority Bug Summary
P4 JDK-8339560 Unaddressed comments during code review of JDK-8337664
P4 JDK-8338380 Update TLSCommon/interop/AbstractServer to specify an interface to listen for connections

tools

Priority Bug Summary
P4 JDK-8337851 Some tests have name which confuse jtreg

tools/javac

Priority Bug Summary
P4 JDK-8333427 langtools/tools/javac/newlines/NewLineTest.java is failing on Japanese Windows

tools/jlink

Priority Bug Summary
P3 JDK-8322809 SystemModulesMap::classNames and moduleNames arrays do not match the order
P4 JDK-8334057 JLinkReproducibleTest.java support receive test.tool.vm.opts

tools/jpackage

Priority Bug Summary
P4 JDK-8325525 Create jtreg test case for JDK-8325203
P4 JDK-8336315 tools/jpackage/windows/WinChildProcessTest.java Failed: Check is calculator process is alive