RELEASE NOTES: JDK 28

Notes generated: Wed Jul 22 09:02:26 CEST 2026

JEPs

Issue Description
JDK-8379682 JEP 535: Shenandoah GC: Generational Mode by Default
Switch the default mode of the Shenandoah Garbage Collector to the generational mode. Deprecate the non-generational mode, with the intent to remove it in a future release.

RELEASE NOTES

core-libs/java.net

Issue Description
JDK-8380549

Changed `HttpCookie` to Accept Cookies With Invalid `Expires` Attribute As Session Cookies


java.net.HttpCookie will ignore the value of the Expires attribute of a cookie, if the attribute value cannot be parsed into a valid date. Such cookies do not expire till the end of the session. This new behaviour matches the Expires attribute specification of RFC-6265.

Previously, the failure to parse the value of the Expires attribute would have resulted in the cookie being discarded.


JDK-8387598

Specification of `sun.net.httpserver.maxReqTime` and `sun.net.httpserver.maxRspTime` System Properties Corrected to State Their Values are in Seconds


The specification of the sun.net.httpserver.maxReqTime and sun.net.httpserver.maxRspTime system properties, which are used to configure the HTTP server in the jdk.httpserver module, has been corrected to state that their values are in seconds. This change updates the specification to match the long standing behaviour in the implementation.


core-libs/java.sql

Issue Description
JDK-8272194

java.sql.Date and java.sql.Timestamp Preserve BC Years in java.time Conversions


The [java.sql.Date.toLocalDate()] and [java.sql.Timestamp.toLocalDateTime()] conversions now preserve BC years correctly. Previously, if the underlying SQL date or timestamp contained a BC year, these conversions would incorrectly return a result containing an AD year. For example, a java.sql.Date representing January 1, 2 BC would be converted to a java.time.LocalDate of 0002-01-01. After this change, that same value is now correctly converted to -0001-01-01.

Applications that convert BC java.sql.Date or java.sql.Timestamp values will now observe the corrected year in the resulting java.time value. Conversions of AD values will remain unchanged.


security-libs/java.security

Issue Description
JDK-8387123

LuxTrust Global Root CA removed


The following root certificate has been removed from the cacerts keystore: ``` + alias name "luxtrustglobalrootca [jdk]" Distinguished Name: CN=LuxTrust Global Root, O=LuxTrust s.a., C=LU

```


core-libs/java.text

Issue Description
JDK-8386200

ListFormat Single Quote Handling Fixed


The JDK reference implementation for [java.text.ListFormat] is no longer affected by [java.text.MessageFormat] single quote escaping semantics. For example, previously, a list pattern such as " '{0}', {1} " may have incorrectly formatted List.of("bar", "foo") as: " {0}, bar ". ListFormat is now updated to always treat single quotes as literal characters when read from a pattern.

This change is observable for ListFormat patterns that contain single quotes. As a result, it primarily affects application-supplied custom patterns that contain them.


JDK-8385834

Custom ListFormat Patterns Are Validated More Strictly


[java.text.ListFormat.getInstance(String[])] now validates custom list format patterns more strictly. Only the exact placeholders "{0}", "{1}", and "{2}" are accepted, and "{2}" is accepted only in the three-element pattern. Patterns with duplicate placeholders or curly braces outside valid placeholders now cause an [IllegalArgumentException] to be thrown.

This change affects only application-supplied custom patterns passed to [ListFormat.getInstance(String[])]. Locale-derived ListFormat instances are not affected.


security-libs/javax.net.ssl

Issue Description
JDK-8301626

Capture Named Group information in TLSHandshakeEvent


The jdk.TLSHandshakeEvent JFR event now records the named group that is negotiated in a TLS handshake. A new field named namedGroup has been added to the event.


security-libs/javax.crypto

Issue Description
JDK-8371305

Significant performance gains in X25519 key agreement and Ed25519 signature algorithms


The underlying Curve25519 operations have been provided intrinsics in this release which has resulted in noticeable performance improvements for the X25519 key agreement algorithm and the Ed25519 signature algorithm as follows:

  1. x86-64 architecture

  2. X25519 Key generation: +19%

  3. X25519 Decapsulation: +19%

  4. X25519 Encapsulation: +19%

  5. Ed25519 Key generation: +20%

  6. Ed25519 Signing: +19%

  7. Ed25519 Verification: +16%

  8. AArch64 architecture

  9. X25519 Key generation: +10%

  10. X25519 Decapsulation: +9%

  11. X25519 Encapsulation: +9%

  12. Ed25519 Key generation: +15%

  13. Ed25519 Signing: +12%

  14. Ed25519 Verification: +12%


JDK-8385304

Significant performance gains in X25519 key agreement and Ed25519 signature algorithms


The underlying Curve25519 operations have been provided intrinsics in this release which has resulted in noticeable performance improvements for the X25519 key agreement algorithm and the Ed25519 signature algorithm as follows:

  1. x86-64 architecture

  2. X25519 Key generation: +19%

  3. X25519 Decapsulation: +19%

  4. X25519 Encapsulation: +19%

  5. Ed25519 Key generation: +20%

  6. Ed25519 Signing: +19%

  7. Ed25519 Verification: +16%

  8. AArch64 architecture

  9. X25519 Key generation: +10%

  10. X25519 Decapsulation: +9%

  11. X25519 Encapsulation: +9%

  12. Ed25519 Key generation: +15%

  13. Ed25519 Signing: +12%

  14. Ed25519 Verification: +12%


FIXED ISSUES

client-libs/2d

Priority Bug Summary
P2 JDK-8386671 Raster factory methods fail to throw specified exceptions for invalid bandOffsets and bankIndices
P3 JDK-8041911 media sizes with width > height are not supported by the java printing api
P3 JDK-8385100 Null pointer dereference in java.desktop/windows/classes/sun/print/Win32PrintJob.java:606 and other PrintJob implementations
P4 JDK-8387375 Update package sun.font to use instanceof pattern variable
P5 JDK-8386109 Add missing @Override annotations in "javax.print.*" packages

