RELEASE NOTES FOR: 21.0.8 ==================================================================================================== Notes generated: Sun Apr 27 06:48:25 CEST 2025 Hint: Prefix bug IDs with https://bugs.openjdk.org/browse/ to reach the relevant JIRA entry. JAVA ENHANCEMENT PROPOSALS (JEP): None. RELEASE NOTES: tools/javac: 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: 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: 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: 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 System.map` will print the virtual memory map of the JVM indicated by `` to the stdout of `jcmd`. `jcmd System.dump_map` will cause the target JVM indicated by `` to print the virtual memory map to a file named `vm_memory_map_.txt` into the current directory of the target JVM. security-libs/java.security: 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 ``` ALL FIXED ISSUES, BY COMPONENT AND PRIORITY: client-libs: (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: (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: (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: (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: (P4) JDK-8337681: PNGImageWriter uses much more memory than necessary client-libs/javax.swing: (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: (P4) JDK-8350682: [JMH] vector.IndexInRangeBenchmark failed with IndexOutOfBoundsException for size=1024 core-libs/java.io: (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: (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: (P3) JDK-8318915: Enhance checks in BigDecimal.toPlainString() core-libs/java.net: (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: (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: (P3) JDK-8352716: (tz) Update Timezone Data to 2025b core-libs/java.util: (P4) JDK-8329729: java/util/Properties/StoreReproducibilityTest.java times out core-libs/java.util.concurrent: (P4) JDK-8351933: Inaccurate masking of TC subfield decrement in ForkJoinPool core-libs/java.util:i18n: (P4) JDK-8349200: [JMH] time.format.ZonedDateTimeFormatterBenchmark fails core-libs/javax.naming: (P4) JDK-8220213: com/sun/jndi/dns/ConfigTests/Timeout.java failed intermittent (P4) JDK-8339538: Wrong timeout computations in DnsClient core-svc/debugger: (P5) JDK-8337299: vmTestbase/nsk/jdb/stop_at/stop_at002/stop_at002.java failure goes undetected core-svc/java.lang.instrument: (P4) JDK-8316452: java/lang/instrument/modules/AppendToClassPathModuleTest.java ignores VM flags core-svc/java.lang.management: (P4) JDK-8335684: Test ThreadCpuTime.java should pause like ThreadCpuTimeArray.java core-svc/javax.management: (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: (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: (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: (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: (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: (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: (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: (P3) JDK-8353709: Debug symbols bundle should contain full debug files when building --with-external-symbols-in-bundles=public infrastructure/release_eng: (P4) JDK-8350650: Bump update version for OpenJDK: jdk-21.0.8 performance/libraries: (P4) JDK-8343345: Use -jvmArgsPrepend when running microbenchmarks in RunTests.gmk (P4) JDK-8342958: Use jvmArgs consistently in microbenchmarks security-libs/java.security: (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: (P4) JDK-8345598: Upgrade NSS binaries for interop tests security-libs/javax.crypto:pkcs11: (P4) JDK-8336499: Failure when creating non-CRT RSA private keys in SunPKCS11 security-libs/org.ietf.jgss: (P3) JDK-8325680: Uninitialised memory in deleteGSSCB of GSSLibStub.c:179 tools/javac: (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: (P4) JDK-8312475: org.jline.util.PumpReader signed byte problem (P4) JDK-8347629: Test FailOverDirectExecutionControlTest.java fails with -Xcomp