RELEASE NOTES: JDK 21.0.11

Notes generated: Tue Feb 10 07:19:50 CET 2026

JEPs

None.

RELEASE NOTES

security-libs/javax.net.ssl

Issue Description
JDK-8328608

Configurable New Session Tickets Count for TLSv1.3


A new system property, jdk.tls.server.newSessionTicketCount, sets the number of TLSv1.3 resumption tickets sent by a JSSE server per session. It can be set on the command line with -Djdk.tls.server.newSessionTicketCount=#, where # ranges from 0 to 10. The default is 1.

For more details, see Customizing JSSE.


hotspot/jfr

Issue Description
JDK-8365972

JFR: ThreadDump and ClassLoaderStatistics events may cause back to back rotations


The jdk.ThreadDump event is currently written when a chunk begins and ends (everyChunk), but when it is written at the beginning, it may trigger another rotation within 1 second. This can cause other relevant data to be flushed out very quickly, e.g. 15 seconds if using the default max size of 250 MB.

Reproducer:

$ java Reproducer 1400 300 20

import java.util.concurrent.Semaphore; import jdk.jfr.Configuration; import jdk.jfr.Recording;

public class Reproducer { public static void main(String[] args) throws Exception { int threadCount = Integer.parseInt(args[0]); int stackDepth = Integer.parseInt(args[1]); int sleepTime = Integer.parseInt(args[2]); Semaphore semaphore = new Semaphore(0); for (int i = 0; i < threadCount; i++) { Thread t = new Thread(() -> stack(stackDepth, semaphore)); t.setDaemon(true); t.start(); } semaphore.acquire(threadCount); Configuration c = Configuration.getConfiguration("default"); try (Recording r = new Recording(c)) { r.start(); Thread.sleep(sleepTime * 1000); } }

static void stack(int depth, Semaphore semaphore) {
    if (depth > 0) {
        stack(depth - 1, semaphore);
    }
    if (depth == 0) {
        semaphore.release();
        try {
            Thread.sleep(Long.MAX_VALUE);
        } catch (InterruptedException ignored) {}
    }
}

}

Short-term, we could change the implementation so that jdk.ThreadDump and jdk.ClassLoaderStatistics are only emitted when a recording starts and a chunk ends. Such a change may be suitable for backporting.

Longer-term, we might want to address this in a more generic way so that it cannot occur with other events as well, including user-defined ones. Three alternatives:

1) Redefine "everyChunk" so that it only emits when a recording starts and when a chunk ends. 2) Create a new keyword, e.g. "rotation", with the same semantics as option 1, but keep "everyChunk" as is. 3) Broaden the setting so it can accept a combination of recording- or chunk-specific settings.

Regardless of approach, the new semantics must support cases where two recordings are in use at the same time with different settings.


Reduced frequency of JFR events jdk.ThreadDump and jdk.ClassLoaderStatistics


In applications with many threads (typically more than 1,000) and deep Java stacks (typically more than 300 frames), the jdk.ThreadDump event can become large enough to trigger a recording file rotation by itself. This can cause other events to be removed earlier than expected by the retention policy. A similar issue occurs for the jdk.ClassLoaderStatistics event in applications that use several hundred thousand class loaders.

To avoid back-to-back rotations in the default configuration (default.jfc), the jdk.ThreadDump and jdk.ClassLoaderStatistics events are now written only when a recording starts and at the end of a file rotation. They are no longer written at the beginning of a new file created by rotation.


security-libs/java.security

Issue Description
JDK-8244336

New Security Property jdk.crypto.disabledAlgorithms for Restricting Algorithms at the JCE layer


A new security property named jdk.crypto.disabledAlgorithms has been introduced to disable algorithms for JCE/JCA cryptographic services. Initially, this property only supports the Cipher, KeyStore, MessageDigest, and Signature services. This property is defined in the java.security file and initially no algorithms are disabled by default. However, this may change in the future. This security property can be overridden by a system property of the same name if applications need to re-enable algorithms.

See Disabled and Restricted Cryptographic Algorithms for more information.


FIXED ISSUES

client-libs

Priority Bug Summary
P4 JDK-8376270 [21u, 17u] Redo JDK-8361748: Enforce limits on the size of an XBM image

client-libs/2d

Priority Bug Summary
P3 JDK-8373727 New XBM images parser regression: only the first line of the bitmap array is parsed
P4 JDK-8363950 Incorrect jtreg header in TestLayoutVsICU.java
P4 JDK-8368882 NPE during text drawing on machine with JP locale
P4 JDK-8369911 Test sun/java2d/marlin/ClipShapeTest.java#CubicDoDash, #Cubic and #Poly fail intermittent

client-libs/java.awt

