RELEASE NOTES FOR: 28 ==================================================================================================== Notes generated: Tue Jul 21 09:02:12 CEST 2026 Hint: Prefix bug IDs with https://bugs.openjdk.org/browse/ to reach the relevant JIRA entry. JAVA ENHANCEMENT PROPOSALS (JEP): 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: 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](https://www.rfc-editor.org/info/rfc6265#section-5.2.1). 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. security-libs/java.security: 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: 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: 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: 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 - `X25519` Key generation: +19% - `X25519` Decapsulation: +19% - `X25519` Encapsulation: +19% - `Ed25519` Key generation: +20% - `Ed25519` Signing: +19% - `Ed25519` Verification: +16% 1. AArch64 architecture - `X25519` Key generation: +10% - `X25519` Decapsulation: +9% - `X25519` Encapsulation: +9% - `Ed25519` Key generation: +15% - `Ed25519` Signing: +12% - `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 - `X25519` Key generation: +19% - `X25519` Decapsulation: +19% - `X25519` Encapsulation: +19% - `Ed25519` Key generation: +20% - `Ed25519` Signing: +19% - `Ed25519` Verification: +16% 1. AArch64 architecture - `X25519` Key generation: +10% - `X25519` Decapsulation: +9% - `X25519` Encapsulation: +9% - `Ed25519` Key generation: +15% - `Ed25519` Signing: +12% - `Ed25519` Verification: +12% ALL FIXED ISSUES, BY COMPONENT AND PRIORITY: client-libs/2d: (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: (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: (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: (P4) JDK-8384512: BMPImageWriter uses integer division before Math.ceil causing incorrect calculation client-libs/javax.sound: (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: (P3) JDK-8386795: Swing specification needs caveats on L&F rendering behaviors (P4) JDK-8387693: Remove unused method (P4) JDK-8386056: Test JFileChooser/HTMLFileName.java doesn't run in Nimbus and Motif core-libs: (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: (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: (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: (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: (P3) JDK-8378796: java.lang.runtime bootstrap methods missing lookup validation core-libs/java.lang:reflect: (P4) JDK-8382841: Revert annotation parsing changes from libgraal (P4) JDK-8384833: Start of release updates for JDK 28 core-libs/java.net: (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: (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 core-libs/java.nio.charsets: (P4) JDK-8386810: Improve debuggability of test/jdk/sun/nio/cs/TestStringCodingUTF8.java core-libs/java.text: (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: (P4) JDK-8386328: TemporalField.adjustInto Javadoc incorrectly uses 1-argument method signatures core-libs/java.util.concurrent: (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: (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: (P4) JDK-6356745: (coll) Add PriorityQueue(Collection, Comparator) core-libs/java.util:i18n: (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: (P4) JDK-8384838: Add SourceVersion.RELEASE_28 core-libs/javax.naming: (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: (P4) JDK-8387044: test/jdk/javax/script/CommonSetup.sh incorrectly sets isCygwin=true for MSys/MinGW core-svc: (P4) JDK-8386593: AArch64: serviceability/sa/TestJhsdbJstackMixedWithXComp.java fails on Ubuntu 26.04 core-svc/debugger: (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: (P4) JDK-8387142: BUILD_LIBMANAGEMENT_EXT remove special warning settings core-svc/javax.management: (P4) JDK-8385839: JMX config file correction core-svc/tools: (P4) JDK-8385964: AttachProvider docs update: 'doors' to 'socket' (P4) JDK-8387996: Remove reference to -d64 from serviceability tool manpages globalization/translation: (P3) JDK-8385927: JDK 27 RDP1 L10n resource files update hotspot/compiler: (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-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-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: (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-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: (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: (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: (P3) JDK-8387580: [S390x] OpenJDK build crashes with SIGSEGV in HashMap::resize() (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-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: (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: (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: (P4) JDK-8386107: arm32: libSuspendInCritical jtreg library fails to link infrastructure: (P3) JDK-8386844: Update to use jtreg 8.3 (P4) JDK-8384848: Update JCov for class file version 72 infrastructure/build: (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: (P4) JDK-8386865: Fix links in JDK 27 JavaDoc API documentation infrastructure/other: (P4) JDK-8385950: Git: add ignore revisions file infrastructure/release_eng: (P4) JDK-8386082: Rectify JDK 28 GA date to 2027-03-23 security-libs/java.security: (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: (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: (P3) JDK-8301626: Capture Named Group information in TLSHandshakeEvent (P3) JDK-8386600: Fix comparison checks in DHasKEM (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: (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): (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: (P4) JDK-8385817: Headless jdk still contains bin/jconsole tools/jlink: (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: (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: (P3) JDK-8186876: JShell: access javadoc for user/library classes tools/launcher: (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"