client-libs/java.awt

Priority Bug Summary
P4 JDK-8291470 Description change for mouseMoved method in java.awt.event.MouseMotionAdapter
P4 JDK-8387298 IS_WIN2000 and IS_WINXP macros are obsolete
P4 JDK-8387675 IS_WINVISTA macro is obsolete
P4 JDK-8387465 Remove isXP() function from WPathGraphics.java

client-libs/javax.accessibility

Priority Bug Summary
P4 JDK-8385302 Open source accessibility AWT tests
P4 JDK-8387674 Remove isXP() function from jabswitch.cpp
P4 JDK-8381236 VoiceOver Fails to Identify Component After Switching Windows

client-libs/javax.imageio

Priority Bug Summary
P4 JDK-8384512 BMPImageWriter uses integer division before Math.ceil causing incorrect calculation

client-libs/javax.sound

Priority Bug Summary
P4 JDK-8386273 Some javax/sound/sampled tests fail on systems with high CPU core number and running with high concurrency

client-libs/javax.swing

Priority Bug Summary
P3 JDK-8386795 Swing specification needs caveats on L&F rendering behaviors
P4 JDK-8385367 JTextComponent#setDocument() can reattach old AccessibleContext
P4 JDK-8387693 Remove unused method
P4 JDK-8386056 Test JFileChooser/HTMLFileName.java doesn't run in Nimbus and Motif

core-libs

Priority Bug Summary
P4 JDK-8386255 Float16Vector NaN canonicalization for hashCode computation
P4 JDK-8386322 Float16Vector.toString should render lane values using Float16.toString

core-libs/java.lang

Priority Bug Summary
P4 JDK-8386960 BUILD_LIBVERIFY remove special warning settings
P4 JDK-8386965 Data race on java.lang.Class.reflectionFactory field
P4 JDK-8388183 Wrong example in documentation for String.toLowerCase()
P5 JDK-8365887 Outdated comments in String::decode

core-libs/java.lang.classfile

Priority Bug Summary
P3 JDK-8386700 Class-File API: StackMapGenerator.setLocalsFromArg leaves stale locals, generating invalid stack maps
P4 JDK-8386802 ClassFile Util.entryList should consider non-RandomAccess lists

core-libs/java.lang.foreign

Priority Bug Summary
P4 JDK-8388347 Remove enablePreview from TestEnableNativeAccessJarManifest
P4 JDK-8386848 testBool in java/foreign/normalize/TestNormalize.java fails on Zero VM with expected [true] but found [false]

core-libs/java.lang.invoke

Priority Bug Summary
P3 JDK-8378796 java.lang.runtime bootstrap methods missing lookup validation

core-libs/java.lang:reflect

Priority Bug Summary
P4 JDK-8382841 Revert annotation parsing changes from libgraal
P4 JDK-8384833 Start of release updates for JDK 28

core-libs/java.net

Priority Bug Summary
P4 JDK-8380967 Canceled HttpClient.sendAsync futures throw inconsistent exceptions
P4 JDK-8355412 com/sun/net/httpserver/Test9a.java failed on windows trying to delete file: java.nio.file.FileSystemException: The process cannot access the file because it is being used by another process
P4 JDK-8385906 DirPermissionDenied.java uses chmod instead of Java APIs for changing permissions
P4 JDK-8387273 Enhance httpserver logging to log when maxConnections is reached
P4 JDK-8380549 HttpCookie.expiryDate2DeltaSeconds returns 0 on parse failure, causing immediate cookie expiration
P4 JDK-8386985 PacketSpaceManagerTest failed with AssertionError; A race condition may cause packetSent to mistakenly skip rescheduling of the transmitter task
P4 JDK-8386989 QuicEndpoint.ClosedConnection should not use QuicTimerQueue::offer
P4 JDK-8383248 Reduce buffer allocations for HTTP headers instead of allocating 16KB per request
P4 JDK-8387598 sun.net.httpserver.maxReqTime and maxRspTime properties expect values in seconds
P4 JDK-8386595 Two java/net/MulticastSocket tests fail on machines with no ipv6 address other than loopback

core-libs/java.nio

Priority Bug Summary
P4 JDK-8364322 (fs) fchmodat support for AT_SYMLINK_NOFOLLOW flag too pessimistic on Linux
P4 JDK-8387704 java/nio/file/DirectoryStream/SecureDS.java failing with AccessDeniedException
P5 JDK-8388046 (fs) UnixFileSystem Flags.failIfUnableToCopyPosix and Flags.failIfUnableToCopyNonPosix no longer needed

core-libs/java.nio.charsets

Priority Bug Summary
P4 JDK-8386810 Improve debuggability of test/jdk/sun/nio/cs/TestStringCodingUTF8.java

core-libs/java.sql

Priority Bug Summary
P4 JDK-8272194 java.sql.Date::toLocalDate() broken for dates before 1 A.D.

core-libs/java.text

Priority Bug Summary
P4 JDK-8387753 Improve SimpleDateFormat.set2DigitYearStart() documentation
P4 JDK-8386200 ListFormat incorrectly escapes single quotes
P4 JDK-8385834 Tighten ListFormat.getInstance(String[]) behavior for invalid placeholders

core-libs/java.time

Priority Bug Summary
P4 JDK-8386328 TemporalField.adjustInto Javadoc incorrectly uses 1-argument method signatures

core-libs/java.util.concurrent

Priority Bug Summary
P3 JDK-8385830 ForkJoinTask#get may swallow caller thread's interrupt flag
P3 JDK-8386085 Livelock in AbstractQueuedSyncronizer.cleanQueue() when multiple threads do tryAcquire() with a short timeout and no permits available
P4 JDK-8386372 Add ConcurrentSkipListMap to map stress test
P4 JDK-8377034 Enable full JSR166TestCase.java test for s390x

core-libs/java.util.jar

Priority Bug Summary
P3 JDK-8385924 GZIPInputStream.read() behaves differently on some Java versions
P4 JDK-8385891 Introduce a test for GZIPInputStream whose underlying stream is a blocking InputStream

