RELEASE NOTES: JDK 21.0.8

Notes generated: Sun Apr 27 06:48:25 CEST 2025

JEPs

None.

RELEASE NOTES

tools/javac

Issue Description
JDK-8341779

`TypeMirror` Changed to Provide Annotations for Types Loaded from Bytecode


The implementation of TypeMirror now provides access to annotations for types loaded from bytecode. Previously type annotations were not associated with types loaded from bytecode.

Annotation processors can access type annotations for elements using AnnotationMirror#getAnnotationMirrors, and the annotations will be included in the output of AnnotationMirror#toString.

Any programs that relied on annotations being omitted for elements loaded from the classpath should be updated to handle type annotations.


core-libs/java.net

Issue Description
JDK-8342075

java.net.http.HttpClient Is Enhanced to Report HTTP/2 Flow Control Errors to the Server


The java.net.http.HttpClient will now report HTTP/2 flow control errors to the server when they are detected. This is an implementation detail that should be transparent to users of the HttpClient API, but could result in streams being reset or connections being closed if connecting to a non-conformant HTTP/2 server.


hotspot/compiler

Issue Description
JDK-8349637

Incorrect result of Integer.numberOfLeadingZeros


Integer.numberOfLeadingZeros may return an incorrect result on x86_64 with AVX2. The issue is caused by an incorrect JIT compiler optimization. As a workaround, the following command-line options can be used -XX:+UnlockDiagnosticVMOptions -XX:DisableIntrinsic=_numberOfLeadingZeros_i.


hotspot/runtime

Issue Description
JDK-8318636

New System.map and System.dump_map Diagnostic Commands Have Been Added


New System.map and System.dump_map diagnostic commands have been added to jcmd. When executed, these commands print the virtual memory map of the JVM process, together with Native Memory Tracking information about the virtual memory segments. For the latter information to be displayed, Native Memory Tracking must be enabled.

jcmd <pid> System.map will print the virtual memory map of the JVM indicated by <pid> to the stdout of jcmd.

jcmd <pid> System.dump_map will cause the target JVM indicated by <pid> to print the virtual memory map to a file named vm_memory_map_<pid>.txt into the current directory of the target JVM.


security-libs/java.security

Issue Description
JDK-8303770

Removed Baltimore CyberTrust Root Certificate after expiry date


The following expired root certificate has been removed from the cacerts keystore: ` + alias name "baltimorecybertrustca [jdk]" Distinguished Name: CN=Baltimore CyberTrust Root, OU=CyberTrust, O=Baltimore, C=IE `


FIXED ISSUES

client-libs

Priority Bug Summary
P4 JDK-8294155 Exception thrown before awaitAndCheck hangs PassFailJFrame
P4 JDK-8350260 Improve HTML instruction formatting in PassFailJFrame
P4 JDK-8340560 Open Source several AWT/2D font and rendering tests
P4 JDK-8340784 Remove PassFailJFrame constructor with screenshots
P4 JDK-8353138 Screen capture for test TaskbarPositionTest.java, failure case

client-libs/2d

Priority Bug Summary
P3 JDK-8330936 [ubsan] exclude function BilinearInterp and ShapeSINextSpan in libawt java2d from ubsan checks
P3 JDK-8343224 print/Dialog/PaperSizeError.java fails with MediaSizeName is not A4: A4
P3 JDK-8348596 Update FreeType to 2.13.3
P3 JDK-8348597 Update HarfBuzz to 10.4.0
P3 JDK-8348110 Update LCMS to 2.17
P4 JDK-8316497 ColorConvertOp - typo for non-ICC conversions needs one-line fix
P4 JDK-8340143 Open source several Java2D rendering loop tests.
P4 JDK-8341128 open source some 2d graphics tests
P4 JDK-8341535 sun/awt/font/TestDevTransform.java fails with RuntimeException: Different rendering
P4 JDK-8343124 Tests fails with java.lang.IllegalAccessException: class com.sun.javatest.regtest.agent.MainWrapper$MainTask cannot access

client-libs/java.awt

