RELEASE NOTES FOR: 27 ==================================================================================================== Notes generated: Fri Dec 12 08:39:48 CET 2025 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.concurrent: JDK-8371748: Removal of ThreadPoolExecutor.finalize() The `finalize()` method has been removed from `java.util.concurrent.ThreadPoolExecutor`. `ThreadPoolExecutor.finalize()` was deprecated in JDK 9 as part of deprecating finalization for removal [JEP 421](https://openjdk.org/jeps/421). The method was re-specified in JDK 11 to "do nothing" and deprecated for removal in JDK 18. The removal of this method means that any existing code that extends `ThreadPoolExecutor` and overrides `finalize()` to call `super.finalize()` (or calls `finalize()` directly) will now call `Object.finalize()`. This code may no longer compile as `Object.finalize()` throws `Throwable` whereas the removed `ThreadPoolExecutor.finalize()` did not declare any checked exceptions. Developers are strongly encouraged to stop using finalization but if necessary, the source compatibility issue can be worked around using a *try-catch*. core-libs/java.util:i18n: JDK-8355522: Removal of the `java.locale.useOldISOCodes` System Property Support for the `java.locale.useOldISOCodes` system property in the `java.util.Locale` class has been removed. Originally introduced in JDK 17, this property allowed applications to revert to legacy ISO 639 language codes ("iw" for Hebrew, "ji" for Yiddish, and "in" for Indonesian). It was deprecated in JDK 25 and, starting with JDK 27, specifying this property has no effect and triggers a warning at runtime. Users who still rely on the old codes are encouraged to transition to the current standard codes: "he" for Hebrew, "yi" for Yiddish, and "id" for Indonesian. ALL FIXED ISSUES, BY COMPONENT AND PRIORITY: client-libs/2d: (P4) JDK-8368702: [macosx] Printing text with composite fonts loses font transform (P4) JDK-8167268: StandardGlyphVector.getGlyphMetrics creates metrics with erroneous bounds for characters with no outline (e.g., the space character ' ') client-libs/java.awt: (P3) JDK-8371657: [macosx] Programmatically selecting/deselecting List item triggers an ItemEvent (P4) JDK-8371914: PNG defines in CFLAGS can cause compilation errors with external libpng client-libs/javax.sound: (P4) JDK-8334549: [Sound] Test timed out: javax/sound/sampled/Clip/OpenNonIntegralNumberOfSampleframes.java client-libs/javax.swing: (P4) JDK-5107379: Component orientation in JOptionPane is not proper in Motif L&F. (P4) JDK-4459231: Focus of JTabbedPane(with Scrollable tablayout) changes on change in LookAndFeel (P4) JDK-8042054: JTree.updateUI uses out-of-date item size information (P4) JDK-6726690: SwingUtilities.replaceUI*Map() methods do not remove previously installed maps (P4) JDK-6223700: XP L&F: Non-TopLevel JMenu's painting error core-libs: (P4) JDK-8373389: Two jdk/incubator/vector/ tests fails after JDK-8371446 (P4) JDK-8371446: VectorAPI: Add unit tests for masks from various long values core-libs/java.lang: (P4) JDK-8373517: Revert the macos Tahoe specific change done in JDK-8359830 core-libs/java.lang.foreign: (P4) JDK-8371871: libSharedCloseAgent.cpp crashes VS2019 and older VS2022 compiler core-libs/java.lang:reflect: (P4) JDK-8373125: Add defensive screening of modifiers for Field and Parameter toString() results core-libs/java.net: (P4) JDK-8373362: Http3TestServer should not log an exception stack trace when it is stopping normally (P4) JDK-8373227: Test java/net/httpclient/http2/StreamFlowControlTest.java failed: should sleep time be raised? (P4) JDK-8369950: TLS connection to IPv6 address fails with BCJSSE due to IllegalArgumentException core-libs/java.nio: (P4) JDK-8371718: (sc) Channels.new{Input,Output}Stream can allocate unbounded memory for a socket channel (P4) JDK-8255463: java/nio/channels/spi/SelectorProvider/inheritedChannel/InheritedChannelTest.java failed with ThreadTimeoutException core-libs/java.text: (P4) JDK-8372844: Improve usage of test/jdk/java/text/testlib/TestUtils.java locale methods core-libs/java.util.concurrent: (P4) JDK-8371748: Remove the (empty) ThreadPoolExecutor.finalize() method core-libs/java.util:collections: (P3) JDK-8179918: EnumSet spliterator should report SORTED, ORDERED, NONNULL core-libs/java.util:i18n: (P4) JDK-8355522: Remove the `java.locale.useOldISOCodes` system property core-libs/javax.lang.model: (P4) JDK-8370893: Add SourceVersion.RELEASE_27 core-svc/debugger: (P4) JDK-8373102: com/sun/jdi/MethodInvokeWithTraceOnTest.java can fail with ObjectCollectedException when run with a small heap (P4) JDK-8362083: JDI VirtualMachine/dispose/dispose001 failed with FATAL ERROR in native method: JDWP cannot set thread local storage, jvmtiError=JVMTI_ERROR_WRONG_PHASE(112) (P4) JDK-8372555: Test com/sun/jdi/ExceptionEvents.java failed: ObjectCollectedException core-svc/java.lang.management: (P3) JDK-8369736: Add management interface for AOT cache creation (P3) JDK-8373464: Test JdkManagementCheckSince.java fails after JDK-8369736 (P4) JDK-8373111: Test java/lang/management/MemoryMXBean/MemoryManagement.java timed out core-svc/javax.management: (P4) JDK-8373127: Update nsk/monitoring tests to support virtual thread factory testing hotspot/compiler: (P3) JDK-8373145: [BACKOUT] Remove ThreadLocalAllocBuffer::_reserve_for_allocation_prefetch (P3) JDK-8371603: C2: Missing Ideal optimizations for load and store vectors on SVE (P3) JDK-8354282: C2: more crashes in compiled code because of dependency on removed range check CastIIs (P4) JDK-8372641: [s390x] Test failure TestMergeStores.java (P4) JDK-8367158: C2: create better fill and copy benchmarks, taking alignment into account (P4) JDK-8360192: C2: Make the type of count leading/trailing zero nodes more precise (P4) JDK-8367028: compiler/c2/irTests/TestFloat16ScalarOperations.java failing intermittently because of constant folding (P4) JDK-8364490: Fatal error on large SpecTrapLimitExtraEntries value (P4) JDK-8371968: RISC-V: implement AES CBC intrinsics (P4) JDK-8365732: RISC-V: implement AES CTR intrinsics (P4) JDK-8357551: RISC-V: support CMoveF/D vectorization (P4) JDK-8370846: Support execution of mlvm testing with test thread factory (P4) JDK-8372589: VM crashes on init when NonNMethodCodeHeapSize is set too small and UseTransparentHugePages is enabled (P5) JDK-8370489: Some compiler tests miss the @key randomness hotspot/gc: (P2) JDK-8370198: Test gc/arguments/TestShrinkHeapInSteps.java crashed: assert(left >= right) failed: avoid underflow (P3) JDK-8372498: [genshen] gc/TestAllocHumongousFragment.java#generational causes intermittent SIGSEGV crashes (P3) JDK-8373116: Genshen: arraycopy_work should be always done for arrays in old gen during young concurrent marking (P4) JDK-8319161: GC: Make TestParallelGCThreads use createTestJavaProcessBuilder (P4) JDK-8319326: GC: Make TestParallelRefProc use createTestJavaProcessBuilder (P4) JDK-8373272: Genshen: ShenandoahOldGenerationTest fails after JDK-8373056 (P4) JDK-8373262: Parallel: gc/metaspace/CompressedClassSpaceSizeInJmapHeap.java fails (P4) JDK-8367541: Parallel: Make young and old generation fields nonstatic in ParallelScavengeHeap (P4) JDK-8373087: Parallel: Rename PSGenerationPool to PSOldGenerationPool (P4) JDK-8373421: Parallel: Rename young generation eden and survivor space pool (P4) JDK-8373039: Remove Incorrect Asserts in shenandoahScanRemembered (P4) JDK-8373335: Serial: Clean up SerialHeap members by access specifies (P4) JDK-8373022: serviceability/sa/ClhsdbScanOops.java assumes no GC should occur (P4) JDK-8352914: Shenandoah: Change definition of ShenandoahSharedValue to int32_t to leverage platform atomics (P4) JDK-8373054: Shenandoah: Remove unnecessary BarrierSetNMethod::arm in shenandoahCodeRoots (P4) JDK-8373056: Shenandoah: Remove unnecessary use of ShenandoahAllocRequest.type() (P4) JDK-8373025: test/hotspot/jtreg/gc/cslocker/TestCSLocker.java may deadlock (P4) JDK-8372860: TestCodeCacheUnloadDuringConcCycle fails on ARM32 hotspot/jvmti: (P4) JDK-8371502: serviceability/jvmti/vthread/ThreadListStackTracesTest/ThreadListStackTracesTest.java failing hotspot/runtime: (P4) JDK-8368701: CDS VerifierTest_1A.java failed on machines with 512 GB RAM (P4) JDK-8373293: Change the exception handling in TestNestHostErrorWithMultiThread.java (P4) JDK-8373207: Make DeferredStatic class template constant initializable (P4) JDK-8372098: Move AccessFlags to InstanceKlass (P4) JDK-8366671: Refactor Thread::SpinAcquire and Thread::SpinRelease (P4) JDK-8366272: The os::xxx APIs do not manage errno correctly (P4) JDK-8371409: Wrong lock ordering between FullGCALot_lock and ThreadsLockThrottle_lock/MethodCompileQueue_lock (P4) JDK-8373295: Wrong log tag for UseCompressedOops ergo setting hotspot/svc: (P4) JDK-8370731: Tests in vmTestbase/nsk/monitoring/GarbageCollectorMXBean/CollectionCounters/ failed: OutOfMemoryError hotspot/test: (P4) JDK-8373086: Make isexceeded001.java more robust (P4) JDK-8241329: Support execution of jtreg tests in virtual threads infrastructure: (P2) JDK-8373285: Update JCov for class file version 71 infrastructure/build: (P2) JDK-8373255: Unexpected iobj and ipdb files after JDK-8370438 (P4) JDK-8373113: Fix whitespace in RunTests.gmk (P4) JDK-8372759: Test build/AbsPathsInImage.java fails after JDK-8370438 (P4) JDK-8373443: Update --release 26 symbol information for JDK 26 build 27 (P4) JDK-8373117: Update build doc link in README.md security-libs/javax.net.ssl: (P4) JDK-8356544: Implement additional tests for ciphersuites disabled with wildcards (P4) JDK-8373101: JdkClient and JdkServer test classes ignore namedGroups field security-libs/jdk.security: (P4) JDK-8362658: sun/security/ssl/SSLEngineImpl/* tests duplicate jvm flags (P4) JDK-8367994: test/jdk/sun/security/pkcs11/Signature/ tests pass when they should skip (P4) JDK-8368524: Tests are skipped and shown as passed in test/jdk/sun/security/pkcs11/Cipher/KeyWrap tools/javac: (P3) JDK-8373094: javac may fail because of unattributed break in a loop (P4) JDK-8370894: Add source 27 and target 27 to javac tools/launcher: (P4) JDK-8373270: Clean up unused `CheckSanity` method from java_md_common.c file