Priority Bug Summary
P3 JDK-6899304 java.awt.Toolkit.getScreenInsets(GraphicsConfiguration) returns incorrect values
P3 JDK-8372756 Mouse additional buttons and horizontal scrolling are broken on XWayland GNOME >= 47 after JDK-8351907
P3 JDK-8372977 Unnecessary gthread-2.0 loading
P3 JDK-8375063 Update Libpng to 1.6.54
P4 JDK-8349351 Combine Screen Inset Tests into a Single File
P4 JDK-8372048 Performance improvement on Linux remote desktop

client-libs/javax.swing

Priority Bug Summary
P3 JDK-8298153 Colored text is not shown on disabled checkbox and radio button with GTK LAF for bug4314194
P3 JDK-8316274 javax/swing/ButtonGroup/TestButtonGroupFocusTraversal.java fails in Ubuntu 23.10 with Motif LAF
P3 JDK-8075917 The regression-swing case failed as the text on label is not painted red with the GTK L&F
P4 JDK-8353755 Add a helper method to Util - findComponent()
P4 JDK-8354219 Automate javax/swing/JComboBox/ComboPopupBug.java
P4 JDK-8347475 GTK: javax/swing/JColorChooser/Test8152419.java there are no swatches or RGB tab in JColorChooser

core-libs/java.lang

Priority Bug Summary
P3 JDK-8355632 WhiteBox.waitForReferenceProcessing() fails assert for return type
P4 JDK-8356107 [java.lang] Use @requires tag instead of exiting based on os.name or separatorChar property
P4 JDK-8351000 StringBuilder getChar and putChar robustness

core-libs/java.lang:reflect

Priority Bug Summary
P3 JDK-8343377 Performance regression in reflective invocation of native methods

core-libs/java.net

Priority Bug Summary
P4 JDK-8317801 java/net/Socket/asyncClose/Race.java fails intermittently (aix)

core-libs/java.nio

Priority Bug Summary
P4 JDK-8351458 (ch) Move preClose to UnixDispatcher
P4 JDK-8114830 (fs) Files.copy fails due to interference from something else changing the file system
P4 JDK-8314810 (fs) java/nio/file/Files/CopyInterference.java should use TestUtil::supportsLinks
P4 JDK-8317838 java/nio/channels/Channels/SocketChannelStreams.java running into timeout (aix)
P4 JDK-8366128 jdk/jdk/nio/zipfs/TestPosix.java::testJarFile uses wrong file

core-libs/java.rmi

Priority Bug Summary
P4 JDK-8372857 Improve debuggability of java/rmi/server/RemoteServer/AddrInUse.java test

core-libs/java.text

Priority Bug Summary
P4 JDK-8317633 Modernize text.testlib.HexDumpReader

core-libs/java.time

Priority Bug Summary
P3 JDK-8345668 ZoneOffset.ofTotalSeconds performance regression

core-libs/java.util

Priority Bug Summary
P3 JDK-8301875 java.util.TimeZone.getSystemTimeZoneID uses C library default file mode

core-libs/javax.naming

Priority Bug Summary
P4 JDK-8355278 Improve debuggability of com/sun/jndi/ldap/LdapPoolTimeoutTest.java test

core-svc

Priority Bug Summary
P4 JDK-8342449 reimplement: JDK-8327114 Attach in Linux may have wrong behavior when pid == ns_pid
P4 JDK-8358077 sun.tools.attach.VirtualMachineImpl::checkCatchesAndSendQuitTo on Linux leaks file handles after JDK-8327114

core-svc/debugger

Priority Bug Summary
P4 JDK-8370636 com/sun/jdi/TwoThreadsTest.java should wait for completion of all threads
P4 JDK-8366850 Test com/sun/jdi/JdbStopInNotificationThreadTest.java failed
P4 JDK-8366694 Test JdbStopInNotificationThreadTest.java timed out after 60 second

core-svc/java.lang.management

Priority Bug Summary
P4 JDK-8030957 AIX: Implement OperatingSystemMXBean.getSystemCpuLoad() and .getProcessCpuLoad() on AIX

core-svc/tools

Priority Bug Summary
P3 JDK-8341246 Test com/sun/tools/attach/PermissionTest.java fails access denied after JDK-8327114
P4 JDK-8327114 Attach in Linux may have wrong behaviour when pid == ns_pid (Kubernetes debug container)
P4 JDK-8341310 Test TestJcmdWithSideCar.java should skip ACCESS_TMP_VIA_PROC_ROOT (after JDK-8327114)

hotspot/compiler

Priority Bug Summary
P3 JDK-8373525 C2: assert(_base == Long) failed: Not a Long
P4 JDK-8368787 Error reporting: hs_err files should show instructions when referencing code in nmethods
P4 JDK-8357380 java/lang/StringBuilder/RacingSBThreads.java times out with C1
P4 JDK-8337102 JITTester: Fix breaks in static initialization blocks
P4 JDK-8371608 Jtreg test jdk/internal/vm/Continuation/Fuzz.java sometimes fails with (fast)debug binaries
P4 JDK-8370579 PPC: fix inswri immediate argument order
P4 JDK-8330016 Stress seed should be initialized for runtime stub compilation