Priority Bug Summary
P3 JDK-8280991 [XWayland] No displayChanged event after setDisplayMode call
P3 JDK-8270269 Desktop.browse method fails if earlier CoInitialize call as COINIT_MULTITHREADED
P3 JDK-8348598 Update Libpng to 1.6.47
P3 JDK-8348600 Update PipeWire to 1.3.81
P4 JDK-8349751 AIX build failure after upgrade pipewire to 1.3.81
P4 JDK-8334644 Automate javax/print/attribute/PageRangesException.java
P4 JDK-8328482 Convert and Open source few manual applet test to main based
P4 JDK-8328301 Convert Applet test ManualHTMLDataFlavorTest.java to main program
P4 JDK-8343170 java/awt/Cursor/JPanelCursorTest/JPanelCursorTest.java does not show the default cursor
P4 JDK-8352109 java/awt/Desktop/MailTest.java fails in platforms where Action.MAIL is not supported
P4 JDK-8341972 java/awt/dnd/DnDRemoveFocusOwnerCrashTest.java timed out after JDK-8341257
P4 JDK-8340458 Open source additional Component tests (part 2)
P4 JDK-8340625 Open source additional Component tests (part 3)
P4 JDK-8341004 Open source AWT FileDialog related tests
P4 JDK-8340084 Open source AWT Frame related tests
P4 JDK-8339984 Open source AWT MenuItem related tests
P4 JDK-8339794 Open source closed choice tests #1
P4 JDK-8340393 Open source closed choice tests #2
P4 JDK-8340433 Open source closed choice tests #3
P4 JDK-8340907 Open source closed frame tests # 2
P4 JDK-8341239 Open source closed frame tests # 3
P4 JDK-8341373 Open source closed frame tests # 4
P4 JDK-8341447 Open source closed frame tests # 5
P4 JDK-8340228 Open source couple more miscellaneous AWT tests
P4 JDK-8340555 Open source DnD tests - Set4
P4 JDK-8340713 Open source DnD tests - Set5
P4 JDK-8340966 Open source few Checkbox and Cursor tests - Set1
P4 JDK-8340077 Open source few Checkbox tests - Set2
P4 JDK-8340164 Open source few Component tests - Set1
P4 JDK-8340967 Open source few Cursor tests - Set2
P4 JDK-8341257 Open source few DND tests - Set1
P4 JDK-8340978 Open source few DnD tests - Set6
P4 JDK-8341191 Open source few more AWT FileDialog tests
P4 JDK-8340437 Open source few more AWT Frame related tests
P4 JDK-8340639 Open source few more AWT List tests
P4 JDK-8340809 Open source few more AWT PopupMenu tests
P4 JDK-8341278 Open source few TrayIcon tests - Set7
P4 JDK-8341378 Open source few TrayIcon tests - Set8
P4 JDK-8341258 Open source few various AWT tests - Set1
P4 JDK-8340332 Open source mixed AWT tests - Set3
P4 JDK-8341298 Open source more AWT window tests
P4 JDK-8341072 Open source several AWT Canvas and Rectangle related tests
P4 JDK-8340193 Open source several AWT Dialog tests - Batch 1
P4 JDK-8340279 Open source several AWT Dialog tests - Batch 2
P4 JDK-8340366 Open source several AWT Dialog tests - Batch 3
P4 JDK-8340790 Open source several AWT Dialog tests - Batch 4
P4 JDK-8339727 Open source several AWT focus tests - series 1
P4 JDK-8339842 Open source several AWT focus tests - series 2
P4 JDK-8339895 Open source several AWT focus tests - series 3
P4 JDK-8339906 Open source several AWT focus tests - series 4
P4 JDK-8339935 Open source several AWT focus tests - series 5
P4 JDK-8339995 Open source several AWT focus tests - series 6
P4 JDK-8340621 Open source several AWT List tests
P4 JDK-8339836 Open source several AWT Mouse tests - Batch 1
P4 JDK-8339982 Open source several AWT Mouse tests - Batch 2
P4 JDK-8340605 Open source several AWT PopupMenu tests
P4 JDK-8340271 Open source several AWT Robot tests
P4 JDK-8341148 Open source several Choice related tests
P4 JDK-8341170 Open source several Choice related tests (part 2)
P4 JDK-8340173 Open source some Component/Panel/EventQueue tests - Set2
P4 JDK-8340985 Open source some Desktop related tests
P4 JDK-8340417 Open source some MenuBar tests - Set1
P4 JDK-8340432 Open source some MenuBar tests - Set2
P4 JDK-8340874 Open source some of the AWT Geometry/Button tests
P4 JDK-8341162 Open source some of the AWT window test
P4 JDK-8341000 Open source some of the AWT Window tests
P4 JDK-8340367 Opensource few AWT image tests
P4 JDK-8339639 Opensource few AWT PopupMenu tests
P4 JDK-8348299 Update List/ItemEventTest/ItemEventTest.java