core-libs/java.util:collections

Priority Bug Summary
P4 JDK-6356745 (coll) Add PriorityQueue(Collection, Comparator)

core-libs/java.util:i18n

Priority Bug Summary
P4 JDK-8380993 [REDO] Incorrect Interpretation of POSIX TZ Environment Variable on AIX
P4 JDK-8387041 Add a URL link to BCP 47 in the Locale class
P4 JDK-8387259 Clarify extlang in Locale composition description
P4 JDK-8387185 Locale does not respect numeric singletons
P4 JDK-8387253 Locale incorrectly accepts extlangs after non 2*3ALPHA lang
P4 JDK-8387261 Locale.LanguageRange weight validation issues
P4 JDK-8387795 Remove hard coded set of locales in LocaleData
P4 JDK-8387455 Restrict legacy Locale compatibility handling to exact matches

core-libs/javax.lang.model

Priority Bug Summary
P4 JDK-8384838 Add SourceVersion.RELEASE_28

core-libs/javax.naming

Priority Bug Summary
P3 JDK-8154193 Move jdk.naming.rmi module to platform class loader
P4 JDK-8386807 com/sun/jndi/ldap/Connection.java references the wrong exception

core-libs/javax.script

Priority Bug Summary
P4 JDK-8387044 test/jdk/javax/script/CommonSetup.sh incorrectly sets isCygwin=true for MSys/MinGW

core-svc

Priority Bug Summary
P4 JDK-8386593 AArch64: serviceability/sa/TestJhsdbJstackMixedWithXComp.java fails on Ubuntu 26.04

core-svc/debugger

Priority Bug Summary
P4 JDK-8387640 vmTestbase/nsk/jdi/EventRequestManager/threadStartRequests/thrstartreq001/TestDescription.java fails intermittently
P4 JDK-8327967 vmTestbase/nsk/jdi/EventRequestManager/threadStartRequests/thrstartreq002/TestDescription.java fails intermittently

core-svc/java.lang.management

Priority Bug Summary
P4 JDK-8387142 BUILD_LIBMANAGEMENT_EXT remove special warning settings

core-svc/javax.management

Priority Bug Summary
P4 JDK-8385839 JMX config file correction

core-svc/tools

Priority Bug Summary
P4 JDK-8385964 AttachProvider docs update: 'doors' to 'socket'
P4 JDK-8387996 Remove reference to -d64 from serviceability tool manpages

globalization/translation

Priority Bug Summary
P3 JDK-8385927 JDK 27 RDP1 L10n resource files update

hotspot/compiler

