RELEASE NOTES: JDK 27

Notes generated: Fri Dec 12 08:39:48 CET 2025

JEPs

None.

RELEASE NOTES

core-libs/java.util.concurrent

Issue Description
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. 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

Issue Description
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.


FIXED ISSUES

client-libs/2d

Priority Bug Summary
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

Priority Bug Summary
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

Priority Bug Summary
P4 JDK-8334549 [Sound] Test timed out: javax/sound/sampled/Clip/OpenNonIntegralNumberOfSampleframes.java

client-libs/javax.swing

Priority Bug Summary
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

Priority Bug Summary
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

Priority Bug Summary
P4 JDK-8373517 Revert the macos Tahoe specific change done in JDK-8359830

core-libs/java.lang.foreign

Priority Bug Summary
P4 JDK-8371871 libSharedCloseAgent.cpp crashes VS2019 and older VS2022 compiler

core-libs/java.lang:reflect

Priority Bug Summary
P4 JDK-8373125 Add defensive screening of modifiers for Field and Parameter toString() results

core-libs/java.net

Priority Bug Summary
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

Priority Bug Summary
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

Priority Bug Summary
P4 JDK-8372844 Improve usage of test/jdk/java/text/testlib/TestUtils.java locale methods

core-libs/java.util.concurrent

Priority Bug Summary
P4 JDK-8371748 Remove the (empty) ThreadPoolExecutor.finalize() method

core-libs/java.util:collections

Priority Bug Summary
P3 JDK-8179918 EnumSet spliterator should report SORTED, ORDERED, NONNULL

core-libs/java.util:i18n

Priority Bug Summary
P4 JDK-8355522 Remove the `java.locale.useOldISOCodes` system property

core-libs/javax.lang.model

Priority Bug Summary
P4 JDK-8370893 Add SourceVersion.RELEASE_27

core-svc/debugger

Priority Bug Summary
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

Priority Bug Summary
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

Priority Bug Summary
P4 JDK-8373127 Update nsk/monitoring tests to support virtual thread factory testing

hotspot/compiler

Priority Bug Summary
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

Priority Bug Summary
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

Priority Bug Summary
P4 JDK-8371502 serviceability/jvmti/vthread/ThreadListStackTracesTest/ThreadListStackTracesTest.java failing

hotspot/runtime

Priority Bug Summary
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

Priority Bug Summary
P4 JDK-8370731 Tests in vmTestbase/nsk/monitoring/GarbageCollectorMXBean/CollectionCounters/ failed: OutOfMemoryError

hotspot/test

Priority Bug Summary
P4 JDK-8373086 Make isexceeded001.java more robust
P4 JDK-8241329 Support execution of jtreg tests in virtual threads

infrastructure

Priority Bug Summary
P2 JDK-8373285 Update JCov for class file version 71

infrastructure/build

Priority Bug Summary
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

Priority Bug Summary
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

Priority Bug Summary
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

Priority Bug Summary
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

Priority Bug Summary
P4 JDK-8373270 Clean up unused `CheckSanity` method from java_md_common.c file