client-libs/javax.accessibility

Priority Bug Summary
P3 JDK-8345728 [Accessibility,macOS,Screen Magnifier]: JCheckbox unchecked state does not magnify but works for checked state
P3 JDK-8348936 [Accessibility,macOS,VoiceOver] VoiceOver doesn't announce untick on toggling the checkbox with "space" key on macOS
P3 JDK-8286204 [Accessibility,macOS,VoiceOver] VoiceOver reads the spinner value 10 as 1 when user iterates to 10 for the first time on macOS

client-libs/javax.imageio

Priority Bug Summary
P4 JDK-8337681 PNGImageWriter uses much more memory than necessary

client-libs/javax.swing

Priority Bug Summary
P3 JDK-8051591 Test javax/swing/JTabbedPane/8007563/Test8007563.java fails
P4 JDK-8325435 [macos] Menu or JPopupMenu not closed when main window is resized
P4 JDK-8328670 Automate and open source few closed manual applet test
P4 JDK-8328484 Convert and Opensource few JFileChooser applet test to main
P4 JDK-8295804 javax/swing/JFileChooser/JFileChooserSetLocationTest.java failed with "setLocation() is not working properly"
P4 JDK-8350924 javax/swing/JMenu/4213634/bug4213634.java fails
P4 JDK-8346581 JRadioButton/ButtonGroupFocusTest.java fails in CI on Linux
P4 JDK-8315876 Open source several Swing CSS related tests
P4 JDK-8315951 Open source several Swing HTMLEditorKit related tests
P4 JDK-8315669 Open source several Swing PopupMenu related tests
P4 JDK-8316061 Open source several Swing RootPane and Slider related tests
P4 JDK-8315742 Open source several Swing Scroll related tests
P4 JDK-8316324 Opensource five miscellaneous Swing tests
P4 JDK-8315981 Opensource five more random Swing tests
P4 JDK-8315871 Opensource five more Swing regression tests
P4 JDK-8316388 Opensource five Swing component related regression tests
P4 JDK-8328648 Remove applet usage from JFileChooser tests bug4150029
P4 JDK-8345357 test/jdk/javax/swing/JRadioButton/8033699/bug8033699.java fails in ubuntu22.04
P5 JDK-8342524 Use latch in AbstractButton/bug6298940.java instead of delay

core-libs

Priority Bug Summary
P4 JDK-8350682 [JMH] vector.IndexInRangeBenchmark failed with IndexOutOfBoundsException for size=1024

core-libs/java.io

Priority Bug Summary
P4 JDK-8343342 java/io/File/GetXSpace.java fails on Windows with CD-ROM drive
P4 JDK-8322141 SequenceInputStream.transferTo should not return as soon as Long.MAX_VALUE bytes have been transferred
P4 JDK-8136895 Writer not closed with disk full error, file resource leaked

core-libs/java.lang

Priority Bug Summary
P3 JDK-8343019 Primitive caches must use boxed instances from the archive
P4 JDK-8349358 [JMH] Cannot access class jdk.internal.vm.ContinuationScope
P4 JDK-8350786 Some java/lang jtreg tests miss requires vm.hasJFR

core-libs/java.math

Priority Bug Summary
P3 JDK-8318915 Enhance checks in BigDecimal.toPlainString()

core-libs/java.net