Priority Bug Summary
P2 JDK-8387378 [BACKOUT] C2: SIGSEGV in compiled code due to missing ctrl
P2 JDK-8386831 Build fails due to bad copyright header in test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitPPC64.java
P2 JDK-8385833 C2 Vector API: assert(false) failed: infinite loop in PhaseIterGVN::transform_old
P2 JDK-8386155 C2 Vector API: missing truncation in VectorNode::push_through_replicate
P2 JDK-8387073 C2: StoreNode::Ideal wrongly optimizes away scalar store before masked vector store
P2 JDK-8378719 CompiledDirectCall::set_to_interpreted() fails with guarantee(chk == -1 || chk == 0) failed: Field too big for insn
P3 JDK-8388406 [BACKOUT] C2: crash in compiled code due to zero division because of widened CastII
P3 JDK-8387395 [REDO] C2: SIGSEGV in compiled code due to missing ctrl
P3 JDK-8335163 [s390x] test failure - PrintClasses.java
P3 JDK-8386656 C2 AVX512: -XX:-UseCountTrailingZerosInstruction causes assert(UseCountTrailingZerosInstruction) failed: tzcnt instruction not supported
P3 JDK-8374783 C2 compilation asserts with "slice of address and input slice don't match"
P3 JDK-8386482 C2 CountedLoopConverter::filtered_type_from_dominators: assert(_base == Int) failed: Not an Int
P3 JDK-8386475 C2 x64: -XX:-UseBMI2Instructions is broken for AVX-512
P3 JDK-8387328 C2: A Phi must not have a narrower Type than its inputs
P3 JDK-8387411 C2: assert((in_vt->isa_pvectmask() == nullptr) == (vt->isa_pvectmask() == nullptr)) failed: Both BVectMask, or both NVectMask, or both PVectMask
P3 JDK-8386503 C2: assert(adr_type == nullptr || adr_type->isa_aryptr() != nullptr) failed: unexpected type-unsafe store
P3 JDK-8383767 C2: assert(curr_ctrl->in(0)->Opcode() == Op_If) failed: unexpected node MemBarStoreStore
P3 JDK-8387149 C2: assert(regs[i] != regs[j]) failed: regs[2] and regs[3] are both: v24
P3 JDK-8386830 C2: CountedLoopConverter::filtered_type wrongly ignores nullptr contributions to type union/meet
P3 JDK-8380166 C2: crash in compiled code due to zero division because of widened CastII
P3 JDK-8387015 C2: crash with "named projection 2 not found" from ArrayCopyNode::finish_transform() for clone
P3 JDK-8375694 C2: Dead loop constructed with CastPP in late inlining
P3 JDK-8385855 C2: IfNode::filtered_int_type should only allow CmpI
P3 JDK-8387012 C2: PhaseVector::expand_vunbox_node should not inject the payload type into the load
P3 JDK-8382536 C2: sharpen_type_after_if: assert(val->find_edge(con) > 0) failed: mismatch
P3 JDK-8385420 C2: SIGSEGV in compiled code due to missing ctrl
P3 JDK-8386591 C2: wrong result because of broken truncation check in CountedLoopConverter::TruncatedIncrement::build
P3 JDK-8385651 HotCodeSampler crashes with JFR enabled
P3 JDK-8388080 Increase static size of some stubs for APX code
P3 JDK-8379555 Test compiler/igvn/ExpressionFuzzer.java crashed with -Xcomp: Not monotonic
P4 JDK-8379327 128-bit multiplication uses two multiply instructions on x86_64
P4 JDK-8387652 [aarch64] Fallback mode for narrow klass decoding
P4 JDK-8387184 [PPC64] C1 logic operations should support generic constants
P4 JDK-8388120 [s390x] c2: c_return_value is redundant
P4 JDK-8388439 [s390x] LoadNKlass rule doesn't kill CC
P4 JDK-8386474 Aarch64: Correct static_assert((N & (N - 1)) == 0
P4 JDK-8388008 AArch64: data race accessing CodeHeap::high in CodeCache::max_distance_to_non_nmethod
P4 JDK-8386669 AArch64: Distinguish ldr and ldrw literal instructions in NativeInstruction
P4 JDK-8381766 AArch64: extend MacroAssembler increment/decrement/and/or to use 24-bit immediate operands
P4 JDK-8382135 AArch64: HotCodeCollectorMoveFunction.java fails intermittently
P4 JDK-8383905 AArch64: Improve code generation for long vector multiply
P4 JDK-8387388 AArch64: Optimize reduceLanes MUL op with ext instruction
P4 JDK-8387081 AArch64: Refactor MacroAssembler::cmpxchg
P4 JDK-8387594 AArch64: Support vector integer division for SVE
P4 JDK-8386808 AArch64: Sync aarch64_vector.ad with aarch64_vector_ad.m4 after JDK-8370691
P4 JDK-8370691 Add new Float16Vector type and enable intrinsification of vector operations supported by auto-vectorizer
P4 JDK-8388381 appcds/aotClassLinking/AddReads.java fails with assert(stub_id != StubId::NO_STUBID) failed: blob continuation_blob (stub gen) contains no stubs! when run with -XX:-VMContinuations
P4 JDK-8387937 C1: aarch64: two-arg add_debug_info_for_branch looks obsolete
P4 JDK-8386163 C2 Vector API: assert(collect_unique_inputs(n, inputs) == 1) failed: not unary
P4 JDK-8387698 C2 VectorAPI: Float16Vector::indexInRange hits: fatal error: Not monotonic
P4 JDK-8386762 C2: Allow inlining cold methods
P4 JDK-8381362 C2: assert(_late_inlines.length() == 0 || IncrementalInlineMH || IncrementalInlineVirtual) failed: not empty
P4 JDK-8387197 C2: Improve klass_ptr_type in GraphKit::gen_instanceof() similarly to GraphKit::gen_checkcast()
P4 JDK-8384963 C2: Incorrect uint constant match mishandles negative values in vectors
P4 JDK-8379816 C2: Possible integer overflow in BCEscapeAnalyzer::iterate_blocks
P4 JDK-8387721 C2: Print Node barrier data
P4 JDK-8387940 C2: Stress allocation elimination failures
P4 JDK-8388523 C2: Test compiler/igvn/TestMaskedStoreIdealization.java failed
P4 JDK-8386597 C2: TestTruncationWrapFuzzer.java‎ for CountedLoop detection of subword truncated iv
P4 JDK-8380035 compiler/intrinsics/TestReturnOopSetForJFRWriteCheckpoint.java crashes on s390x
P4 JDK-8385945 Deprecate the CompilationMode flag
P4 JDK-8387747 Enable long vector multiply IR tests for RISC-V
P4 JDK-8384847 Fix documentation typos around ML-KEM and ML-DSA intrinsic code for aarch64
P4 JDK-8384606 HotCodeHeap tests require C2
P4 JDK-8370870 IGV: add simple regression tests for graph dumping
P4 JDK-8349563 Improve AbsNode::Value() for integer types
P4 JDK-8387414 Insufficient feature gate in vm_version_x86 for UseKyberIntrinsics
P4 JDK-8387334 IR Framework tests should run in jtreg driver mode
P4 JDK-8388186 java -XX:UseSSE=2 -XX:+EnableX86ECoreOpts -version crashes with assert(UseAVX > 0) failed: requires some form of AVX
P4 JDK-8387017 java/lang/instrument/GetObjectSizeIntrinsicsTest.java fails with Error evaluating expression: invalid boolean value: `null' for expression `vm.opt.VerifyOops'
P4 JDK-8376803 Jtreg test compiler/vectorization/TestVectorAlgorithms.java fails after JDK-8373026
P4 JDK-8386852 Lower peak throughput with AOTCache
P4 JDK-8387660 Oop verification is sometimes wrong
P4 JDK-8387758 Oop verification wrong in StubGenerator::generate_generic_copy
P4 JDK-8373487 Out-of-bounds access in AlignmentGapAccess test
P4 JDK-8386637 PPC64: Implement Thread.onSpinWait() intrinsic and SpinPause() using SMT priority hints
P4 JDK-8386879 PPC64: or_unchecked in OrI instructs can emit unintended SMT priority hints
P4 JDK-8387019 PPC64: Remove postalloc_expand from cmovI/cmovL bso_reg_conLvalue0 nodes
P4 JDK-8387210 PPC64: Remove postalloc_expand from EncodePKlass and DecodeNKlass nodes
P4 JDK-8387016 PPC64: Remove postalloc_expand from float/double compare nodes
P4 JDK-8385166 PPC: C2: c_return_value and return_value should not set 2nd OptoRegPair for Op_RegI
P4 JDK-8388477 Replace false with 0 in IntelJccErratum::compute_padding
P4 JDK-8386460 Report AOT code loading failure before log of AOT code cache content
P4 JDK-8388456 RISC-V: Add UseZvbb to RVA23U64Profile
P4 JDK-8388035 RISC-V: Auto-enable Zfa extension features
P4 JDK-8386945 RISC-V: Auto-enable Zvbb extension features
P4 JDK-8388075 RISC-V: Auto-enable Zvbc extension features
P4 JDK-8386161 RISC-V: Auto-enable Zvkn/Zvkg extension features
P4 JDK-8388399 RISC-V: Enable vector FP16 conversions with Zvfhmin
P4 JDK-8368180 RISC-V: Remove redundant ext_Zicboz.enable_feature()
P4 JDK-8387078 RISC-V: x27 can be allocated in CompressedOops mode
P4 JDK-8385746 S390: Improve receiver type profiling reliability
P4 JDK-8387638 Some compiler/vectorization/runner/* tests timed out in Driver mode
P4 JDK-8387003 Stale doc comment in TrustFinalFields.java after JDK-8376777
P4 JDK-8381809 Template Framework Library: add Float16Vector type
P4 JDK-8369020 Test compiler/intrinsics/TestLongUnsignedDivMod.java completed and timed out
P4 JDK-8384251 Test java/lang/instrument/GetObjectSizeIntrinsicsTest.java crashed: fatal error: Not compilable at tier 1: CodeBuffer overflow
P4 JDK-8387622 Tests producing many small output writes are extremely slow on Windows
P4 JDK-8378892 TestTrampoline fails on Windows AArch64
P4 JDK-8385588 Tune APX support in C2 backend
P4 JDK-8385119 Unify boolean value normalization
P4 JDK-8382052 VectorAPI: Optimize the lanewise BITWISE_BLEND for AArch64
P4 JDK-8381618 VectorExpressionFuzzer.java: enable test for all platforms
P5 JDK-8388358 HotCodeHeap should throw warning when enabled without C2
P5 JDK-8381880 Test compiler/c1/TestTooManyVirtualRegistersMain.java uses wrong class in CompileCommand

hotspot/gc

Priority Bug Summary
P2 JDK-8386958 Build failure due to incorrect copyright text in src/hotspot/share/gc/shenandoah/ files
P2 JDK-8225186 G1: Compiler code cache requested GC deadlocks while WhiteBox has control
P2 JDK-8386846 G1: Crash in ~ThreadTotalCPUTimeClosure inside G1ServiceThread during CDS abort
P2 JDK-8387265 G1: Shutdown during concurrent cycle leaves SATB queues in inconsistent state
P3 JDK-8386332 G1: Cleanup pause incorrectly updates old gen MemoryPoolMXBean.getCollectionUsage()
P3 JDK-8387206 G1: Code root verification crashes because of stale table scanner
P3 JDK-8385369 G1: Concurrent Cleanup For Next Mark accesses uncommitted bitmaps after region uncommit
P3 JDK-8358342 G1: G1CodeRootSet performance breaks down on even moderate load
P3 JDK-8382627 Shenandoah: assert(old_reserve_result + young_reserve_result <= old_available + young_available) failed
P3 JDK-8387042 Shenandoah: Build time regression with LBE
P4 JDK-8386707 [BACKOUT] ZGC: Incorrect object undo in relocation race for relocation workers
P4 JDK-8388285 [s390] compP_reg_mem is missing the barrier_data() == 0 predicate
P4 JDK-8388284 [s390] resolve_jobject uses wrong branch condition after tmll
P4 JDK-8386098 Add empty MemRegion precondition to CardTable methods
P4 JDK-8387400 Force-inline Devirtualizer methods
P4 JDK-8386247 G1: Cleanup naming and type use of G1CollectionSet class members and methods
P4 JDK-8387303 G1: Convert G1ConcurrentRefine::_num_threads_wanted to use the Atomic API
P4 JDK-8387490 G1: Dynamically creating worker threads exposes memory visibility race
P4 JDK-8379983 G1: Fix up friend class declarations
P4 JDK-8385893 G1: G1CollectedHeap::_old_marking_cycles_completed should be an Atomic
P4 JDK-8385903 G1: G1CollectionSet::_num_regions needs to be Atomic
P4 JDK-8385899 G1: G1ConcurrentMarkThread::_state should be Atomic
P4 JDK-8385873 G1: G1ConcurrentRefineSweepTask::_sweep_completed should be Atomic
P4 JDK-8387322 G1: G1CSetCandidateGroupList::_num_regions should be Atomic
P4 JDK-8385901 G1: G1FullGCPrepareTask::_has_free_compaction_targets should be Atomic
P4 JDK-8387754 G1: Let Eden/SurvivorRegions use Atomic instead of volatile
P4 JDK-8387764 G1: Let G1CollectedHeap::_summary_bytes_used use the Atomic API
P4 JDK-8387760 G1: Let G1ConcurrentMark::_chunks_in_chunk_list use the Atomic API
P4 JDK-8387765 G1: Let G1HeapRegionType::_tag use the Atomic API
P4 JDK-8388461 G1: Missing G1FromCardCache footprint
P4 JDK-8371720 G1: Move concurrent mark initialization to first concurrent start pause
P4 JDK-8387083 G1: Remove redundant NMT tagging from G1RegionToSpaceMapper
P4 JDK-8387751 G1: Remove volatile from G1CollectorState::_initiate_conc_mark_if_possible
P4 JDK-8381128 G1: Tighten accesses to TAMS/TARS
P4 JDK-8382335 gc/stress/jfr/TestStressAllocationGCEventsWithShenandoah.java intermittently fails with OOME
P4 JDK-8386604 GenShen: _do_old_gc_bootstrap could become stuck after a full GC
P4 JDK-8386288 GenShen: assert(region->get_top_before_promote() == nullptr) failed: Cannot add region scheduled for in-place-promotion to the collection set
P4 JDK-8386204 GenShen: Bootstrap cycles are misidentified in logs
P4 JDK-8386202 Genshen: Regulator thread reporting hiccup times proportional to safepoint times
P4 JDK-8385933 GenShen: Remove ShenandoahAgingCyclePeriod
P4 JDK-8387391 hotspot_gc_shenandoah should include gtests
P4 JDK-8386254 Parallel: Adjust Pointers should use stripes in young spaces
P4 JDK-8386705 Parallel: Allow NUMA with explicit huge pages and adaptive resizing
P4 JDK-8386480 Parallel: Avoid Triggering GC Before VM Initialization Completes
P4 JDK-8387387 Parallel: Clean up startup allocation locking
P4 JDK-8387129 Parallel: Wrong TaskTerminator in ParallelScavengeRefProcProxyTask
P4 JDK-8385454 Provide more NUMA related information in hsinfo/hserr files
P4 JDK-8387742 Reclaim CodeCache nmethods more promptly
P4 JDK-8385989 Remove mention of obsoleted/removed ParallelRefProcEnabled in documentation
P4 JDK-8386323 Remove unused MemoryPool allocation availability state
P4 JDK-8385728 Serial: Check empty MemRegion in maintain_old_to_young_invariant
P4 JDK-8387581 Serial: Clean up startup allocation locking
P4 JDK-8388139 Shenandoah: -XX:+VerifyOops fails on forwarded objects with COH
P4 JDK-8386512 Shenandoah: Add a diagnostic option to facilitate testing pinned regions
P4 JDK-8382213 Shenandoah: Drop weak root processing flags earlier
P4 JDK-8387293 Shenandoah: Improve gc+stats logging for generational mode
P4 JDK-8386312 Shenandoah: Incorrect assertion in ShenandoahAllocRate uses is_locked() instead of owned_by_self()
P4 JDK-8385596 Shenandoah: Introduce per-partition allocators with FreeSet API boundary
P4 JDK-8385592 Shenandoah: Introduce ShenandoahAllocator interface to encapsulate memory allocation
P4 JDK-8387907 Shenandoah: Marking loop prefetch
P4 JDK-8386798 Shenandoah: Missing load barrier when making assertions about mark bitmap
P4 JDK-8380390 Shenandoah: Missing store barrier when resetting bitmaps
P4 JDK-8388173 Shenandoah: Overly strict assertion failure in CAS barrier
P4 JDK-8386992 Shenandoah: Pad hot atomic counters to avoid false sharing on the allocation path
P4 JDK-8385732 Shenandoah: Penalize triggering heuristics for out-of-cycle degenerated
P4 JDK-8387047 Shenandoah: Purge SBS::resolve_forwarded
P4 JDK-8387806 Shenandoah: Reduce allocation-path contention from ShenandoahAllocRate byte accounting
P4 JDK-8388058 Shenandoah: Refactor arraycopy_work
P4 JDK-8385594 Shenandoah: Remove legacy allocation methods from ShenandoahFreeSet
P4 JDK-8386910 Shenandoah: remove redundant logging of free set status
P4 JDK-8386547 Shenandoah: remove unused variables in Freeset reserve_regions
P4 JDK-8385643 Shenandoah: Rework mark loop inlining
P4 JDK-8387961 Shenandoah: Rework marked objects loop prefetch
P4 JDK-8387713 Shenandoah: Rework native card table barrier
P4 JDK-8387260 Shenandoah: ShenandoahOldGeneration::_promoted_reserve should be atomic
P4 JDK-8386292 Shenandoah: Simplify and strengthen C1 barriers
P4 JDK-8387707 Shenandoah: Simplify reserved queue handling in mark loop
P4 JDK-8387463 Shenandoah: Use direct oop_oop_iterate methods for known types in marking loops
P4 JDK-8386872 Test gc/shenandoah/generational/TestOldGrowthTriggers still fails intermittently
P4 JDK-8388312 ZGC: Diagnostic VM option `ZIndexDistributorStrategy` is not validated
P4 JDK-8387467 ZGC: Use shared thread-local _nmethod_disarmed_guard_value
P5 JDK-8385562 G1: Remove obsolete young_list prefix in identifiers used before JDK-8150721
P5 JDK-8385961 Shenandoah: incorrect assert ordering in ShenandoahFreeSet::allocate_contiguous non-humongous path
P5 JDK-8386252 Shenandoah: Polish LRB argument preparation
P5 JDK-8385975 Shenandoah: remove leftover ShenandoahPacer declarations in ShenandoahHeap

hotspot/jfr

Priority Bug Summary
P3 JDK-8386485 JFR: RecordingFile::write overwrites original file
P3 JDK-8385574 JFR: Redaction should check file
P3 JDK-8385957 JFR: Sensitive command-line arguments still in environment variable values
P4 JDK-8387697 Avoid using os::Linux::query_accurate_process_memory_info in JFR
P4 JDK-8388316 Make jdk/jfr/event/runtime/TestResidentSetSizeEvent.java intermittent after JDK-8387697
P4 JDK-8386345 Remove redundant @requires from TestGarbageCollectionEventWithZMinor
P4 JDK-8385892 TestResidentSetSizeEvent fails with RuntimeException: Should be non-zero: expected 0 > 0

hotspot/jvmti

Priority Bug Summary
P3 JDK-8387718 JVMTI GetLocal/SetLocal: slot bounds check overflows for long/double slots
P3 JDK-8388464 New test serviceability/jvmti/GetLocalVariable/GetSetLocalSlotOverflow.java is failing with virtual threads
P3 JDK-8379144 serviceability/jvmti/vthread/VThreadTest/VThreadTest.java timed out with --enable-preview
P4 JDK-8383879 assert(_cur_stack_depth == num_frames) failed: cur_stack_depth out of sync _cur_stack_depth: 9 num_frames: 10

hotspot/runtime

Priority Bug Summary
P3 JDK-8387580 [S390x] OpenJDK build crashes with SIGSEGV in HashMap::resize()
P3 JDK-8388463 Aarch64+Zero build is broken by JDK-8387652
P3 JDK-8384557 Allow configuration of the JVM's temporary directory on Linux
P3 JDK-8385806 Assert failed when running Skynet.java with continuation trace logging enabled
P3 JDK-8386562 JVM crashes when StackMapTable attribute is too long
P3 JDK-8385661 jvmti/vthread/ThreadStateTest/ThreadStateTest.java triggers assert(f.pc() == _chunk->pc()) failed
P3 JDK-8387757 Man pages still say CompactObjectHeaders is not default
P3 JDK-8388457 parse_integer: typo in hex prefix detection causes out-of-bounds read and wrong base for negative hex
P3 JDK-8378049 test/hotspot/jtreg/runtime/NMT/NMTPrintMallocSiteOfCorruptedMemory.java failing on Windows
P3 JDK-8385655 Timeout in java/lang/Thread/virtual/KlassInit.java
P3 JDK-8386116 vm/jvmti/StopThread/stop001/stop00103/stop00103a.html trips assert(!java_lang_Thread::is_in_vthread_transition(vthread)) failed
P4 JDK-8387745 [aot] Several tests fail because a SoftReferenceKey cannot be archived
P4 JDK-8388117 [s390x] is_z_illtrap should recognise all forms
P4 JDK-8388016 [s390x] Remove the alignment from stubGenerator
P4 JDK-8386586 [s390x] TestSyncOnValueBasedClassEvent.java fails due to incorrect branch
P4 JDK-8365575 AOT cache should include classes verified using "fail over" verification
P4 JDK-8386685 CDS load on Windows/ARM64 using base address set to 0x5_0000_0000 causes a JVM crash
P4 JDK-8386456 Comments at the declaration of frame::frame_alignment are incorrect on some platforms
P4 JDK-8386922 Convert TraceRelocator to Unified Logging
P4 JDK-8387637 Dead code for upwards interpreter stacks
P4 JDK-8388360 Dead sharedRuntime.cpp stub name code
P4 JDK-8387302 Disable reserved stack areas for critical sections on Windows AArch64
P4 JDK-8386448 Enable dumping of AVX registers (YMM/ZMM and K registers) in JVM fatal error logs
P4 JDK-8387262 Enum constant frame::pc_return_offset is always zero
P4 JDK-8385586 Fix race in Windows map_or_reserve_memory_aligned using VirtualAlloc2 and MapViewOfFile3
P4 JDK-8386546 Fix race when reserving memory with NUMA interleaving on Windows
P4 JDK-8386592 Gtest os.trim_native_heap_vm sometimes fails in subtest os.trim_native_heap_vm
P4 JDK-8387788 JNI spec has stale reference to removed Thread.stop method
P4 JDK-8387794 JNI specification maintenance
P4 JDK-8387404 Make ClassLoaderData::oops_do inlineable
P4 JDK-8385427 Make unified logging checks in tests tolerant of added spaces
P4 JDK-8386476 NMT: Large page reservation not attributed to the correct memory tag
P4 JDK-8388122 NMT: Remove unused comm_size variable from RegionsTree::visit_committed_regions
P4 JDK-8388188 NMT: Remove unused local variable in RegionIterator::next_committed
P4 JDK-8387048 NMTCommittedVirtualMemoryTracker.test_committed_virtualmemory_region_vm fails due to found_stack_top
P4 JDK-8387991 Optimize execution of runtime/Thread/TestSpinPause.java
P4 JDK-8286300 Port JEP 425 to S390X
P4 JDK-8386659 PPC: cleanup dtrace leftovers part 2
P4 JDK-8384844 Remove expired flags in JDK 28
P4 JDK-8387633 Remove UnlockExperimentalVMOptions for COH in CDS build
P4 JDK-8387381 RISC-V: assert failed with fastdebug build on systems with different core types
P4 JDK-8386344 runtime/StackGuardPages/TestStackGuardPages build failure after JDK-8303612
P4 JDK-8303612 runtime/StackGuardPages/TestStackGuardPagesNative.java fails with exit code 139
P4 JDK-8387258 Test jdk/jfr/event/runtime/TestResidentSetSizeEvent.java failed on Windows: The size should be less than or equal to peak
P4 JDK-8380750 Test runtime/cds/appcds/TestSerialGCWithCDS.java#id1 failed: StringIndexOutOfBoundsException
P4 JDK-8387701 TestAVXRegisterDump: guarantee(how == 0) failed: test guarantee
P4 JDK-8386130 TestPrintMethodData.java failing with VirtualThread as main thread
P4 JDK-8387214 TraceJavaAssertions is unused
P4 JDK-8385991 Use StringTable's statistics method in Dictionary
P4 JDK-8386150 VtablesTest.java fails when main thread is a Virtual Thread

hotspot/svc

Priority Bug Summary
P4 JDK-8387625 Add "dt_socket" to `CheckedFeatures.notImplemented` for Windows/ARM64
P4 JDK-8387148 Linux perf map should record individual vtable trampolines
P4 JDK-8386325 The AttachListener does not do proper exception handling

hotspot/svc-agent

Priority Bug Summary
P4 JDK-8385723 Intermittent failure of serviceability/sa/ClhsdbInspect.java
P4 JDK-8386124 Test serviceability/sa/TestG1HeapRegion.java failed: Address of G1HeapRegion does not match
P4 JDK-8382338 Various serviceability agent tests fail on Linux x86_64 with LTO enabled
P4 JDK-8386944 Warning message was not printed on PAC enabled AArch64 Linux

hotspot/test

Priority Bug Summary
P4 JDK-8386107 arm32: libSuspendInCritical jtreg library fails to link

infrastructure

Priority Bug Summary
P3 JDK-8386844 Update to use jtreg 8.3
P4 JDK-8384848 Update JCov for class file version 72

infrastructure/build

Priority Bug Summary
P2 JDK-8386551 Windows build broken because of MSys2/Make update
P3 JDK-8387315 Add macosx-aarch64 bootcycle build profiles
P3 JDK-8387013 Update GitHub Actions
P4 JDK-8386878 [make] BUILD_LIBZIP_EXCLUDES seems to be unused
P4 JDK-8385660 Audit and remove unnecessary lint categories from $DISABLED_WARNINGS
P4 JDK-8387403 BUILD_LIBJAVA remove special warning settings
P4 JDK-8386625 Devkit could not be built on glibc 2.43+
P4 JDK-8387596 DEVKIT_LIB_DIR is unused
P4 JDK-8386805 Drop ICF optimization from MSVC compilation flags
P4 JDK-8385988 Linux devkits does not work with dnf5
P4 JDK-8387702 Linux/clang: enable linktime-gc on libjvm.so too, when it is configured
P4 JDK-8385123 Remove 32-bit x86 support for Linux devkits
P4 JDK-8387074 Remove duplicate handling of sparc in platform.m4
P4 JDK-8386081 Update --release 26 symbol information for JDK 27 build 27
P5 JDK-8385987 CheckReleaseFile.java fails for the build using the source code without .git

infrastructure/docs

Priority Bug Summary
P4 JDK-8386865 Fix links in JDK 27 JavaDoc API documentation

infrastructure/other

Priority Bug Summary
P4 JDK-8385950 Git: add ignore revisions file

infrastructure/release_eng

Priority Bug Summary
P4 JDK-8386082 Rectify JDK 28 GA date to 2027-03-23

security-libs/java.security

Priority Bug Summary
P3 JDK-8376748 Emit runtime warnings for JCE algorithms that will be disabled
P3 JDK-8382269 keytool man page references to "JKS" need to be cleaned up
P3 JDK-8383608 Make BinaryEncodable non-exhaustive
P3 JDK-8386681 Remove RawKeySpec
P4 JDK-8377102 cacerts jlink plugin
P4 JDK-8359758 O(n²) time complexity in sun.security.util.LocalizedMessage.getNonlocalized
P4 JDK-8387123 Remove LuxTrust Global Root CA
P5 JDK-8358549 O(n²) time complexity in java.security.Provider.parseLegacy() method

security-libs/javax.crypto

Priority Bug Summary
P2 JDK-8386911 Crypto benchmark regressions after JDK-8384353
P2 JDK-8386466 DESedeKeySpec.isParityAdjusted spec permits 8-byte key but RI throws InvalidKeyException
P2 JDK-8386473 DESKeySpec and DESedeKeySpec may throw InvalidKeyException instead of ArrayIndexOutOfBoundsException for Integer.MIN_VALUE offset
P3 JDK-8355216 Accelerate P-256 arithmetic on aarch64
P4 JDK-8376599 Update Cipher/PBE/PBEKeyTest.java for non-ASCII characters
P5 JDK-8385304 X25519 should utilize aarch64 intrinsics
P5 JDK-8371305 X25519 should utilize x86 intrinsics

security-libs/javax.net.ssl

Priority Bug Summary
P3 JDK-8301626 Capture Named Group information in TLSHandshakeEvent
P3 JDK-8386600 Fix comparison checks in DHasKEM
P3 JDK-8386680 Specify how cipher suite matching is implemented in jdk.tls.disabledAlgorithms security property
P3 JDK-8385978 Test javax/net/ssl/SSLSession/TestEnabledProtocols.java failed: java.security.cert.CertificateException: Unable to initialize, java.io.IOException: Too short
P3 JDK-8374454 Test sun/security/ssl/CipherSuite/DisabledCipherSuitesNotNegotiated.java from JDK-8356544 shows intermittent timeouts
P4 JDK-8387124 Incomplete algorithm decomposition for TLS 1.3 cipher suites in SSLAlgorithmDecomposer
P4 JDK-8386953 sun/security/ssl/CertificateCompression/CompressedCertMsgCache.java failing
P4 JDK-8387578 Test sun/security/ssl/SSLSessionImpl/ResumeChecksServer.java failed: Existing session was used: FAIL
P5 JDK-8387874 Timeout when running test BulkCipherDisabledAlgorithms
P5 JDK-8386203 Use CRC32C checksum instead of Adler32 for stateless session ticket

tools/javac

Priority Bug Summary
P3 JDK-8173155 JavacTask should have close() method
P3 JDK-8387215 On-demand attribution of a record constructor body causes javac to emit an invalid diagnostic
P3 JDK-8383563 Record pattern inference fails when inferred type arguments are same as formals
P3 JDK-8387865 ThisEscapeAnalyzer crashes for erroneous source code
P4 JDK-8384842 Add source 28 and target 28 to javac
P4 JDK-8387377 Compilation is very slow when --module-path contains many Automatic Modules and ALL-MODULE-PATH is used
P4 JDK-8387965 Incorrect line numbers for instanceof with pattern matching
P4 JDK-8383882 javac: incremental compilation using --module misses classes
P4 JDK-8386601 Rename LANGUAGE_MODEL preview feature to PREVIEW_SUPPORT
P4 JDK-8386654 Test tools/javac/SystemFilesClosed.java fails on systems without lsof
P4 JDK-8385974 Update symbol information for jdk-28+0

tools/javadoc(tool)

Priority Bug Summary
P3 JDK-8386589 Permitting a preview subclass should not produce a preview note
P4 JDK-8385506 Fix some remaining CSS issues
P4 JDK-8384065 Improve wrapping of link labels in the table of contents
P4 JDK-8383906 Target highlight in member details is too aggressive

tools/jconsole

Priority Bug Summary
P4 JDK-8385817 Headless jdk still contains bin/jconsole

tools/jlink

Priority Bug Summary
P3 JDK-8385355 NullPointerException in jdk.tools.jlink.internal.ImageResourcesTree after JDK-8377070
P4 JDK-8357249 Compiler task keeps --system files open
P4 JDK-8386334 JdepsTask keeps --system files open
P4 JDK-8387188 JImageExtractTest.java test should deny APPEND_DATA ACL in `testExtractToReadOnlyDir`
P4 JDK-8386842 Preview files in root directory not recognized in system image

tools/jpackage

Priority Bug Summary
P3 JDK-8387306 Replace InputStream#read(byte[]) with InputStream#readNBytes(int) in RtfConverter.isRtfFile()
P3 JDK-8386609 WinL10nTest.java does not respect locale for WixType

tools/jshell

Priority Bug Summary
P3 JDK-8186876 JShell: access javadoc for user/library classes

tools/launcher

Priority Bug Summary
P3 JDK-8387977 The java manpage should describe the new main method variants
P4 JDK-8385024 `JLI_Open()` doesn't correctly handle paths longer than MAXPATH on Windows
P4 JDK-8387025 Typo in java man page option --illegal-final-field-mutation=warn "performaed"