1514 lines
87 KiB
Plaintext
1514 lines
87 KiB
Plaintext
Key:
|
||
|
||
JDK-X - https://bugs.openjdk.java.net/browse/JDK-X
|
||
CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
|
||
|
||
New in release OpenJDK 25.0.3 (2026-04-21):
|
||
===========================================
|
||
Live versions of these release notes can be found at:
|
||
* https://bit.ly/openjdk2503
|
||
|
||
* CVEs
|
||
- CVE-2026-22007
|
||
- CVE-2026-22008
|
||
- CVE-2026-22013
|
||
- CVE-2026-22016
|
||
- CVE-2026-22018
|
||
- CVE-2026-22021
|
||
- CVE-2026-23865
|
||
- CVE-2026-34268
|
||
- CVE-2026-34282
|
||
* Changes
|
||
- JDK-7191877: TEST_BUG: java/rmi/transport/checkLeaseInfoLeak/CheckLeaseLeak.java failing intermittently
|
||
- JDK-8030957: AIX: Implement OperatingSystemMXBean.getSystemCpuLoad() and .getProcessCpuLoad() on AIX
|
||
- JDK-8068378: [TEST_BUG]The java/awt/Modal/PrintDialogsTest/PrintDialogsTest.java instruction need to update
|
||
- JDK-8183336: Better cleanup for jdk/test/java/lang/module/customfs/ModulesInCustomFileSystem.java
|
||
- JDK-8212084: G1: Implement UseGCOverheadLimit
|
||
- JDK-8244336: Restrict algorithms at JCE layer
|
||
- JDK-8246037: Shenandoah: update man pages to mention -XX:+UseShenandoahGC
|
||
- JDK-8255463: java/nio/channels/spi/SelectorProvider/inheritedChannel/InheritedChannelTest.java failed with ThreadTimeoutException
|
||
- JDK-8256289: java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest1.java failed with "RuntimeException: Wrong focus owner: java.awt.Button[button1,41,36,56x23,label=Button1]"
|
||
- JDK-8274082: Wrong test name in jtreg run tag for java/awt/print/PrinterJob/SwingUIText.java
|
||
- JDK-8286258: [Accessibility,macOS,VoiceOver] VoiceOver reads the spinner value wrong and sometime partially
|
||
- JDK-8286865: vmTestbase/vm/mlvm/meth/stress/jni/nativeAndMH/Test.java fails with Out of space in CodeCache
|
||
- JDK-8287062: com/sun/jndi/ldap/LdapPoolTimeoutTest.java failed due to different timeout message
|
||
- JDK-8293484: AArch64: TestUseSHA512IntrinsicsOptionOnSupportedCPU.java fails on CPU with SHA512 feature support
|
||
- JDK-8299304: Test "java/awt/print/PrinterJob/PageDialogTest.java" fails on macOS 13 x64 because the Page Dialog blocks the Toolkit
|
||
- JDK-8307495: Specialize atomic bitset functions for aix-ppc
|
||
- JDK-8313770: jdk/internal/platform/docker/TestSystemMetrics.java fails on Ubuntu
|
||
- JDK-8316274: javax/swing/ButtonGroup/TestButtonGroupFocusTraversal.java fails in Ubuntu 23.10 with Motif LAF
|
||
- JDK-8317838: java/nio/channels/Channels/SocketChannelStreams.java running into timeout (aix)
|
||
- JDK-8318662: Refactor some jdk/java/net/httpclient/http2 tests to JUnit
|
||
- JDK-8320677: Printer tests use invalid '@run main/manual=yesno
|
||
- JDK-8333857: Test sun/security/ssl/SSLSessionImpl/ResumeChecksServer.java failed: Existing session was used
|
||
- JDK-8333871: Check return values of sysinfo
|
||
- JDK-8334928: Test sun/security/ssl/SSLSocketImpl/ReuseAddr.java failed: java.net.BindException: Address already in use
|
||
- JDK-8335646: Nimbus : JLabel not painted with LAF defined foreground color on Ubuntu 24.04
|
||
- JDK-8336695: Update Commons BCEL to Version 6.10.0
|
||
- JDK-8339791: Refactor MiscUndecorated/ActiveAWTWindowTest.java
|
||
- JDK-8341039: compiler/cha/TypeProfileFinalMethod.java fails with assertEquals expected: 0 but was: 2
|
||
- JDK-8342175: MemoryEaterMT fails intermittently with ExceptionInInitializerError
|
||
- JDK-8342401: [TESTBUG] javax/swing/JSpinner/8223788/JSpinnerButtonFocusTest.java test fails in ubuntu 22.04 on SBR Hosts
|
||
- JDK-8342640: GenShen: Silently ignoring ShenandoahGCHeuristics considered poor user-experience
|
||
- JDK-8342659: Test vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects002/referringObjects002.java failed: Class nsk.share.jdi.TestClass1 was not unloaded
|
||
- JDK-8343316: Review and update tests using explicit provider names
|
||
- JDK-8343340: Swapping checking do not work for MetricsMemoryTester failcount
|
||
- JDK-8343474: [updates] Customize README.md to specifics of update project
|
||
- JDK-8344073: Test runtime/cds/appcds/TestParallelGCWithCDS.java#id0 failed
|
||
- JDK-8346154: [XWayland] Some tests fail intermittently in the CI, but not locally
|
||
- JDK-8346962: Test CRLReadTimeout.java fails with -Xcomp on a fastdebug build
|
||
- JDK-8348014: Enhance certificate processing
|
||
- JDK-8349192: jvmti/scenarios/contention/TC05/tc05t001 fails: ERROR: tc05t001.cpp, 281: (waitedThreadCpuTime - waitThreadCpuTime) < (EXPECTED_ACCURACY * 1000000)
|
||
- JDK-8352149: Test java/awt/Frame/MultiScreenTest.java fails: Window list is empty
|
||
- JDK-8353755: Add a helper method to Util - findComponent()
|
||
- JDK-8354244: Use random data in MinMaxRed_Long data arrays
|
||
- JDK-8354469: Keytool exposes the password in plain text when command is piped using | grep
|
||
- JDK-8354894: java/lang/Thread/virtual/Starvation.java timeout on server with high CPUs
|
||
- JDK-8354937: Cleanup some sparc related coding in os_linux
|
||
- JDK-8356548: Use ClassFile API instead of ASM to transform classes in tests
|
||
- JDK-8356868: Not all cgroup parameters are made available
|
||
- JDK-8357277: Update OpenSSL library for interop tests
|
||
- JDK-8357380: java/lang/StringBuilder/RacingSBThreads.java times out with C1
|
||
- JDK-8357390: java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java Test failing on Ubuntu 24.04 Vm Hosts used by Oracle's internal CI system
|
||
- JDK-8357470: src/java.base/share/classes/sun/security/util/Debug.java implement the test for args.toLowerCase
|
||
- JDK-8357570: [macOS] os::Bsd::available_memory() might return too low values
|
||
- JDK-8357591: Re-enable CDS test cases for jvmci after JDK-8345826
|
||
- JDK-8358058: sun/java2d/OpenGL/DrawImageBg.java Test fails intermittently
|
||
- JDK-8358159: Empty mode/padding in cipher transformations
|
||
- JDK-8358529: GenShen: Heuristics do not respond to changes in SoftMaxHeapSize
|
||
- JDK-8358679: [asan] vmTestbase/nsk/jvmti tests show memory issues
|
||
- JDK-8358686: CDS and AOT can cause buffer truncation warning even when logging is disabled
|
||
- JDK-8358735: GenShen: block_start() may be incorrect after class unloading
|
||
- JDK-8358756: [s390x] Test StartupOutput.java crash due to CodeCache size
|
||
- JDK-8358801: javac produces class that does not pass verifier.
|
||
- JDK-8359064: Expose reason for marking nmethod non-entrant to JVMCI client
|
||
- JDK-8359182: Use @requires instead of SkippedException for MaxPath.java
|
||
- JDK-8359388: Stricter checking for cipher transformations
|
||
- JDK-8359418: Test "javax/swing/text/GlyphView/bug4188841.java" failed because the phrase of text pane does not match the instructions
|
||
- JDK-8359472: JVM crashes when attaching a dynamic agent before JVMTI_PHASE_LIVE
|
||
- JDK-8359707: Add classfile modification code to RedefineClassHelper
|
||
- JDK-8359868: Shenandoah: Free threshold heuristic does not use SoftMaxHeapSize
|
||
- JDK-8359978: Test javax/net/ssl/SSLSocket/Tls13PacketSize.java failed again with java.net.SocketException: An established connection was aborted by the software in your host machine
|
||
- JDK-8360049: CodeInvalidationReasonTest.java fails with ZGC on AArch64
|
||
- JDK-8360160: ubuntu-22-04 machine is failing client tests
|
||
- JDK-8360169: Problem list CodeInvalidationReasonTest.java on linux-riscv64 until JDK-8360168 is fixed
|
||
- JDK-8360271: String.indexOf intrinsics fail with +EnableX86ECoreOpts and -CompactStrings
|
||
- JDK-8360395: sun/security/tools/keytool/i18n.java user country is current user location instead of the language
|
||
- JDK-8360539: DTLS handshakes fails due to improper cookie validation logic
|
||
- JDK-8360562: sun/security/tools/keytool/i18n.java add an ability to add comment for failures
|
||
- JDK-8360702: runtime/Thread/AsyncExceptionTest.java timed out
|
||
- JDK-8360882: Tests throw SkippedException when they should fail
|
||
- JDK-8361067: Test ExtraButtonDrag.java requires frame.dispose in finally block
|
||
- JDK-8361106: [TEST] com/sun/net/httpserver/Test9.java fails with java.nio.file.FileSystemException
|
||
- JDK-8361363: ShenandoahAsserts::print_obj() does not work for forwarded objects and UseCompactObjectHeaders
|
||
- JDK-8361381: GlyphLayout behavior differs on JDK 11+ compared to JDK 8
|
||
- JDK-8361492: [IR Framework] Has too restrictive regex for load and store
|
||
- JDK-8361521: BogusFocusableWindowState.java fails with StackOverflowError on Linux
|
||
- JDK-8361530: Test javax/swing/GraphicsConfigNotifier/StalePreferredSize.java timed out
|
||
- JDK-8361613: System.console() should only be available for interactive terminal
|
||
- JDK-8361894: sun/security/krb5/config/native/TestDynamicStore.java ensure that the test is run with sudo
|
||
- JDK-8362284: RISC-V: cleanup NativeMovRegMem
|
||
- JDK-8362979: C2 fails with unexpected node in SuperWord truncation: CmpLTMask, RoundF
|
||
- JDK-8363950: Incorrect jtreg header in TestLayoutVsICU.java
|
||
- JDK-8364373: Transform Affine transformations
|
||
- JDK-8364465: Enhance behavior of some intrinsics
|
||
- JDK-8364580: Test compiler/vectorization/TestSubwordTruncation.java fails on platforms without RoundF/RoundD
|
||
- JDK-8364741: [asan] runtime/ErrorHandling/PrintVMInfoAtExitTest.java fails because output differs slightly
|
||
- JDK-8364756: JFR: Improve slow tests
|
||
- JDK-8364936: Shenandoah: Switch nmethod entry barriers to conc_instruction_and_data_patch
|
||
- JDK-8365065: cancelled ForkJoinPool tasks no longer throw CancellationException
|
||
- JDK-8365184: sun/tools/jhsdb/HeapDumpTestWithActiveProcess.java Re-enable SerialGC flag on debuggee process
|
||
- JDK-8365305: The ARIA role ‘contentinfo’ is not valid for the element <footer>
|
||
- JDK-8365398: TEST_BUG: java/rmi/transport/checkLeaseInfoLeak/CheckLeaseLeak.java failing intermittently
|
||
- JDK-8365526: Crash with null Symbol passed to SystemDictionary::resolve_or_null
|
||
- JDK-8365570: C2 fails assert(false) failed: Unexpected node in SuperWord truncation: CastII
|
||
- JDK-8365776: Convert JShell tests to use JUnit instead of TestNG
|
||
- JDK-8365861: test/jdk/sun/security/pkcs11/Provider/ tests skipped without SkippedException
|
||
- JDK-8365972: JFR: ThreadDump and ClassLoaderStatistics events may cause back to back rotations
|
||
- JDK-8366082: Improve queue size computation in CPU-time sampler
|
||
- JDK-8366128: jdk/jdk/nio/zipfs/TestPosix.java::testJarFile uses wrong file
|
||
- JDK-8366182: Some PKCS11Tests are being skipped when they shouldn't
|
||
- JDK-8366261: Provide utility methods for sun.security.util.Password
|
||
- JDK-8366278: Form control element <select> has no associated label
|
||
- JDK-8366369: Add @requires linux for GTK L&F tests
|
||
- JDK-8366486: Test jdk/jfr/event/profiling/TestCPUTimeSampleMultipleRecordings.java is timing out
|
||
- JDK-8366733: Re-examine older java.text NF, DF, and DFS serialization tests
|
||
- JDK-8366747: RISC-V: Improve VerifyMethodHandles for method handle linkers
|
||
- JDK-8366817: test/jdk/javax/net/ssl/TLSCommon/interop/JdkProcServer.java and JdkProcClient.java should not delete logs
|
||
- JDK-8366874: Test gc/arguments/TestParallelGCErgo.java fails with UseTransparentHugePages
|
||
- JDK-8366878: Improve flags of compiler/loopopts/superword/TestAlignVectorFuzzer.java
|
||
- JDK-8366908: Use a different class for testing JDK-8351654
|
||
- JDK-8366938: Test runtime/handshake/HandshakeTimeoutTest.java crashed
|
||
- JDK-8366951: Test runtime/logging/StressAsyncUL.java is timing out
|
||
- JDK-8367135: Test compiler/loopstripmining/CheckLoopStripMining.java needs internal timeouts adjusted
|
||
- JDK-8367271: Add parsing tests to DateFormat JMH benchmark
|
||
- JDK-8367278: Test compiler/startup/StartupOutput.java timed out after completion on Windows
|
||
- JDK-8367302: New test jdk/jfr/event/profiling/TestCPUTimeSampleQueueAutoSizes.java from JDK-8366082 is failing
|
||
- JDK-8367371: Remove @requires vm.opt.UseLargePages from InternSharedString.java test
|
||
- JDK-8367372: Test `test/hotspot/jtreg/gc/TestObjectAlignmentCardSize.java` fails on 32 bit systems
|
||
- JDK-8367463: Improved Arena allocations
|
||
- JDK-8367583: sun/security/util/AlgorithmConstraints/InvalidCryptoDisabledAlgos.java fails after JDK-8244336
|
||
- JDK-8367772: Refactor createUI in PassFailJFrame
|
||
- JDK-8367784: java/awt/Focus/InitialFocusTest/InitialFocusTest1.java failed with Wrong focus owner
|
||
- JDK-8367862: debug.cpp: Do not print help message for methods ifdef'd out
|
||
- JDK-8367901: Calendar.roll(hour, 24) returns wrong result
|
||
- JDK-8367994: test/jdk/sun/security/pkcs11/Signature/ tests pass when they should skip
|
||
- JDK-8368029: Several tests in httpserver/simpleserver should throw SkipException
|
||
- JDK-8368182: AOT cache creation fails with class defined by JNI
|
||
- JDK-8368328: CompactNumberFormat.clone does not produce independent instances
|
||
- JDK-8368335: Refactor the rest of Locale TestNG based tests to JUnit
|
||
- JDK-8368498: Use JUnit instead of TestNG for jdk_text tests
|
||
- JDK-8368500: ContextClassLoader cannot be reset on threads in ForkJoinPool.commonPool()
|
||
- JDK-8368551: Core dump warning may be confusing
|
||
- JDK-8368625: com/sun/net/httpserver/ServerStopTerminationTest.java fails intermittently
|
||
- JDK-8368677: acvp test should throw SkippedException when no ACVP-Server available
|
||
- JDK-8368683: [process] Increase jtreg debug output maxOutputSize for TreeTest
|
||
- JDK-8368754: runtime/cds/appcds/SignedJar.java log regex is too strict
|
||
- JDK-8368787: Error reporting: hs_err files should show instructions when referencing code in nmethods
|
||
- JDK-8368866: compiler/codecache/stress/UnexpectedDeoptimizationTest.java intermittent timed out
|
||
- JDK-8368882: NPE during text drawing on machine with JP locale
|
||
- JDK-8368885: NMT CommandLine tests can check for error better
|
||
- JDK-8368892: Make JEditorPane/TestBrowserBGColor.java headless
|
||
- JDK-8369032: Add test to ensure serialized ICC_Profile stores only necessary optional data
|
||
- JDK-8369050: DecimalFormat Rounding Errors for Fractional Ties Near Zero
|
||
- JDK-8369227: Virtual thread stuck in PARKED state
|
||
- JDK-8369255: Assess and remedy any unsafe usage of the Semaphores used by JFR
|
||
- JDK-8369282: Distrust TLS server certificates anchored by Chunghwa ePKI Root CA
|
||
- JDK-8369335: Two sun/java2d/OpenGL tests fail on Windows after JDK-8358058
|
||
- JDK-8369505: jhsdb jstack cannot handle continuation stub
|
||
- JDK-8369516: Delete duplicate imaging test
|
||
- JDK-8369575: Enhance crypto algorithm support
|
||
- JDK-8369804: TestGenerators.java fails with IllegalArgumentException: bound must be greater than origin
|
||
- JDK-8369851: Remove darcy author tags from langtools tests
|
||
- JDK-8369858: Remove darcy author tags from jdk tests
|
||
- JDK-8369881: C2: Unexpected node in SuperWord truncation: ReverseBytesS, ReverseBytesUS
|
||
- JDK-8369911: Test sun/java2d/marlin/ClipShapeTest.java#CubicDoDash, #Cubic and #Poly fail intermittent
|
||
- JDK-8369991: Thread blocking during JFR emergency dump must be in safepoint safe state
|
||
- JDK-8370036: TestJhsdbJstackWithVirtualThread.java fails when run with -showversion
|
||
- JDK-8370064: Test runtime/NMT/CheckForProperDetailStackTrace.java fails on Windows when using stripped pdb files
|
||
- JDK-8370197: Add missing @Override annotations in com.sun.beans package
|
||
- JDK-8370201: Test serviceability/sa/TestJhsdbJstackWithVirtualThread.java fails due to VM warnings
|
||
- JDK-8370203: Add jcmd AOT.end_recording diagnostic command
|
||
- JDK-8370240: [PPC64] jhsdb jstack cannot handle continuation stub
|
||
- JDK-8370242: JFR: Clear event reference eagerly when using EventStream
|
||
- JDK-8370244: [PPC64] Several vector tests fail on Power8
|
||
- JDK-8370325: G1: Disallow GC for TLAB allocation
|
||
- JDK-8370378: Some compiler tests inadvertently exclude particular platforms
|
||
- JDK-8370393: Cleanup handling of ancient Windows versions from GetJavaProperties java_props_md
|
||
- JDK-8370405: C2: mismatched store from MergeStores wrongly scalarized in allocation elimination
|
||
- JDK-8370492: [Linux] Update cpu shares to cpu.weight mapping function
|
||
- JDK-8370511: test/jdk/javax/swing/JSlider/bug4382876.java does not release previously pressed keys
|
||
- JDK-8370529: Enhance Path Factories Redux
|
||
- JDK-8370572: Cgroups hierarchical memory limit is not honored after JDK-8322420
|
||
- JDK-8370579: PPC: fix inswri immediate argument order
|
||
- JDK-8370615: Improve Kerberos credentialing
|
||
- JDK-8370636: com/sun/jdi/TwoThreadsTest.java should wait for completion of all threads
|
||
- JDK-8370646: TestLargeUTF8Length.java needs lots of memory
|
||
- JDK-8370649: Add intermittent tag for gc/shenandoah/generational/TestOldGrowthTriggers.java
|
||
- JDK-8370708: RISC-V: Add VerifyStackAtCalls
|
||
- JDK-8370730: Test serviceability/attach/EarlyDynamicLoad/EarlyDynamicLoad.java needs to be resilient about warnings
|
||
- JDK-8370732: Use WhiteBox.getWhiteBox().fullGC() to provoking gc for nsk/jvmti tests
|
||
- JDK-8370887: DelayScheduler.replace method may break the 4-ary heap in certain scenarios
|
||
- JDK-8370905: Update vm.defmeth tests to use virtual threads
|
||
- JDK-8370942: test/jdk/java/security/Provider/NewInstance.java and /test/jdk/java/security/cert/CertStore/NoLDAP.java may skip without notifying
|
||
- JDK-8370966: Create regression test for the hierarchical memory limit fix in JDK-8370572
|
||
- JDK-8370986: Enhance Zip file reading
|
||
- JDK-8370995: Enhance ZipFile usage
|
||
- JDK-8371014: Dump JFR recording on CrashOnOutOfMemoryError is incorrectly implemented
|
||
- JDK-8371103: vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t006/TestDescription.java failing
|
||
- JDK-8371262: sun/security/pkcs11/Cipher/KeyWrap tests may silently skip
|
||
- JDK-8371316: Adjust assertion (GC pause time cannot be smaller than the sum of each phase) in G1GCPhaseTimes::print
|
||
- JDK-8371349: Update NSS library to 3.117
|
||
- JDK-8371364: Refactor javax/swing/JFileChooser/FileSizeCheck.java to use Util.findComponent()
|
||
- JDK-8371365: Update javax/swing/JFileChooser/bug4759934.java to use Util.findComponent()
|
||
- JDK-8371366: java/net/httpclient/whitebox/RawChannelTestDriver.java fails intermittently in jtreg timeout
|
||
- JDK-8371368: SIGSEGV in JfrVframeStream::next_vframe() on arm64
|
||
- JDK-8371383: Test sun/security/tools/jarsigner/DefaultOptions.java failed due to CertificateNotYetValidException
|
||
- JDK-8371385: compiler/escapeAnalysis/TestRematerializeObjects.java fails in case of -XX:-UseUnalignedAccesses
|
||
- JDK-8371420: Still sporadic failures of gc/TestAlwaysPreTouchBehavior.java#<gcname> on Linux after JDK-8359104
|
||
- JDK-8371485: ProblemList awt/Mixing/AWT_Mixing/JTableInGlassPaneOverlapping.java for linux
|
||
- JDK-8371559: Intermittent timeouts in test javax/net/ssl/Stapling/HttpsUrlConnClient.java
|
||
- JDK-8371608: Jtreg test jdk/internal/vm/Continuation/Fuzz.java sometimes fails with (fast)debug binaries
|
||
- JDK-8371759: Add missing @Override annotations in com.sun.imageio package
|
||
- JDK-8371769: TestMemoryInvisibleParent.java fails with java.nio.file.AccessDeniedException
|
||
- JDK-8371830: Enhance certificate chain validation
|
||
- JDK-8371854: Shenandoah: Simplify WALK_FORWARD_IN_BLOCK_START use
|
||
- JDK-8371864: GaloisCounterMode.implGCMCrypt0 AVX512/AVX2 intrinsics stubs cause AES-GCM encryption failure for certain payload sizes
|
||
- JDK-8371895: Lower GCTimeLimit in TestUseGCOverheadLimit.java
|
||
- JDK-8371935: Enhance key generation
|
||
- JDK-8371944: AOT configuration is corrupted when app closes System.out
|
||
- JDK-8371948: TestStackOverflowDuringInit.java fails xss too small on linux-aarch64
|
||
- JDK-8371966: RISC-V: Incorrect pointer dereference in TemplateInterpreterGenerator::generate_native_entry
|
||
- JDK-8371967: Add Visual Studio 2026 to build toolchain for Windows
|
||
- JDK-8371978: tools/jar/ReproducibleJar.java fails on XFS
|
||
- JDK-8372012: java/nio/file/attribute/BasicFileAttributeView/SetTimesNanos.java should check ability to create links
|
||
- JDK-8372046: compiler/floatingpoint/TestSubNodeFloatDoubleNegation.java fails IR verification
|
||
- JDK-8372048: Performance improvement on Linux remote desktop
|
||
- JDK-8372110: GenShen: Fix erroneous assert
|
||
- JDK-8372120: Add missing sound keyword to MIDI tests
|
||
- JDK-8372147: ConnectionFlowControlTest should use HttpResponse.connectionLabel()
|
||
- JDK-8372321: TestBackToBackSensitive fails intermittently after JDK-8365972
|
||
- JDK-8372348: Adjust some UL / JFR string deduplication output messages
|
||
- JDK-8372412: Increase buffer size for ring-buffer events in CollectedHeap
|
||
- JDK-8372441: JFR: Improve logging of TestBackToBackSensitive
|
||
- JDK-8372534: Update Libpng to 1.6.51
|
||
- JDK-8372586: Crashes on ppc64(le) after JDK-8371368
|
||
- JDK-8372589: VM crashes on init when NonNMethodCodeHeapSize is set too small and UseTransparentHugePages is enabled
|
||
- JDK-8372591: assert(!current->cont_fastpath() || freeze.check_valid_fast_path()) failed
|
||
- JDK-8372609: Bug4944439 does not enforce locale correctly
|
||
- JDK-8372661: Add a null-safe static factory method to "jdk.test.lib.net.SimpleSSLContext"
|
||
- JDK-8372704: ThreadMXBean.getThreadUserTime may return total time
|
||
- JDK-8372710: Update ProcessBuilder/Basic regex
|
||
- JDK-8372733: GHA: Bump to Ubuntu 24.04
|
||
- JDK-8372756: Mouse additional buttons and horizontal scrolling are broken on XWayland GNOME >= 47 after JDK-8351907
|
||
- JDK-8372835: WorkQueue::push is missing an acquire-fence
|
||
- JDK-8372857: Improve debuggability of java/rmi/server/RemoteServer/AddrInUse.java test
|
||
- JDK-8372860: TestCodeCacheUnloadDuringConcCycle fails on ARM32
|
||
- JDK-8372977: Unnecessary gthread-2.0 loading
|
||
- JDK-8372988: Test runtime/Nestmates/membership/TestNestHostErrorWithMultiThread.java failed: Unexpected interrupt
|
||
- JDK-8373021: aarch64: MacroAssembler::arrays_equals reads out of bounds
|
||
- JDK-8373101: JdkClient and JdkServer test classes ignore namedGroups field
|
||
- JDK-8373106: JFR suspend/resume deadlock on macOS in pthreads library
|
||
- JDK-8373290: Update FreeType to 2.14.1
|
||
- JDK-8373429: gc/g1/TestCodeCacheUnloadDuringConcCycle fails on various platforms
|
||
- JDK-8373476: (tz) Update Timezone Data to 2025c
|
||
- JDK-8373485: JFR Crash during sampling: assert(jt->has_last_Java_frame()) failed: invariant
|
||
- JDK-8373525: C2: assert(_base == Long) failed: Not a Long
|
||
- JDK-8373537: Migrate "test/jdk/com/sun/net/httpserver/" to null-safe "SimpleSSLContext" methods
|
||
- JDK-8373593: Support latest VS2026 MSC_VER in abstract_vm_version.cpp
|
||
- JDK-8373623: Refactor Serialization tests for Records to JUnit
|
||
- JDK-8373630: r18_tls should not be modified on Windows AArch64
|
||
- JDK-8373632: Some sound tests failing in CI due to lack of sound key
|
||
- JDK-8373704: Improve "SocketException: Protocol family unavailable" message
|
||
- JDK-8373716: Refactor further java/util tests from TestNG to JUnit
|
||
- JDK-8373727: New XBM images parser regression: only the first line of the bitmap array is parsed
|
||
- JDK-8373793: TestDynamicStore.java '/manual' disables use of '/timeout'
|
||
- JDK-8373807: test/jdk/java/net/httpclient/websocket/DummyWebSocketServer.java getURI() uses "localhost"
|
||
- JDK-8373832: Test java/lang/invoke/TestVHInvokerCaching.java tests nothing
|
||
- JDK-8373869: Refactor java/net/httpclient/ThrowingPushPromises*.java tests to use JUnit5
|
||
- JDK-8373931: Test javax/sound/sampled/Clip/AutoCloseTimeCheck.java timed out
|
||
- JDK-8373946: Synth ProgressBarUI implementation confuses background painting with border painting
|
||
- JDK-8373984: Check for macos 11 in CGraphicsDevice.m can be removed
|
||
- JDK-8373998: RISC-V: simple optimization of ConvHF2F
|
||
- JDK-8374056: RISC-V: Fix argument passing for the RiscvFlushIcache::flush
|
||
- JDK-8374178: Missing include in systemDictionary.cpp after JDK-8365526
|
||
- JDK-8374433: java/util/Locale/PreserveTagCase.java does not run any tests
|
||
- JDK-8374434: Several JShell tests report JUnit discovery warnings
|
||
- JDK-8374525: RISC-V: Several masked float16 vector operations are not supported
|
||
- JDK-8374555: No need for visible input warning in s.s.u.Password when not reading from System.in
|
||
- JDK-8374557: Enhance TLS connection handling
|
||
- JDK-8374642: EscapeHash macro fails with GNU make 4.3 and 4.4
|
||
- JDK-8374644: Regression in GZIPInputStream performance after JDK-7036144
|
||
- JDK-8374711: Hotspot runtime/CommandLine/OptionsValidation/TestOptionsWithRanges fails without printing the option name
|
||
- JDK-8374872: Cleanup outdated SAP AG copyright header info
|
||
- JDK-8374875: Improve perfMemory warning about 'Insufficient space for shared memory file'
|
||
- JDK-8375057: Update HarfBuzz to 12.3.2
|
||
- JDK-8375063: Update Libpng to 1.6.54
|
||
- JDK-8375094: RISC-V: Fix client builds after JDK-8368732
|
||
- JDK-8375231: Refactor util/ServiceLoader tests to use JUnit
|
||
- JDK-8375232: Refactor util/StringJoiner tests to use JUnit
|
||
- JDK-8375233: Refactor util/Vector tests to use JUnit
|
||
- JDK-8375311: Some builds are missing debug helpers
|
||
- JDK-8375530: PPC64: incorrect quick verify_method_data_pointer check causes poor performance in debug build
|
||
- JDK-8375549: ConcurrentModificationException if jdk.crypto.disabledAlgorithms has multiple entries with known oid
|
||
- JDK-8375598: VM crashes with "assert((labs(val) & 0xFFFFFFFF00000000) == 0 || dest == (address)-1) failed: must be 32bit offset or -1" when using too high value for NonNMethodCodeHeapSize
|
||
- JDK-8375657: RISC-V: Need to check size in SharedRuntime::is_wide_vector
|
||
- JDK-8375742: Test java/lang/invoke/MethodHandleProxies/Driver.java does not run Unnamed.java
|
||
- JDK-8375963: [25u] Set designator DEFAULT_PROMOTED_VERSION_PRE=ea in jdk25u-dev
|
||
- JDK-8375999: com/sun/jndi/ldap/LdapPoolTimeoutTest.java fails sporadically on Windows
|
||
- JDK-8376572: RISC-V: Interpreter: Load array index as signed int
|
||
- JDK-8376688: Gtest os.attempt_reserve_memory_between_small_range_fill_hole_vm fails on AIX 7.3
|
||
- JDK-8376889: Enhance JfrRecorder::on_create_vm_3() assert output
|
||
- JDK-8377347: jdk/jfr/event/gc/detailed/TestZAllocationStallEvent.java intermittent OOME
|
||
- JDK-8377509: Add licenses for gcc 14.2.0
|
||
- JDK-8377526: Update Libpng to 1.6.55
|
||
- JDK-8377811: [25u] G1: Optional Evacuations may evacuate pinned objects
|
||
- JDK-8377898: Hotspot build on AIX with unused-functions warning reports some unused functions
|
||
- JDK-8377905: gcc.md included with every build
|
||
- JDK-8378113: Add sun/java2d/OpenGL/ScaleParamsOOB.java to the ProblemList.txt file
|
||
- JDK-8378218: MSYS2 reports cygwin triplet causing bash configure failure
|
||
- JDK-8378353: [PPC64] StringCoding.countPositives causes errors when the length is not a proper 32 bit int
|
||
- JDK-8378623: Use unique font names in FormatCharAdvanceTest
|
||
- JDK-8378631: Update Zlib Data Compression Library to Version 1.3.2
|
||
- JDK-8378823: AIX build fails after zlib updated by JDK-8378631
|
||
- JDK-8378853: [25u] Make backport of JDK-8244336 comply with differences in CSR
|
||
- JDK-8379035: (tz) Update Timezone Data to 2026a
|
||
- JDK-8379158: Update FreeType to 2.14.2
|
||
- JDK-8379256: Update GIFlib to 6.1.1
|
||
- JDK-8380078: Update GIFlib to 6.1.2
|
||
- JDK-8380959: Update Libpng to 1.6.56
|
||
- JDK-8382047: Update Libpng to 1.6.57
|
||
- JDK-8382438: [25u] Remove designator DEFAULT_PROMOTED_VERSION_PRE=ea for release 25.0.3
|
||
|
||
Notes on individual issues:
|
||
===========================
|
||
|
||
security-libs/javax.net.ssl:
|
||
|
||
JDK-8369282: Distrust TLS server certificates anchored by Chunghwa ePKI Root CA
|
||
===============================================================================
|
||
In accordance with similar plans recently announced by Google and
|
||
Mozilla, the JDK will not trust Transport Layer Security (TLS)
|
||
certificates issued after the 17th of March 2026 which are anchored by
|
||
Chungwa root certificates.
|
||
|
||
Certificates issued on or before the 17th of March, 2026 will continue
|
||
to be trusted until they expire.
|
||
|
||
If a server's certificate chain is anchored by an affected
|
||
certificate, attempts to negotiate a TLS session will fail with an
|
||
Exception that indicates the trust anchor is not trusted. For example,
|
||
|
||
"TLS server certificate issued after 2026-03-17 and anchored by a
|
||
distrusted legacy Chungwa root CA: OU=ePKI Root Certification
|
||
Authority, O="Chunghwa Telecom Co.", Ltd. C=TW"
|
||
|
||
To check whether a certificate in a JDK keystore is affected by this
|
||
change, you can the `keytool` utility:
|
||
|
||
keytool -v -list -alias <your_server_alias> -keystore <your_keystore_filename>
|
||
|
||
If any of the certificates in the chain are affected by this change,
|
||
then you will need to update the certificate or contact the
|
||
organisation responsible for managing the certificate.
|
||
|
||
These restrictions apply to the following Chungwa root certificates
|
||
included in the JDK:
|
||
|
||
Alias name: chunghwaepkirootca
|
||
OU=ePKI Root Certification Authority
|
||
O="Chunghwa Telecom Co., Ltd."
|
||
C=TW
|
||
SHA256:A6:F4:DC:63:A2:4B:FD:CF:54:EF:2A:6A:08:2A:0A:72:DE:35:80:3E:2F:F5:FF:52:7A:E5:D8:72:06:DF:D5
|
||
|
||
Users can, *at their own risk*, remove this restriction by modifying
|
||
the `java.security` configuration file (or override it by using the
|
||
`java.security.properties` system property) so "CHUNGWA_TLS" is no
|
||
longer listed in the `jdk.security.caDistrustPolicies` security
|
||
property.
|
||
|
||
hotspot/jfr:
|
||
|
||
JDK-8365972: JFR: ThreadDump and ClassLoaderStatistics events may cause back to back rotations
|
||
==============================================================================================
|
||
In previous OpenJDK releases, the `jdk.ThreadDump` and
|
||
`jdk.ClassLoaderStatistics` events were written at the beginning of a
|
||
new file created by a file rotation. However, in applications with
|
||
many threads (typically more than a thousand), deep Java stacks
|
||
(typically more than three hundred frames) or many class loaders
|
||
(typically hundreds of thousands), the size of these events alone
|
||
could trigger a further file rotation within one second. This causes
|
||
other relevant data to be flushed out very quickly (e.g. about fifteen
|
||
seconds if using the default 250MB max file size). In this release,
|
||
these events are only written when a recording starts and at the end
|
||
of a file rotation.
|
||
|
||
security-libs/java.security:
|
||
|
||
JDK-8244336: Restrict algorithms at JCE layer
|
||
=============================================
|
||
A security property named `jdk.crypto.disabledAlgorithms` has been
|
||
added that can be used to disable JCE/JCA cryptographic services. The
|
||
property accepts a comma-separated list of services, specified as
|
||
Service.AlgorithName. The current list of supported services is
|
||
`Cipher`, `KeyStore`, `MessageDigest` and `Signature`. Algorithms
|
||
should be drawn from those specified by the Java Security Standard
|
||
Algorithm Names Specification [0]. For example:
|
||
|
||
jdk.crypto.disabledAlgorithms=Cipher.RSA/ECB/PKCS1Padding, MessageDigest.MD2
|
||
|
||
would disable the RSA cipher when used with the ECB cipher algorithm
|
||
mode and PKCS #1 algorithm padding, and the MD2 message digest
|
||
algorithm.
|
||
|
||
The default value for this security property is empty, which means
|
||
that no algorithms are disabled out-of-the-box. The value of the
|
||
security property specified in `java.security` can be overridden by
|
||
specifying a system property of the same name,
|
||
`jdk.crypto.disabledAlgorithms`. With the above example in place in
|
||
`java.security`, running `java` as:
|
||
|
||
$ java -Djdk.crypto.disabledAlgorithms=
|
||
|
||
would cause these algorithms to be enabled for that run of the Java
|
||
virtual machine.
|
||
|
||
[0] https://docs.oracle.com/en/java/javase/25/docs/specs/security/standard-names.html
|
||
|
||
JDK-8354469: Keytool exposes the password in plain text when command is piped using | grep
|
||
==========================================================================================
|
||
The `keytool` and `jarsigner` commands read passwords using the system
|
||
console with echoing disabled to avoid them being displayed on screen.
|
||
However, the system console is usually only available when both the
|
||
standard input and standard output have *not* been redirected. In
|
||
previous OpenJDK releases, running these tools with input or output
|
||
redirected would cause the password to be echoed to the screen in
|
||
plain text. With this release, echoing no longer takes place in such
|
||
scenarios when using these tools or the JAAS `TextCallbackHandler`
|
||
API.
|
||
|
||
hotspot/gc:
|
||
|
||
JDK-8212084: G1: Implement UseGCOverheadLimit
|
||
=============================================
|
||
In this release, the G1 garbage collector now respects the values of
|
||
`GCTimeLimit` and `GCHeapFreeLimit`. The garbage collector will throw
|
||
an `OutOfMemoryException` (OOME) when the garbage collection overhead
|
||
is more than `GCTimeLimit` percent (default: 98%) and the free Java
|
||
heap is less than `GCHeapFreeLimit` (default: 2%) for five consecutive
|
||
garbage collections.
|
||
|
||
This feature is enabled by default. It may be disabled by specifying
|
||
the `-XX:-UseGCOverheadLimit` option. The implementation mirrors the
|
||
functionality already provided by the parallel garbage collector,
|
||
though there may be differences in the exact conditions when an OOME
|
||
is triggered, due to differences in the way the collectors calculate
|
||
the collection overhead and free Java heap.
|
||
|
||
New in release OpenJDK 25.0.2 (2026-01-20):
|
||
===========================================
|
||
|
||
* CVEs
|
||
- CVE-2026-21925
|
||
- CVE-2026-21932
|
||
- CVE-2026-21933
|
||
- CVE-2026-21945
|
||
* Changes
|
||
- JDK-8023263: [TESTBUG] Test closed/java/awt/Focus/InactiveWindowTest/InactiveFocusRace fails due to not enough time to initialize graphic components
|
||
- JDK-8162380: [TEST_BUG] MouseEvent/.../AltGraphModifierTest.java has only "Fail" button
|
||
- JDK-8201778: Speed up test javax/net/ssl/DTLS/PacketLossRetransmission.java
|
||
- JDK-8265429: Improve GCM encryption
|
||
- JDK-8277444: Data race between JvmtiClassFileReconstituter::copy_bytecodes and class linking
|
||
- JDK-8279005: sun/tools/jstat tests do not check for test case exit codes after JDK-8245129
|
||
- JDK-8304811: vmTestbase/vm/mlvm/indy/func/jvmti/stepBreakPopReturn/INDIFY_Test.java fails with JVMTI_ERROR_TYPE_MISMATCH
|
||
- JDK-8305567: serviceability/tmtools/jstat/GcTest01.java failed utils.JstatGcResults.assertConsistency
|
||
- JDK-8317801: java/net/Socket/asyncClose/Race.java fails intermittently (aix)
|
||
- JDK-8320836: jtreg gtest runs should limit heap size
|
||
- JDK-8325766: Extend CertificateBuilder to create trust and end entity certificates programmatically
|
||
- JDK-8333526: Restructure java/nio/channels/DatagramChannel/StressNativeSignal.java to a fail fast exception handling policy
|
||
- JDK-8333783: java/nio/channels/FileChannel/directio/DirectIOTest.java is unstable with AV software
|
||
- JDK-8334238: Enhance AddLShortcutTest jpackage test
|
||
- JDK-8335986: Test javax/swing/JCheckBox/4449413/bug4449413.java fails on Windows 11 x64 because RBMenuItem's and CBMenuItem's checkmark on the left side are not visible
|
||
- JDK-8341496: Improve JMX connections
|
||
- JDK-8343218: Add option to disable allocating interface and abstract classes in non-class metaspace
|
||
- JDK-8343546: GHA: Cache required dependencies in master-branch workflow
|
||
- JDK-8345810: Custom launchers must be linked with pthread to avoid dynamic linker issues
|
||
- JDK-8346753: Test javax/swing/JMenuItem/RightLeftOrientation/RightLeftOrientation.java fails on Windows Server 2025 x64 because the icons of RBMenuItem and CBMenuItem are not visible in Nimbus LookAndFeel
|
||
- JDK-8346839: [TESTBUG] "java/awt/textfield/setechochartest4/setechochartest4.java" failed because the test frame disappears on clicking "Click Several Times" button
|
||
- JDK-8346884: Add since checker test to jdk.editpad
|
||
- JDK-8346952: GetGraphicsStressTest.java fails: Native resources unavailable
|
||
- JDK-8347277: java/awt/Focus/ComponentLostFocusTest.java fails intermittently
|
||
- JDK-8349188: LineBorder does not scale correctly
|
||
- JDK-8350621: Code cache stops scheduling GC
|
||
- JDK-8351487: [ubsan] jvmti.h runtime error: load of value which is not a valid value
|
||
- JDK-8352016: Improve java/lang/RuntimeTests/RuntimeExitLogTest.java
|
||
- JDK-8354348: Enable Extended EVEX to REX2/REX demotion for commutative operations with same dst and src2
|
||
- JDK-8354415: [Ubuntu25.04] api/java_awt/GraphicsDevice/indexTGF.html#SetDisplayMode - setDisplayMode_REFRESH_RATE_UNKNOWN fails: Height is different on vnc
|
||
- JDK-8354447: Missing test for retroactive @SuppressWarnings("dangling-doc-comments") behavior
|
||
- JDK-8354646: java.awt.TextField allows to identify the spaces in a password when double clicked at the starting and end of the text
|
||
- JDK-8355478: DoubleActionESC.java fails intermittently
|
||
- JDK-8356324: JVM crash (SIGSEGV at ClassListParser::resolve_indy_impl) during -Xshare:dump starting from 21.0.5
|
||
- JDK-8356897: Update NSS library to 3.111
|
||
- JDK-8357064: cds/appcds/ArchiveRelocationTest.java failed with missing expected output
|
||
- JDK-8357141: Update to use jtreg 7.5.2
|
||
- JDK-8357382: runtime/cds/appcds/aotClassLinking/BulkLoaderTest.java#aot fails with Xcomp and C1
|
||
- JDK-8357396: Refactor nmethod::make_not_entrant to use Enum instead of "const char*"
|
||
- JDK-8357691: File blocked.certs contains bad content when boot jdk 25 is used, sun/security/lib/CheckBlockedCerts.java failing
|
||
- JDK-8357694: RISC-V: Several IR verification tests fail when vlen=128
|
||
- JDK-8357799: Improve instructions for JFileChooser/HTMLFileName.java
|
||
- JDK-8357816: Add test from JDK-8350576
|
||
- JDK-8357822: C2: Multiple string optimization tests are no longer testing string concatenation optimizations
|
||
- JDK-8357959: (bf) ByteBuffer.allocateDirect initialization can result in large TTSP spikes
|
||
- JDK-8358048: java/net/httpclient/HttpsTunnelAuthTest.java incorrectly calls Thread::stop
|
||
- JDK-8358340: Support CDS heap archive with Generational Shenandoah
|
||
- JDK-8358532: JFileChooser in GTK L&F still displays HTML filename
|
||
- JDK-8358535: Changes in ClassValue (JDK-8351996) caused a 1-9% regression in Renaissance-PageRank
|
||
- JDK-8358556: Assert when running with -XX:-UseLibmIntrinsic
|
||
- JDK-8358685: [TEST] AOTLoggingTag.java failed with missing log message
|
||
- JDK-8358697: TextLayout/MyanmarTextTest.java passes if no Myanmar font is found
|
||
- JDK-8358723: jpackage signing issues: the main launcher doesn't have entitlements
|
||
- JDK-8358748: Large page size initialization fails with assert "page_size must be a power of 2"
|
||
- JDK-8358751: C2: Recursive inlining check for compiled lambda forms is broken
|
||
- JDK-8358813: JPasswordField identifies spaces in password via delete shortcuts
|
||
- JDK-8359061: Update and ProblemList manual test java/awt/Cursor/CursorDragTest/ListDragCursor.java
|
||
- JDK-8359104: gc/TestAlwaysPreTouchBehavior.java#<gcname> fails on Linux
|
||
- JDK-8359105: RISC-V: No need for acquire fence in safepoint poll during JNI calls
|
||
- JDK-8359127: Amend java/nio/channels/DatagramChannel/PromiscuousIPv6.java to use @requires for OS platform selection
|
||
- JDK-8359167: Remove unused test/hotspot/jtreg/vmTestbase/nsk/share/jpda/BindServer.java
|
||
- JDK-8359207: Remove runtime/signal/TestSigusr2.java since it is always skipped
|
||
- JDK-8359423: Improve error message in case of missing jsa shared archive
|
||
- JDK-8359428: Test 'javax/swing/JTabbedPane/bug4499556.java' failed because after selecting one of L&F items, the test case automatically failed when clicking on L&F Menu button again
|
||
- JDK-8359449: [TEST] open/test/jdk/java/io/File/SymLinks.java Refactor extract method for Windows specific test
|
||
- JDK-8359477: com/sun/net/httpserver/Test12.java appears to have a temp file race
|
||
- JDK-8359501: Enhance Handling of URIs
|
||
- JDK-8359687: Use PassFailJFrame for java/awt/print/Dialog/DialogType.java
|
||
- JDK-8359690: New test TestCPUTimeSampleThrottling still fails intermittently
|
||
- JDK-8359735: [Ubuntu 25.10] java/lang/ProcessBuilder/Basic.java, java/lang/ProcessHandle/InfoTest.java fail due to rust-coreutils
|
||
- JDK-8359827: Test runtime/Thread/ThreadCountLimit.java need loop increasing the limit
|
||
- JDK-8360022: ClassRefDupInConstantPoolTest.java fails when running in repeat
|
||
- JDK-8360090: [TEST] RISC-V: disable some cds tests on qemu
|
||
- JDK-8360178: TestArguments.atojulong gtest has incorrect format string
|
||
- JDK-8360219: [AIX] assert(locals_base >= l2) failed: bad placement
|
||
- JDK-8360255: runtime/jni/checked/TestLargeUTF8Length.java fails with -XX:-CompactStrings
|
||
- JDK-8360408: [TEST] Use @requires tag instead of exiting based on "os.name" property value for sun/net/www/protocol/file/FileURLTest.java
|
||
- JDK-8360411: [TEST] open/test/jdk/java/io/File/MaxPathLength.java Refactor extract method to encapsulate Windows specific test logic
|
||
- JDK-8360518: Docker tests do not work when asan is configured
|
||
- JDK-8360520: RISC-V: C1: Fix primitive array clone intrinsic regression after JDK-8333154
|
||
- JDK-8360664: Null pointer dereference in src/hotspot/share/prims/jvmtiTagMap.cpp in IterateOverHeapObjectClosure::do_object()
|
||
- JDK-8360783: CTW: Skip deoptimization between tiers
|
||
- JDK-8360791: [ubsan] Adjust signal handling
|
||
- JDK-8360867: CTW: Disable inline cache verification
|
||
- JDK-8360981: Remove use of Thread.stop in test/jdk/java/net/Socket/DeadlockTest.java
|
||
- JDK-8361112: Use exact float -> Float16 conversion method in Float16 tests
|
||
- JDK-8361180: Disable CompiledDirectCall verification with -VerifyInlineCaches
|
||
- JDK-8361198: [AIX] fix misleading error output in thread_cpu_time_unchecked
|
||
- JDK-8361211: C2: Final graph reshaping generates unencodeable klass constants
|
||
- JDK-8361215: Add AOT test case: verification constraint classes are excluded
|
||
- JDK-8361253: CommandLineOptionTest library should report observed values on failure
|
||
- JDK-8361255: CTW: Tolerate more NCDFE problems
|
||
- JDK-8361298: SwingUtilities/bug4967768.java fails where character P is not underline
|
||
- JDK-8361314: Test serviceability/jvmti/VMEvent/MyPackage/VMEventRecursionTest.java FATAL ERROR in native method: Failed during the GetClassSignature call
|
||
- JDK-8361367: AOT ExcludedClasses.java test failed with missing constant pool logs
|
||
- JDK-8361423: Add IPSupport::printPlatformSupport to java/net/NetworkInterface/IPv4Only.java
|
||
- JDK-8361449: RISC-V: Code cleanup for native call
|
||
- JDK-8361478: GHA: Use MSYS2 from GHA runners
|
||
- JDK-8361494: [IR Framework] Escape too much in replacement of placeholder
|
||
- JDK-8361497: Scoped Values: orElse and orElseThrow do not access the cache
|
||
- JDK-8361504: RISC-V: Make C1 clone intrinsic platform guard more specific
|
||
- JDK-8361520: Stabilize SystemGC benchmarks
|
||
- JDK-8361599: [PPC64] enable missing tests via jtreg requires
|
||
- JDK-8361711: Add library name configurability to PKCS11Test.java
|
||
- JDK-8361748: Enforce limits on the size of an XBM image
|
||
- JDK-8361839: Problemlist BogusFocusableWindowState due to failures in the CI pipeline
|
||
- JDK-8361868: [GCC static analyzer] complains about missing calloc - NULL checks in p11_util.c
|
||
- JDK-8361871: [GCC static analyzer] complains about use of uninitialized value ckpObject in p11_util.c
|
||
- JDK-8361888: [GCC static analyzer] ProcessImpl_md.c Java_java_lang_ProcessImpl_forkAndExec error: use of uninitialized value '*(ChildStuff *)p.mode
|
||
- JDK-8361892: AArch64: Incorrect matching rule leading to improper oop instruction encoding
|
||
- JDK-8361897: gc/z/TestUncommit.java fails with Uncommitted too slow
|
||
- JDK-8361948: Shenandoah: region free capacity unit mismatch
|
||
- JDK-8361950: Update to use jtreg 8
|
||
- JDK-8361959: [GCC static analyzer] java_props_md.c leak of 'temp' variable is reported
|
||
- JDK-8362107: Update the Jan CPU26_01 release date in master branch after forking Oct CPU25_10
|
||
- JDK-8362123: ClassLoader Leak via Executors.newSingleThreadExecutor(...)
|
||
- JDK-8362169: Pointer passed to upcall may get wrong scope
|
||
- JDK-8362204: test/jdk/sun/awt/font/TestDevTransform.java fails on Ubuntu 24.04
|
||
- JDK-8362207: Add more test cases for possible double-rounding in fma
|
||
- JDK-8362282: runtime/logging/StressAsyncUL.java failed with exitValue = 134
|
||
- JDK-8362308: Enhance Bitmap operations
|
||
- JDK-8362379: Test serviceability/HeapDump/UnmountedVThreadNativeMethodAtTop.java should mark as /native
|
||
- JDK-8362390: AIX make fails in awt_GraphicsEnv.c
|
||
- JDK-8362482: [TESTBUG] serviceability/HeapDump/UnmountedVThreadNativeMethodAtTop.java: System.gc() does not provide full GC
|
||
- JDK-8362501: Update test/hotspot/jtreg/applications/jcstress/README
|
||
- JDK-8362515: RISC-V: cleanup NativeFarCall
|
||
- JDK-8362516: Support of GCC static analyzer (-fanalyzer)
|
||
- JDK-8362530: VM crash with -XX:+PrintTieredEvents when collecting AOT profiling
|
||
- JDK-8362532: Test gc/g1/plab/* duplicate command-line options
|
||
- JDK-8362533: Tests sun/management/jmxremote/bootstrap/* duplicate VM flags
|
||
- JDK-8362581: Timeouts in java/nio/channels/SocketChannel/OpenLeak.java on UNIX
|
||
- JDK-8362582: GHA: Increase bundle retention time to deal with infra overload better
|
||
- JDK-8362596: RISC-V: Improve _vectorizedHashCode intrinsic
|
||
- JDK-8362602: Add test.timeout.factor to CompileFactory to avoid test timeouts
|
||
- JDK-8362632: Improve HttpServer Request handling
|
||
- JDK-8362834: Several runtime/Thread tests should mark as /native
|
||
- JDK-8362836: JFR: Broken pipe in jdk/jfr/event/io/TestIOTopFrame.java
|
||
- JDK-8362838: RISC-V: Incorrect matching rule leading to improper oop instruction encoding
|
||
- JDK-8362855: Test java/net/ipv6tests/TcpTest.java should report SkippedException when there no ia4addr or ia6addr
|
||
- JDK-8362889: [GCC static analyzer] leak in libstringPlatformChars.c
|
||
- JDK-8362972: C2 fails with unexpected node in SuperWord truncation: IsFiniteF, IsFiniteD
|
||
- JDK-8363676: [GCC static analyzer] missing return value check of malloc in OGLContext_SetTransform
|
||
- JDK-8363696: Update the release version and date for OpenJDK 25u
|
||
- JDK-8363720: Follow up to JDK-8360411 with post review comments
|
||
- JDK-8363895: Minimal build fails with slowdebug builds after JDK-8354887
|
||
- JDK-8363898: RISC-V: TestRangeCheckHoistingScaledIV.java fails after JDK-8355293 when running without RVV
|
||
- JDK-8363910: Avoid tuning for Power10 CPUs on Linux ppc64le when gcc < 10 is used
|
||
- JDK-8363928: Specifying AOTCacheOutput with a blank path causes the JVM to crash
|
||
- JDK-8363965: GHA: Switch cross-compiling sysroots to Debian bookworm
|
||
- JDK-8363966: GHA: Switch cross-compiling sysroots to Debian trixie
|
||
- JDK-8364090: Dump JFR recording on CrashOnOutOfMemoryError
|
||
- JDK-8364111: InstanceMirrorKlass iterators should handle CDS and hidden classes consistently
|
||
- JDK-8364114: Test TestHugePageDecisionsAtVMStartup.java#LP_enabled fails when no free hugepage
|
||
- JDK-8364120: RISC-V: unify the usage of MacroAssembler::instruction_size
|
||
- JDK-8364150: RISC-V: Leftover for JDK-8343430 removing old trampoline call
|
||
- JDK-8364177: JDK fails to build due to undefined symbol in libpng on LoongArch64
|
||
- JDK-8364184: [REDO] AArch64: [VectorAPI] sve vector math operations are not supported after JDK-8353217
|
||
- JDK-8364190: JFR: RemoteRecordingStream withers don't work
|
||
- JDK-8364198: NMT should have a better corruption message
|
||
- JDK-8364199: Enhance list of environment variables printed in hserr/hsinfo file
|
||
- JDK-8364212: Shenandoah: Rework archived objects loading
|
||
- JDK-8364214: Enhance polygon data support
|
||
- JDK-8364235: Fix for JDK-8361447 breaks the alignment requirements for GuardedMemory
|
||
- JDK-8364257: JFR: User-defined events and settings with a one-letter name cannot be configured
|
||
- JDK-8364263: HttpClient: Improve encapsulation of ProxyServer
|
||
- JDK-8364296: Set IntelJccErratumMitigation flag ergonomically
|
||
- JDK-8364352: Some tests fail when using a limited number of pregenerated .jsa CDS archives
|
||
- JDK-8364454: ProblemList runtime/cds/DeterministicDump.java on macos for JDK-8363986
|
||
- JDK-8364503: gc/g1/TestCodeCacheUnloadDuringConcCycle.java fails because of race printing to stdout
|
||
- JDK-8364514: [asan] runtime/jni/checked/TestCharArrayReleasing.java heap-buffer-overflow
|
||
- JDK-8364556: JFR: Disable SymbolTableStatistics and StringTableStatistics in default.jfc
|
||
- JDK-8364597: Replace THL A29 Limited with Tencent
|
||
- JDK-8364611: (process) Child process SIGPIPE signal disposition should be default
|
||
- JDK-8364660: ClassVerifier::ends_in_athrow() should be removed
|
||
- JDK-8364764: java/nio/channels/vthread/BlockingChannelOps.java subtests timed out
|
||
- JDK-8364786: Test java/net/vthread/HttpALot.java intermittently fails - 24999 handled, expected 25000
|
||
- JDK-8364984: Many jpackage tests are failing on Linux after JDK-8334238
|
||
- JDK-8364993: JFR: Disable jdk.ModuleExport in default.jfc
|
||
- JDK-8364996: java/awt/font/FontNames/LocaleFamilyNames.java times out on Windows
|
||
- JDK-8365058: Enhance CopyOnWriteArraySet
|
||
- JDK-8365071: ARM32: JFR intrinsic jvm_commit triggers C2 regalloc assert
|
||
- JDK-8365086: CookieStore.getURIs() and get(URI) should return an immutable List
|
||
- JDK-8365165: Zap C-heap memory at delete/free
|
||
- JDK-8365166: ARM32: missing os::fetch_bcp_from_context implementation
|
||
- JDK-8365168: Use 64-bit aligned addresses for CK_ULONG access in PKCS11 native key code
|
||
- JDK-8365200: RISC-V: compiler/loopopts/superword/TestGeneralizedReductions.java fails with Zvbb and vlen=128
|
||
- JDK-8365206: RISC-V: compiler/c2/irTests/TestFloat16ScalarOperations.java is failing on riscv64
|
||
- JDK-8365240: [asan] exclude some tests when using asan enabled binaries
|
||
- JDK-8365260: Problemlist 1 test due to failures in the CI pipeline
|
||
- JDK-8365265: x86 short forward jump exceeds 8-bit offset in methodHandles_x86.cpp when using Intel APX
|
||
- JDK-8365271: Improve Swing supports
|
||
- JDK-8365280: Enhance JOptionPane
|
||
- JDK-8365302: RISC-V: compiler/loopopts/superword/TestAlignVector.java fails when vlen=128
|
||
- JDK-8365307: AIX make fails after JDK-8364611
|
||
- JDK-8365312: GCC 12 cannot compile SVE on aarch64 with auto-var-init pattern
|
||
- JDK-8365389: Remove static color fields from SwingUtilities3 and WindowsMenuItemUI
|
||
- JDK-8365425: [macos26] javax/swing/JInternalFrame/8160248/JInternalFrameDraggingTest.java fails on macOS 26
|
||
- JDK-8365442: [asan] runtime/ErrorHandling/CreateCoredumpOnCrash.java fails
|
||
- JDK-8365468: EagerJVMCI should only apply to the CompilerBroker JVMCI runtime
|
||
- JDK-8365487: [asan] some oops (mode) related tests fail
|
||
- JDK-8365543: UnixNativeDispatcher.init should lookup open64at and stat64at on AIX
|
||
- JDK-8365571: GenShen: PLAB promotions may remain disabled for evacuation threads
|
||
- JDK-8365615: Improve JMenuBar/RightLeftOrientation.java
|
||
- JDK-8365638: JFR: Add --exact for debugging out-of-order events
|
||
- JDK-8365660: test/jdk/sun/security/pkcs11/KeyAgreement/ tests skipped without SkipExceprion
|
||
- JDK-8365700: Jar --validate without any --file option leaves around a temporary file /tmp/tmpJar<number>.jar
|
||
- JDK-8365726: Test crashed with assert in C1 thread: Possible safepoint reached by thread that does not allow it
|
||
- JDK-8365772: RISC-V: correctly prereserve NaN payload when converting from float to float16 in vector way
|
||
- JDK-8365790: Shutdown hook for application image does not work on Windows
|
||
- JDK-8365811: test/jdk/java/net/CookieHandler/B6644726.java failure - "Should have 5 cookies. Got only 4, expires probably didn't parse correctly"
|
||
- JDK-8365823: Revert storing abstract and interface Klasses to non-class metaspace
|
||
- JDK-8365834: Mark java/net/httpclient/ManyRequests.java as intermittent
|
||
- JDK-8365841: RISC-V: Several IR verification tests fail after JDK-8350960 without Zvfh
|
||
- JDK-8365844: RISC-V: TestBadFormat.java fails when running without RVV
|
||
- JDK-8365863: /test/jdk/sun/security/pkcs11/Cipher tests skip without SkippedException
|
||
- JDK-8365913: Support latest MSC_VER in abstract_vm_version.cpp
|
||
- JDK-8365919: Replace currentTimeMillis with nanoTime in Stresser.java
|
||
- JDK-8365926: RISC-V: Performance regression in renaissance (chi-square)
|
||
- JDK-8365956: GenShen: Adaptive tenuring threshold algorithm may raise threshold prematurely
|
||
- JDK-8365983: Tests should throw SkippedException when SCTP not supported
|
||
- JDK-8366028: MethodType::fromMethodDescriptorString should not throw UnsupportedOperationException for invalid descriptors
|
||
- JDK-8366029: Do not add -XX:VerifyArchivedFields by default to CDS tests
|
||
- JDK-8366031: Mark com/sun/nio/sctp/SctpChannel/CloseDescriptors.java as intermittent
|
||
- JDK-8366075: Problemlist 2 tests due to failures in the CI pipeline
|
||
- JDK-8366092: [GCC static analyzer] UnixOperatingSystem.c warning: use of uninitialized value 'systemTicks'
|
||
- JDK-8366147: ZGC: ZPageAllocator::cleanup_failed_commit_single_partition may leak memory
|
||
- JDK-8366159: SkippedException is treated as a pass for pkcs11/KeyStore, pkcs11/SecretKeyFactory and pkcs11/SecureRandom
|
||
- JDK-8366208: Unexpected exception in sun.java2d.cmm.lcms.LCMSImageLayout
|
||
- JDK-8366229: runtime/Thread/TooSmallStackSize.java runs with all collectors
|
||
- JDK-8366250: Problemlist 3 tests due to failures in the CI pipeline
|
||
- JDK-8366340: Problemlist 1 test due to failures in the CI pipeline
|
||
- JDK-8366342: Key generator and key pair generator tests skipping, but showing as passed
|
||
- JDK-8366359: Test should throw SkippedException when there is no lpstat
|
||
- JDK-8366365: [test] test/lib-test/jdk/test/whitebox/CPUInfoTest.java should be updated
|
||
- JDK-8366434: THP not working properly with G1 after JDK-8345655
|
||
- JDK-8366446: Test java/awt/geom/ConcurrentDrawPolygonTest.java fails intermittently
|
||
- JDK-8366537: Test "java/util/TimeZone/DefaultTimeZoneTest.java" is not updating the zone ID as expected
|
||
- JDK-8366558: Gtests leave /tmp/cgroups-test* files
|
||
- JDK-8366694: Test JdbStopInNotificationThreadTest.java timed out after 60 second
|
||
- JDK-8366750: Remove test 'java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java' from problemlist
|
||
- JDK-8366764: Deproblemlist java/awt/ScrollPane/ScrollPositionTest.java
|
||
- JDK-8366800: Problemlist 1 test due to failures in the CI pipeline
|
||
- JDK-8366844: Update and automate MouseDraggedOriginatedByScrollBarTest.java
|
||
- JDK-8366850: Test com/sun/jdi/JdbStopInNotificationThreadTest.java failed
|
||
- JDK-8366893: java/lang/Thread/virtual/stress/GetStackTraceALotWhenPinned.java timed out on macos-aarch64
|
||
- JDK-8366948: AOT cache creation crashes when iterating training data
|
||
- JDK-8366980: TestTransparentHugePagesHeap.java fails when run with -UseCompressedOops
|
||
- JDK-8367017: Remove legacy checks from WrappedToolkitTest and convert from bash
|
||
- JDK-8367021: Regression in LocaleDataTest refactoring
|
||
- JDK-8367048: RISC-V: Correct pipeline descriptions of the architecture
|
||
- JDK-8367066: RISC-V: refine register selection in MacroAssembler:: decode_klass_not_null
|
||
- JDK-8367098: RISC-V: sync CPU features with related JVM flags for dependant ones
|
||
- JDK-8367131: Test com/sun/jdi/ThreadMemoryLeakTest.java fails on 32 bits
|
||
- JDK-8367133: DTLS: fragmentation of Finished message results in handshake failure
|
||
- JDK-8367137: RISC-V: Detect Zicboz block size via hwprobe
|
||
- JDK-8367237: Thread-Safety Usage Warning for java.text.Collator Classes
|
||
- JDK-8367277: Fix copyright header in JMXInterfaceBindingTest.java
|
||
- JDK-8367313: CTW: Execute in AWT headless mode
|
||
- JDK-8367333: C2: Vector math operation intrinsification failure
|
||
- JDK-8367348: Enhance PassFailJFrame to support links in HTML
|
||
- JDK-8367378: GenShen: Missing timing stats when old mark buffers are flushed during final update refs
|
||
- JDK-8367384: The ICC_Profile class may throw exceptions during serialization
|
||
- JDK-8367598: Switch to CRC32C for SEED calculation in jdk.test.lib.Utils
|
||
- JDK-8367616: RISC-V: Auto-enable Zicboz extension for debug builds
|
||
- JDK-8367689: Revert removal of several compilation-related vmStructs fields
|
||
- JDK-8367692: RISC-V: Align post call nop
|
||
- JDK-8367694: Fix jtreg test failure when Intel APX is enabled for KNL platforms
|
||
- JDK-8367780: Enable UseAPX on Intel CPUs only when both APX_F and APX_NCI_NDD_NF cpuid features are present
|
||
- JDK-8367782: VerifyJarEntryName.java: Fix modifyJarEntryName to operate on bytes and re-introduce verifySignatureEntryName
|
||
- JDK-8367869: Test java/io/FileDescriptor/Sync.java timed out
|
||
- JDK-8367904: Test java/net/InetAddress/ptr/Lookup.java should throw SkippedException
|
||
- JDK-8367948: JFR: MethodTrace threshold setting has no effect
|
||
- JDK-8367953: JFR sampler threads does not appear in thread dump
|
||
- JDK-8367969: C2: compiler/vectorapi/TestVectorMathLib.java fails without UnlockDiagnosticVMOptions
|
||
- JDK-8367988: NewFileSystemTests.readOnlyZipFileFailure fails when run by root user
|
||
- JDK-8368032: Enhance Certificate Checking
|
||
- JDK-8368071: Compilation throughput regressed 2X-8X after JDK-8355003
|
||
- JDK-8368152: Shenandoah: Incorrect behavior at end of degenerated cycle
|
||
- JDK-8368192: Test java/lang/ProcessBuilder/Basic.java#id0 fails with Exception: Stack trace
|
||
- JDK-8368366: RISC-V: AlignVector is mistakenly set to AvoidUnalignedAccesses
|
||
- JDK-8368367: Test jdk/jfr/event/gc/detailed/TestGCHeapMemoryUsageEvent.java fails jdk.GCHeapMemoryUsage "expected 0 > 0"
|
||
- JDK-8368565: Adjust comment regarding dependency of libjvm.so to librt
|
||
- JDK-8368606: Printer lookup returns empty on AIX platform due to uninitialized results list
|
||
- JDK-8368668: Several vmTestbase/vm/gc/compact tests timed out on large memory machine
|
||
- JDK-8368670: Deadlock in JFR on event register + class load
|
||
- JDK-8368698: runtime/cds/appcds/aotCache/OldClassSupport.java assert(can_add()) failed: Cannot add TrainingData objects
|
||
- JDK-8368732: RISC-V: Detect support for misaligned vector access via hwprobe
|
||
- JDK-8368890: open/test/jdk/tools/jpackage/macosx/NameWithSpaceTest.java fails randomly
|
||
- JDK-8368893: RISC-V: crash after JDK-8352673 on fastdebug version
|
||
- JDK-8368960: Adjust java UL logging in the build
|
||
- JDK-8368982: Test sun/security/tools/jarsigner/EC.java completed and timed out
|
||
- JDK-8369078: Fix faulty test conversion in IllegalCharsetName.java
|
||
- JDK-8369184: SimpleTimeZone equals() Returns True for Unequal Instances with Different hashCode Values
|
||
- JDK-8369190: JavaFrameAnchor on AArch64 has unnecessary barriers and wrong store order in MacroAssembler
|
||
- JDK-8369226: GHA: Switch to MacOS 15
|
||
- JDK-8369319: java/net/httpclient/CancelRequestTest.java fails intermittently
|
||
- JDK-8369450: [Ubuntu 25.10] openjdk fails to build due to rust-coreutils date
|
||
- JDK-8369487: Revert EA option for build promotion
|
||
- JDK-8369506: Bytecode rewriting causes Java heap corruption on AArch64
|
||
- JDK-8369560: Slowdebug build without CDS fails
|
||
- JDK-8369563: Gtest dll_address_to_function_and_library_name has issues with stripped pdb files
|
||
- JDK-8369616: JavaFrameAnchor on RISC-V has unnecessary barriers and wrong store order in MacroAssembler
|
||
- JDK-8369656: Calling CompletableFuture.join() could execute task in common pool
|
||
- JDK-8369657: [AIX] TOC overflow in static-launcher build when building slowdebug after JDK-8352064
|
||
- JDK-8369853: jpackage signing tests fail after JDK-8358723
|
||
- JDK-8369868: Compilation error in Win8365790Test.java with JDK-8358723 fix resulting in CI tier3 failure
|
||
- JDK-8369946: Bytecode rewriting causes Java heap corruption on PPC
|
||
- JDK-8369947: Bytecode rewriting causes Java heap corruption on RISC-V
|
||
- JDK-8369979: Flag UsePopCountInstruction was accidentally disabled on PPC64
|
||
- JDK-8370048: Shenandoah: Deprecated ShenandoahPacing option
|
||
- JDK-8370049: [s390x] G1 barrier compareAndExchange does not return old value when compareExchange fails
|
||
- JDK-8370318: AES-GCM vector intrinsic may read out of bounds (x86_64, AVX-512)
|
||
- JDK-8370331: Problemlist 2 tests due to failures in the CI pipeline
|
||
- JDK-8370428: Change milestone to fcs for all releases
|
||
- JDK-8370465: Right to Left Orientation Issues with MenuItem Component
|
||
- JDK-8371094: --mac-signing-key-user-name no longer works
|
||
- JDK-8371425: Include folder names in vscode workspace virtual folders
|
||
- JDK-8371697: test/jdk/java/nio/file/FileStore/Basic.java fails after 8360887 on linux
|
||
- JDK-8372753: jpackage ignores --file-associations option with predefined app image
|
||
|
||
Notes on individual issues:
|
||
===========================
|
||
|
||
core-libs/java.lang.invoke:
|
||
|
||
JDK-8358535: Changes in ClassValue (JDK-8351996) caused a 1-9% regression in Renaissance-PageRank
|
||
=================================================================================================
|
||
Behavioural changes in ClassValue in the original release of OpenJDK
|
||
25 (JDK-8351996) caused a noticeable performance regression after use
|
||
of ClassValue::remove. The cause of this regression was found to be
|
||
the accidental removal of a cache update in ClassValue::readAccess,
|
||
leading to ClassValue::get calls taking the slow path rather than
|
||
using the cache. In this update, the cache update is restored.
|
||
|
||
core-svc/javax.management:
|
||
|
||
JDK-8341496: Improve JMX connections
|
||
====================================
|
||
With this release of OpenJDK, SSL connections created by
|
||
javax.rmi.ssl.SslRMIClientSocketFactory now enable HTTPS-based
|
||
endpoint identification by default. This can be disabled by setting
|
||
the new system property
|
||
jdk.rmi.ssl.client.enableEndpointIdentification to false.
|
||
|
||
hotspot/gc:
|
||
|
||
JDK-8366434: THP not working properly with G1 after JDK-8345655
|
||
===============================================================
|
||
Refactoring of the memory reservation code in the original release of
|
||
OpenJDK 25 (JDK-8345655) caused a set page size provided by
|
||
`os::vm_page_size()` to always be used rather than a value passed in
|
||
by the calling method. As the page size is used by the G1 garbage
|
||
collector to determine the alignment of the reservation, this lead to
|
||
reservations being ineligible for Transparent Huge Pages (THP). In
|
||
this update, the caller specified page size is restored.
|
||
|
||
security-libs/java.security:
|
||
|
||
JDK-8368032: Enhance Certificate Checking
|
||
=========================================
|
||
OpenJDK supports the authorityInfoAccess extension in X.509
|
||
certificates when the `com.sun.security.enableAIAcaIssuers` system
|
||
property is set to `true`. With this release of OpenJDK, a security
|
||
and system property `com.sun.security.allowedAIALocations` is
|
||
introduced which acts as a filter on the URIs specified in the
|
||
extension. By default, the property is empty, which will cause all
|
||
URIs to be denied when the extension is enabled. A value of `any` may
|
||
be used to allow all URIs or a whitespace-separated list of filters
|
||
may be used for more fine-grained control. The syntax of the filters
|
||
is specified in the `java.security` file. A non-empty value for the
|
||
system property takes precedence over the security property.
|
||
|
||
New in release OpenJDK 25.0.1 (2025-10-21):
|
||
===========================================
|
||
|
||
* CVEs
|
||
- CVE-2025-53057
|
||
- CVE-2025-53066
|
||
- CVE-2025-61748
|
||
* Changes
|
||
- JDK-8315131: Clarify VarHandle set/get access on 32-bit platforms
|
||
- JDK-8352637: Enhance bytecode verification
|
||
- JDK-8356294: Enhance Path Factories
|
||
- JDK-8356587: Missing object ID X in pool jdk.types.Method
|
||
- JDK-8357826: Avoid running some jtreg tests when asan is configured
|
||
- JDK-8358452: JNI exception pending in Java_sun_awt_screencast_ScreencastHelper_remoteDesktopKeyImpl of screencast_pipewire.c:1214 (ID: 51119)
|
||
- JDK-8358577: Test serviceability/jvmti/thread/GetCurrentContendedMonitor/contmon01/contmon01.java failed: unexpexcted monitor object
|
||
- JDK-8358819: The first year is not displayed correctly in Japanese Calendar
|
||
- JDK-8359059: Bump version numbers for 25.0.1
|
||
- JDK-8359218: RISC-V: Only enable CRC32 intrinsic when AvoidUnalignedAccess == false
|
||
- JDK-8359270: C2: alignment check should consider base offset when emitting arraycopy runtime call
|
||
- JDK-8359454: Enhance String handling
|
||
- JDK-8359596: Behavior change when both -Xlint:options and -Xlint:-options flags are given
|
||
- JDK-8360179: RISC-V: Only enable BigInteger intrinsics when AvoidUnalignedAccess == false
|
||
- JDK-8360533: ContainerRuntimeVersionTestUtils fromVersionString fails with some docker versions
|
||
- JDK-8360647: [XWayland] [OL10] NumPad keys are not triggered
|
||
- JDK-8360679: Shenandoah: AOT saved adapter calls into broken GC barrier stub
|
||
- JDK-8360937: Enhance certificate handling
|
||
- JDK-8361212: Remove AffirmTrust root CAs
|
||
- JDK-8361532: RISC-V: Several vector tests fail after JDK-8354383
|
||
- JDK-8361829: [TESTBUG] RISC-V: compiler/vectorization/runner/BasicIntOpTest.java fails with RVV but not Zvbb
|
||
- JDK-8362109: Change milestone to fcs for all releases
|
||
- JDK-8362882: Update SubmissionPublisher() specification to reflect use of ForkJoinPool.asyncCommonPool()
|
||
- JDK-8366223: ZGC: ZPageAllocator::cleanup_failed_commit_multi_partition is broken
|
||
- JDK-8367031: [backout] Change java.time month/day field types to 'byte'
|
||
- JDK-8368308: ISO 4217 Amendment 180 Update
|
||
|
||
Notes on individual issues:
|
||
===========================
|
||
|
||
core-libs/java.io:serialization:
|
||
|
||
JDK-8367031: [backout] Change java.time month/day field types to 'byte'
|
||
=======================================================================
|
||
In the initial release of OpenJDK 25, attempting to read serialised
|
||
Class objects created by earlier versions of OpenJDK for several of
|
||
the `java.time` classes would fail with a
|
||
`InvalidClassException`. Similarly, `java.time` Class objects
|
||
serialised with OpenJDK 25 could not be read by older OpenJDK
|
||
versions. This was due to the type of the day and month fields in
|
||
these classes being changed to `byte`. This change has now been
|
||
reverted and compatibility between OpenJDK 25 and older versions
|
||
restored.
|
||
|
||
Note that this incompatibility occurred with the `Class` object and
|
||
not an instance of the object i.e. `writeObject(LocalDate.class)`
|
||
would produce incompatible serialised data, but
|
||
`writeObject(LocalDate.now())` would not.
|
||
|
||
security-libs/java.security:
|
||
|
||
JDK-8361212: Remove AffirmTrust root CAs
|
||
========================================
|
||
The following root certificates from AffirmTrust, which were
|
||
deactivated in the 21.0.5 release of October 2024, have been removed
|
||
from the `cacerts` keystore:
|
||
|
||
Alias name: affirmtrustcommercialca [jdk]
|
||
CN=AffirmTrust Commercial
|
||
O=AffirmTrust
|
||
C=US
|
||
SHA256: 03:76:AB:1D:54:C5:F9:80:3C:E4:B2:E2:01:A0:EE:7E:EF:7B:57:B6:36:E8:A9:3C:9B:8D:48:60:C9:6F:5F:A7
|
||
|
||
Alias name: affirmtrustnetworkingca [jdk]
|
||
CN=AffirmTrust Networking
|
||
O=AffirmTrust
|
||
C=US
|
||
SHA256: 0A:81:EC:5A:92:97:77:F1:45:90:4A:F3:8D:5D:50:9F:66:B5:E2:C5:8F:CD:B5:31:05:8B:0E:17:F3:F0B4:1B
|
||
|
||
Alias name: affirmtrustpremiumca [jdk]
|
||
CN=AffirmTrust Premium
|
||
O=AffirmTrust
|
||
C=US
|
||
SHA256: 70:A7:3F:7F:37:6B:60:07:42:48:90:45:34:B1:14:82:D5:BF:0E:69:8E:CC:49:8D:F5:25:77:EB:F2:E9:3B:9A
|
||
|
||
Alias name: affirmtrustpremiumeccca [jdk]
|
||
CN=AffirmTrust Premium ECC
|
||
O=AffirmTrust
|
||
C=US
|
||
SHA256: BD:71:FD:F6:DA:97:E4:CF:62:D1:64:7A:DD:25:81:B0:7D:79:AD:F8:39:7E:B4:EC:BA:9C:5E:84:88:82:14:23
|
||
|
||
New in release OpenJDK 25.0.0 (2025-09-16):
|
||
===========================================
|
||
Major changes are listed below. Some changes may have been backported
|
||
to earlier releases following their first appearance in OpenJDK 22
|
||
through to 25.
|
||
|
||
NEW FEATURES
|
||
============
|
||
|
||
Language Features
|
||
=================
|
||
|
||
Flexible Constructor Bodies
|
||
============================
|
||
https://openjdk.org/jeps/447
|
||
https://openjdk.org/jeps/482
|
||
https://openjdk.org/jeps/492
|
||
https://openjdk.org/jeps/513
|
||
|
||
In constructors in the Java programming language, allow statements to
|
||
appear before an explicit constructor invocation, i.e., super(..) or
|
||
this(..). The statements cannot reference the instance under
|
||
construction, but they can initialize its fields. Initializing fields
|
||
before invoking another constructor makes a class more reliable when
|
||
methods are overridden.
|
||
|
||
This language feature is now finalised (JEP 513). It was first
|
||
introduced as a preview language feature
|
||
(http://openjdk.java.net/jeps/12) in OpenJDK 22 (JEP 447) under the
|
||
name "Statements before super(...)". It reached a second preview in
|
||
OpenJDK 23 (JEP 482) with the addition of allowing fields to be
|
||
initialized before invoking another constructor. It reached a third
|
||
preview in OpenJDK 24 (JEP 492).
|
||
|
||
Unnamed Patterns and Variables
|
||
==============================
|
||
https://openjdk.org/jeps/443
|
||
https://openjdk.org/jeps/456
|
||
|
||
Enhance the Java language with unnamed patterns, which match a record
|
||
component without stating the component's name or type, and unnamed
|
||
variables, which can be initialized but not used. Both are denoted by
|
||
an underscore character, _.
|
||
|
||
This feature is now finalised (JEP 456). It was a preview feature
|
||
(http://openjdk.java.net/jeps/12) in OpenJDK 21 (JEP 443).
|
||
|
||
Primitive Types in Patterns, instanceof, and switch
|
||
===================================================
|
||
https://openjdk.org/jeps/455
|
||
https://openjdk.org/jeps/488
|
||
https://openjdk.org/jeps/507
|
||
|
||
Enhance pattern matching by allowing primitive type patterns in all
|
||
pattern contexts, and extend instanceof and switch to work with all
|
||
primitive types.
|
||
|
||
This is a preview language feature (http://openjdk.java.net/jeps/12)
|
||
introduced in OpenJDK 23 (JEP 455) with a second preview in OpenJDK 24
|
||
(JEP 488) and reaching a third in OpenJDK 25 (JEP 507).
|
||
|
||
Module Import Declarations
|
||
==========================
|
||
https://openjdk.org/jeps/476
|
||
https://openjdk.org/jeps/494
|
||
https://openjdk.org/jeps/511
|
||
|
||
Enhance the Java programming language with the ability to succinctly
|
||
import all of the packages exported by a module. This simplifies the
|
||
reuse of modular libraries, but does not require the importing code to
|
||
be in a module itself.
|
||
|
||
This language feature is now finalised (JEP 511). It was introduced as
|
||
a preview language feature (http://openjdk.java.net/jeps/12) in
|
||
OpenJDK 23 (JEP 476) and had a second preview in OpenJDK 24 (JEP 494).
|
||
|
||
Library Features
|
||
================
|
||
|
||
Foreign Function & Memory API
|
||
=============================
|
||
https://openjdk.org/jeps/412
|
||
https://openjdk.org/jeps/419
|
||
https://openjdk.org/jeps/424
|
||
https://openjdk.org/jeps/434
|
||
https://openjdk.org/jeps/442
|
||
https://openjdk.org/jeps/454
|
||
|
||
Introduce an API by which Java programs can interoperate with code and
|
||
data outside of the Java runtime. By efficiently invoking foreign
|
||
functions (i.e., code outside the JVM), and by safely accessing
|
||
foreign memory (i.e., memory not managed by the JVM), the API enables
|
||
Java programs to call native libraries and process native data without
|
||
the brittleness and danger of JNI.
|
||
|
||
This API is now finalised (JEP 454). It was first introduced in
|
||
incubation (https://openjdk.java.net/jeps/11) in OpenJDK 17 (JEP 412),
|
||
and is an evolution of the Foreign Memory Access API (OpenJDK 14
|
||
through 16) and Foreign Linker API (OpenJDK 16) (see release notes for
|
||
java-17-openjdk). OpenJDK 18 saw a second round of incubation (JEP
|
||
419) before its inclusion as a preview feature
|
||
(http://openjdk.java.net/jeps/12) in OpenJDK 19 (JEP 424). A second
|
||
preview took place in OpenJDK 20 (JEP 434) and a third and final
|
||
preview in OpenJDK 21 (JEP 442).
|
||
|
||
Prepare to Restrict the Use of JNI
|
||
==================================
|
||
https://openjdk.org/jeps/472
|
||
|
||
Issue warnings about uses of the Java Native Interface (JNI) and
|
||
adjust the Foreign Function & Memory (FFM) API to issue warnings in a
|
||
consistent manner. All such warnings aim to prepare developers for a
|
||
future release that ensures integrity by default by uniformly
|
||
restricting JNI and the FFM API. Application developers can avoid both
|
||
current warnings and future restrictions by selectively enabling these
|
||
interfaces where essential using the --enable-native-access
|
||
command-line option.
|
||
|
||
Class-File API
|
||
==============
|
||
https://openjdk.org/jeps/457
|
||
https://openjdk.org/jeps/466
|
||
https://openjdk.org/jeps/484
|
||
|
||
Provide a standard API for parsing, generating, and transforming Java
|
||
class files.
|
||
|
||
This API is now finalised (JEP 484). It was introduced as a preview
|
||
library feature (http://openjdk.java.net/jeps/12) in OpenJDK 22 (JEP
|
||
457) with a second preview in OpenJDK 23 (JEP 466).
|
||
|
||
Vector API
|
||
==========
|
||
https://openjdk.org/jeps/338
|
||
https://openjdk.org/jeps/414
|
||
https://openjdk.org/jeps/417
|
||
https://openjdk.org/jeps/426
|
||
https://openjdk.org/jeps/438
|
||
https://openjdk.org/jeps/448
|
||
https://openjdk.org/jeps/460
|
||
https://openjdk.org/jeps/469
|
||
https://openjdk.org/jeps/489
|
||
https://openjdk.org/jeps/508
|
||
|
||
Introduce an API to express vector computations that reliably compile
|
||
at runtime to optimal vector hardware instructions on supported CPU
|
||
architectures and thus achieve superior performance to equivalent
|
||
scalar computations.
|
||
|
||
This is an incubation feature (https://openjdk.java.net/jeps/11)
|
||
introduced in OpenJDK 16 (JEP 338). A second round of incubation took
|
||
place in OpenJDK 17 (JEP 414), OpenJDK 18 (JEP 417) saw a third,
|
||
OpenJDK 19 a fourth (JEP 426), OpenJDK 20 (JEP 438) a fifth, OpenJDK
|
||
21 a sixth (JEP 448), OpenJDK 22 a seventh (JEP 460), OpenJDK 23 an
|
||
eighth (JEP 469), OpenJDK 24 a ninth (JEP 489) and it reaches its
|
||
tenth in OpenJDK 25 (JEP 508).
|
||
|
||
Stream Gatherers
|
||
================
|
||
https://openjdk.org/jeps/461
|
||
https://openjdk.org/jeps/473
|
||
https://openjdk.org/jeps/485
|
||
|
||
Enhance the Stream API to support custom intermediate operations. This
|
||
will allow stream pipelines to transform data in ways that are not
|
||
easily achievable with the existing built-in intermediate operations.
|
||
|
||
This API is now finalised (JEP 485). It was introduced as a preview
|
||
library feature (http://openjdk.java.net/jeps/12) in OpenJDK 22 (JEP
|
||
461) with a second preview in OpenJDK 23 (JEP 473).
|
||
|
||
Structured Concurrency
|
||
======================
|
||
https://openjdk.org/jeps/428
|
||
https://openjdk.org/jeps/437
|
||
https://openjdk.org/jeps/453
|
||
https://openjdk.org/jeps/462
|
||
https://openjdk.org/jeps/480
|
||
https://openjdk.org/jeps/499
|
||
https://openjdk.org/jeps/505
|
||
|
||
Simplify multithreaded programming by introducing an API for
|
||
structured concurrency. Structured concurrency treats multiple tasks
|
||
running in different threads as a single unit of work, thereby
|
||
streamlining error handling and cancellation, improving reliability,
|
||
and enhancing observability.
|
||
|
||
This API was first introduced in incubation
|
||
(https://openjdk.java.net/jeps/11) in OpenJDK 19 (JEP 428) and had a
|
||
second round of incubation in OpenJDK 20 (JEP 437). It became a
|
||
preview feature (http://openjdk.java.net/jeps/12) in OpenJDK 21 (JEP
|
||
453), reached its second preview in OpenJDK 22 (JEP 462), had a third
|
||
preview in OpenJDK 23 (JEP 480), a fourth in OpenJDK 24 (JEP 499) and
|
||
reaches its fifth in OpenJDK 25 (JEP 505).
|
||
|
||
Compact Source Files and Instance Main Methods
|
||
==============================================
|
||
https://openjdk.org/jeps/445
|
||
https://openjdk.org/jeps/463
|
||
https://openjdk.org/jeps/477
|
||
https://openjdk.org/jeps/495
|
||
https://openjdk.org/jeps/512
|
||
|
||
Evolve the Java programming language so that beginners can write their
|
||
first programs without needing to understand language features
|
||
designed for large programs. Far from using a separate dialect of the
|
||
language, beginners can write streamlined declarations for
|
||
single-class programs and then seamlessly expand their programs to use
|
||
more advanced features as their skills grow. Experienced developers
|
||
can likewise enjoy writing small programs succinctly, without the need
|
||
for constructs intended for programming in the large.
|
||
|
||
This library feature is now finalised (JEP 512) with some minor
|
||
changes from the last release. It was first introduced as a preview
|
||
(http://openjdk.java.net/jeps/12) in OpenJDK 21 (JEP 445) under the
|
||
name "Unnamed Classes and Instance Main Methods". It reached a second
|
||
preview in OpenJDK 22 (JEP 463) and a third in OpenJDK 23 (JEP 477)
|
||
under the new name, "Implicitly Declared Classes and Instance Main
|
||
Methods", due to the move away from unnamed classes to an implicitly
|
||
declared name chosen by the host system. It had a fourth preview in
|
||
OpenJDK 24 (JEP 495) with new terminology and a revised title ("Simple
|
||
Source Files and Instance Main Methods"), but otherwise unchanged.
|
||
|
||
Scoped Values
|
||
=============
|
||
https://openjdk.org/jeps/429
|
||
https://openjdk.org/jeps/446
|
||
https://openjdk.org/jeps/464
|
||
https://openjdk.org/jeps/481
|
||
https://openjdk.org/jeps/487
|
||
https://openjdk.org/jeps/506
|
||
|
||
Introduce scoped values, which enable the sharing of immutable data
|
||
within and across threads. They are preferred to thread-local
|
||
variables, especially when using large numbers of virtual threads.
|
||
|
||
This API is now finalised (JEP 506). This API was first introduced in
|
||
incubation (https://openjdk.java.net/jeps/11) in OpenJDK 20 (JEP
|
||
429). It became a preview feature (http://openjdk.java.net/jeps/12) in
|
||
OpenJDK 21 (JEP 446), had a second preview in OpenJDK 22 (JEP 464), a
|
||
third in OpenJDK 23 (JEP 481) and a fourth in OpenJDK 24 (JEP 487).
|
||
|
||
Key Derivation Function API
|
||
===========================
|
||
https://openjdk.org/jeps/478
|
||
https://openjdk.org/jeps/510
|
||
|
||
Introduce an API for Key Derivation Functions (KDFs), which are
|
||
cryptographic algorithms for deriving additional keys from a secret
|
||
key and other data.
|
||
|
||
This API is now finalised (JEP 510). It was first introduced as a
|
||
preview library feature (http://openjdk.java.net/jeps/12) in OpenJDK
|
||
24 (JEP 478).
|
||
|
||
Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism
|
||
==================================================================
|
||
https://openjdk.org/jeps/496
|
||
|
||
Enhance the security of Java applications by providing an
|
||
implementation of the quantum-resistant Module-Lattice-Based
|
||
Key-Encapsulation Mechanism (ML-KEM). Key encapsulation mechanisms
|
||
(KEMs) are used to secure symmetric keys over insecure communication
|
||
channels using public key cryptography. ML-KEM is designed to be
|
||
secure against future quantum computing attacks. It has been
|
||
standardized by the United States National Institute of Standards and
|
||
Technology (NIST) in FIPS 203 [0].
|
||
|
||
[0] https://csrc.nist.gov/pubs/fips/203/final
|
||
|
||
Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm
|
||
==================================================================
|
||
https://openjdk.org/jeps/497
|
||
|
||
Enhance the security of Java applications by providing an
|
||
implementation of the quantum-resistant Module-Lattice-Based Digital
|
||
Signature Algorithm (ML-DSA). Digital signatures are used to detect
|
||
unauthorized modifications to data and to authenticate the identity of
|
||
signatories. ML-DSA is designed to be secure against future quantum
|
||
computing attacks. It has been standardized by the United States
|
||
National Institute of Standards and Technology (NIST) in FIPS 204 [0].
|
||
|
||
[0] https://csrc.nist.gov/pubs/fips/204/final
|
||
|
||
PEM Encodings of Cryptographic Objects
|
||
======================================
|
||
https://openjdk.org/jeps/470
|
||
|
||
Introduce an API for encoding objects that represent cryptographic
|
||
keys, certificates, and certificate revocation lists into the
|
||
widely-used Privacy-Enhanced Mail (PEM) transport format, and for
|
||
decoding from that format back into objects.
|
||
|
||
This is a preview library feature (http://openjdk.java.net/jeps/12)
|
||
introduced in OpenJDK 25 (JEP 470).
|
||
|
||
Stable Values
|
||
=============
|
||
https://openjdk.org/jeps/502
|
||
|
||
Introduce an API for stable values, which are objects that hold
|
||
immutable data. Stable values are treated as constants by the JVM,
|
||
enabling the same performance optimizations that are enabled by
|
||
declaring a field final. Compared to final fields, however, stable
|
||
values offer greater flexibility as to the timing of their
|
||
initialization.
|
||
|
||
This is a preview library feature (http://openjdk.java.net/jeps/12)
|
||
introduced in OpenJDK 25 (JEP 502).
|
||
|
||
Virtual Machine Enhancements
|
||
============================
|
||
|
||
Region Pinning for G1
|
||
=====================
|
||
https://openjdk.org/jeps/423
|
||
|
||
Reduce latency by implementing region pinning in G1, so that garbage
|
||
collection need not be disabled during Java Native Interface (JNI)
|
||
critical regions.
|
||
|
||
ZGC: Generational Mode by Default
|
||
=================================
|
||
https://openjdk.org/jeps/439
|
||
https://openjdk.org/jeps/474
|
||
|
||
Switch the default mode of the Z Garbage Collector (ZGC) to the
|
||
generational mode. Deprecate the non-generational mode, with the
|
||
intent to remove it in a future release.
|
||
|
||
Late Barrier Expansion for G1
|
||
=============================
|
||
https://openjdk.org/jeps/475
|
||
|
||
Simplify the implementation of the G1 garbage collector's barriers,
|
||
which record information about application memory accesses, by
|
||
shifting their expansion from early in the C2 JIT's compilation
|
||
pipeline to later.
|
||
|
||
Ahead-of-Time Class Loading & Linking
|
||
=====================================
|
||
https://openjdk.org/jeps/483
|
||
https://openjdk.org/jeps/514
|
||
|
||
Improve startup time by making the classes of an application instantly
|
||
available, in a loaded and linked state, when the HotSpot Java Virtual
|
||
Machine starts. Achieve this by monitoring the application during one
|
||
run and storing the loaded and linked forms of all classes in a cache
|
||
for use in subsequent runs. Lay a foundation for future improvements
|
||
to both startup and warmup time.
|
||
|
||
Using this feature requires a two stage process:
|
||
|
||
1. Create the Ahead-of-Time cache from a training run of the
|
||
application using the option `--XX:AOTCacheOutput=<cache name>` where
|
||
`<cache name>` is the cache reference to use in later runs.
|
||
|
||
2. When running the application in testing or production, use the
|
||
option `-XX:AOTCache=<cache name>` to run the application with the
|
||
cache generated in #2.
|
||
|
||
Previously, in OpenJDK 24 (JEP 483), the training run and cache
|
||
creation were handled by two separate steps:
|
||
|
||
1. Populate the Ahead-of-Time configuration data with a training run
|
||
of the application using the options `-XX:AOTMode=record
|
||
-XX:AOTConfiguration=<config name>` where `<config name>` is the
|
||
configuration reference to use in #2.
|
||
|
||
2. Create the Ahead-of-Time cache using the options
|
||
`-XX:AOTMode=create -XX:AOTConfiguration=<config name>
|
||
-XX:AOTCache=<cache name>` where `<config name>` is the configuration
|
||
reference from #1 and `<cache name>` is the cache reference to use in
|
||
later runs.
|
||
|
||
JEP 514 ("Ahead-of-Time Command-Line Ergonomics") in OpenJDK 25 adds
|
||
the option `--XX:AOTCacheOutput` which performs both the above steps
|
||
from a single command-line invocation using a temporary configuration
|
||
file. A new environment variable, `JDK_AOT_VM_OPTIONS`, can be used
|
||
to pass options to the cache creation step without affecting the
|
||
training run step.
|
||
|
||
Ahead-of-Time Method Profiling
|
||
==============================
|
||
https://openjdk.org/jeps/515
|
||
|
||
Improve warmup time by making method-execution profiles from a
|
||
previous run of an application instantly available, when the HotSpot
|
||
Java Virtual Machine starts. This will enable the JIT compiler to
|
||
generate native code immediately upon application startup, rather than
|
||
having to wait for profiles to be collected.
|
||
|
||
Synchronize Virtual Threads without Pinning
|
||
===========================================
|
||
https://openjdk.org/jeps/491
|
||
|
||
Improve the scalability of Java code that uses synchronized methods
|
||
and statements by arranging for virtual threads that block in such
|
||
constructs to release their underlying platform threads for use by
|
||
other virtual threads. This will eliminate nearly all cases of virtual
|
||
threads being pinned to platform threads, which severely restricts the
|
||
number of virtual threads available to handle an application's
|
||
workload.
|
||
|
||
Compact Object Headers
|
||
======================
|
||
https://openjdk.org/jeps/450
|
||
https://openjdk.org/jeps/519
|
||
|
||
Reduce the size of object headers in the HotSpot JVM from between 96
|
||
and 128 bits down to 64 bits on 64-bit architectures. This will reduce
|
||
heap size, improve deployment density, and increase data locality.
|
||
|
||
This is now a production feature in OpenJDK 25 (JEP 519) enabled using
|
||
`-XX:+UseCompactObjectHeaders`. It was first introduced as an
|
||
experimental feature (JEP 450) that also required the use of
|
||
`-XX:+UnlockExperimentalVMOptions`.
|
||
|
||
Generational Shenandoah
|
||
=======================
|
||
https://openjdk.org/jeps/404
|
||
https://openjdk.org/jeps/521
|
||
|
||
Enhance the Shenandoah garbage collector with experimental
|
||
generational collection capabilities to improve sustainable
|
||
throughput, load-spike resilience, and memory utilization.
|
||
|
||
This is now a production feature in OpenJDK 25 (JEP 521) enabled using
|
||
`-XX:ShenandoahGCMode=generational`. It was first introduced as an
|
||
experimental feature (JEP 404) that also required the use of
|
||
`-XX:+UnlockExperimentalVMOptions`.
|
||
|
||
JFR Cooperative Sampling
|
||
========================
|
||
https://openjdk.org/jeps/518
|
||
|
||
Improve the stability of the JDK Flight Recorder (JFR) when it
|
||
asynchronously samples Java thread stacks. Achieve this by walking
|
||
call stacks only at safepoints, while minimizing safepoint bias.
|
||
|
||
JFR Method Timing & Tracing
|
||
===========================
|
||
https://openjdk.org/jeps/520
|
||
|
||
Extend the JDK Flight Recorder (JFR) with facilities for method timing
|
||
and tracing via bytecode instrumentation.
|
||
|
||
JFR CPU-Time Profiling
|
||
======================
|
||
https://openjdk.org/jeps/509
|
||
|
||
Enhance the JDK Flight Recorder (JFR) to capture more accurate
|
||
CPU-time profiling information on Linux.
|
||
|
||
This is an experimental feature so its JFR events are tagged with the
|
||
`@Experimental` annotation. Unlike other experimental virtual machine
|
||
features, it does not need to be explicitly enabled with
|
||
`-XX:+UnlockExperimentalVMOptions`.
|
||
|
||
Tools
|
||
=====
|
||
|
||
Launch Multi-File Source-Code Programs
|
||
======================================
|
||
https://openjdk.org/jeps/458
|
||
|
||
Enhance the java application launcher to be able to run a program
|
||
supplied as multiple files of Java source code. This will make the
|
||
transition from small programs to larger ones more gradual, enabling
|
||
developers to choose whether and when to go to the trouble of
|
||
configuring a build tool.
|
||
|
||
Markdown Documentation Comments
|
||
===============================
|
||
https://openjdk.org/jeps/467
|
||
|
||
Enable JavaDoc documentation comments to be written in Markdown rather
|
||
than solely in a mixture of HTML and JavaDoc @-tags.
|
||
|
||
Linking Run-Time Images without JMODs
|
||
=====================================
|
||
https://openjdk.org/jeps/493
|
||
|
||
Reduce the size of the JDK by approximately 25% by enabling the jlink
|
||
tool to create custom run-time images without using the JDK's JMOD
|
||
files.
|
||
|
||
This feature must be enabled when the JDK is built using the
|
||
--enable-linkable-runtime option. It will not be enabled by default,
|
||
and some JDK vendors may choose not to enable it.
|
||
|
||
DEPRECATIONS
|
||
============
|
||
|
||
Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal
|
||
==================================================================
|
||
https://openjdk.org/jeps/471
|
||
|
||
Deprecate the memory-access methods in sun.misc.Unsafe for removal in
|
||
a future release. These unsupported methods have been superseded by
|
||
standard APIs, namely the VarHandle API (JEP 193, OpenJDK 9) and the
|
||
Foreign Function & Memory API (JEP 454, OpenJDK 22). We strongly
|
||
encourage library developers to migrate from sun.misc.Unsafe to
|
||
supported replacements, so that applications can migrate smoothly to
|
||
modern JDK releases.
|
||
|
||
Warn upon Use of Memory-Access Methods in sun.misc.Unsafe
|
||
=========================================================
|
||
https://openjdk.org/jeps/498
|
||
|
||
Issue a warning at run time on the first occasion that any
|
||
memory-access method in sun.misc.Unsafe is invoked. All of these
|
||
unsupported methods were terminally deprecated in JDK 23 (see JEP 471
|
||
above). They have been superseded by standard APIs, namely the
|
||
VarHandle API (JEP 193, OpenJDK 9) and the Foreign Function & Memory
|
||
API (JEP 454, OpenJDK 22). We strongly encourage library developers to
|
||
migrate from sun.misc.Unsafe to supported replacements, so that
|
||
applications can migrate smoothly to modern JDK releases.
|
||
|
||
Permanently Disable the Security Manager
|
||
========================================
|
||
https://openjdk.org/jeps/486
|
||
|
||
The Security Manager has not been the primary means of securing
|
||
client-side Java code for many years, it has rarely been used to
|
||
secure server-side code, and it is costly to maintain. We therefore
|
||
deprecated it for removal in OpenJDK 17 via JEP 411 (2021). As the
|
||
next step toward removing the Security Manager, we will revise the
|
||
Java Platform specification so that developers cannot enable it and
|
||
other Platform classes do not refer to it. This change will have no
|
||
impact on the vast majority of applications, libraries, and tools. We
|
||
will remove the Security Manager API in a future release.
|
||
|
||
REMOVALS
|
||
========
|
||
|
||
String Templates
|
||
================
|
||
https://openjdk.org/jeps/430
|
||
https://openjdk.org/jeps/459
|
||
https://openjdk.org/jeps/465
|
||
|
||
This was a preview feature (http://openjdk.java.net/jeps/12)
|
||
introduced in OpenJDK 21 (JEP 430) with a second preview in OpenJDK 22
|
||
(JEP 459). A third preview was proposed but ultimately withdrawn for
|
||
OpenJDK 23 (JEP 465) and the feature is no longer present. See [0]
|
||
for further explanation.
|
||
|
||
[0] https://mail.openjdk.org/pipermail/amber-spec-experts/2024-April/004106.html
|
||
|
||
Remove the Windows & Linux 32-bit x86 Ports
|
||
===========================================
|
||
https://openjdk.org/jeps/449
|
||
https://openjdk.org/jeps/479
|
||
https://openjdk.org/jeps/501
|
||
https://openjdk.org/jeps/503
|
||
|
||
Remove the source code and build support for the Windows (JEP 479) &
|
||
Linux (JEP 503) 32-bit x86 ports. The Windows port was deprecated for
|
||
removal in JDK 21 by JEP 449 and the Linux port was deprecated for
|
||
removal in JDK 24 by JEP 501. Both deprecations took place with the
|
||
express intent to remove the ports in a future release.
|
||
|
||
Following this removal of these 32-bit x86 ports, the
|
||
architecture-agnostic Zero port is the only way to run Java programs
|
||
on 32-bit x86 processors.
|
||
|
||
ZGC: Remove the Non-Generational Mode
|
||
=====================================
|
||
https://openjdk.org/jeps/439
|
||
https://openjdk.org/jeps/474
|
||
https://openjdk.org/jeps/490
|
||
|
||
Remove the non-generational mode of the Z Garbage Collector (ZGC),
|
||
keeping the generational mode as the default for ZGC (see JEP 439 &
|
||
474).
|