Priority Bug Summary
P3 JDK-8343855 HTTP/2 ConnectionWindowUpdateSender may miss some unprocessed DataFrames from closed streams
P3 JDK-8335181 Incorrect handling of HTTP/2 GOAWAY frames in HttpClient
P4 JDK-8256211 assert fired in java/net/httpclient/DependentPromiseActionsTest (infrequent)
P4 JDK-8316580 HttpClient with StructuredTaskScope does not close when a task fails
P4 JDK-8342075 HttpClient: improve HTTP/2 flow control checks
P4 JDK-8344346 java/net/httpclient/ShutdownNow.java fails with java.lang.AssertionError: client was still running, but exited after further delay: timeout should be adjusted
P4 JDK-8281511 java/net/ipv6tests/UdpTest.java fails with checkTime failed
P4 JDK-8341637 java/net/Socket/UdpSocket.java fails with "java.net.BindException: Address already in use" (macos-aarch64)
P4 JDK-8347995 Race condition in jdk/java/net/httpclient/offline/FixedResponseHttpClient.java
P4 JDK-8350546 Several java/net/InetAddress tests fails UnknownHostException
P4 JDK-8348107 test/jdk/java/net/httpclient/HttpsTunnelAuthTest.java fails intermittently
P4 JDK-6956385 URLConnection.getLastModified() leaks file handles for jar:file and file: URLs

core-libs/java.nio

Priority Bug Summary
P3 JDK-8327370 (ch) sun.nio.ch.Poller.register throws AssertionError
P4 JDK-8347286 (fs) Remove some extensions from java/nio/file/Files/probeContentType/Basic.java

core-libs/java.time

Priority Bug Summary
P3 JDK-8352716 (tz) Update Timezone Data to 2025b

core-libs/java.util

Priority Bug Summary
P4 JDK-8329729 java/util/Properties/StoreReproducibilityTest.java times out

core-libs/java.util.concurrent

Priority Bug Summary
P4 JDK-8351933 Inaccurate masking of TC subfield decrement in ForkJoinPool

core-libs/java.util:i18n

Priority Bug Summary
P4 JDK-8349200 [JMH] time.format.ZonedDateTimeFormatterBenchmark fails

core-libs/javax.naming

Priority Bug Summary
P4 JDK-8220213 com/sun/jndi/dns/ConfigTests/Timeout.java failed intermittent
P4 JDK-8339538 Wrong timeout computations in DnsClient

core-svc/debugger

Priority Bug Summary
P5 JDK-8337299 vmTestbase/nsk/jdb/stop_at/stop_at002/stop_at002.java failure goes undetected

core-svc/java.lang.instrument

Priority Bug Summary
P4 JDK-8316452 java/lang/instrument/modules/AppendToClassPathModuleTest.java ignores VM flags

core-svc/java.lang.management

Priority Bug Summary
P4 JDK-8335684 Test ThreadCpuTime.java should pause like ThreadCpuTimeArray.java

core-svc/javax.management

Priority Bug Summary
P3 JDK-8342633 javax/management/security/HashedPasswordFileTest.java creates tmp file in src dir
P4 JDK-8343936 Adjust timeout in test javax/management/monitor/DerivedGaugeMonitorTest.java

hotspot/compiler

Priority Bug Summary
P2 JDK-8349637 Integer.numberOfLeadingZeros outputs incorrectly in certain cases
P3 JDK-8335662 [AArch64] C1: guarantee(val < (1ULL << nbits)) failed: Field too big for insn
P3 JDK-8345146 [PPC64] Make intrinsic conversions between bit representations of half precision values and floats
P3 JDK-8336042 Caller/callee param size mismatch in deoptimization causes crash
P3 JDK-8180450 secondary_super_cache does not scale well
P3 JDK-8328107 Shenandoah/C2: TestVerifyLoopOptimizations test failure
P4 JDK-8346264 "Total compile time" counter should include time spent in failing/bailout compiles
P4 JDK-8350412 [21u] AArch64: Ambiguous frame layout leads to incorrect traces in JFR
P4 JDK-8346888 [ubsan] block.cpp:1617:30: runtime error: 9.97582e+36 is outside the range of representable values of type 'int'
P4 JDK-8309978 [x64] Fix useless padding
P4 JDK-8350483 AArch64: turn on signum intrinsics by default on Ampere CPUs
P4 JDK-8308966 Add intrinsic for float/double modulo for x86 AVX2 and AVX512
P4 JDK-8321204 C2: assert(false) failed: node should be in igvn hash table
P4 JDK-8330158 C2: Loop strip mining uses ABS with min int
P4 JDK-8330106 C2: VectorInsertNode::make() shouldn't call ConINode::make() directly
P4 JDK-8337221 CompileFramework: test library to conveniently compile java and jasm sources for fuzzing
P4 JDK-8336827 compiler/vectorization/TestFloat16VectorConvChain.java timeouts on ppc64 platforms after JDK-8335860
P4 JDK-8335860 compiler/vectorization/TestFloat16VectorConvChain.java fails with non-standard AVX/SSE settings
P4 JDK-8350211 CTW: Attempt to preload all classes in constant pool
P4 JDK-8333890 Fatal error in auto-vectorizer with float16 kernel.
P4 JDK-8331088 Incorrect TraceLoopPredicate output
P4 JDK-8323795 jcmd Compiler.codecache should print total size of code cache
P4 JDK-8333805 Replaying compilation with null static final fields results in a crash
P4 JDK-8319572 Test jdk/incubator/vector/LoadJsvmlTest.java ignores VM flags
P4 JDK-8350386 Test TestCodeCacheFull.java fails with option -XX:-UseCodeCacheFlushing
P4 JDK-8352512 TestVectorZeroCount: counter not reset between iterations

