RELEASE NOTES FOR: 21.0.1 ==================================================================================================== Notes generated: Wed Apr 03 11:11:54 CEST 2024 Hint: Prefix bug IDs with https://bugs.openjdk.org/browse/ to reach the relevant JIRA entry. JAVA ENHANCEMENT PROPOSALS (JEP): None. RELEASE NOTES: core-libs/java.util.jar: JDK-8313765: Validations on ZIP64 Extra Fields A (JDK enhancement)[https://bugs.openjdk.org/browse/JDK-8311940] has improved validation of the ZIP64 Extra Fields contained within zip files and jar files. Files which do not satisfy these new validation checks may result in `ZipException : Invalid CEN header (invalid zip64 extra data field size)`. The following third party tools have released patches to better adhere to the ZIP File Format Specification: - Apache Commons Compress fix for Empty CEN Zip64 Extra Headers fixed in Commons Compress release 1.11 - Apache Ant fix for Empty CEN Zip64 Extra Headers fixed in Ant 1.10.14 - BND issue with writing invalid Extra Headers fixed in BND 5.3 - The maven-bundle-plugin 5.1.5 includes the BND 5.3 patch. If these improved validation checks cause issues for deployed zip or jar files, check how the file was created and whether patches are available from the generating software to resolve the issue. The new validation checks can be disabled by adding `-Djdk.util.zip.disableZip64ExtraFieldValidation=true` to the runtime launcher arguments. Further modification of validations on ZIP64 Extra Fields contained within zip and jar files will be made in the upcoming JDK release. See JDK-8313765. hotspot/runtime: JDK-8311981: JVM May Hang When Using Generational ZGC if a VM Handshake Stalls on Memory The JVM can hang under an uncommon condition that involves the JVM running out of heap memory, the GC just starting a relocation phase to reclaim memory, and a JVM thread-local Handshake asking to relocate an object. core-libs/java.util.regex: JDK-8312976: `java.util.regex.MatchResult` Might Throw `StringIndexOutOfBoundsException` on Regex Patterns Containing Lookaheads and Lookbehinds JDK-8132995 introduced an unintended regression when using instances returned by `java.util.regex.Matcher.toMatchResult()`. This happens on `java.util.regex.Pattern`s containing lookaheads and lookbehinds that, in turn, contain groups. If these are located outside the match, it results in throwing `StringIndexOutOfBoundsException` when accessing these groups. See JDK-8312976 for an example. security-libs/java.security: JDK-8312489: Increase Default Value of the System Property `jdk.jar.maxSignatureFileSize` The system property, `jdk.jar.maxSignatureFileSize`, allows applications to control the maximum size of signature files in a signed JAR. Its default value has been increased from 8000000 bytes (8 MB) to 16000000 bytes (16 MB). JDK-8314960: Added Certigna Root CA Certificate The following root certificate has been added to the cacerts truststore: ``` + Certigna (Dhimyotis) + certignarootca DN: CN=Certigna Root CA, OU=0002 48146308100036, O=Dhimyotis, C=FR ``` ALL FIXED ISSUES, BY COMPONENT AND PRIORITY: client-libs/2d: (P3) JDK-8312555: Ideographic characters aren't stretched by AffineTransform.scale(2, 1) (P4) JDK-8311033: [macos] PrinterJob does not take into account Sides attribute (P4) JDK-8313576: GCC 7 reports compiler warning in bundled freetype 2.13.0 (P4) JDK-8311917: MAP_FAILED definition seems to be obsolete in src/java.desktop/unix/native/common/awt/fontpath.c client-libs/java.awt: (P4) JDK-8312591: GCC 6 build failure after JDK-8280982 client-libs/javax.accessibility: (P3) JDK-8311160: [macOS, Accessibility] VoiceOver: No announcements on JRadioButtonMenuItem and JCheckBoxMenuItem client-libs/javax.sound: (P3) JDK-8312535: MidiSystem.getSoundbank() throws unexpected SecurityException core-libs/java.io: (P4) JDK-8312127: FileDescriptor.sync should temporarily increase parallelism core-libs/java.lang: (P3) JDK-8308609: java/lang/ScopedValue/StressStackOverflow.java fails with "-XX:-VMContinuations" (P4) JDK-8311926: java/lang/ScopedValue/StressStackOverflow.java takes 9mins in tier1 core-libs/java.net: (P3) JDK-8309591: Socket.setOption(TCP_QUICKACK) uses wrong level (P4) JDK-8308184: Launching java with large number of jars in classpath with java.protocol.handler.pkgs system property set can lead to StackOverflowError (P4) JDK-8314517: some tests fail in case ipv6 is disabled on the machine core-libs/java.nio: (P3) JDK-8312180: (bf) MappedMemoryUtils passes incorrect arguments to msync (aix) (P4) JDK-8309475: Test java/foreign/TestByteBuffer.java fails: a problem with msync (aix) core-libs/java.util: (P4) JDK-8313307: java/util/Formatter/Padding.java fails on some Locales core-libs/java.util.concurrent: (P4) JDK-8308047: java/util/concurrent/ScheduledThreadPoolExecutor/BasicCancelTest.java timed out and also had jcmd pipe errors core-libs/java.util.jar: (P2) JDK-8313765: Invalid CEN header (invalid zip64 extra data field size) core-libs/java.util.regex: (P2) JDK-8312976: MatchResult produces StringIndexOutOfBoundsException for groups outside match core-libs/javax.naming: (P3) JDK-8313657: com.sun.jndi.ldap.Connection.cleanup does not close connections on SocketTimeoutErrors (P3) JDK-8314063: The socket is not closed in Connection::createSocket when the handshake failed for LDAP connection core-svc: (P4) JDK-8313602: increase timeout for jdk/classfile/CorpusTest.java hotspot/compiler: (P2) JDK-8313402: C1: Incorrect LoadIndexed value numbering (P2) JDK-8313262: C2: Sinking node may cause required cast to be dropped (P2) JDK-8313248: C2: setScopedValueCache intrinsic exposes nullptr pre-values to store barriers (P2) JDK-8314024: SIGSEGV in PhaseIdealLoop::build_loop_late_post_work due to bad immediate dominator info (P3) JDK-8299658: C1 compilation crashes in LinearScan::resolve_exception_edge (P3) JDK-8312909: C1 should not inline through interface calls with non-subtype receiver (P3) JDK-8313626: C2 crash due to unexpected exception control flow (P3) JDK-8309502: RISC-V: String.indexOf intrinsic may produce misaligned memory loads (P3) JDK-8304954: SegmentedCodeCache fails when using large pages (P4) JDK-8313676: Amend TestLoadIndexedMismatch test to target intrinsic directly (P4) JDK-8312573: Failure during CompileOnly parsing leads to ShouldNotReachHere (P4) JDK-8315051: jdk/jfr/jvm/TestGetEventWriter.java fails with non-JVMCI GCs (P4) JDK-8314618: RISC-V: -XX:MaxVectorSize does not work as expected (P4) JDK-8310268: RISC-V: misaligned memory access in String.Compare intrinsic (P4) JDK-8311862: RISC-V: small improvements to shift immediate instructions (P4) JDK-8311923: TestIRMatching.java fails on RISC-V hotspot/gc: (P3) JDK-8314144: gc/g1/ihop/TestIHOPStatic.java fails due to extra concurrent mark with -Xcomp (P4) JDK-8293114: JVM should trim the native heap (P4) JDK-8311249: Remove unused MemAllocator::obj_memory_range (P4) JDK-8311026: Some G1 specific tests do not set -XX:+UseG1GC hotspot/jfr: (P4) JDK-8311511: Improve description of NativeLibrary JFR event hotspot/jvmti: (P2) JDK-8310211: serviceability/jvmti/thread/GetStackTrace/getstacktr03/getstacktr03.java failing hotspot/runtime: (P2) JDK-8311981: Test gc/stringdedup/TestStringDeduplicationAgeThreshold.java#ZGenerational timed out (P3) JDK-8312394: [linux] SIGSEGV if kernel was built without hugepage support (P3) JDK-8312525: New test runtime/os/TestTrimNative.java#trimNative is failing: did not see the expected RSS reduction (P3) JDK-8314850: SharedRuntime::handle_wrong_method() gets called too often when resolving Continuation.enter (P3) JDK-8312182: THPs cause huge RSS due to thread start timing issue (P3) JDK-8312620: WSL Linux build crashes after JDK-8310233 (P4) JDK-8309889: [s390] Missing return statement after calling jump_to_native_invoker method in generate_method_handle_dispatch. (P4) JDK-8310233: Fix THP detection on Linux (P4) JDK-8312395: Improve assertions in growableArray (P4) JDK-8303815: Improve Metaspace test speed (P4) JDK-8311921: Inform about MaxExpectedDataSegmentSize in case of pthread_create failures on AIX (P4) JDK-8313752: InstanceKlassFlags::print_on doesn't print the flag names (P4) JDK-8310687: JDK-8303215 is incomplete (P4) JDK-8313874: JNI NewWeakGlobalRef throws exception for null arg (P4) JDK-8307766: Linux: Provide the option to override the timer slack (P4) JDK-8313081: MonitoringSupport_lock should be unconditionally initialized after 8304074 (P4) JDK-8314020: Print instruction blocks in byte units (P4) JDK-8310873: Re-enable locked_create_entry symbol check in runtime/NMT/CheckForProperDetailStackTrace.java for RISC-V (P4) JDK-8312585: Rename DisableTHPStackMitigation flag to THPStackMitigation (P4) JDK-8311285: report some fontconfig related environment variables in hs_err file (P4) JDK-8314426: runtime/os/TestTrimNative.java is failing on slow machines (P4) JDK-8313678: SymbolTable can leak Symbols during cleanup (P4) JDK-8312625: Test serviceability/dcmd/vm/TrimLibcHeapTest.java failed: RSS use increased (P4) JDK-8314139: TEST_BUG: runtime/os/THPsInThreadStackPreventionTest.java could fail on machine with large number of cores (P4) JDK-8313691: use close after failing os::fdopen in vmError and ciEnv hotspot/svc: (P4) JDK-8313796: AsyncGetCallTrace crash on unreadable interpreter method pointer (P4) JDK-8314501: Shenandoah: sun/tools/jhsdb/heapconfig/JMapHeapConfigTest.java fails hotspot/svc-agent: (P3) JDK-8314679: SA fails to properly attach to JVM after having just detached from a different JVM (P4) JDK-8314117: RISC-V: Incorrect VMReg encoding in RISCV64Frame.java infrastructure: (P4) JDK-8310171: Bump version numbers for 21.0.1 infrastructure/build: (P4) JDK-8311955: c++filt is now ibm-llvm-cxxfilt when using xlc17 / clang on AIX (P4) JDK-8313707: GHA: Bootstrap sysroots with --variant=minbase (P4) JDK-8313428: GHA: Bump GCC versions for July 2023 updates (P4) JDK-8314262: GHA: Cut down cross-compilation sysroots deeper (P4) JDK-8314730: GHA: Drop libfreetype6-dev transitional package in favor of libfreetype-dev (P4) JDK-8314656: GHA: No need for Debian ports keyring installation after JDK-8313701 (P4) JDK-8313701: GHA: RISC-V should use the official repository for bootstrap (P4) JDK-8310321: make JDKOPT_CHECK_CODESIGN_PARAMS more verbose (P4) JDK-8309746: Reconfigure check should include make/conf/version-numbers.conf (P4) JDK-8315020: The macro definition for LoongArch64 zero build is not accurate. (P4) JDK-8314118: Update JMH devkit to 1.37 other-libs: (P2) JDK-8313312: Add missing classpath exception copyright header security-libs/java.security: (P2) JDK-8314960: Add Certigna Root CA - 2 (P3) JDK-8302017: Allocate BadPaddingException only if it will be thrown (P3) JDK-8308474: DSA does not reset SecureRandom when initSign is called again (P3) JDK-8312489: Increase jdk.jar.maxSignatureFileSize default which is too low for JARs such as WhiteSource/Mend unified agent jar security-libs/javax.crypto: (P2) JDK-8311592: ECKeySizeParameterSpec causes too many exceptions on third party providers security-libs/javax.crypto:pkcs11: (P3) JDK-8309214: sun/security/pkcs11/KeyStore/CertChainRemoval.java fails after 8301154 security-libs/javax.net.ssl: (P4) JDK-8310106: sun.security.ssl.SSLHandshake.getHandshakeProducer() incorrectly checks handshakeConsumers tools/javac: (P3) JDK-8314216: Case enumConstant, pattern compilation fails (P3) JDK-8315534: Incorrect warnings about implicit annotation processing (P3) JDK-8313323: javac -g on a java file which uses unnamed variable leads to ClassFormatError when launching that class (P3) JDK-8314423: Multiple patterns without unnamed variables (P3) JDK-8312619: Strange error message when switching over long (P4) JDK-8312984: javac may crash on a record pattern with too few components tools/jlink: (P3) JDK-8240567: MethodTooLargeException thrown while creating a jlink image tools/jpackage: (P3) JDK-8313904: [macos] All signing tests which verifies unsigned app images are failing (P3) JDK-8308042: [macOS] Developer ID Application Certificate not picked up by jpackage if it contains UNICODE characters (P4) JDK-8309032: jpackage does not work for module projects unless --module-path is specified