hotspot/gc

Priority Bug Summary
P4 JDK-8372348 Adjust some UL / JFR string deduplication output messages
P4 JDK-8370325 G1: Disallow GC for TLAB allocation
P4 JDK-8354145 G1: UseCompressedOops boundary is calculated on maximum heap region size instead of maxiumum ergonomic heap region size
P4 JDK-8342175 MemoryEaterMT fails intermittently with ExceptionInInitializerError
P4 JDK-8333386 TestAbortOnVMOperationTimeout test fails for client VM
P4 JDK-8354922 ZGC: Use MAP_FIXED_NOREPLACE when reserving memory

hotspot/jfr

Priority Bug Summary
P3 JDK-8371889 [21u] JFR: Deadlock in ThrowableTracer
P3 JDK-8365972 JFR: ThreadDump and ClassLoaderStatistics events may cause back to back rotations
P3 JDK-8372321 TestBackToBackSensitive fails intermittently after JDK-8365972
P4 JDK-8372441 JFR: Improve logging of TestBackToBackSensitive

hotspot/runtime

Priority Bug Summary
P3 JDK-8335906 [s390x] Test Failure: GTestWrapper.java
P3 JDK-8365526 Crash with null Symbol passed to SystemDictionary::resolve_or_null
P3 JDK-8354878 File Leak in CgroupSubsystemFactory::determine_type of cgroupSubsystem_linux.cpp:300
P3 JDK-8375530 PPC64: incorrect quick verify_method_data_pointer check causes poor performance in debug build
P3 JDK-8372988 Test runtime/Nestmates/membership/TestNestHostErrorWithMultiThread.java failed: Unexpected interrupt
P4 JDK-8313319 [linux] mmap should use MAP_FIXED_NOREPLACE if available
P4 JDK-8370572 Cgroups hierarchical memory limit is not honored after JDK-8322420
P4 JDK-8370966 Create regression test for the hierarchical memory limit fix in JDK-8370572
P4 JDK-8374178 Missing include in systemDictionary.cpp after JDK-8365526
P4 JDK-8354057 Odd debug output in -Xlog:os+container=debug on certain systems
P4 JDK-8334738 os::print_hex_dump should optionally print ASCII
P4 JDK-8350103 Test containers/systemd/SystemdMemoryAwarenessTest.java fails on Linux ppc64le SLES15 SP6

hotspot/test

Priority Bug Summary
P4 JDK-8346048 test/lib/containers/docker/DockerRunOptions.java uses addJavaOpts() from ctor

infrastructure

Priority Bug Summary
P4 JDK-8372464 Bump update version for OpenJDK: jdk-21.0.11

infrastructure/build

Priority Bug Summary
P3 JDK-8374642 EscapeHash macro fails with GNU make 4.3 and 4.4
P3 JDK-8331431 Update to use jtreg 7.4

security-libs/java.security

Priority Bug Summary
P2 JDK-8375549 ConcurrentModificationException if jdk.crypto.disabledAlgorithms has multiple entries with known oid
P3 JDK-8244336 Restrict algorithms at JCE layer
P4 JDK-8346962 Test CRLReadTimeout.java fails with -Xcomp on a fastdebug build

security-libs/javax.crypto

Priority Bug Summary
P4 JDK-8358159 Empty mode/padding in cipher transformations
P4 JDK-8359388 Stricter checking for cipher transformations

security-libs/javax.net.ssl

Priority Bug Summary
P2 JDK-8328608 Multiple NewSessionTicket support for TLS
P3 JDK-8334670 SSLSocketOutputRecord buffer miscalculation
P4 JDK-8360539 DTLS handshakes fails due to improper cookie validation logic
P4 JDK-8348309 MultiNST tests need more debugging and timing
P4 JDK-8333857 Test sun/security/ssl/SSLSessionImpl/ResumeChecksServer.java failed: Existing session was used
P4 JDK-8366817 test/jdk/javax/net/ssl/TLSCommon/interop/JdkProcServer.java and JdkProcClient.java should not delete logs
P4 JDK-8357277 Update OpenSSL library for interop tests

security-libs/org.ietf.jgss:krb5

Priority Bug Summary
P3 JDK-8345578 New test in JDK-8343622 fails with a promoted build
P4 JDK-8343622 AesDkCrypto.stringToKey should not return null

tools/jar

Priority Bug Summary
P4 JDK-8371978 tools/jar/ReproducibleJar.java fails on XFS

tools/jshell

Priority Bug Summary
P4 JDK-8351639 Improve debuggability of test/langtools/jdk/jshell/JdiHangingListenExecutionControlTest.java test

xml/jaxp

Priority Bug Summary
P4 JDK-8336695 Update Commons BCEL to Version 6.10.0