hotspot/gc

Priority Bug Summary
P3 JDK-8351500 G1: NUMA migrations cause crashes in region allocation
P4 JDK-8314840 3 gc/epsilon tests ignore external vm options
P4 JDK-8276995 Bug in jdk.jfr.event.gc.collection.TestSystemGC
P4 JDK-8339300 CollectorPolicy.young_scaled_initial_ergo_vm gtest fails on ppc64 based platforms
P4 JDK-8329261 G1: interpreter post-barrier x86 code asserts index size of wrong buffer
P4 JDK-8347126 gc/stress/TestStressG1Uncommit.java gets OOM-killed
P4 JDK-8319439 Move BufferNode from PtrQueue files to new files
P4 JDK-8211400 nsk.share.gc.Memory::getArrayLength returns wrong value
P4 JDK-8338202 Shenandoah: Improve handshake closure labels
P4 JDK-8337981 ShenandoahHeap::is_in should check for alive regions
P4 JDK-8314842 zgc/genzgc tests ignore vm flags
P4 JDK-8344414 ZGC: Another division by zero in rule_major_allocation_rate

hotspot/jfr

Priority Bug Summary
P3 JDK-8279016 JFR Leak Profiler is broken with Shenandoah
P4 JDK-8334780 Crash: assert(h_array_list.not_null()) failed: invariant
P4 JDK-8338314 JFR: Split JFRCheckpoint VM operation

hotspot/jvmti

Priority Bug Summary
P4 JDK-8343103 Enable debug logging for vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/TestDescription.java
P4 JDK-8346082 Output JVMTI agent information in hserr files
P4 JDK-8305010 Test vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/TestDescription.java timed out: thread not suspended

hotspot/runtime

Priority Bug Summary
P3 JDK-8338136 Hotspot should support multiple large page sizes on Windows
P3 JDK-8321479 java -D-D crashes
P3 JDK-8339148 Make os::Linux::active_processor_count() public
P3 JDK-8350201 Out of bounds access on Linux aarch64 in os::print_register_info
P3 JDK-8337958 Out-of-bounds array access in secondary_super_cache
P3 JDK-8327169 serviceability/dcmd/vm/SystemMapTest.java and SystemDumpMapTest.java may fail after JDK-8326586
P3 JDK-8332506 SIGFPE In ObjectSynchronizer::is_async_deflation_needed()
P4 JDK-8349623 [ASAN] Gtest os_linux.glibc_mallinfo_wrapper_vm fails
P4 JDK-8318636 Add jcmd to print annotated process memory map
P4 JDK-8348323 Corrupted timezone string in JVM crash log
P4 JDK-8322475 Extend printing for System.map
P4 JDK-8338064 Give better error for ConcurrentHashTable corruption
P4 JDK-8339288 Improve diagnostic logging runtime/cds/DeterministicDump.java
P4 JDK-8326586 Improve Speed of System.map
P4 JDK-8350313 Include timings for leaving safepoint in safepoint logging
P4 JDK-8321931 memory_swap_current_in_bytes reports 0 as "unlimited"
P4 JDK-8342376 More reliable OOM handling in ExceptionDuringDumpAtObjectsInitPhase test
P4 JDK-8334895 OpenJDK fails to configure on linux aarch64 when CDS is disabled after JDK-8331942
P4 JDK-8351665 Remove unused UseNUMA in os_aix.cpp
P4 JDK-8324678 Replace NULL with nullptr in HotSpot gtests
P4 JDK-8335643 serviceability/dcmd/vm tests fail for ZGC after JDK-8322475
P4 JDK-8335710 serviceability/dcmd/vm/SystemDumpMapTest.java and SystemMapTest.java fail on Linux Alpine after 8322475
P4 JDK-8350616 Skip ValidateHazardPtrsClosure in non-debug builds
P4 JDK-8339678 Update runtime/condy tests to be executed with VM flags
P4 JDK-8338010 WB_IsFrameDeoptimized miss ResourceMark

hotspot/svc-agent

Priority Bug Summary
P3 JDK-8307318 Test serviceability/sa/ClhsdbCDSJstackPrintAll.java failed: ArrayIndexOutOfBoundsException
P4 JDK-8343529 serviceability/sa/ClhsdbWhere.java fails AssertionFailure: Corrupted constant pool
P4 JDK-8253440 serviceability/sa/TestJhsdbJstackLineNumbers.java failed with "Didn't find enough line numbers"

infrastructure/build

Priority Bug Summary
P3 JDK-8353709 Debug symbols bundle should contain full debug files when building --with-external-symbols-in-bundles=public

infrastructure/release_eng

Priority Bug Summary
P4 JDK-8350650 Bump update version for OpenJDK: jdk-21.0.8

performance/libraries

Priority Bug Summary
P4 JDK-8343345 Use -jvmArgsPrepend when running microbenchmarks in RunTests.gmk
P4 JDK-8342958 Use jvmArgs consistently in microbenchmarks

security-libs/java.security

Priority Bug Summary
P3 JDK-8303770 Remove Baltimore root certificate expiring in May 2025
P3 JDK-8344361 Restore null return for invalid services from legacy providers
P4 JDK-8200566 DistributionPointFetcher fails to fetch CRLs if the DistributionPoints field contains more than one DistributionPoint and the first one fails
P4 JDK-8346049 jdk/test/lib/security/timestamp/TsaServer.java warnings
P4 JDK-8328864 NullPointerException in sun.security.jca.ProviderList.getService()
P4 JDK-8349348 Refactor ClassLoaderDeadlock.sh and Deadlock.sh to run fully in java
P4 JDK-8345134 Test sun/security/tools/jarsigner/ConciseJarsigner.java failed: unable to find valid certification path to requested target
P4 JDK-8352302 Test sun/security/tools/jarsigner/TimestampCheck.java is failing
P4 JDK-8345133 Test sun/security/tools/jarsigner/TsacertOptionTest.java failed: Warning found in stdout
P4 JDK-8309667 TLS handshake fails because of ConcurrentModificationException in PKCS12KeyStore.engineGetEntry

security-libs/javax.crypto

Priority Bug Summary
P4 JDK-8345598 Upgrade NSS binaries for interop tests

security-libs/javax.crypto:pkcs11

Priority Bug Summary
P4 JDK-8336499 Failure when creating non-CRT RSA private keys in SunPKCS11

security-libs/org.ietf.jgss

Priority Bug Summary
P3 JDK-8325680 Uninitialised memory in deleteGSSCB of GSSLibStub.c:179

tools/javac

Priority Bug Summary
P2 JDK-8354893 [REDO BACKPORT] javac crashes while adding type annotations to the return type of a constructor (JDK-8320001)
P3 JDK-8341779 [REDO BACKPORT] type annotations are not visible to javac plugins across compilation boundaries (JDK-8225377)
P3 JDK-8337998 CompletionFailure in getEnclosingType attaching type annotations
P3 JDK-8337795 Type annotation attached to incorrect type during class reading
P4 JDK-8340024 In ClassReader, extract a constant for the superclass supertype_index

tools/jshell

Priority Bug Summary
P4 JDK-8312475 org.jline.util.PumpReader signed byte problem
P4 JDK-8347629 Test FailOverDirectExecutionControlTest.java fails with -Xcomp