From davidalayachew at gmail.com Fri Aug 1 05:05:15 2025 From: davidalayachew at gmail.com (David Alayachew) Date: Fri, 1 Aug 2025 01:05:15 -0400 Subject: Bikeshedding Structured Concurrency Message-ID: Hello @loom-dev , I have been enjoying the Structured Concurrency JEP's as they have come, and I am excited to try the JDK 25 variant with all the new changes with Joiner. I have a bikeshed request. For Subtask, can we change the method name from exception() to throwable()? It more accurately describes what is happening. Thank you for your time and help. David Alayachew -------------- next part -------------- An HTML attachment was scrubbed... URL: From liangchenblue at gmail.com Fri Aug 1 05:23:34 2025 From: liangchenblue at gmail.com (Chen Liang) Date: Fri, 1 Aug 2025 00:23:34 -0500 Subject: Bikeshedding Structured Concurrency In-Reply-To: References: Message-ID: Hi David, I think it is a convention to use the lowercased "exception" to refer to all throwable. This is for example seen in the title of JLS 11. On Fri, Aug 1, 2025, 00:06 David Alayachew wrote: > Hello @loom-dev , > > I have been enjoying the Structured Concurrency JEP's as they have come, > and I am excited to try the JDK 25 variant with all the new changes with > Joiner. > > I have a bikeshed request. > > For Subtask, can we change the method name from exception() to > throwable()? It more accurately describes what is happening. > > Thank you for your time and help. > David Alayachew > -------------- next part -------------- An HTML attachment was scrubbed... URL: From davidalayachew at gmail.com Fri Aug 1 05:33:08 2025 From: davidalayachew at gmail.com (David Alayachew) Date: Fri, 1 Aug 2025 01:33:08 -0400 Subject: Bikeshedding Structured Concurrency In-Reply-To: References: Message-ID: Hello Chen. I'd agree with you if we were describing a parameter. But when describing what we are returning, I think it causes needless confusion. Remember, STS will catch ALL THROWABLES and serve them via that method. That includes things like OOME and StackOverflowError. I imagine that most developers would appreciate having the method name be throwable() if stuff like those can come down the pipe. On Fri, Aug 1, 2025 at 1:23?AM Chen Liang wrote: > Hi David, I think it is a convention to use the lowercased "exception" to > refer to all throwable. This is for example seen in the title of JLS 11. > > On Fri, Aug 1, 2025, 00:06 David Alayachew > wrote: > >> Hello @loom-dev , >> >> I have been enjoying the Structured Concurrency JEP's as they have come, >> and I am excited to try the JDK 25 variant with all the new changes with >> Joiner. >> >> I have a bikeshed request. >> >> For Subtask, can we change the method name from exception() to >> throwable()? It more accurately describes what is happening. >> >> Thank you for your time and help. >> David Alayachew >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From alan.bateman at oracle.com Fri Aug 1 08:28:04 2025 From: alan.bateman at oracle.com (Alan Bateman) Date: Fri, 1 Aug 2025 09:28:04 +0100 Subject: Bikeshedding Structured Concurrency In-Reply-To: References: Message-ID: <2200f0bd-5b06-4fae-96f0-d80e59a3f154@oracle.com> On 01/08/2025 06:05, David Alayachew wrote: > Hello @loom-dev , > > I have been enjoying the Structured Concurrency JEP's as they have > come, and I am excited to try the JDK 25 variant with all the new > changes with Joiner. > > I have a bikeshed request. > > For Subtask, can we change the method name from exception() to > throwable()? It more accurately describes what is happening. > In j.u.concurrent there is CompletableFuture.completeExceptionally(Throwable)/obtrudeException(Throwable), SubmissionPublisher.closeExceptionally(Throwable), ForkJoinTask.getException and Future.exceptionNow() returning a Throwable, and a few more. The main use of Subtask::exception will be a custom Joiner's onComplete implementation where handles the exception or error when the subtask fails. There is an argument that fork should be void or just return a Supplier (Subtask extends Supplier) but there hasn't been enough feedback from real-world usage to help that discussion. -Alan -------------- next part -------------- An HTML attachment was scrubbed... URL: From alan.bateman at oracle.com Fri Aug 1 08:28:04 2025 From: alan.bateman at oracle.com (Alan Bateman) Date: Fri, 1 Aug 2025 09:28:04 +0100 Subject: Bikeshedding Structured Concurrency In-Reply-To: References: Message-ID: <2200f0bd-5b06-4fae-96f0-d80e59a3f154@oracle.com> On 01/08/2025 06:05, David Alayachew wrote: > Hello @loom-dev , > > I have been enjoying the Structured Concurrency JEP's as they have > come, and I am excited to try the JDK 25 variant with all the new > changes with Joiner. > > I have a bikeshed request. > > For Subtask, can we change the method name from exception() to > throwable()? It more accurately describes what is happening. > In j.u.concurrent there is CompletableFuture.completeExceptionally(Throwable)/obtrudeException(Throwable), SubmissionPublisher.closeExceptionally(Throwable), ForkJoinTask.getException and Future.exceptionNow() returning a Throwable, and a few more. The main use of Subtask::exception will be a custom Joiner's onComplete implementation where handles the exception or error when the subtask fails. There is an argument that fork should be void or just return a Supplier (Subtask extends Supplier) but there hasn't been enough feedback from real-world usage to help that discussion. -Alan -------------- next part -------------- An HTML attachment was scrubbed... URL: From forax at univ-mlv.fr Fri Aug 1 08:47:16 2025 From: forax at univ-mlv.fr (Remi Forax) Date: Fri, 1 Aug 2025 10:47:16 +0200 (CEST) Subject: Bikeshedding Structured Concurrency In-Reply-To: <2200f0bd-5b06-4fae-96f0-d80e59a3f154@oracle.com> References: <2200f0bd-5b06-4fae-96f0-d80e59a3f154@oracle.com> Message-ID: <291516440.7085975.1754038036074.JavaMail.zimbra@univ-eiffel.fr> > From: "Alan Bateman" > To: "David Alayachew" , "loom-dev" > > Sent: Friday, August 1, 2025 10:28:04 AM > Subject: Re: Bikeshedding Structured Concurrency > On 01/08/2025 06:05, David Alayachew wrote: >> Hello [ mailto:loom-dev at openjdk.org | @loom-dev ] , >> I have been enjoying the Structured Concurrency JEP's as they have come, and I >> am excited to try the JDK 25 variant with all the new changes with Joiner. >> I have a bikeshed request. >> For Subtask, can we change the method name from exception() to throwable()? It >> more accurately describes what is happening. > In j.u.concurrent there is > CompletableFuture.completeExceptionally(Throwable)/obtrudeException(Throwable), > SubmissionPublisher.closeExceptionally(Throwable), ForkJoinTask.getException > and Future.exceptionNow() returning a Throwable, and a few more. yes, also Future.exceptionNow(). > The main use of Subtask::exception will be a custom Joiner's onComplete > implementation where handles the exception or error when the subtask fails. > There is an argument that fork should be void or just return a Supplier > (Subtask extends Supplier) but there hasn't been enough feedback from > real-world usage to help that discussion. > -Alan R?mi -------------- next part -------------- An HTML attachment was scrubbed... URL: From duke at openjdk.org Fri Aug 1 11:15:34 2025 From: duke at openjdk.org (duke) Date: Fri, 1 Aug 2025 11:15:34 GMT Subject: git: openjdk/loom: fibers: 35 new changesets Message-ID: <430f6ea8-f759-4fc0-bb25-c1e83423f0f7@openjdk.org> Changeset: 3bdac531 Branch: fibers Author: Rajan Halade Date: 2025-07-30 17:56:00 +0000 URL: https://git.openjdk.org/loom/commit/3bdac5317815b84d6f693d972f73d77dd069a891 8361212: Remove AffirmTrust root CAs Reviewed-by: mullan ! src/java.base/share/classes/sun/security/validator/EntrustTLSPolicy.java - src/java.base/share/data/cacerts/affirmtrustcommercialca - src/java.base/share/data/cacerts/affirmtrustnetworkingca - src/java.base/share/data/cacerts/affirmtrustpremiumca - src/java.base/share/data/cacerts/affirmtrustpremiumeccca ! test/jdk/security/infra/java/security/cert/CertPathValidator/certification/CAInterop.java ! test/jdk/sun/security/lib/cacerts/VerifyCACerts.java ! test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/Entrust.java - test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/affirmtrustcommercialca-chain.pem - test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/affirmtrustnetworkingca-chain.pem - test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/affirmtrustpremiumca-chain.pem - test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/affirmtrustpremiumeccca-chain.pem Changeset: 413ac74e Branch: fibers Author: Koushik Thirupattur Committer: Sean Mullan Date: 2025-07-30 19:56:38 +0000 URL: https://git.openjdk.org/loom/commit/413ac74ecc225ff2cd7a729204a9c7a95dc48458 8357682: sun.security.provider.certpath.Builder#getMatchingPolicies always returns null Reviewed-by: mullan ! src/java.base/share/classes/sun/security/provider/certpath/Builder.java Changeset: 559795b0 Branch: fibers Author: SendaoYan Date: 2025-07-31 01:38:25 +0000 URL: https://git.openjdk.org/loom/commit/559795b0eb8061325127fa9fdf8b80617fe47166 8362501: Update test/hotspot/jtreg/applications/jcstress/README Reviewed-by: shade, lmesnik ! test/hotspot/jtreg/applications/jcstress/README Changeset: 05c63e80 Branch: fibers Author: Alexander Zvegintsev Date: 2025-07-31 06:04:22 +0000 URL: https://git.openjdk.org/loom/commit/05c63e80091d554625c5b6fc8c9f6973ef19ec4f 8361524: [XWayland] possible JavaFX interop hang Reviewed-by: psadhukhan, serb, prr, kizune, kcr ! src/java.desktop/unix/native/libawt_xawt/awt/screencast_portal.c Changeset: ebb7f5d3 Branch: fibers Author: Aleksey Shipilev Date: 2025-07-31 06:07:17 +0000 URL: https://git.openjdk.org/loom/commit/ebb7f5d39be8497fc89e25d0905335102e12c063 8364111: InstanceMirrorKlass iterators should handle CDS and hidden classes consistently Reviewed-by: stuefe, ayang, coleenp ! src/hotspot/share/oops/instanceMirrorKlass.hpp ! src/hotspot/share/oops/instanceMirrorKlass.inline.hpp Changeset: b9f7caed Branch: fibers Author: Joel Sikstr?m Date: 2025-07-31 07:40:22 +0000 URL: https://git.openjdk.org/loom/commit/b9f7caed775e86e71f7d37789cb196fb1444ef12 8364282: ZGC: Improve ZPageAllocation JFR event sending Reviewed-by: stefank, aboldtch ! src/hotspot/share/gc/z/zPageAllocator.cpp Changeset: 8ed214f3 Branch: fibers Author: Yasumasa Suenaga Date: 2025-07-31 12:10:43 +0000 URL: https://git.openjdk.org/loom/commit/8ed214f3b1864ea0095d05497f782ce4131836d4 8364090: Dump JFR recording on CrashOnOutOfMemoryError Reviewed-by: egahlin, stuefe ! src/hotspot/share/jfr/jfr.cpp ! src/hotspot/share/jfr/jfr.hpp ! src/hotspot/share/jfr/recorder/repository/jfrEmergencyDump.cpp ! src/hotspot/share/jfr/recorder/repository/jfrEmergencyDump.hpp ! src/hotspot/share/runtime/java.cpp ! src/hotspot/share/utilities/vmError.cpp + test/jdk/jdk/jfr/event/oldobject/TestEmergencyDumpAtOOM.java Changeset: ddb64836 Branch: fibers Author: Manuel H?ssig Date: 2025-07-31 12:12:15 +0000 URL: https://git.openjdk.org/loom/commit/ddb64836e5bafededb705329137e353f8c74dd5d 8364409: [BACKOUT] Consolidate Identity of self-inverse operations Reviewed-by: thartmann, bmaillard, hgreule ! src/hotspot/share/opto/subnode.cpp ! src/hotspot/share/opto/subnode.hpp - test/hotspot/jtreg/compiler/c2/irTests/InvolutionIdentityTests.java ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java Changeset: 3f21c8bd Branch: fibers Author: Axel Boldt-Christmas Date: 2025-07-31 13:08:29 +0000 URL: https://git.openjdk.org/loom/commit/3f21c8bd1f0cd7f27df940505b249ba7798940cf 8361897: gc/z/TestUncommit.java fails with Uncommitted too slow Reviewed-by: stefank, jsikstro ! test/hotspot/jtreg/gc/z/TestUncommit.java Changeset: 458f033d Branch: fibers Author: Lei Zhu Committer: Kevin Walls Date: 2025-07-31 13:11:59 +0000 URL: https://git.openjdk.org/loom/commit/458f033d4dd3c646028b2f9bab88f9a308cad4af 8362533: Tests sun/management/jmxremote/bootstrap/* duplicate VM flags Reviewed-by: lmesnik, sspitsyn, kevinw ! test/jdk/sun/management/jmxremote/bootstrap/AbstractFilePermissionTest.java ! test/jdk/sun/management/jmxremote/bootstrap/LocalManagementTest.java ! test/jdk/sun/management/jmxremote/bootstrap/RmiRegistrySslTest.java Changeset: e544cd99 Branch: fibers Author: Artur Barashev Date: 2025-07-31 13:57:19 +0000 URL: https://git.openjdk.org/loom/commit/e544cd992099ef905266610c2c1456705cdc4587 8359956: Support algorithm constraints and certificate checks in SunX509 key manager Reviewed-by: mullan ! src/java.base/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java + src/java.base/share/classes/sun/security/ssl/X509KeyManagerCertChecking.java ! src/java.base/share/classes/sun/security/ssl/X509KeyManagerImpl.java ! test/jdk/javax/rmi/ssl/SSLSocketParametersTest.java - test/jdk/javax/rmi/ssl/keystore - test/jdk/javax/rmi/ssl/truststore ! test/jdk/sun/net/www/protocol/https/HttpsClient/ServerIdentityTest.java - test/jdk/sun/net/www/protocol/https/HttpsClient/dnsstore - test/jdk/sun/net/www/protocol/https/HttpsClient/ipstore ! test/jdk/sun/security/mscapi/ShortRSAKeyWithinTLS.java ! test/jdk/sun/security/ssl/SignatureScheme/MD5NotAllowedInTLS13CertificateSignature.java + test/jdk/sun/security/ssl/X509KeyManager/AlgorithmConstraintsCheck.java + test/jdk/sun/security/ssl/X509KeyManager/CertChecking.java + test/jdk/sun/security/ssl/X509KeyManager/PeerConstraintsCheck.java ! test/jdk/sun/security/ssl/X509TrustManagerImpl/PKIXExtendedTM.java ! test/jdk/sun/security/tools/keytool/PrintSSL.java ! test/lib/jdk/test/lib/security/CertificateBuilder.java Changeset: 5f357fa2 Branch: fibers Author: Thomas Schatzl Date: 2025-07-31 14:08:40 +0000 URL: https://git.openjdk.org/loom/commit/5f357fa27d89a3ead3783a3197ba4c576802cb7a 8364197: G1: Sort G1 mutex locks by name and group them together Reviewed-by: coleenp, ayang ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp Changeset: d4705947 Branch: fibers Author: DarraghConway Committer: Roger Riggs Date: 2025-07-31 14:41:13 +0000 URL: https://git.openjdk.org/loom/commit/d4705947d89509b235cf48328014331c9c6cee80 8360408: [TEST] Use @requires tag instead of exiting based on "os.name" property value for sun/net/www/protocol/file/FileURLTest.java Reviewed-by: vyazici, rriggs ! test/jdk/sun/net/www/protocol/file/FileURLTest.java Changeset: 53d152e7 Branch: fibers Author: Francesco Andreuzzi Committer: Albert Mingkun Yang Date: 2025-07-31 14:43:10 +0000 URL: https://git.openjdk.org/loom/commit/53d152e7dbccae9682e461e51ca75d63f88893cf 8364087: Amend comment in globalDefinitions.hpp on "classfile_constants.h" include Reviewed-by: stefank, ayang ! src/hotspot/share/utilities/globalDefinitions.hpp Changeset: b2b56cfc Branch: fibers Author: Weijun Wang Date: 2025-07-31 14:45:31 +0000 URL: https://git.openjdk.org/loom/commit/b2b56cfc00ab258c41d468040015bb2dcc6ec289 8359395: XML signature generation does not support user provided SecureRandom Reviewed-by: mullan ! src/java.xml.crypto/share/classes/javax/xml/crypto/dsig/dom/DOMSignContext.java ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMRSAPSSSignatureMethod.java ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureMethod.java + test/jdk/javax/xml/crypto/dsig/Properties.java Changeset: 1b9efaa1 Branch: fibers Author: Aleksey Shipilev Date: 2025-07-31 15:17:51 +0000 URL: https://git.openjdk.org/loom/commit/1b9efaa11e660317240bdeda7527b23c7d52da0f 8364183: Shenandoah: Improve commit/uncommit handling Reviewed-by: wkemper, xpeng ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp Changeset: c4fbfa21 Branch: fibers Author: Anton Artemov Committer: Albert Mingkun Yang Date: 2025-07-31 15:39:38 +0000 URL: https://git.openjdk.org/loom/commit/c4fbfa21030c9a0e8a3e0eed1b0a0988eba08ddb 8363949: Incorrect jtreg header in MonitorWithDeadObjectTest.java Reviewed-by: stefank, coleenp, ayang ! test/hotspot/jtreg/runtime/Monitor/MonitorWithDeadObjectTest.java Changeset: d1944239 Branch: fibers Author: Johannes Graham Committer: Raffaello Giulietti Date: 2025-07-31 17:50:18 +0000 URL: https://git.openjdk.org/loom/commit/d19442399c004c78bff8a5ccf7c6975c7e583a07 8358880: Performance of parsing with DecimalFormat can be improved Reviewed-by: jlu, liach, rgiulietti ! src/java.base/share/classes/java/text/DigitList.java ! src/java.base/share/classes/jdk/internal/math/FloatingDecimal.java ! test/jdk/java/text/Format/DecimalFormat/CloneTest.java + test/micro/org/openjdk/bench/java/text/DecimalFormatParseBench.java Changeset: fe09e93b Branch: fibers Author: Chen Liang Date: 2025-07-31 18:26:28 +0000 URL: https://git.openjdk.org/loom/commit/fe09e93b8fc3081c944f3824fdaa55cc17e377a8 8364317: Explicitly document some assumptions of StringUTF16 Reviewed-by: rgiulietti, rriggs, vyazici ! src/java.base/share/classes/java/lang/StringUTF16.java Changeset: 443afdc7 Branch: fibers Author: Albert Mingkun Yang Date: 2025-07-31 18:52:44 +0000 URL: https://git.openjdk.org/loom/commit/443afdc77ffb9184a985ec586c888eabe9ee8e6f 8364176: Serial: Group all class unloading logic at the end of marking phase Reviewed-by: tschatzl, sangheki ! src/hotspot/share/gc/serial/serialFullGC.cpp ! src/hotspot/share/gc/serial/serialHeap.cpp Changeset: e0e82066 Branch: fibers Author: Albert Mingkun Yang Date: 2025-07-31 18:53:07 +0000 URL: https://git.openjdk.org/loom/commit/e0e82066fec3e1efa55ecc113bb8f4efe2e0e2a0 8364166: Parallel: Remove the use of soft_ref_policy in Full GC Reviewed-by: tschatzl, sangheki ! src/hotspot/share/gc/parallel/psParallelCompact.cpp ! src/hotspot/share/gc/parallel/psParallelCompact.hpp Changeset: 724e8c07 Branch: fibers Author: Artur Barashev Date: 2025-07-31 21:24:09 +0000 URL: https://git.openjdk.org/loom/commit/724e8c076e1aed05de893ef9366af0e62cc2ac2b 8364484: misc tests fail with Received fatal alert: handshake_failure Reviewed-by: ascarpino ! test/jdk/javax/management/security/SecurityTest.java Changeset: 913d318c Branch: fibers Author: Albert Mingkun Yang Date: 2025-08-01 05:59:33 +0000 URL: https://git.openjdk.org/loom/commit/913d318c97aa46c16aca89e565660e5fb67e8efd 8364504: [BACKOUT] JDK-8364176 Serial: Group all class unloading logic at the end of marking phase Reviewed-by: dholmes ! src/hotspot/share/gc/serial/serialFullGC.cpp ! src/hotspot/share/gc/serial/serialHeap.cpp Changeset: c9b8bd6f Branch: fibers Author: Francesco Andreuzzi Committer: Aleksey Shipilev Date: 2025-08-01 06:27:02 +0000 URL: https://git.openjdk.org/loom/commit/c9b8bd6ff478fda23a10a6d3e04aec4478cb9ff6 8364359: Sort share/cds includes Reviewed-by: shade, iklam ! src/hotspot/share/cds/aotClassLocation.cpp ! src/hotspot/share/cds/aotClassLocation.hpp ! src/hotspot/share/cds/aotConstantPoolResolver.hpp ! src/hotspot/share/cds/aotLinkedClassBulkLoader.hpp ! src/hotspot/share/cds/archiveUtils.hpp ! src/hotspot/share/cds/cdsEnumKlass.cpp ! src/hotspot/share/cds/cppVtables.cpp ! src/hotspot/share/cds/dumpTimeClassInfo.inline.hpp ! src/hotspot/share/cds/dynamicArchive.cpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/cds/lambdaFormInvokers.inline.hpp ! src/hotspot/share/cds/metaspaceShared.cpp ! test/hotspot/jtreg/sources/TestIncludesAreSorted.java Changeset: 577ac061 Branch: fibers Author: Aleksey Shipilev Date: 2025-08-01 06:28:29 +0000 URL: https://git.openjdk.org/loom/commit/577ac0610a0c62d6a3f5501bb0d1bd45f8c47f22 8358340: Support CDS heap archive with Generational Shenandoah Reviewed-by: xpeng, wkemper ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp Changeset: e82d7f58 Branch: fibers Author: Joel Sikstr?m Date: 2025-08-01 07:11:11 +0000 URL: https://git.openjdk.org/loom/commit/e82d7f58101aa5b7147a881bfc1c96b826446758 8364351: ZGC: Replace usages of ZPageAgeRange() with ZPageAgeRangeAll Reviewed-by: stefank, aboldtch ! src/hotspot/share/gc/z/zGeneration.cpp ! src/hotspot/share/gc/z/zObjectAllocator.cpp ! src/hotspot/share/gc/z/zPageAge.hpp ! src/hotspot/share/gc/z/zRelocationSetSelector.cpp ! src/hotspot/share/gc/z/zRelocationSetSelector.inline.hpp ! src/hotspot/share/gc/z/zStat.cpp ! test/hotspot/gtest/gc/z/test_zPageAge.cpp Changeset: ae11d8f4 Branch: fibers Author: Joel Sikstr?m Date: 2025-08-01 07:42:45 +0000 URL: https://git.openjdk.org/loom/commit/ae11d8f44689502d35cb511e9ce288ab7cc0acae 8364248: Separate commit and reservation limit detection Reviewed-by: stuefe, ayang ! src/hotspot/os/posix/os_posix.cpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/share/gc/z/zAddressSpaceLimit.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/os.hpp Changeset: beda14e3 Branch: fibers Author: Thomas Schatzl Date: 2025-08-01 08:22:04 +0000 URL: https://git.openjdk.org/loom/commit/beda14e3cba368b0bf9f8e4567df163cf1e648a4 8364423: G1: Refactor G1UpdateRegionLivenessAndSelectForRebuildTask Reviewed-by: sangheki, ayang ! src/hotspot/share/gc/g1/g1ConcurrentMark.cpp Changeset: 7d63c9fa Branch: fibers Author: Hannes Walln?fer Date: 2025-08-01 08:35:10 +0000 URL: https://git.openjdk.org/loom/commit/7d63c9fa4d7d03c8565d0491e7ff93087b79cc39 8294074: Make other specs more discoverable from the API docs Reviewed-by: mr ! make/Docs.gmk Changeset: d80b5c87 Branch: fibers Author: Hannes Walln?fer Date: 2025-08-01 08:39:29 +0000 URL: https://git.openjdk.org/loom/commit/d80b5c8728a18c74cf427817b4b84052a5404870 8361316: javadoc tool fails with an exception for an inheritdoc on throws clause of a constructor Reviewed-by: nbenalla, liach ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/taglets/ThrowsTaglet.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets.properties ! test/langtools/jdk/javadoc/doclet/testInheritDocWithinInappropriateTag/TestInheritDocWithinInappropriateTag.java Changeset: 7fbeede1 Branch: fibers Author: Prasanta Sadhukhan Date: 2025-08-01 09:15:52 +0000 URL: https://git.openjdk.org/loom/commit/7fbeede14c558221ae0e5b8d65f50e50c0e3737a 4938801: The popup does not go when the component is removed Co-authored-by: Alexey Ivanov Reviewed-by: dnguyen, abhiscxk ! src/java.desktop/share/classes/javax/swing/JPopupMenu.java + test/jdk/javax/swing/JPopupMenu/TestPopupInvoker.java Changeset: 6b029423 Branch: fibers Author: Alan Bateman Date: 2025-08-01 10:29:18 +0000 URL: https://git.openjdk.org/loom/commit/6b029423964a12d99b597e394f345d83a523d216 Merge branch 'master' into fibers Changeset: 18acb7ef Branch: fibers Author: Alan Bateman Date: 2025-08-01 10:15:37 +0000 URL: https://git.openjdk.org/loom/commit/18acb7ef3cb0448310cb65983ddaa56ae746c8a6 PerCarrierPollerGroup improvements ! src/java.base/share/classes/sun/nio/ch/Poller.java Changeset: 2d0562b2 Branch: fibers Author: Alan Bateman Date: 2025-08-01 10:15:51 +0000 URL: https://git.openjdk.org/loom/commit/2d0562b23955bed1aa97c1760b0d0cd50649b9c9 Unexclude DumpThreads test ! test/jdk/ProblemList.txt Changeset: 2521d0fd Branch: fibers Author: Alan Bateman Date: 2025-08-01 10:29:26 +0000 URL: https://git.openjdk.org/loom/commit/2521d0fd6cbd6d9e261877d25e9ec523861d3dc5 Merge loom into fibers From duke at openjdk.org Fri Aug 1 11:17:17 2025 From: duke at openjdk.org (duke) Date: Fri, 1 Aug 2025 11:17:17 GMT Subject: git: openjdk/loom: master: 31 new changesets Message-ID: <8e709679-c900-4cde-810f-ebd1c3bee067@openjdk.org> Changeset: 3bdac531 Branch: master Author: Rajan Halade Date: 2025-07-30 17:56:00 +0000 URL: https://git.openjdk.org/loom/commit/3bdac5317815b84d6f693d972f73d77dd069a891 8361212: Remove AffirmTrust root CAs Reviewed-by: mullan ! src/java.base/share/classes/sun/security/validator/EntrustTLSPolicy.java - src/java.base/share/data/cacerts/affirmtrustcommercialca - src/java.base/share/data/cacerts/affirmtrustnetworkingca - src/java.base/share/data/cacerts/affirmtrustpremiumca - src/java.base/share/data/cacerts/affirmtrustpremiumeccca ! test/jdk/security/infra/java/security/cert/CertPathValidator/certification/CAInterop.java ! test/jdk/sun/security/lib/cacerts/VerifyCACerts.java ! test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/Entrust.java - test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/affirmtrustcommercialca-chain.pem - test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/affirmtrustnetworkingca-chain.pem - test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/affirmtrustpremiumca-chain.pem - test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/affirmtrustpremiumeccca-chain.pem Changeset: 413ac74e Branch: master Author: Koushik Thirupattur Committer: Sean Mullan Date: 2025-07-30 19:56:38 +0000 URL: https://git.openjdk.org/loom/commit/413ac74ecc225ff2cd7a729204a9c7a95dc48458 8357682: sun.security.provider.certpath.Builder#getMatchingPolicies always returns null Reviewed-by: mullan ! src/java.base/share/classes/sun/security/provider/certpath/Builder.java Changeset: 559795b0 Branch: master Author: SendaoYan Date: 2025-07-31 01:38:25 +0000 URL: https://git.openjdk.org/loom/commit/559795b0eb8061325127fa9fdf8b80617fe47166 8362501: Update test/hotspot/jtreg/applications/jcstress/README Reviewed-by: shade, lmesnik ! test/hotspot/jtreg/applications/jcstress/README Changeset: 05c63e80 Branch: master Author: Alexander Zvegintsev Date: 2025-07-31 06:04:22 +0000 URL: https://git.openjdk.org/loom/commit/05c63e80091d554625c5b6fc8c9f6973ef19ec4f 8361524: [XWayland] possible JavaFX interop hang Reviewed-by: psadhukhan, serb, prr, kizune, kcr ! src/java.desktop/unix/native/libawt_xawt/awt/screencast_portal.c Changeset: ebb7f5d3 Branch: master Author: Aleksey Shipilev Date: 2025-07-31 06:07:17 +0000 URL: https://git.openjdk.org/loom/commit/ebb7f5d39be8497fc89e25d0905335102e12c063 8364111: InstanceMirrorKlass iterators should handle CDS and hidden classes consistently Reviewed-by: stuefe, ayang, coleenp ! src/hotspot/share/oops/instanceMirrorKlass.hpp ! src/hotspot/share/oops/instanceMirrorKlass.inline.hpp Changeset: b9f7caed Branch: master Author: Joel Sikstr?m Date: 2025-07-31 07:40:22 +0000 URL: https://git.openjdk.org/loom/commit/b9f7caed775e86e71f7d37789cb196fb1444ef12 8364282: ZGC: Improve ZPageAllocation JFR event sending Reviewed-by: stefank, aboldtch ! src/hotspot/share/gc/z/zPageAllocator.cpp Changeset: 8ed214f3 Branch: master Author: Yasumasa Suenaga Date: 2025-07-31 12:10:43 +0000 URL: https://git.openjdk.org/loom/commit/8ed214f3b1864ea0095d05497f782ce4131836d4 8364090: Dump JFR recording on CrashOnOutOfMemoryError Reviewed-by: egahlin, stuefe ! src/hotspot/share/jfr/jfr.cpp ! src/hotspot/share/jfr/jfr.hpp ! src/hotspot/share/jfr/recorder/repository/jfrEmergencyDump.cpp ! src/hotspot/share/jfr/recorder/repository/jfrEmergencyDump.hpp ! src/hotspot/share/runtime/java.cpp ! src/hotspot/share/utilities/vmError.cpp + test/jdk/jdk/jfr/event/oldobject/TestEmergencyDumpAtOOM.java Changeset: ddb64836 Branch: master Author: Manuel H?ssig Date: 2025-07-31 12:12:15 +0000 URL: https://git.openjdk.org/loom/commit/ddb64836e5bafededb705329137e353f8c74dd5d 8364409: [BACKOUT] Consolidate Identity of self-inverse operations Reviewed-by: thartmann, bmaillard, hgreule ! src/hotspot/share/opto/subnode.cpp ! src/hotspot/share/opto/subnode.hpp - test/hotspot/jtreg/compiler/c2/irTests/InvolutionIdentityTests.java ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java Changeset: 3f21c8bd Branch: master Author: Axel Boldt-Christmas Date: 2025-07-31 13:08:29 +0000 URL: https://git.openjdk.org/loom/commit/3f21c8bd1f0cd7f27df940505b249ba7798940cf 8361897: gc/z/TestUncommit.java fails with Uncommitted too slow Reviewed-by: stefank, jsikstro ! test/hotspot/jtreg/gc/z/TestUncommit.java Changeset: 458f033d Branch: master Author: Lei Zhu Committer: Kevin Walls Date: 2025-07-31 13:11:59 +0000 URL: https://git.openjdk.org/loom/commit/458f033d4dd3c646028b2f9bab88f9a308cad4af 8362533: Tests sun/management/jmxremote/bootstrap/* duplicate VM flags Reviewed-by: lmesnik, sspitsyn, kevinw ! test/jdk/sun/management/jmxremote/bootstrap/AbstractFilePermissionTest.java ! test/jdk/sun/management/jmxremote/bootstrap/LocalManagementTest.java ! test/jdk/sun/management/jmxremote/bootstrap/RmiRegistrySslTest.java Changeset: e544cd99 Branch: master Author: Artur Barashev Date: 2025-07-31 13:57:19 +0000 URL: https://git.openjdk.org/loom/commit/e544cd992099ef905266610c2c1456705cdc4587 8359956: Support algorithm constraints and certificate checks in SunX509 key manager Reviewed-by: mullan ! src/java.base/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java + src/java.base/share/classes/sun/security/ssl/X509KeyManagerCertChecking.java ! src/java.base/share/classes/sun/security/ssl/X509KeyManagerImpl.java ! test/jdk/javax/rmi/ssl/SSLSocketParametersTest.java - test/jdk/javax/rmi/ssl/keystore - test/jdk/javax/rmi/ssl/truststore ! test/jdk/sun/net/www/protocol/https/HttpsClient/ServerIdentityTest.java - test/jdk/sun/net/www/protocol/https/HttpsClient/dnsstore - test/jdk/sun/net/www/protocol/https/HttpsClient/ipstore ! test/jdk/sun/security/mscapi/ShortRSAKeyWithinTLS.java ! test/jdk/sun/security/ssl/SignatureScheme/MD5NotAllowedInTLS13CertificateSignature.java + test/jdk/sun/security/ssl/X509KeyManager/AlgorithmConstraintsCheck.java + test/jdk/sun/security/ssl/X509KeyManager/CertChecking.java + test/jdk/sun/security/ssl/X509KeyManager/PeerConstraintsCheck.java ! test/jdk/sun/security/ssl/X509TrustManagerImpl/PKIXExtendedTM.java ! test/jdk/sun/security/tools/keytool/PrintSSL.java ! test/lib/jdk/test/lib/security/CertificateBuilder.java Changeset: 5f357fa2 Branch: master Author: Thomas Schatzl Date: 2025-07-31 14:08:40 +0000 URL: https://git.openjdk.org/loom/commit/5f357fa27d89a3ead3783a3197ba4c576802cb7a 8364197: G1: Sort G1 mutex locks by name and group them together Reviewed-by: coleenp, ayang ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp Changeset: d4705947 Branch: master Author: DarraghConway Committer: Roger Riggs Date: 2025-07-31 14:41:13 +0000 URL: https://git.openjdk.org/loom/commit/d4705947d89509b235cf48328014331c9c6cee80 8360408: [TEST] Use @requires tag instead of exiting based on "os.name" property value for sun/net/www/protocol/file/FileURLTest.java Reviewed-by: vyazici, rriggs ! test/jdk/sun/net/www/protocol/file/FileURLTest.java Changeset: 53d152e7 Branch: master Author: Francesco Andreuzzi Committer: Albert Mingkun Yang Date: 2025-07-31 14:43:10 +0000 URL: https://git.openjdk.org/loom/commit/53d152e7dbccae9682e461e51ca75d63f88893cf 8364087: Amend comment in globalDefinitions.hpp on "classfile_constants.h" include Reviewed-by: stefank, ayang ! src/hotspot/share/utilities/globalDefinitions.hpp Changeset: b2b56cfc Branch: master Author: Weijun Wang Date: 2025-07-31 14:45:31 +0000 URL: https://git.openjdk.org/loom/commit/b2b56cfc00ab258c41d468040015bb2dcc6ec289 8359395: XML signature generation does not support user provided SecureRandom Reviewed-by: mullan ! src/java.xml.crypto/share/classes/javax/xml/crypto/dsig/dom/DOMSignContext.java ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMRSAPSSSignatureMethod.java ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureMethod.java + test/jdk/javax/xml/crypto/dsig/Properties.java Changeset: 1b9efaa1 Branch: master Author: Aleksey Shipilev Date: 2025-07-31 15:17:51 +0000 URL: https://git.openjdk.org/loom/commit/1b9efaa11e660317240bdeda7527b23c7d52da0f 8364183: Shenandoah: Improve commit/uncommit handling Reviewed-by: wkemper, xpeng ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp Changeset: c4fbfa21 Branch: master Author: Anton Artemov Committer: Albert Mingkun Yang Date: 2025-07-31 15:39:38 +0000 URL: https://git.openjdk.org/loom/commit/c4fbfa21030c9a0e8a3e0eed1b0a0988eba08ddb 8363949: Incorrect jtreg header in MonitorWithDeadObjectTest.java Reviewed-by: stefank, coleenp, ayang ! test/hotspot/jtreg/runtime/Monitor/MonitorWithDeadObjectTest.java Changeset: d1944239 Branch: master Author: Johannes Graham Committer: Raffaello Giulietti Date: 2025-07-31 17:50:18 +0000 URL: https://git.openjdk.org/loom/commit/d19442399c004c78bff8a5ccf7c6975c7e583a07 8358880: Performance of parsing with DecimalFormat can be improved Reviewed-by: jlu, liach, rgiulietti ! src/java.base/share/classes/java/text/DigitList.java ! src/java.base/share/classes/jdk/internal/math/FloatingDecimal.java ! test/jdk/java/text/Format/DecimalFormat/CloneTest.java + test/micro/org/openjdk/bench/java/text/DecimalFormatParseBench.java Changeset: fe09e93b Branch: master Author: Chen Liang Date: 2025-07-31 18:26:28 +0000 URL: https://git.openjdk.org/loom/commit/fe09e93b8fc3081c944f3824fdaa55cc17e377a8 8364317: Explicitly document some assumptions of StringUTF16 Reviewed-by: rgiulietti, rriggs, vyazici ! src/java.base/share/classes/java/lang/StringUTF16.java Changeset: 443afdc7 Branch: master Author: Albert Mingkun Yang Date: 2025-07-31 18:52:44 +0000 URL: https://git.openjdk.org/loom/commit/443afdc77ffb9184a985ec586c888eabe9ee8e6f 8364176: Serial: Group all class unloading logic at the end of marking phase Reviewed-by: tschatzl, sangheki ! src/hotspot/share/gc/serial/serialFullGC.cpp ! src/hotspot/share/gc/serial/serialHeap.cpp Changeset: e0e82066 Branch: master Author: Albert Mingkun Yang Date: 2025-07-31 18:53:07 +0000 URL: https://git.openjdk.org/loom/commit/e0e82066fec3e1efa55ecc113bb8f4efe2e0e2a0 8364166: Parallel: Remove the use of soft_ref_policy in Full GC Reviewed-by: tschatzl, sangheki ! src/hotspot/share/gc/parallel/psParallelCompact.cpp ! src/hotspot/share/gc/parallel/psParallelCompact.hpp Changeset: 724e8c07 Branch: master Author: Artur Barashev Date: 2025-07-31 21:24:09 +0000 URL: https://git.openjdk.org/loom/commit/724e8c076e1aed05de893ef9366af0e62cc2ac2b 8364484: misc tests fail with Received fatal alert: handshake_failure Reviewed-by: ascarpino ! test/jdk/javax/management/security/SecurityTest.java Changeset: 913d318c Branch: master Author: Albert Mingkun Yang Date: 2025-08-01 05:59:33 +0000 URL: https://git.openjdk.org/loom/commit/913d318c97aa46c16aca89e565660e5fb67e8efd 8364504: [BACKOUT] JDK-8364176 Serial: Group all class unloading logic at the end of marking phase Reviewed-by: dholmes ! src/hotspot/share/gc/serial/serialFullGC.cpp ! src/hotspot/share/gc/serial/serialHeap.cpp Changeset: c9b8bd6f Branch: master Author: Francesco Andreuzzi Committer: Aleksey Shipilev Date: 2025-08-01 06:27:02 +0000 URL: https://git.openjdk.org/loom/commit/c9b8bd6ff478fda23a10a6d3e04aec4478cb9ff6 8364359: Sort share/cds includes Reviewed-by: shade, iklam ! src/hotspot/share/cds/aotClassLocation.cpp ! src/hotspot/share/cds/aotClassLocation.hpp ! src/hotspot/share/cds/aotConstantPoolResolver.hpp ! src/hotspot/share/cds/aotLinkedClassBulkLoader.hpp ! src/hotspot/share/cds/archiveUtils.hpp ! src/hotspot/share/cds/cdsEnumKlass.cpp ! src/hotspot/share/cds/cppVtables.cpp ! src/hotspot/share/cds/dumpTimeClassInfo.inline.hpp ! src/hotspot/share/cds/dynamicArchive.cpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/cds/lambdaFormInvokers.inline.hpp ! src/hotspot/share/cds/metaspaceShared.cpp ! test/hotspot/jtreg/sources/TestIncludesAreSorted.java Changeset: 577ac061 Branch: master Author: Aleksey Shipilev Date: 2025-08-01 06:28:29 +0000 URL: https://git.openjdk.org/loom/commit/577ac0610a0c62d6a3f5501bb0d1bd45f8c47f22 8358340: Support CDS heap archive with Generational Shenandoah Reviewed-by: xpeng, wkemper ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp Changeset: e82d7f58 Branch: master Author: Joel Sikstr?m Date: 2025-08-01 07:11:11 +0000 URL: https://git.openjdk.org/loom/commit/e82d7f58101aa5b7147a881bfc1c96b826446758 8364351: ZGC: Replace usages of ZPageAgeRange() with ZPageAgeRangeAll Reviewed-by: stefank, aboldtch ! src/hotspot/share/gc/z/zGeneration.cpp ! src/hotspot/share/gc/z/zObjectAllocator.cpp ! src/hotspot/share/gc/z/zPageAge.hpp ! src/hotspot/share/gc/z/zRelocationSetSelector.cpp ! src/hotspot/share/gc/z/zRelocationSetSelector.inline.hpp ! src/hotspot/share/gc/z/zStat.cpp ! test/hotspot/gtest/gc/z/test_zPageAge.cpp Changeset: ae11d8f4 Branch: master Author: Joel Sikstr?m Date: 2025-08-01 07:42:45 +0000 URL: https://git.openjdk.org/loom/commit/ae11d8f44689502d35cb511e9ce288ab7cc0acae 8364248: Separate commit and reservation limit detection Reviewed-by: stuefe, ayang ! src/hotspot/os/posix/os_posix.cpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/share/gc/z/zAddressSpaceLimit.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/os.hpp Changeset: beda14e3 Branch: master Author: Thomas Schatzl Date: 2025-08-01 08:22:04 +0000 URL: https://git.openjdk.org/loom/commit/beda14e3cba368b0bf9f8e4567df163cf1e648a4 8364423: G1: Refactor G1UpdateRegionLivenessAndSelectForRebuildTask Reviewed-by: sangheki, ayang ! src/hotspot/share/gc/g1/g1ConcurrentMark.cpp Changeset: 7d63c9fa Branch: master Author: Hannes Walln?fer Date: 2025-08-01 08:35:10 +0000 URL: https://git.openjdk.org/loom/commit/7d63c9fa4d7d03c8565d0491e7ff93087b79cc39 8294074: Make other specs more discoverable from the API docs Reviewed-by: mr ! make/Docs.gmk Changeset: d80b5c87 Branch: master Author: Hannes Walln?fer Date: 2025-08-01 08:39:29 +0000 URL: https://git.openjdk.org/loom/commit/d80b5c8728a18c74cf427817b4b84052a5404870 8361316: javadoc tool fails with an exception for an inheritdoc on throws clause of a constructor Reviewed-by: nbenalla, liach ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/taglets/ThrowsTaglet.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets.properties ! test/langtools/jdk/javadoc/doclet/testInheritDocWithinInappropriateTag/TestInheritDocWithinInappropriateTag.java Changeset: 7fbeede1 Branch: master Author: Prasanta Sadhukhan Date: 2025-08-01 09:15:52 +0000 URL: https://git.openjdk.org/loom/commit/7fbeede14c558221ae0e5b8d65f50e50c0e3737a 4938801: The popup does not go when the component is removed Co-authored-by: Alexey Ivanov Reviewed-by: dnguyen, abhiscxk ! src/java.desktop/share/classes/javax/swing/JPopupMenu.java + test/jdk/javax/swing/JPopupMenu/TestPopupInvoker.java From davidalayachew at gmail.com Fri Aug 1 11:51:18 2025 From: davidalayachew at gmail.com (David Alayachew) Date: Fri, 1 Aug 2025 07:51:18 -0400 Subject: Bikeshedding Structured Concurrency In-Reply-To: <291516440.7085975.1754038036074.JavaMail.zimbra@univ-eiffel.fr> References: <2200f0bd-5b06-4fae-96f0-d80e59a3f154@oracle.com> <291516440.7085975.1754038036074.JavaMail.zimbra@univ-eiffel.fr> Message-ID: Thanks for the responses everyone. It appears that there are several examples that return too. Sounds like the reason is convention then. I guess a better question might be, why were all these API's named with Exception rather than Throwable in the first place? What benefit is there in naming it Exception? On Fri, Aug 1, 2025, 4:47?AM Remi Forax wrote: > > > ------------------------------ > > *From: *"Alan Bateman" > *To: *"David Alayachew" , "loom-dev" < > loom-dev at openjdk.org> > *Sent: *Friday, August 1, 2025 10:28:04 AM > *Subject: *Re: Bikeshedding Structured Concurrency > > On 01/08/2025 06:05, David Alayachew wrote: > > Hello @loom-dev , > > I have been enjoying the Structured Concurrency JEP's as they have come, > and I am excited to try the JDK 25 variant with all the new changes with > Joiner. > > I have a bikeshed request. > > For Subtask, can we change the method name from exception() to > throwable()? It more accurately describes what is happening. > > > In j.u.concurrent there is > CompletableFuture.completeExceptionally(Throwable)/obtrudeException(Throwable), > SubmissionPublisher.closeExceptionally(Throwable), > ForkJoinTask.getException and Future.exceptionNow() returning a Throwable, > and a few more. > > > yes, also Future.exceptionNow(). > > > > The main use of Subtask::exception will be a custom Joiner's onComplete > implementation where handles the exception or error when the subtask fails. > There is an argument that fork should be void or just return a Supplier > (Subtask extends Supplier) but there hasn't been enough feedback from > real-world usage to help that discussion. > > -Alan > > > R?mi > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From george at jgserv.co.uk Fri Aug 1 12:16:50 2025 From: george at jgserv.co.uk (George Ball) Date: Fri, 1 Aug 2025 13:16:50 +0100 Subject: Bikeshedding Structured Concurrency In-Reply-To: References: <2200f0bd-5b06-4fae-96f0-d80e59a3f154@oracle.com> <291516440.7085975.1754038036074.JavaMail.zimbra@univ-eiffel.fr> Message-ID: My understanding ( and I may be way off here? ) The ?feature? provided by exceptions et al has been around in various languages for a long time, pre-Java, so the term had a level of familiarity when Java came out. Java?s approach however of having different ?types? of exception encoded in the type system led the class hierarchy with a common base class Throwable. There?s checked and unchecked Exceptions, which extend the Exception class which extends Throwable. But then we also have Error which extends Throwable but is the base of a second hierarchy representing ?bad things? that are not intended to be caught? So we can think of Exceptions as things that are throwable and may be caught within application code. It remains an open question whether the idea of checked/unchecked exceptions is good or not - and many strong opinions can be found on this topic so I don?t need to say any more :) Hope that makes sense :) George > On 1 Aug 2025, at 12:51, David Alayachew wrote: > > Thanks for the responses everyone. It appears that there are several examples that return too. Sounds like the reason is convention then. > > I guess a better question might be, why were all these API's named with Exception rather than Throwable in the first place? What benefit is there in naming it Exception? > > On Fri, Aug 1, 2025, 4:47?AM Remi Forax > wrote: >> >> >> From: "Alan Bateman" > >> To: "David Alayachew" >, "loom-dev" > >> Sent: Friday, August 1, 2025 10:28:04 AM >> Subject: Re: Bikeshedding Structured Concurrency >> On 01/08/2025 06:05, David Alayachew wrote: >> Hello @loom-dev , >> >> I have been enjoying the Structured Concurrency JEP's as they have come, and I am excited to try the JDK 25 variant with all the new changes with Joiner. >> >> I have a bikeshed request. >> >> For Subtask, can we change the method name from exception() to throwable()? It more accurately describes what is happening. >> >> >> In j.u.concurrent there is CompletableFuture.completeExceptionally(Throwable)/obtrudeException(Throwable), SubmissionPublisher.closeExceptionally(Throwable), ForkJoinTask.getException and Future.exceptionNow() returning a Throwable, and a few more. >> >> yes, also Future.exceptionNow(). >> >> >> >> The main use of Subtask::exception will be a custom Joiner's onComplete implementation where handles the exception or error when the subtask fails. There is an argument that fork should be void or just return a Supplier (Subtask extends Supplier) but there hasn't been enough feedback from real-world usage to help that discussion. >> >> -Alan >> >> R?mi >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From duke at openjdk.org Sat Aug 2 11:36:30 2025 From: duke at openjdk.org (duke) Date: Sat, 2 Aug 2025 11:36:30 GMT Subject: git: openjdk/loom: fibers: 13 new changesets Message-ID: Changeset: 812bd8e9 Branch: fibers Author: Matthias Baesken Date: 2025-08-01 10:24:11 +0000 URL: https://git.openjdk.org/loom/commit/812bd8e94d22f9751651e28a2ef8affdf6a33220 8364199: Enhance list of environment variables printed in hserr/hsinfo file Reviewed-by: lucy, clanger ! src/hotspot/share/utilities/vmError.cpp Changeset: 6c580472 Branch: fibers Author: Oli Gillespie Committer: Aleksey Shipilev Date: 2025-08-01 10:27:08 +0000 URL: https://git.openjdk.org/loom/commit/6c5804722b5b2064e0d6ade2180c3126d8f2dabc 8364296: Set IntelJccErratumMitigation flag ergonomically Reviewed-by: shade, jbhateja ! src/hotspot/cpu/x86/vm_version_x86.cpp Changeset: 8ac4a88f Branch: fibers Author: Christian Stein Date: 2025-08-01 11:01:56 +0000 URL: https://git.openjdk.org/loom/commit/8ac4a88f3c5ad57824dd192cb3f0af5e71cbceeb 8362237: IllegalArgumentException in the launcher when exception without stack trace is thrown Reviewed-by: kcr, vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/launcher/SourceLauncher.java ! test/langtools/tools/javac/launcher/SourceLauncherTest.java Changeset: 2ba8a06f Branch: fibers Author: Bhavana Kilambi Committer: Jatin Bhateja Date: 2025-08-01 13:11:21 +0000 URL: https://git.openjdk.org/loom/commit/2ba8a06f0c0a598a6ca7f74e75bab4208e6fa689 8348868: AArch64: Add backend support for SelectFromTwoVector Co-authored-by: Jatin Bhateja Reviewed-by: haosun, aph, sviswanathan, xgong ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/aarch64_vector.ad ! src/hotspot/cpu/aarch64/aarch64_vector_ad.m4 ! src/hotspot/cpu/aarch64/assembler_aarch64.hpp ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.hpp ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/opto/vectorIntrinsics.cpp ! test/hotspot/gtest/aarch64/aarch64-asmtest.py ! test/hotspot/gtest/aarch64/asmtest.out.h ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java ! test/hotspot/jtreg/compiler/lib/ir_framework/test/IREncodingPrinter.java + test/hotspot/jtreg/compiler/vectorapi/TestSelectFromTwoVectorOp.java Changeset: ee3665bc Branch: fibers Author: Coleen Phillimore Date: 2025-08-01 15:21:45 +0000 URL: https://git.openjdk.org/loom/commit/ee3665bca026fe53409df8391d49477c64ae23a2 8364187: Make getClassAccessFlagsRaw non-native Reviewed-by: thartmann, rriggs, liach ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/classfile/vmIntrinsics.hpp ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/memnode.cpp ! src/hotspot/share/prims/jvm.cpp ! src/java.base/share/classes/java/lang/Class.java ! src/java.base/share/classes/java/lang/System.java ! src/java.base/share/classes/jdk/internal/access/JavaLangAccess.java ! src/java.base/share/classes/jdk/internal/reflect/Reflection.java ! src/java.base/share/native/libjava/Class.c ! src/java.base/share/native/libjava/Reflection.c ! test/hotspot/jtreg/runtime/ClassFile/ClassAccessFlagsRawTest.java ! test/jdk/java/lang/reflect/AccessibleObject/ModuleSetAccessibleTest.java ! test/jdk/java/lang/reflect/AccessibleObject/TrySetAccessibleTest.java Changeset: 6d0bbc8a Branch: fibers Author: Mikhail Yankelevich Committer: Sean Coffey Date: 2025-08-01 18:42:41 +0000 URL: https://git.openjdk.org/loom/commit/6d0bbc8a18fa555b5e8d132bef400097ef6ee5cb 8357470: src/java.base/share/classes/sun/security/util/Debug.java implement the test for args.toLowerCase Reviewed-by: coffeys ! test/jdk/sun/security/util/Debug/DebugOptions.java Changeset: 8e921aee Branch: fibers Author: Justin Lu Date: 2025-08-01 18:43:02 +0000 URL: https://git.openjdk.org/loom/commit/8e921aee5abb20c240b45cb75b06fb1f316d8a1f 8364370: java.text.DecimalFormat specification indentation correction Reviewed-by: liach, naoto ! src/java.base/share/classes/java/text/DecimalFormat.java Changeset: 7ea08d39 Branch: fibers Author: Volkan Yazici Date: 2025-08-01 20:36:17 +0000 URL: https://git.openjdk.org/loom/commit/7ea08d3928032aad05ce347272083a2be7d83546 8362244: Devkit's Oracle Linux base OS keyword is incorrectly documented Reviewed-by: erikj ! doc/building.html ! doc/building.md Changeset: e801e513 Branch: fibers Author: Serguei Spitsyn Date: 2025-08-02 04:21:42 +0000 URL: https://git.openjdk.org/loom/commit/e801e51311b3fb89bb08620dd5604c7ba9aed9df 8306324: StopThread results in thread being marked as interrupted, leading to unexpected InterruptedException Reviewed-by: pchilanomate, alanb ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/javaThread.cpp ! test/hotspot/jtreg/serviceability/jvmti/vthread/StopThreadTest/StopThreadTest.java Changeset: 54c9bc0f Branch: fibers Author: Alan Bateman Date: 2025-08-02 08:00:31 +0000 URL: https://git.openjdk.org/loom/commit/54c9bc0f974c59b19e8819e1b7e4d72d1de48afe Merge branch 'master' into fibers ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/runtime/javaThread.cpp ! src/java.base/share/classes/java/lang/System.java ! src/java.base/share/classes/jdk/internal/access/JavaLangAccess.java ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/runtime/javaThread.cpp ! src/java.base/share/classes/java/lang/System.java ! src/java.base/share/classes/jdk/internal/access/JavaLangAccess.java Changeset: bc3e5a35 Branch: fibers Author: Alan Bateman Date: 2025-08-01 13:29:37 +0000 URL: https://git.openjdk.org/loom/commit/bc3e5a359e6f4524d1dbd15bf74235440492a69d Improve comment and shutdown ! src/java.base/share/classes/sun/nio/ch/Poller.java Changeset: d8445efa Branch: fibers Author: Alan Bateman Date: 2025-08-02 08:09:05 +0000 URL: https://git.openjdk.org/loom/commit/d8445efae95d75db472eb4393f0e88100a78952e ThreadSnapshotFactory::get_thread_snapshot improvements ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/services/threadService.cpp ! test/jdk/com/sun/management/HotSpotDiagnosticMXBean/DumpThreadsWithEliminatedLock.java Changeset: fcffc2b9 Branch: fibers Author: Alan Bateman Date: 2025-08-02 08:09:18 +0000 URL: https://git.openjdk.org/loom/commit/fcffc2b93648b564680f3c0608c3301d88deebf7 Merge loom into fibers ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/javaClasses.cpp From duke at openjdk.org Sat Aug 2 11:37:00 2025 From: duke at openjdk.org (duke) Date: Sat, 2 Aug 2025 11:37:00 GMT Subject: git: openjdk/loom: master: 9 new changesets Message-ID: <55d9fed0-1c5b-466e-a6f1-8a05f31e7505@openjdk.org> Changeset: 812bd8e9 Branch: master Author: Matthias Baesken Date: 2025-08-01 10:24:11 +0000 URL: https://git.openjdk.org/loom/commit/812bd8e94d22f9751651e28a2ef8affdf6a33220 8364199: Enhance list of environment variables printed in hserr/hsinfo file Reviewed-by: lucy, clanger ! src/hotspot/share/utilities/vmError.cpp Changeset: 6c580472 Branch: master Author: Oli Gillespie Committer: Aleksey Shipilev Date: 2025-08-01 10:27:08 +0000 URL: https://git.openjdk.org/loom/commit/6c5804722b5b2064e0d6ade2180c3126d8f2dabc 8364296: Set IntelJccErratumMitigation flag ergonomically Reviewed-by: shade, jbhateja ! src/hotspot/cpu/x86/vm_version_x86.cpp Changeset: 8ac4a88f Branch: master Author: Christian Stein Date: 2025-08-01 11:01:56 +0000 URL: https://git.openjdk.org/loom/commit/8ac4a88f3c5ad57824dd192cb3f0af5e71cbceeb 8362237: IllegalArgumentException in the launcher when exception without stack trace is thrown Reviewed-by: kcr, vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/launcher/SourceLauncher.java ! test/langtools/tools/javac/launcher/SourceLauncherTest.java Changeset: 2ba8a06f Branch: master Author: Bhavana Kilambi Committer: Jatin Bhateja Date: 2025-08-01 13:11:21 +0000 URL: https://git.openjdk.org/loom/commit/2ba8a06f0c0a598a6ca7f74e75bab4208e6fa689 8348868: AArch64: Add backend support for SelectFromTwoVector Co-authored-by: Jatin Bhateja Reviewed-by: haosun, aph, sviswanathan, xgong ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/aarch64_vector.ad ! src/hotspot/cpu/aarch64/aarch64_vector_ad.m4 ! src/hotspot/cpu/aarch64/assembler_aarch64.hpp ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.hpp ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/opto/vectorIntrinsics.cpp ! test/hotspot/gtest/aarch64/aarch64-asmtest.py ! test/hotspot/gtest/aarch64/asmtest.out.h ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java ! test/hotspot/jtreg/compiler/lib/ir_framework/test/IREncodingPrinter.java + test/hotspot/jtreg/compiler/vectorapi/TestSelectFromTwoVectorOp.java Changeset: ee3665bc Branch: master Author: Coleen Phillimore Date: 2025-08-01 15:21:45 +0000 URL: https://git.openjdk.org/loom/commit/ee3665bca026fe53409df8391d49477c64ae23a2 8364187: Make getClassAccessFlagsRaw non-native Reviewed-by: thartmann, rriggs, liach ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/classfile/vmIntrinsics.hpp ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/memnode.cpp ! src/hotspot/share/prims/jvm.cpp ! src/java.base/share/classes/java/lang/Class.java ! src/java.base/share/classes/java/lang/System.java ! src/java.base/share/classes/jdk/internal/access/JavaLangAccess.java ! src/java.base/share/classes/jdk/internal/reflect/Reflection.java ! src/java.base/share/native/libjava/Class.c ! src/java.base/share/native/libjava/Reflection.c ! test/hotspot/jtreg/runtime/ClassFile/ClassAccessFlagsRawTest.java ! test/jdk/java/lang/reflect/AccessibleObject/ModuleSetAccessibleTest.java ! test/jdk/java/lang/reflect/AccessibleObject/TrySetAccessibleTest.java Changeset: 6d0bbc8a Branch: master Author: Mikhail Yankelevich Committer: Sean Coffey Date: 2025-08-01 18:42:41 +0000 URL: https://git.openjdk.org/loom/commit/6d0bbc8a18fa555b5e8d132bef400097ef6ee5cb 8357470: src/java.base/share/classes/sun/security/util/Debug.java implement the test for args.toLowerCase Reviewed-by: coffeys ! test/jdk/sun/security/util/Debug/DebugOptions.java Changeset: 8e921aee Branch: master Author: Justin Lu Date: 2025-08-01 18:43:02 +0000 URL: https://git.openjdk.org/loom/commit/8e921aee5abb20c240b45cb75b06fb1f316d8a1f 8364370: java.text.DecimalFormat specification indentation correction Reviewed-by: liach, naoto ! src/java.base/share/classes/java/text/DecimalFormat.java Changeset: 7ea08d39 Branch: master Author: Volkan Yazici Date: 2025-08-01 20:36:17 +0000 URL: https://git.openjdk.org/loom/commit/7ea08d3928032aad05ce347272083a2be7d83546 8362244: Devkit's Oracle Linux base OS keyword is incorrectly documented Reviewed-by: erikj ! doc/building.html ! doc/building.md Changeset: e801e513 Branch: master Author: Serguei Spitsyn Date: 2025-08-02 04:21:42 +0000 URL: https://git.openjdk.org/loom/commit/e801e51311b3fb89bb08620dd5604c7ba9aed9df 8306324: StopThread results in thread being marked as interrupted, leading to unexpected InterruptedException Reviewed-by: pchilanomate, alanb ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/javaThread.cpp ! test/hotspot/jtreg/serviceability/jvmti/vthread/StopThreadTest/StopThreadTest.java From duke at openjdk.org Sun Aug 3 17:21:53 2025 From: duke at openjdk.org (duke) Date: Sun, 3 Aug 2025 17:21:53 GMT Subject: git: openjdk/loom: fibers: 7 new changesets Message-ID: Changeset: f40381e4 Branch: fibers Author: erfang Committer: Jatin Bhateja Date: 2025-08-02 07:54:42 +0000 URL: https://git.openjdk.org/loom/commit/f40381e41d1356f92546a21c0d24060f8606b9b3 8356760: VectorAPI: Optimize VectorMask.fromLong for all-true/all-false cases Reviewed-by: xgong, jbhateja ! src/hotspot/share/opto/vectorIntrinsics.cpp ! src/hotspot/share/opto/vectornode.cpp ! src/hotspot/share/opto/vectornode.hpp ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java + test/hotspot/jtreg/compiler/vectorapi/VectorMaskCastIdentityTest.java + test/hotspot/jtreg/compiler/vectorapi/VectorMaskFromLongTest.java + test/hotspot/jtreg/compiler/vectorapi/VectorMaskToLongTest.java ! test/micro/org/openjdk/bench/jdk/incubator/vector/MaskCastOperationsBenchmark.java + test/micro/org/openjdk/bench/jdk/incubator/vector/MaskFromLongToLongBenchmark.java Changeset: 819de071 Branch: fibers Author: Thomas Stuefe Date: 2025-08-03 06:43:31 +0000 URL: https://git.openjdk.org/loom/commit/819de071176623448ceba8065ed6f2aac40ae193 8363998: Implement Compressed Class Pointers for 32-bit Reviewed-by: rkennke, coleenp ! src/hotspot/cpu/arm/c1_FrameMap_arm.hpp ! src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/memory/metaspace.cpp ! src/hotspot/share/memory/metaspace/virtualSpaceNode.cpp ! src/hotspot/share/oops/compressedKlass.cpp ! src/hotspot/share/oops/compressedKlass.hpp ! src/hotspot/share/oops/compressedKlass.inline.hpp ! src/hotspot/share/oops/objLayout.cpp ! src/hotspot/share/oops/objLayout.inline.hpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/utilities/globalDefinitions.hpp ! src/hotspot/share/utilities/vmError.cpp ! test/hotspot/gtest/metaspace/test_metaspaceUtils.cpp ! test/hotspot/gtest/oops/test_compressedKlass.cpp ! test/hotspot/jtreg/gtest/CompressedKlassGtest.java ! test/hotspot/jtreg/runtime/ErrorHandling/TestVMConfigInHsErrFile.java Changeset: a5e0c9d0 Branch: fibers Author: DarraghConway Committer: Mark Sheppard Date: 2025-08-03 11:03:15 +0000 URL: https://git.openjdk.org/loom/commit/a5e0c9d0c52e028321bb38e471ce98e389e67fe1 8363720: Follow up to JDK-8360411 with post review comments Reviewed-by: bpb, rriggs ! test/jdk/java/io/File/MaxPathLength.java Changeset: 1a206d2a Branch: fibers Author: Chen Liang Date: 2025-08-03 13:23:43 +0000 URL: https://git.openjdk.org/loom/commit/1a206d2a6cade07249f6922072ac9d29aa56bc43 8364545: tools/javac/launcher/SourceLauncherTest.java fails frequently Reviewed-by: cstein, jpai + test/langtools/tools/javac/launcher/SourceLauncherStackTraceTest.java ! test/langtools/tools/javac/launcher/SourceLauncherTest.java Changeset: 9ead4189 Branch: fibers Author: Alan Bateman Date: 2025-08-03 16:43:22 +0000 URL: https://git.openjdk.org/loom/commit/9ead418943ea2d84ede7898453ade12c8cd911c0 Merge branch 'master' into fibers ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/globals.hpp Changeset: 2f732ffa Branch: fibers Author: Alan Bateman Date: 2025-08-03 17:18:18 +0000 URL: https://git.openjdk.org/loom/commit/2f732ffa0db62ee7302f63f5f1cd9c9ce4c893cc Allow HotSpotDiagnosticMXBean.dumpThreads be invoked concurrently ! src/hotspot/share/include/jvm.h ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/services/threadService.cpp ! src/hotspot/share/services/threadService.hpp ! src/java.base/share/classes/java/lang/VirtualThread.java ! src/java.base/share/classes/jdk/internal/access/JavaLangAccess.java ! src/java.base/share/classes/jdk/internal/vm/ThreadSnapshot.java ! src/java.base/share/native/libjava/ThreadSnapshot.c ! test/jdk/com/sun/management/HotSpotDiagnosticMXBean/DumpThreadsWhenParking.java Changeset: 4f9bd4e4 Branch: fibers Author: Alan Bateman Date: 2025-08-03 17:18:31 +0000 URL: https://git.openjdk.org/loom/commit/4f9bd4e42af04026edd0ad3b872b119ea2a6efbc Merge loom into fibers From duke at openjdk.org Sun Aug 3 17:22:07 2025 From: duke at openjdk.org (duke) Date: Sun, 3 Aug 2025 17:22:07 GMT Subject: git: openjdk/loom: master: 4 new changesets Message-ID: Changeset: f40381e4 Branch: master Author: erfang Committer: Jatin Bhateja Date: 2025-08-02 07:54:42 +0000 URL: https://git.openjdk.org/loom/commit/f40381e41d1356f92546a21c0d24060f8606b9b3 8356760: VectorAPI: Optimize VectorMask.fromLong for all-true/all-false cases Reviewed-by: xgong, jbhateja ! src/hotspot/share/opto/vectorIntrinsics.cpp ! src/hotspot/share/opto/vectornode.cpp ! src/hotspot/share/opto/vectornode.hpp ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java + test/hotspot/jtreg/compiler/vectorapi/VectorMaskCastIdentityTest.java + test/hotspot/jtreg/compiler/vectorapi/VectorMaskFromLongTest.java + test/hotspot/jtreg/compiler/vectorapi/VectorMaskToLongTest.java ! test/micro/org/openjdk/bench/jdk/incubator/vector/MaskCastOperationsBenchmark.java + test/micro/org/openjdk/bench/jdk/incubator/vector/MaskFromLongToLongBenchmark.java Changeset: 819de071 Branch: master Author: Thomas Stuefe Date: 2025-08-03 06:43:31 +0000 URL: https://git.openjdk.org/loom/commit/819de071176623448ceba8065ed6f2aac40ae193 8363998: Implement Compressed Class Pointers for 32-bit Reviewed-by: rkennke, coleenp ! src/hotspot/cpu/arm/c1_FrameMap_arm.hpp ! src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/memory/metaspace.cpp ! src/hotspot/share/memory/metaspace/virtualSpaceNode.cpp ! src/hotspot/share/oops/compressedKlass.cpp ! src/hotspot/share/oops/compressedKlass.hpp ! src/hotspot/share/oops/compressedKlass.inline.hpp ! src/hotspot/share/oops/objLayout.cpp ! src/hotspot/share/oops/objLayout.inline.hpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/utilities/globalDefinitions.hpp ! src/hotspot/share/utilities/vmError.cpp ! test/hotspot/gtest/metaspace/test_metaspaceUtils.cpp ! test/hotspot/gtest/oops/test_compressedKlass.cpp ! test/hotspot/jtreg/gtest/CompressedKlassGtest.java ! test/hotspot/jtreg/runtime/ErrorHandling/TestVMConfigInHsErrFile.java Changeset: a5e0c9d0 Branch: master Author: DarraghConway Committer: Mark Sheppard Date: 2025-08-03 11:03:15 +0000 URL: https://git.openjdk.org/loom/commit/a5e0c9d0c52e028321bb38e471ce98e389e67fe1 8363720: Follow up to JDK-8360411 with post review comments Reviewed-by: bpb, rriggs ! test/jdk/java/io/File/MaxPathLength.java Changeset: 1a206d2a Branch: master Author: Chen Liang Date: 2025-08-03 13:23:43 +0000 URL: https://git.openjdk.org/loom/commit/1a206d2a6cade07249f6922072ac9d29aa56bc43 8364545: tools/javac/launcher/SourceLauncherTest.java fails frequently Reviewed-by: cstein, jpai + test/langtools/tools/javac/launcher/SourceLauncherStackTraceTest.java ! test/langtools/tools/javac/launcher/SourceLauncherTest.java From nikita.bobko at jetbrains.com Mon Aug 4 10:01:26 2025 From: nikita.bobko at jetbrains.com (Nikita Bobko) Date: Mon, 4 Aug 2025 12:01:26 +0200 Subject: ScopedValue structured forking/forwarding API In-Reply-To: <1c6f889a-f472-4d7e-8eb4-18df110807ac@littlepinkcloud.com> References: <60C1C447-F3A2-4064-B86C-96AD1523020D@jetbrains.com> <657ddc2e-1910-43b6-aecf-4d125cfb9c41@littlepinkcloud.com> <3389EF90-27C2-4F64-B891-390C1B6C3DEF@jetbrains.com> <0fa4845d-b077-4c65-8338-767ff539b917@littlepinkcloud.com> <5D7E9BEA-6E6C-4D4A-818D-78E37ADFE507@jetbrains.com> <1c6f889a-f472-4d7e-8eb4-18df110807ac@littlepinkcloud.com> Message-ID: <547342D9-65B2-4E04-B6FD-6894FE8EAD6F@jetbrains.com> Andrew Haley wrote: > I think we can make this robust if and only if ScopedValue call() blocks > until every forward() (or, equivalently, every bindings.join()) has run > to completion. This approach may also give us a way to support parallel > streams, etc., without compromising scoped values' temporal and > structural invariants. This is an attractive thought. Yes, it's similar to how StructuredTaskScope.close works. Andrew Haley wrote: > Unfortunately, even though failing to wait for children to terminate > would be a coding error, it couldn't cause an exception to be thrown > because that would leave threads running after the scope that launched > them had exited. We could try to interrupt the blocking threads, but if > they didn't respond we'd be stuck. The similar problem exists in StructuredTaskScope API. AFAIK, StructuredTaskScope.close blocks until children are terminated and only after that it throws the exception. Andrew Haley wrote: > Also, doing this does sort-of imply that there has to be a handshake at > every scoped value binding What do you mean? Andrew Haley wrote: > It also means that ScopedValue.Snapshot > would need to be mutable in order to ensure that a Snapshot instance > couldn't be reused once it was join()ed. I think it's fine. StructuredTaskScope behaves in the similar manner. One can't join() it more than once. > Pedro Lamar?o wrote: > > Is this not the domain of the transformer or > > scheduler? shouldn't this be implemented in that layer? > > Andrew Haley wrote: > > In effect we already do exactly this with Java's > > jdk.internal.vm.Continuation class, but that's not available to client > > code such as Kotlin. So sure, it's the job of the transformer, but there > > isn't an API that such a transformer can use. > > May I inquire: what is a transformer? I briefly read some of the > jdk.internal.vm.Continuation code, but apparently not enough. I am still curious about this. From nikita.bobko at jetbrains.com Mon Aug 4 10:05:43 2025 From: nikita.bobko at jetbrains.com (Nikita Bobko) Date: Mon, 4 Aug 2025 12:05:43 +0200 Subject: ScopedValue structured forking/forwarding API In-Reply-To: <57a22477-6722-454d-8e11-516274923b91@oracle.com> References: <60C1C447-F3A2-4064-B86C-96AD1523020D@jetbrains.com> <657ddc2e-1910-43b6-aecf-4d125cfb9c41@littlepinkcloud.com> <3389EF90-27C2-4F64-B891-390C1B6C3DEF@jetbrains.com> <57a22477-6722-454d-8e11-516274923b91@oracle.com> Message-ID: <06CF3936-906F-4076-9ADB-C9194AD78DC3@jetbrains.com> Alan Bateman wrote: > Is this Android or are you saying that the AWT event dispatching thread > (or the JavaFX application thread) can be used as a carrier for these > coroutines? Both. Android and Swing. Maybe we even support JavaFX. But I don't see how it's important. From aph-open at littlepinkcloud.com Mon Aug 4 11:03:01 2025 From: aph-open at littlepinkcloud.com (Andrew Haley) Date: Mon, 4 Aug 2025 12:03:01 +0100 Subject: ScopedValue structured forking/forwarding API In-Reply-To: <547342D9-65B2-4E04-B6FD-6894FE8EAD6F@jetbrains.com> References: <60C1C447-F3A2-4064-B86C-96AD1523020D@jetbrains.com> <657ddc2e-1910-43b6-aecf-4d125cfb9c41@littlepinkcloud.com> <3389EF90-27C2-4F64-B891-390C1B6C3DEF@jetbrains.com> <0fa4845d-b077-4c65-8338-767ff539b917@littlepinkcloud.com> <5D7E9BEA-6E6C-4D4A-818D-78E37ADFE507@jetbrains.com> <1c6f889a-f472-4d7e-8eb4-18df110807ac@littlepinkcloud.com> <547342D9-65B2-4E04-B6FD-6894FE8EAD6F@jetbrains.com> Message-ID: <5e917069-d3ed-4f9d-81af-6837b4f22e4f@littlepinkcloud.com> On 04/08/2025 11:01, Nikita Bobko wrote: > Andrew Haley wrote: >> I think we can make this robust if and only if ScopedValue call() blocks >> until every forward() (or, equivalently, every bindings.join()) has run >> to completion. This approach may also give us a way to support parallel >> streams, etc., without compromising scoped values' temporal and >> structural invariants. This is an attractive thought. > > Yes, it's similar to how StructuredTaskScope.close works. OK. It's a matter of ensuring this property. > Andrew Haley wrote: >> Unfortunately, even though failing to wait for children to terminate >> would be a coding error, it couldn't cause an exception to be thrown >> because that would leave threads running after the scope that launched >> them had exited. We could try to interrupt the blocking threads, but if >> they didn't respond we'd be stuck. > > The similar problem exists in StructuredTaskScope API. AFAIK, > StructuredTaskScope.close blocks until children are terminated and only > after that it throws the exception. Right. We'd be taking this internal JDK logic and making its access public. > Andrew Haley wrote: >> Also, doing this does sort-of imply that there has to be a handshake at >> every scoped value binding > > What do you mean? There's a tension between making scoped value binding sites as lightweight as they can be, and cross-thread inheritance of bindings. ScopedValueContainers are used (and in effect managed) by ThreadContainers. ScopedValueContainers are not created unless we need them. The blocking logic (in popForcefully()) is not executed unless we actually use structured concurrency. This inter-thread handshaking is expensive, so I don't want popForcefully() to be executed unless inheritance is used. > Andrew Haley wrote: >> It also means that ScopedValue.Snapshot >> would need to be mutable in order to ensure that a Snapshot instance >> couldn't be reused once it was join()ed. > > I think it's fine. StructuredTaskScope behaves in the similar manner. > One can't join() it more than once. Mmm, yes. >> Pedro Lamar?o wrote: >>> Is this not the domain of the transformer or >>> scheduler? shouldn't this be implemented in that layer? >> >> Andrew Haley wrote: >>> In effect we already do exactly this with Java's >>> jdk.internal.vm.Continuation class, but that's not available to client >>> code such as Kotlin. So sure, it's the job of the transformer, but there >>> isn't an API that such a transformer can use. >> >> May I inquire: what is a transformer? I briefly read some of the >> jdk.internal.vm.Continuation code, but apparently not enough. > > I am still curious about this. It's not my usage, but I think it's a reference to the way in which suspend functions are transformed into continuation-passing style. -- Andrew Haley (he/him) Java Platform Lead Engineer https://keybase.io/andrewhaley EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671 From duke at openjdk.org Wed Aug 6 11:04:52 2025 From: duke at openjdk.org (duke) Date: Wed, 6 Aug 2025 11:04:52 GMT Subject: git: openjdk/loom: fibers: 33 new changesets Message-ID: <488a3fad-f18a-484f-b66e-1c10b08d1e00@openjdk.org> Changeset: 158e59ab Branch: fibers Author: David Holmes Date: 2025-08-03 22:28:12 +0000 URL: https://git.openjdk.org/loom/commit/158e59ab9184127089f9693ce256001f64b5945c 8364106: Include java.runtime.version in thread dump output Reviewed-by: alanb, coffeys ! src/hotspot/share/runtime/threads.cpp ! test/hotspot/jtreg/serviceability/dcmd/thread/PrintTest.java Changeset: 57553ca1 Branch: fibers Author: Abhishek Kumar Date: 2025-08-04 04:17:16 +0000 URL: https://git.openjdk.org/loom/commit/57553ca1dbc63e329116bc11764816a4c5ccb297 8361298: SwingUtilities/bug4967768.java fails where character P is not underline Reviewed-by: dnguyen, psadhukhan, achung, azvegint ! test/jdk/javax/swing/SwingUtilities/bug4967768.java Changeset: 8269fdc7 Branch: fibers Author: Andrey Turbanov Date: 2025-08-04 08:15:09 +0000 URL: https://git.openjdk.org/loom/commit/8269fdc78ef40d8238bf1509531f5cfc25d54820 8362067: Remove unnecessary List.contains key from SpringLayout.Constraints.pushConstraint Reviewed-by: aivanov ! src/java.desktop/share/classes/javax/swing/SpringLayout.java Changeset: 3387b319 Branch: fibers Author: Francesco Andreuzzi Committer: Aleksey Shipilev Date: 2025-08-04 08:20:22 +0000 URL: https://git.openjdk.org/loom/commit/3387b3195c8f2a9faa3c93322f6e11ce2aad3e2b 8364519: Sort share/classfile includes Reviewed-by: shade, ayang ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/classLoader.cpp ! src/hotspot/share/classfile/defaultMethods.cpp ! src/hotspot/share/classfile/defaultMethods.hpp ! src/hotspot/share/classfile/fieldLayoutBuilder.cpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/klassFactory.cpp ! src/hotspot/share/classfile/modules.cpp ! src/hotspot/share/classfile/packageEntry.cpp ! src/hotspot/share/classfile/packageEntry.hpp ! src/hotspot/share/classfile/placeholders.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/classfile/systemDictionaryShared.hpp ! src/hotspot/share/classfile/verifier.cpp ! src/hotspot/share/classfile/vmIntrinsics.cpp ! src/hotspot/share/classfile/vmIntrinsics.hpp ! src/hotspot/share/classfile/vmSymbols.cpp ! src/hotspot/share/classfile/vmSymbols.hpp ! test/hotspot/jtreg/sources/TestIncludesAreSorted.java Changeset: ea7e9438 Branch: fibers Author: Erik Gahlin Date: 2025-08-04 08:50:35 +0000 URL: https://git.openjdk.org/loom/commit/ea7e943874288e1cbea10a6bd82d6c7f2a1c9ae0 8364257: JFR: User-defined events and settings with a one-letter name cannot be configured Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/SettingsManager.java ! test/jdk/jdk/jfr/api/flightrecorder/TestSettingsControl.java Changeset: cf5a2553 Branch: fibers Author: Erik Gahlin Date: 2025-08-04 09:12:12 +0000 URL: https://git.openjdk.org/loom/commit/cf5a25538e09e449ff621562df6529abaa9b3685 8364427: JFR: Possible resource leak in Recording::getStream Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/ChunkInputStream.java + test/jdk/jdk/jfr/api/recording/misc/TestGetStreamWithFailure.java Changeset: 3bc44979 Branch: fibers Author: Markus Gr?nlund Date: 2025-08-04 09:42:05 +0000 URL: https://git.openjdk.org/loom/commit/3bc449797eb59f9770d2a06d260b23b6efd5ff0f 8364258: ThreadGroup constant pool serialization is not normalized Reviewed-by: egahlin - src/hotspot/share/jfr/recorder/checkpoint/types/jfrThreadGroup.cpp - src/hotspot/share/jfr/recorder/checkpoint/types/jfrThreadGroup.hpp + src/hotspot/share/jfr/recorder/checkpoint/types/jfrThreadGroupManager.cpp + src/hotspot/share/jfr/recorder/checkpoint/types/jfrThreadGroupManager.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrType.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrType.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeManager.cpp ! src/hotspot/share/jfr/recorder/jfrRecorder.cpp ! src/hotspot/share/jfr/recorder/jfrRecorder.hpp ! src/hotspot/share/jfr/support/jfrThreadLocal.cpp ! src/hotspot/share/jfr/support/jfrThreadLocal.hpp ! src/hotspot/share/runtime/javaThread.cpp Changeset: b96b9c3d Branch: fibers Author: Erik Gahlin Date: 2025-08-04 10:25:14 +0000 URL: https://git.openjdk.org/loom/commit/b96b9c3d5b2ffaeaa365b2f0d33674a980c96547 8364461: JFR: Default constructor may not be first in setting control Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/EventControl.java ! test/jdk/jdk/jfr/api/settings/RegExpControl.java Changeset: da0d9598 Branch: fibers Author: Erik Gahlin Date: 2025-08-04 10:41:21 +0000 URL: https://git.openjdk.org/loom/commit/da0d9598d049b17c04da95b61214b093c97fb60e 8364190: JFR: RemoteRecordingStream withers don't work Reviewed-by: mgronlun ! src/jdk.management.jfr/share/classes/jdk/management/jfr/RemoteRecordingStream.java ! test/jdk/jdk/jfr/jmx/streaming/TestEnableDisable.java + test/jdk/jdk/jfr/jmx/streaming/TestWithers.java Changeset: 68a4396d Branch: fibers Author: Erik Gahlin Date: 2025-08-04 10:53:40 +0000 URL: https://git.openjdk.org/loom/commit/68a4396dbc1f7bc02fea91934fc71366ad879637 8364316: JFR: Incorrect validation of mirror fields Reviewed-by: shade, mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/Type.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/TypeLibrary.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/util/Utils.java Changeset: 500462fb Branch: fibers Author: Jasmine Karthikeyan Date: 2025-08-04 12:11:10 +0000 URL: https://git.openjdk.org/loom/commit/500462fb690c25da3816467e27fc66d25b4eb7dc 8364580: Test compiler/vectorization/TestSubwordTruncation.java fails on platforms without RoundF/RoundD Reviewed-by: chagedorn, shade ! test/hotspot/jtreg/compiler/vectorization/TestSubwordTruncation.java Changeset: a9f3d3a2 Branch: fibers Author: Ao Qi Committer: Erik Joelsson Date: 2025-08-04 12:37:11 +0000 URL: https://git.openjdk.org/loom/commit/a9f3d3a290060f98967feaad2fa03ef077a64534 8364177: JDK fails to build due to undefined symbol in libpng on LoongArch64 Reviewed-by: prr, aivanov, erikj ! make/modules/java.desktop/lib/ClientLibraries.gmk Changeset: fc475553 Branch: fibers Author: Albert Mingkun Yang Date: 2025-08-04 12:59:26 +0000 URL: https://git.openjdk.org/loom/commit/fc4755535d61c2fd4d9a2c9a673da148f742f035 8364516: Serial: Move class unloading logic inside SerialFullGC::invoke_at_safepoint Reviewed-by: tschatzl, sangheki ! src/hotspot/share/gc/serial/serialFullGC.cpp ! src/hotspot/share/gc/serial/serialHeap.cpp Changeset: 567c0c93 Branch: fibers Author: Galder Zamarre?o Committer: Manuel H?ssig Date: 2025-08-04 13:51:14 +0000 URL: https://git.openjdk.org/loom/commit/567c0c9335c3ff020871115e5a58f3f40fd4b1ad 8354244: Use random data in MinMaxRed_Long data arrays Reviewed-by: chagedorn, mhaessig ! test/hotspot/jtreg/compiler/loopopts/superword/MinMaxRed_Long.java Changeset: 6c52b734 Branch: fibers Author: Artur Barashev Date: 2025-08-04 13:55:58 +0000 URL: https://git.openjdk.org/loom/commit/6c52b73465b0d0daeafc54c3c6cec3062bf490c5 8209992: Align SSLSocket and SSLEngine Javadocs Reviewed-by: wetmore ! src/java.base/share/classes/javax/net/ssl/SSLEngine.java ! src/java.base/share/classes/javax/net/ssl/SSLSocket.java Changeset: b5f450a5 Branch: fibers Author: Kevin Driver Date: 2025-08-04 15:59:57 +0000 URL: https://git.openjdk.org/loom/commit/b5f450a599a0f63df0307cced09295fe1309bf6f 8364226: Better ECDSASignature Memory Management Reviewed-by: ascarpino, hchao ! src/java.base/share/classes/sun/security/ec/ECDSASignature.java Changeset: 05f8a6fc Branch: fibers Author: Mohamed Issa Committer: Sandhya Viswanathan Date: 2025-08-04 18:47:57 +0000 URL: https://git.openjdk.org/loom/commit/05f8a6fca87d472a80e5952ddc90d8fa6589c75c 8360559: Optimize Math.sinh for x86 64 bit platforms Reviewed-by: sviswanathan, sparasa ! src/hotspot/cpu/arm/templateInterpreterGenerator_arm.cpp ! src/hotspot/cpu/ppc/templateInterpreterGenerator_ppc.cpp ! src/hotspot/cpu/s390/templateInterpreterGenerator_s390.cpp ! src/hotspot/cpu/x86/c1_LIRGenerator_x86.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.hpp + src/hotspot/cpu/x86/stubGenerator_x86_64_sinh.cpp ! src/hotspot/cpu/x86/templateInterpreterGenerator_x86_64.cpp ! src/hotspot/share/c1/c1_Compiler.cpp ! src/hotspot/share/c1/c1_GraphBuilder.cpp ! src/hotspot/share/c1/c1_LIRGenerator.cpp ! src/hotspot/share/c1/c1_Runtime1.cpp ! src/hotspot/share/classfile/vmIntrinsics.cpp ! src/hotspot/share/classfile/vmIntrinsics.hpp ! src/hotspot/share/interpreter/abstractInterpreter.cpp ! src/hotspot/share/interpreter/abstractInterpreter.hpp ! src/hotspot/share/interpreter/templateInterpreterGenerator.cpp ! src/hotspot/share/interpreter/zero/zeroInterpreterGenerator.cpp ! src/hotspot/share/jvmci/jvmciCompilerToVM.hpp ! src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/runtime/stubDeclarations.hpp ! src/java.base/share/classes/java/lang/Math.java + test/micro/org/openjdk/bench/java/lang/SinhPerf.java Changeset: d1e362e9 Branch: fibers Author: Phil Race Date: 2025-08-04 19:27:23 +0000 URL: https://git.openjdk.org/loom/commit/d1e362e9a8aae7f2c095510633624ed90a1d3b78 8363889: Update sun.print.PrintJob2D to use Disposer Reviewed-by: azvegint, psadhukhan ! src/java.desktop/share/classes/sun/print/PrintJob2D.java = src/java.desktop/share/classes/sun/print/PrintJobDelegate.java Changeset: 0d0d93e8 Branch: fibers Author: Phil Race Date: 2025-08-04 19:29:03 +0000 URL: https://git.openjdk.org/loom/commit/0d0d93e8f6e2e6d0831b011e47da0c6069f6f4f5 8210765: Remove finalize method in CStrike.java Reviewed-by: psadhukhan, achung, azvegint ! src/java.desktop/macosx/classes/sun/font/CStrike.java ! src/java.desktop/macosx/classes/sun/font/CStrikeDisposer.java Changeset: da3a5da8 Branch: fibers Author: Coleen Phillimore Date: 2025-08-04 20:13:03 +0000 URL: https://git.openjdk.org/loom/commit/da3a5da81bc1d6fe1e47e3a4e65bf390ee1d39a0 8343218: Add option to disable allocating interface and abstract classes in non-class metaspace Reviewed-by: shade, kvn, yzheng, stuefe, dholmes ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/klass.inline.hpp ! src/hotspot/share/runtime/globals.hpp ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotMetaspaceConstantImpl.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotVMConfig.java Changeset: dc4d9b48 Branch: fibers Author: Phil Race Date: 2025-08-04 20:25:41 +0000 URL: https://git.openjdk.org/loom/commit/dc4d9b4849f6557f290338643910f0b05751d748 8362898: Remove finalize() methods from javax.imageio TIFF classes Reviewed-by: azvegint, jdv ! src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFBaseJPEGCompressor.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFJPEGDecompressor.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFOldJPEGDecompressor.java Changeset: f96b6bcd Branch: fibers Author: Mohamed Issa Committer: Daniel D. Daugherty Date: 2025-08-04 21:31:35 +0000 URL: https://git.openjdk.org/loom/commit/f96b6bcd4ddbb1d0e0a76d9f4e3b43bec20dcb7a 8364666: Tier1 builds broken by JDK-8360559 Reviewed-by: sviswanathan ! src/hotspot/cpu/x86/stubGenerator_x86_64_sinh.cpp Changeset: 84a4a364 Branch: fibers Author: David Holmes Date: 2025-08-04 21:48:38 +0000 URL: https://git.openjdk.org/loom/commit/84a4a3647c86baecc07abfa7d1d4b88e06984821 8364314: java_lang_Thread::get_thread_status fails assert(base != nullptr) failed: Invalid base Reviewed-by: amenkov, shade, dcubed, pchilanomate, sspitsyn ! src/hotspot/share/services/threadService.cpp ! test/jdk/ProblemList.txt Changeset: 0f4c3dc9 Branch: fibers Author: Alexey Semenyuk Date: 2025-08-05 01:04:38 +0000 URL: https://git.openjdk.org/loom/commit/0f4c3dc944212c63acee35b7be93767946397ec0 8362352: Fix references to non-existing resource strings Reviewed-by: almatvee ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/BuildEnvFromParams.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/RuntimeBuilderBuilder.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/StandardBundlerParam.java Changeset: 6b360ac9 Branch: fibers Author: Alexey Semenyuk Date: 2025-08-05 01:09:56 +0000 URL: https://git.openjdk.org/loom/commit/6b360ac99af356613c6dd2cad0c2c84c5737519d 8359756: Bug in RuntimePackageTest.testName test Reviewed-by: almatvee ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/PackageTest.java ! test/jdk/tools/jpackage/share/RuntimePackageTest.java Changeset: c0c7d39b Branch: fibers Author: Alexey Semenyuk Date: 2025-08-05 01:42:45 +0000 URL: https://git.openjdk.org/loom/commit/c0c7d39b59e646a51bf3a6729065cceda9b0a0ad 8364587: Update jpackage internal javadoc Reviewed-by: almatvee ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/PackagingPipeline.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/Application.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/DefaultLauncherIcon.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/Launcher.java Changeset: febd4b26 Branch: fibers Author: Joel Sikstr?m Date: 2025-08-05 07:41:11 +0000 URL: https://git.openjdk.org/loom/commit/febd4b26b2c87030affd9f93524e0d951cbe74e7 8360515: PROPERFMTARGS should always use size_t template specialization for unit Reviewed-by: dholmes, stuefe ! src/hotspot/os/bsd/memMapPrinter_macosx.cpp ! src/hotspot/share/gc/parallel/psAdaptiveSizePolicy.cpp ! src/hotspot/share/utilities/globalDefinitions.hpp Changeset: 67ba8b45 Branch: fibers Author: Matthias Baesken Date: 2025-08-05 08:02:54 +0000 URL: https://git.openjdk.org/loom/commit/67ba8b45dd632c40d5e6872d2a6ce24f86c22152 8364514: [asan] runtime/jni/checked/TestCharArrayReleasing.java heap-buffer-overflow Reviewed-by: dholmes ! test/hotspot/jtreg/runtime/jni/checked/TestCharArrayReleasing.java Changeset: d25b9bef Branch: fibers Author: Saranya Natarajan Committer: Damon Fenacci Date: 2025-08-05 08:39:47 +0000 URL: https://git.openjdk.org/loom/commit/d25b9befe0a462b9785502806ad14e0a5f6b4320 8325482: Test that distinct seeds produce distinct traces for compiler stress flags Reviewed-by: chagedorn, dfenacci ! test/hotspot/jtreg/compiler/debug/TestStress.java + test/hotspot/jtreg/compiler/debug/TestStressDistinctSeed.java Changeset: 15f42f8d Branch: fibers Author: Alan Bateman Date: 2025-08-06 10:45:27 +0000 URL: https://git.openjdk.org/loom/commit/15f42f8d93f1523d6312efdfff54f6c297e91487 Merge branch 'master' into fibers ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/javaThread.cpp ! src/hotspot/share/runtime/threads.cpp ! src/hotspot/share/services/threadService.cpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/javaThread.cpp ! src/hotspot/share/runtime/threads.cpp ! src/hotspot/share/services/threadService.cpp Changeset: d79115d0 Branch: fibers Author: Alan Bateman Date: 2025-08-05 09:37:17 +0000 URL: https://git.openjdk.org/loom/commit/d79115d00cbc4c790c939a5d14c4abfb937b41b0 Windows + AIX only support SYSTEM_THREADS mode ! src/java.base/aix/classes/sun/nio/ch/DefaultPollerProvider.java ! src/java.base/linux/classes/sun/nio/ch/DefaultPollerProvider.java ! src/java.base/linux/classes/sun/nio/ch/EPollPoller.java ! src/java.base/share/classes/java/lang/VirtualThread.java ! src/java.base/windows/classes/sun/nio/ch/DefaultPollerProvider.java Changeset: 9da53e14 Branch: fibers Author: Alan Bateman Date: 2025-08-06 10:38:40 +0000 URL: https://git.openjdk.org/loom/commit/9da53e14b185afb3a583a1a685a3f4d4fba14978 PerCarrierPollerGroup updates ! src/java.base/aix/classes/sun/nio/ch/DefaultPollerProvider.java ! src/java.base/linux/classes/sun/nio/ch/DefaultPollerProvider.java ! src/java.base/linux/classes/sun/nio/ch/EPollPoller.java ! src/java.base/macosx/classes/sun/nio/ch/DefaultPollerProvider.java ! src/java.base/macosx/classes/sun/nio/ch/KQueuePoller.java ! src/java.base/share/classes/sun/nio/ch/Poller.java ! src/java.base/share/classes/sun/nio/ch/PollerProvider.java ! src/java.base/windows/classes/sun/nio/ch/DefaultPollerProvider.java Changeset: 5f0e6d18 Branch: fibers Author: Alan Bateman Date: 2025-08-06 10:45:35 +0000 URL: https://git.openjdk.org/loom/commit/5f0e6d1809e08cb7a145137ce4dc43bfdd4cdd9a Merge loom into fibers From duke at openjdk.org Wed Aug 6 11:06:29 2025 From: duke at openjdk.org (duke) Date: Wed, 6 Aug 2025 11:06:29 GMT Subject: git: openjdk/loom: master: 29 new changesets Message-ID: Changeset: 158e59ab Branch: master Author: David Holmes Date: 2025-08-03 22:28:12 +0000 URL: https://git.openjdk.org/loom/commit/158e59ab9184127089f9693ce256001f64b5945c 8364106: Include java.runtime.version in thread dump output Reviewed-by: alanb, coffeys ! src/hotspot/share/runtime/threads.cpp ! test/hotspot/jtreg/serviceability/dcmd/thread/PrintTest.java Changeset: 57553ca1 Branch: master Author: Abhishek Kumar Date: 2025-08-04 04:17:16 +0000 URL: https://git.openjdk.org/loom/commit/57553ca1dbc63e329116bc11764816a4c5ccb297 8361298: SwingUtilities/bug4967768.java fails where character P is not underline Reviewed-by: dnguyen, psadhukhan, achung, azvegint ! test/jdk/javax/swing/SwingUtilities/bug4967768.java Changeset: 8269fdc7 Branch: master Author: Andrey Turbanov Date: 2025-08-04 08:15:09 +0000 URL: https://git.openjdk.org/loom/commit/8269fdc78ef40d8238bf1509531f5cfc25d54820 8362067: Remove unnecessary List.contains key from SpringLayout.Constraints.pushConstraint Reviewed-by: aivanov ! src/java.desktop/share/classes/javax/swing/SpringLayout.java Changeset: 3387b319 Branch: master Author: Francesco Andreuzzi Committer: Aleksey Shipilev Date: 2025-08-04 08:20:22 +0000 URL: https://git.openjdk.org/loom/commit/3387b3195c8f2a9faa3c93322f6e11ce2aad3e2b 8364519: Sort share/classfile includes Reviewed-by: shade, ayang ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/classLoader.cpp ! src/hotspot/share/classfile/defaultMethods.cpp ! src/hotspot/share/classfile/defaultMethods.hpp ! src/hotspot/share/classfile/fieldLayoutBuilder.cpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/klassFactory.cpp ! src/hotspot/share/classfile/modules.cpp ! src/hotspot/share/classfile/packageEntry.cpp ! src/hotspot/share/classfile/packageEntry.hpp ! src/hotspot/share/classfile/placeholders.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/classfile/systemDictionaryShared.hpp ! src/hotspot/share/classfile/verifier.cpp ! src/hotspot/share/classfile/vmIntrinsics.cpp ! src/hotspot/share/classfile/vmIntrinsics.hpp ! src/hotspot/share/classfile/vmSymbols.cpp ! src/hotspot/share/classfile/vmSymbols.hpp ! test/hotspot/jtreg/sources/TestIncludesAreSorted.java Changeset: ea7e9438 Branch: master Author: Erik Gahlin Date: 2025-08-04 08:50:35 +0000 URL: https://git.openjdk.org/loom/commit/ea7e943874288e1cbea10a6bd82d6c7f2a1c9ae0 8364257: JFR: User-defined events and settings with a one-letter name cannot be configured Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/SettingsManager.java ! test/jdk/jdk/jfr/api/flightrecorder/TestSettingsControl.java Changeset: cf5a2553 Branch: master Author: Erik Gahlin Date: 2025-08-04 09:12:12 +0000 URL: https://git.openjdk.org/loom/commit/cf5a25538e09e449ff621562df6529abaa9b3685 8364427: JFR: Possible resource leak in Recording::getStream Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/ChunkInputStream.java + test/jdk/jdk/jfr/api/recording/misc/TestGetStreamWithFailure.java Changeset: 3bc44979 Branch: master Author: Markus Gr?nlund Date: 2025-08-04 09:42:05 +0000 URL: https://git.openjdk.org/loom/commit/3bc449797eb59f9770d2a06d260b23b6efd5ff0f 8364258: ThreadGroup constant pool serialization is not normalized Reviewed-by: egahlin - src/hotspot/share/jfr/recorder/checkpoint/types/jfrThreadGroup.cpp - src/hotspot/share/jfr/recorder/checkpoint/types/jfrThreadGroup.hpp + src/hotspot/share/jfr/recorder/checkpoint/types/jfrThreadGroupManager.cpp + src/hotspot/share/jfr/recorder/checkpoint/types/jfrThreadGroupManager.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrType.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrType.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeManager.cpp ! src/hotspot/share/jfr/recorder/jfrRecorder.cpp ! src/hotspot/share/jfr/recorder/jfrRecorder.hpp ! src/hotspot/share/jfr/support/jfrThreadLocal.cpp ! src/hotspot/share/jfr/support/jfrThreadLocal.hpp ! src/hotspot/share/runtime/javaThread.cpp Changeset: b96b9c3d Branch: master Author: Erik Gahlin Date: 2025-08-04 10:25:14 +0000 URL: https://git.openjdk.org/loom/commit/b96b9c3d5b2ffaeaa365b2f0d33674a980c96547 8364461: JFR: Default constructor may not be first in setting control Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/EventControl.java ! test/jdk/jdk/jfr/api/settings/RegExpControl.java Changeset: da0d9598 Branch: master Author: Erik Gahlin Date: 2025-08-04 10:41:21 +0000 URL: https://git.openjdk.org/loom/commit/da0d9598d049b17c04da95b61214b093c97fb60e 8364190: JFR: RemoteRecordingStream withers don't work Reviewed-by: mgronlun ! src/jdk.management.jfr/share/classes/jdk/management/jfr/RemoteRecordingStream.java ! test/jdk/jdk/jfr/jmx/streaming/TestEnableDisable.java + test/jdk/jdk/jfr/jmx/streaming/TestWithers.java Changeset: 68a4396d Branch: master Author: Erik Gahlin Date: 2025-08-04 10:53:40 +0000 URL: https://git.openjdk.org/loom/commit/68a4396dbc1f7bc02fea91934fc71366ad879637 8364316: JFR: Incorrect validation of mirror fields Reviewed-by: shade, mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/Type.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/TypeLibrary.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/util/Utils.java Changeset: 500462fb Branch: master Author: Jasmine Karthikeyan Date: 2025-08-04 12:11:10 +0000 URL: https://git.openjdk.org/loom/commit/500462fb690c25da3816467e27fc66d25b4eb7dc 8364580: Test compiler/vectorization/TestSubwordTruncation.java fails on platforms without RoundF/RoundD Reviewed-by: chagedorn, shade ! test/hotspot/jtreg/compiler/vectorization/TestSubwordTruncation.java Changeset: a9f3d3a2 Branch: master Author: Ao Qi Committer: Erik Joelsson Date: 2025-08-04 12:37:11 +0000 URL: https://git.openjdk.org/loom/commit/a9f3d3a290060f98967feaad2fa03ef077a64534 8364177: JDK fails to build due to undefined symbol in libpng on LoongArch64 Reviewed-by: prr, aivanov, erikj ! make/modules/java.desktop/lib/ClientLibraries.gmk Changeset: fc475553 Branch: master Author: Albert Mingkun Yang Date: 2025-08-04 12:59:26 +0000 URL: https://git.openjdk.org/loom/commit/fc4755535d61c2fd4d9a2c9a673da148f742f035 8364516: Serial: Move class unloading logic inside SerialFullGC::invoke_at_safepoint Reviewed-by: tschatzl, sangheki ! src/hotspot/share/gc/serial/serialFullGC.cpp ! src/hotspot/share/gc/serial/serialHeap.cpp Changeset: 567c0c93 Branch: master Author: Galder Zamarre?o Committer: Manuel H?ssig Date: 2025-08-04 13:51:14 +0000 URL: https://git.openjdk.org/loom/commit/567c0c9335c3ff020871115e5a58f3f40fd4b1ad 8354244: Use random data in MinMaxRed_Long data arrays Reviewed-by: chagedorn, mhaessig ! test/hotspot/jtreg/compiler/loopopts/superword/MinMaxRed_Long.java Changeset: 6c52b734 Branch: master Author: Artur Barashev Date: 2025-08-04 13:55:58 +0000 URL: https://git.openjdk.org/loom/commit/6c52b73465b0d0daeafc54c3c6cec3062bf490c5 8209992: Align SSLSocket and SSLEngine Javadocs Reviewed-by: wetmore ! src/java.base/share/classes/javax/net/ssl/SSLEngine.java ! src/java.base/share/classes/javax/net/ssl/SSLSocket.java Changeset: b5f450a5 Branch: master Author: Kevin Driver Date: 2025-08-04 15:59:57 +0000 URL: https://git.openjdk.org/loom/commit/b5f450a599a0f63df0307cced09295fe1309bf6f 8364226: Better ECDSASignature Memory Management Reviewed-by: ascarpino, hchao ! src/java.base/share/classes/sun/security/ec/ECDSASignature.java Changeset: 05f8a6fc Branch: master Author: Mohamed Issa Committer: Sandhya Viswanathan Date: 2025-08-04 18:47:57 +0000 URL: https://git.openjdk.org/loom/commit/05f8a6fca87d472a80e5952ddc90d8fa6589c75c 8360559: Optimize Math.sinh for x86 64 bit platforms Reviewed-by: sviswanathan, sparasa ! src/hotspot/cpu/arm/templateInterpreterGenerator_arm.cpp ! src/hotspot/cpu/ppc/templateInterpreterGenerator_ppc.cpp ! src/hotspot/cpu/s390/templateInterpreterGenerator_s390.cpp ! src/hotspot/cpu/x86/c1_LIRGenerator_x86.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.hpp + src/hotspot/cpu/x86/stubGenerator_x86_64_sinh.cpp ! src/hotspot/cpu/x86/templateInterpreterGenerator_x86_64.cpp ! src/hotspot/share/c1/c1_Compiler.cpp ! src/hotspot/share/c1/c1_GraphBuilder.cpp ! src/hotspot/share/c1/c1_LIRGenerator.cpp ! src/hotspot/share/c1/c1_Runtime1.cpp ! src/hotspot/share/classfile/vmIntrinsics.cpp ! src/hotspot/share/classfile/vmIntrinsics.hpp ! src/hotspot/share/interpreter/abstractInterpreter.cpp ! src/hotspot/share/interpreter/abstractInterpreter.hpp ! src/hotspot/share/interpreter/templateInterpreterGenerator.cpp ! src/hotspot/share/interpreter/zero/zeroInterpreterGenerator.cpp ! src/hotspot/share/jvmci/jvmciCompilerToVM.hpp ! src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/runtime/stubDeclarations.hpp ! src/java.base/share/classes/java/lang/Math.java + test/micro/org/openjdk/bench/java/lang/SinhPerf.java Changeset: d1e362e9 Branch: master Author: Phil Race Date: 2025-08-04 19:27:23 +0000 URL: https://git.openjdk.org/loom/commit/d1e362e9a8aae7f2c095510633624ed90a1d3b78 8363889: Update sun.print.PrintJob2D to use Disposer Reviewed-by: azvegint, psadhukhan ! src/java.desktop/share/classes/sun/print/PrintJob2D.java = src/java.desktop/share/classes/sun/print/PrintJobDelegate.java Changeset: 0d0d93e8 Branch: master Author: Phil Race Date: 2025-08-04 19:29:03 +0000 URL: https://git.openjdk.org/loom/commit/0d0d93e8f6e2e6d0831b011e47da0c6069f6f4f5 8210765: Remove finalize method in CStrike.java Reviewed-by: psadhukhan, achung, azvegint ! src/java.desktop/macosx/classes/sun/font/CStrike.java ! src/java.desktop/macosx/classes/sun/font/CStrikeDisposer.java Changeset: da3a5da8 Branch: master Author: Coleen Phillimore Date: 2025-08-04 20:13:03 +0000 URL: https://git.openjdk.org/loom/commit/da3a5da81bc1d6fe1e47e3a4e65bf390ee1d39a0 8343218: Add option to disable allocating interface and abstract classes in non-class metaspace Reviewed-by: shade, kvn, yzheng, stuefe, dholmes ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/klass.inline.hpp ! src/hotspot/share/runtime/globals.hpp ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotMetaspaceConstantImpl.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotVMConfig.java Changeset: dc4d9b48 Branch: master Author: Phil Race Date: 2025-08-04 20:25:41 +0000 URL: https://git.openjdk.org/loom/commit/dc4d9b4849f6557f290338643910f0b05751d748 8362898: Remove finalize() methods from javax.imageio TIFF classes Reviewed-by: azvegint, jdv ! src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFBaseJPEGCompressor.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFJPEGDecompressor.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFOldJPEGDecompressor.java Changeset: f96b6bcd Branch: master Author: Mohamed Issa Committer: Daniel D. Daugherty Date: 2025-08-04 21:31:35 +0000 URL: https://git.openjdk.org/loom/commit/f96b6bcd4ddbb1d0e0a76d9f4e3b43bec20dcb7a 8364666: Tier1 builds broken by JDK-8360559 Reviewed-by: sviswanathan ! src/hotspot/cpu/x86/stubGenerator_x86_64_sinh.cpp Changeset: 84a4a364 Branch: master Author: David Holmes Date: 2025-08-04 21:48:38 +0000 URL: https://git.openjdk.org/loom/commit/84a4a3647c86baecc07abfa7d1d4b88e06984821 8364314: java_lang_Thread::get_thread_status fails assert(base != nullptr) failed: Invalid base Reviewed-by: amenkov, shade, dcubed, pchilanomate, sspitsyn ! src/hotspot/share/services/threadService.cpp ! test/jdk/ProblemList.txt Changeset: 0f4c3dc9 Branch: master Author: Alexey Semenyuk Date: 2025-08-05 01:04:38 +0000 URL: https://git.openjdk.org/loom/commit/0f4c3dc944212c63acee35b7be93767946397ec0 8362352: Fix references to non-existing resource strings Reviewed-by: almatvee ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/BuildEnvFromParams.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/RuntimeBuilderBuilder.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/StandardBundlerParam.java Changeset: 6b360ac9 Branch: master Author: Alexey Semenyuk Date: 2025-08-05 01:09:56 +0000 URL: https://git.openjdk.org/loom/commit/6b360ac99af356613c6dd2cad0c2c84c5737519d 8359756: Bug in RuntimePackageTest.testName test Reviewed-by: almatvee ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/PackageTest.java ! test/jdk/tools/jpackage/share/RuntimePackageTest.java Changeset: c0c7d39b Branch: master Author: Alexey Semenyuk Date: 2025-08-05 01:42:45 +0000 URL: https://git.openjdk.org/loom/commit/c0c7d39b59e646a51bf3a6729065cceda9b0a0ad 8364587: Update jpackage internal javadoc Reviewed-by: almatvee ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/PackagingPipeline.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/Application.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/DefaultLauncherIcon.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/Launcher.java Changeset: febd4b26 Branch: master Author: Joel Sikstr?m Date: 2025-08-05 07:41:11 +0000 URL: https://git.openjdk.org/loom/commit/febd4b26b2c87030affd9f93524e0d951cbe74e7 8360515: PROPERFMTARGS should always use size_t template specialization for unit Reviewed-by: dholmes, stuefe ! src/hotspot/os/bsd/memMapPrinter_macosx.cpp ! src/hotspot/share/gc/parallel/psAdaptiveSizePolicy.cpp ! src/hotspot/share/utilities/globalDefinitions.hpp Changeset: 67ba8b45 Branch: master Author: Matthias Baesken Date: 2025-08-05 08:02:54 +0000 URL: https://git.openjdk.org/loom/commit/67ba8b45dd632c40d5e6872d2a6ce24f86c22152 8364514: [asan] runtime/jni/checked/TestCharArrayReleasing.java heap-buffer-overflow Reviewed-by: dholmes ! test/hotspot/jtreg/runtime/jni/checked/TestCharArrayReleasing.java Changeset: d25b9bef Branch: master Author: Saranya Natarajan Committer: Damon Fenacci Date: 2025-08-05 08:39:47 +0000 URL: https://git.openjdk.org/loom/commit/d25b9befe0a462b9785502806ad14e0a5f6b4320 8325482: Test that distinct seeds produce distinct traces for compiler stress flags Reviewed-by: chagedorn, dfenacci ! test/hotspot/jtreg/compiler/debug/TestStress.java + test/hotspot/jtreg/compiler/debug/TestStressDistinctSeed.java From duke at openjdk.org Thu Aug 7 16:50:07 2025 From: duke at openjdk.org (duke) Date: Thu, 7 Aug 2025 16:50:07 GMT Subject: git: openjdk/loom: fibers: 24 new changesets Message-ID: <83017a73-e30a-4f15-bd4e-c40317ddc78f@openjdk.org> Changeset: df736eb5 Branch: fibers Author: Francesco Andreuzzi Committer: Aleksey Shipilev Date: 2025-08-05 10:23:54 +0000 URL: https://git.openjdk.org/loom/commit/df736eb5822de2e2465df04972b1afb90334db5e 8364618: Sort share/code includes Reviewed-by: shade, mhaessig ! src/hotspot/share/code/aotCodeCache.cpp ! src/hotspot/share/code/codeBlob.hpp ! src/hotspot/share/code/debugInfo.cpp ! src/hotspot/share/code/dependencies.cpp ! src/hotspot/share/code/dependencyContext.cpp ! src/hotspot/share/code/nmethod.cpp ! test/hotspot/jtreg/sources/TestIncludesAreSorted.java Changeset: ba0ae4cb Branch: fibers Author: Albert Mingkun Yang Date: 2025-08-05 10:43:30 +0000 URL: https://git.openjdk.org/loom/commit/ba0ae4cb28aa520d5244077349e35ef1bb475b61 8364254: Serial: Remove soft ref policy update in WhiteBox FullGC Reviewed-by: tschatzl, sangheki ! src/hotspot/share/prims/whitebox.cpp Changeset: 8a571ee7 Branch: fibers Author: Erik Gahlin Date: 2025-08-05 14:33:30 +0000 URL: https://git.openjdk.org/loom/commit/8a571ee7f2d9a46ff485fd9f3658c552e2d20817 8364667: JFR: Throttle doesn't work with dynamic events Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/ClassInspector.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/EventInstrumentation.java ! test/jdk/jdk/jfr/api/metadata/annotations/TestThrottle.java Changeset: d906e450 Branch: fibers Author: Thomas Schatzl Date: 2025-08-05 16:13:53 +0000 URL: https://git.openjdk.org/loom/commit/d906e45026f54fe7102e531d3753adc32ff0025c 8364531: G1: Factor out liveness tracing code Reviewed-by: ayang, sangheki ! src/hotspot/share/gc/g1/g1ConcurrentMark.cpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.hpp Changeset: 68a35511 Branch: fibers Author: Aleksey Shipilev Date: 2025-08-05 18:34:07 +0000 URL: https://git.openjdk.org/loom/commit/68a35511ebd3fd77716242db973104657bc7b541 8364212: Shenandoah: Rework archived objects loading Reviewed-by: wkemper, kdnilsen ! src/hotspot/share/gc/shenandoah/shenandoahAllocRequest.hpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.inline.hpp Changeset: 6656e767 Branch: fibers Author: Anton Artemov Committer: David Holmes Date: 2025-08-06 04:45:35 +0000 URL: https://git.openjdk.org/loom/commit/6656e767db05e8e11ea17385674d8aa4385c60ed 8359820: Improve handshake/safepoint timeout diagnostic messages Reviewed-by: dholmes, stuefe ! src/hotspot/share/runtime/handshake.cpp ! src/hotspot/share/runtime/safepoint.cpp ! src/hotspot/share/utilities/vmError.cpp ! src/hotspot/share/utilities/vmError.hpp ! test/hotspot/jtreg/runtime/Safepoint/TestAbortVMOnSafepointTimeout.java Changeset: ca416445 Branch: fibers Author: Koushik Thirupattur Committer: Per Minborg Date: 2025-08-06 06:40:40 +0000 URL: https://git.openjdk.org/loom/commit/ca41644538c7cba3e2f50b11c5045cf2aa595f7f 8355379: Annotate lazy fields in java.security @Stable Reviewed-by: pminborg ! src/java.base/share/classes/java/security/PKCS12Attribute.java ! src/java.base/share/classes/java/security/cert/URICertStoreParameters.java ! test/jdk/java/security/PKCS12Attribute/HashCode.java ! test/jdk/java/security/cert/URICertStoreParameters/TestBasic.java Changeset: 8d529bc4 Branch: fibers Author: Joel Sikstr?m Date: 2025-08-06 07:54:44 +0000 URL: https://git.openjdk.org/loom/commit/8d529bc4f361407b0b5c3ac1e62c3be0f0b8d71c 8364518: Support for Job Objects in os::commit_memory_limit() on Windows Reviewed-by: ayang, dholmes ! src/hotspot/os/windows/os_windows.cpp Changeset: e304d379 Branch: fibers Author: Aleksey Shipilev Date: 2025-08-06 08:32:25 +0000 URL: https://git.openjdk.org/loom/commit/e304d37996b075b8b2b44b5762d7d242169add49 8361211: C2: Final graph reshaping generates unencodeable klass constants Reviewed-by: kvn, qamai, thartmann, mdoerr ! src/hotspot/share/opto/compile.cpp Changeset: 9dffbc9c Branch: fibers Author: Per Minborg Date: 2025-08-06 08:52:14 +0000 URL: https://git.openjdk.org/loom/commit/9dffbc9c4cfee7a1f023d548c12194bcf60e4ffd 8364540: Apply @Stable to Shared Secrets Reviewed-by: rriggs ! src/java.base/share/classes/jdk/internal/access/SharedSecrets.java Changeset: 0ceb366d Branch: fibers Author: David Beaumont Committer: Jan Lahoda Date: 2025-08-06 08:55:47 +0000 URL: https://git.openjdk.org/loom/commit/0ceb366dc26e2e4f6252da9dd8930b016a5d46ba 8356645: Javac should utilize new ZIP file system read-only access mode Reviewed-by: jlahoda ! src/jdk.compiler/share/classes/com/sun/tools/javac/file/FSInfo.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/file/JavacFileManager.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/file/Locations.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/platform/JDKPlatformProvider.java ! test/langtools/tools/javac/api/file/SJFM_TestBase.java ! test/langtools/tools/javac/platform/VerifyCTSymClassFiles.java Changeset: 72d1066a Branch: fibers Author: Albert Mingkun Yang Date: 2025-08-06 12:21:16 +0000 URL: https://git.openjdk.org/loom/commit/72d1066ae385ce511a70e762ed68afaa72e96ec4 8364722: Parallel: Move CLDG mark clearing to the end of full GC Reviewed-by: tschatzl, zgu ! src/hotspot/share/gc/parallel/psParallelCompact.cpp Changeset: f95af744 Branch: fibers Author: Guanqiang Han Committer: Kevin Walls Date: 2025-08-06 15:37:31 +0000 URL: https://git.openjdk.org/loom/commit/f95af744b07a9ec87e2507b3d584cbcddc827bbd 8364312: debug agent should set FD_CLOEXEC flag rather than explicitly closing every open file Reviewed-by: cjplummer, kevinw ! src/jdk.jdwp.agent/unix/native/libjdwp/exec_md.c Changeset: 7e484e2a Branch: fibers Author: Alexey Semenyuk Date: 2025-08-07 02:02:36 +0000 URL: https://git.openjdk.org/loom/commit/7e484e2a63e40740282b3da5d7b10e9f500bf6ab 8334238: Enhance AddLShortcutTest jpackage test Reviewed-by: almatvee ! test/jdk/tools/jpackage/apps/PrintEnv.java + test/jdk/tools/jpackage/clean_test_output.sh ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/AdditionalLauncher.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/AppImageFile.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/CommandArguments.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/ConfigFilesStasher.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherAsServiceVerifier.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherIconVerifier.java + test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherShortcut.java + test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherVerifier.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LinuxHelper.java + test/jdk/tools/jpackage/helpers/jdk/jpackage/test/MsiDatabase.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/PackageTest.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java + test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WinShortcutVerifier.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WindowsHelper.java ! test/jdk/tools/jpackage/linux/UpgradeTest.java + test/jdk/tools/jpackage/resources/msi-export.js - test/jdk/tools/jpackage/resources/query-msi-property.js ! test/jdk/tools/jpackage/share/AddLShortcutTest.java ! test/jdk/tools/jpackage/share/AddLauncherTest.java ! test/jdk/tools/jpackage/share/PerUserCfgTest.java Changeset: 078d0d49 Branch: fibers Author: David Holmes Date: 2025-08-07 04:37:21 +0000 URL: https://git.openjdk.org/loom/commit/078d0d4968e26bb7a15417f1c4e891869c69dc6c 8364235: Fix for JDK-8361447 breaks the alignment requirements for GuardedMemory Co-authored-by: Johan Sj?len Reviewed-by: dcubed, jsjolen, aboldtch ! src/hotspot/share/memory/guardedMemory.hpp Changeset: 487cc3c5 Branch: fibers Author: Johannes Bechberger Date: 2025-08-07 07:52:48 +0000 URL: https://git.openjdk.org/loom/commit/487cc3c5be769d15d61cb950137d52ba0eb982b5 8359690: New test TestCPUTimeSampleThrottling still fails intermittently Reviewed-by: mbaesken ! test/jdk/jdk/jfr/event/profiling/TestCPUTimeSampleThrottling.java Changeset: c56fb0b6 Branch: fibers Author: Thomas Schatzl Date: 2025-08-07 08:40:42 +0000 URL: https://git.openjdk.org/loom/commit/c56fb0b6eff7d3f36bc65f300b784e0dd73c563e 8364503: gc/g1/TestCodeCacheUnloadDuringConcCycle.java fails because of race printing to stdout Reviewed-by: ayang, dholmes ! test/hotspot/jtreg/gc/g1/TestCodeCacheUnloadDuringConcCycle.java Changeset: 8d73fe91 Branch: fibers Author: Jeremy Wood Committer: Alexey Ivanov Date: 2025-08-07 10:21:54 +0000 URL: https://git.openjdk.org/loom/commit/8d73fe91bccd1da53424b9f8a52d9efafabeb243 8358813: JPasswordField identifies spaces in password via delete shortcuts Reviewed-by: aivanov, dnguyen ! src/java.desktop/macosx/classes/com/apple/laf/AquaKeyBindings.java + test/jdk/javax/swing/JPasswordField/PasswordFieldInputMapWordTest.java Changeset: bc3d8656 Branch: fibers Author: Ashutosh Mehra Date: 2025-08-07 13:26:33 +0000 URL: https://git.openjdk.org/loom/commit/bc3d86564042208cee5119abe11905e747a5ef4c 8364128: Improve gathering of cpu feature names using stringStream Co-authored-by: Johan Sj?len Reviewed-by: kvn, jsjolen ! src/hotspot/cpu/aarch64/vm_version_aarch64.cpp ! src/hotspot/cpu/aarch64/vm_version_aarch64.hpp ! src/hotspot/cpu/x86/vm_version_x86.cpp ! src/hotspot/cpu/x86/vm_version_x86.hpp ! src/hotspot/os_cpu/bsd_aarch64/vm_version_bsd_aarch64.cpp ! src/hotspot/os_cpu/linux_aarch64/vm_version_linux_aarch64.cpp ! src/hotspot/share/runtime/abstract_vm_version.cpp ! src/hotspot/share/runtime/abstract_vm_version.hpp ! src/hotspot/share/utilities/ostream.hpp Changeset: 83953c45 Branch: fibers Author: Guanqiang Han Committer: Kevin Walls Date: 2025-08-07 14:11:46 +0000 URL: https://git.openjdk.org/loom/commit/83953c458eb65b2af184340dd460325f2b56e5b9 8364822: Comment cleanup, stale references to closeDescriptors and UNIXProcess.c Reviewed-by: kevinw, rriggs ! src/hotspot/os/aix/os_aix.cpp ! src/hotspot/os/bsd/os_bsd.cpp ! src/hotspot/os/linux/os_linux.cpp ! src/java.base/unix/native/libjava/childproc.c Changeset: c711d38a Branch: fibers Author: Alan Bateman Date: 2025-08-07 16:35:50 +0000 URL: https://git.openjdk.org/loom/commit/c711d38a53c2556b97ac02f872c6227555e7973e Merge branch 'master' into fibers Changeset: 1a932e7d Branch: fibers Author: Alan Bateman Date: 2025-08-07 12:56:05 +0000 URL: https://git.openjdk.org/loom/commit/1a932e7d63771e7b7b46f52722b47f84262f310e Allow for hierarchical polling in pollerMode 3 ! src/java.base/linux/classes/sun/nio/ch/EPollPoller.java ! src/java.base/share/classes/sun/nio/ch/IOUtil.java ! src/java.base/share/classes/sun/nio/ch/Poller.java Changeset: 59a812ff Branch: fibers Author: Alan Bateman Date: 2025-08-07 16:34:50 +0000 URL: https://git.openjdk.org/loom/commit/59a812ff6294bd1f48ba2e6d7733fc1d2730b81d method comments ! src/java.base/linux/classes/sun/nio/ch/EPollPoller.java ! src/java.base/macosx/classes/sun/nio/ch/KQueuePoller.java ! src/java.base/share/classes/sun/nio/ch/Poller.java Changeset: 43e576e5 Branch: fibers Author: Alan Bateman Date: 2025-08-07 16:35:57 +0000 URL: https://git.openjdk.org/loom/commit/43e576e58e203a4609438ac0434eeb5956656ff3 Merge loom into fibers From duke at openjdk.org Thu Aug 7 16:51:14 2025 From: duke at openjdk.org (duke) Date: Thu, 7 Aug 2025 16:51:14 GMT Subject: git: openjdk/loom: master: 20 new changesets Message-ID: <207e7369-78db-4f4b-99cb-adb9abe7d040@openjdk.org> Changeset: df736eb5 Branch: master Author: Francesco Andreuzzi Committer: Aleksey Shipilev Date: 2025-08-05 10:23:54 +0000 URL: https://git.openjdk.org/loom/commit/df736eb5822de2e2465df04972b1afb90334db5e 8364618: Sort share/code includes Reviewed-by: shade, mhaessig ! src/hotspot/share/code/aotCodeCache.cpp ! src/hotspot/share/code/codeBlob.hpp ! src/hotspot/share/code/debugInfo.cpp ! src/hotspot/share/code/dependencies.cpp ! src/hotspot/share/code/dependencyContext.cpp ! src/hotspot/share/code/nmethod.cpp ! test/hotspot/jtreg/sources/TestIncludesAreSorted.java Changeset: ba0ae4cb Branch: master Author: Albert Mingkun Yang Date: 2025-08-05 10:43:30 +0000 URL: https://git.openjdk.org/loom/commit/ba0ae4cb28aa520d5244077349e35ef1bb475b61 8364254: Serial: Remove soft ref policy update in WhiteBox FullGC Reviewed-by: tschatzl, sangheki ! src/hotspot/share/prims/whitebox.cpp Changeset: 8a571ee7 Branch: master Author: Erik Gahlin Date: 2025-08-05 14:33:30 +0000 URL: https://git.openjdk.org/loom/commit/8a571ee7f2d9a46ff485fd9f3658c552e2d20817 8364667: JFR: Throttle doesn't work with dynamic events Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/ClassInspector.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/EventInstrumentation.java ! test/jdk/jdk/jfr/api/metadata/annotations/TestThrottle.java Changeset: d906e450 Branch: master Author: Thomas Schatzl Date: 2025-08-05 16:13:53 +0000 URL: https://git.openjdk.org/loom/commit/d906e45026f54fe7102e531d3753adc32ff0025c 8364531: G1: Factor out liveness tracing code Reviewed-by: ayang, sangheki ! src/hotspot/share/gc/g1/g1ConcurrentMark.cpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.hpp Changeset: 68a35511 Branch: master Author: Aleksey Shipilev Date: 2025-08-05 18:34:07 +0000 URL: https://git.openjdk.org/loom/commit/68a35511ebd3fd77716242db973104657bc7b541 8364212: Shenandoah: Rework archived objects loading Reviewed-by: wkemper, kdnilsen ! src/hotspot/share/gc/shenandoah/shenandoahAllocRequest.hpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.inline.hpp Changeset: 6656e767 Branch: master Author: Anton Artemov Committer: David Holmes Date: 2025-08-06 04:45:35 +0000 URL: https://git.openjdk.org/loom/commit/6656e767db05e8e11ea17385674d8aa4385c60ed 8359820: Improve handshake/safepoint timeout diagnostic messages Reviewed-by: dholmes, stuefe ! src/hotspot/share/runtime/handshake.cpp ! src/hotspot/share/runtime/safepoint.cpp ! src/hotspot/share/utilities/vmError.cpp ! src/hotspot/share/utilities/vmError.hpp ! test/hotspot/jtreg/runtime/Safepoint/TestAbortVMOnSafepointTimeout.java Changeset: ca416445 Branch: master Author: Koushik Thirupattur Committer: Per Minborg Date: 2025-08-06 06:40:40 +0000 URL: https://git.openjdk.org/loom/commit/ca41644538c7cba3e2f50b11c5045cf2aa595f7f 8355379: Annotate lazy fields in java.security @Stable Reviewed-by: pminborg ! src/java.base/share/classes/java/security/PKCS12Attribute.java ! src/java.base/share/classes/java/security/cert/URICertStoreParameters.java ! test/jdk/java/security/PKCS12Attribute/HashCode.java ! test/jdk/java/security/cert/URICertStoreParameters/TestBasic.java Changeset: 8d529bc4 Branch: master Author: Joel Sikstr?m Date: 2025-08-06 07:54:44 +0000 URL: https://git.openjdk.org/loom/commit/8d529bc4f361407b0b5c3ac1e62c3be0f0b8d71c 8364518: Support for Job Objects in os::commit_memory_limit() on Windows Reviewed-by: ayang, dholmes ! src/hotspot/os/windows/os_windows.cpp Changeset: e304d379 Branch: master Author: Aleksey Shipilev Date: 2025-08-06 08:32:25 +0000 URL: https://git.openjdk.org/loom/commit/e304d37996b075b8b2b44b5762d7d242169add49 8361211: C2: Final graph reshaping generates unencodeable klass constants Reviewed-by: kvn, qamai, thartmann, mdoerr ! src/hotspot/share/opto/compile.cpp Changeset: 9dffbc9c Branch: master Author: Per Minborg Date: 2025-08-06 08:52:14 +0000 URL: https://git.openjdk.org/loom/commit/9dffbc9c4cfee7a1f023d548c12194bcf60e4ffd 8364540: Apply @Stable to Shared Secrets Reviewed-by: rriggs ! src/java.base/share/classes/jdk/internal/access/SharedSecrets.java Changeset: 0ceb366d Branch: master Author: David Beaumont Committer: Jan Lahoda Date: 2025-08-06 08:55:47 +0000 URL: https://git.openjdk.org/loom/commit/0ceb366dc26e2e4f6252da9dd8930b016a5d46ba 8356645: Javac should utilize new ZIP file system read-only access mode Reviewed-by: jlahoda ! src/jdk.compiler/share/classes/com/sun/tools/javac/file/FSInfo.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/file/JavacFileManager.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/file/Locations.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/platform/JDKPlatformProvider.java ! test/langtools/tools/javac/api/file/SJFM_TestBase.java ! test/langtools/tools/javac/platform/VerifyCTSymClassFiles.java Changeset: 72d1066a Branch: master Author: Albert Mingkun Yang Date: 2025-08-06 12:21:16 +0000 URL: https://git.openjdk.org/loom/commit/72d1066ae385ce511a70e762ed68afaa72e96ec4 8364722: Parallel: Move CLDG mark clearing to the end of full GC Reviewed-by: tschatzl, zgu ! src/hotspot/share/gc/parallel/psParallelCompact.cpp Changeset: f95af744 Branch: master Author: Guanqiang Han Committer: Kevin Walls Date: 2025-08-06 15:37:31 +0000 URL: https://git.openjdk.org/loom/commit/f95af744b07a9ec87e2507b3d584cbcddc827bbd 8364312: debug agent should set FD_CLOEXEC flag rather than explicitly closing every open file Reviewed-by: cjplummer, kevinw ! src/jdk.jdwp.agent/unix/native/libjdwp/exec_md.c Changeset: 7e484e2a Branch: master Author: Alexey Semenyuk Date: 2025-08-07 02:02:36 +0000 URL: https://git.openjdk.org/loom/commit/7e484e2a63e40740282b3da5d7b10e9f500bf6ab 8334238: Enhance AddLShortcutTest jpackage test Reviewed-by: almatvee ! test/jdk/tools/jpackage/apps/PrintEnv.java + test/jdk/tools/jpackage/clean_test_output.sh ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/AdditionalLauncher.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/AppImageFile.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/CommandArguments.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/ConfigFilesStasher.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherAsServiceVerifier.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherIconVerifier.java + test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherShortcut.java + test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherVerifier.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LinuxHelper.java + test/jdk/tools/jpackage/helpers/jdk/jpackage/test/MsiDatabase.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/PackageTest.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java + test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WinShortcutVerifier.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WindowsHelper.java ! test/jdk/tools/jpackage/linux/UpgradeTest.java + test/jdk/tools/jpackage/resources/msi-export.js - test/jdk/tools/jpackage/resources/query-msi-property.js ! test/jdk/tools/jpackage/share/AddLShortcutTest.java ! test/jdk/tools/jpackage/share/AddLauncherTest.java ! test/jdk/tools/jpackage/share/PerUserCfgTest.java Changeset: 078d0d49 Branch: master Author: David Holmes Date: 2025-08-07 04:37:21 +0000 URL: https://git.openjdk.org/loom/commit/078d0d4968e26bb7a15417f1c4e891869c69dc6c 8364235: Fix for JDK-8361447 breaks the alignment requirements for GuardedMemory Co-authored-by: Johan Sj?len Reviewed-by: dcubed, jsjolen, aboldtch ! src/hotspot/share/memory/guardedMemory.hpp Changeset: 487cc3c5 Branch: master Author: Johannes Bechberger Date: 2025-08-07 07:52:48 +0000 URL: https://git.openjdk.org/loom/commit/487cc3c5be769d15d61cb950137d52ba0eb982b5 8359690: New test TestCPUTimeSampleThrottling still fails intermittently Reviewed-by: mbaesken ! test/jdk/jdk/jfr/event/profiling/TestCPUTimeSampleThrottling.java Changeset: c56fb0b6 Branch: master Author: Thomas Schatzl Date: 2025-08-07 08:40:42 +0000 URL: https://git.openjdk.org/loom/commit/c56fb0b6eff7d3f36bc65f300b784e0dd73c563e 8364503: gc/g1/TestCodeCacheUnloadDuringConcCycle.java fails because of race printing to stdout Reviewed-by: ayang, dholmes ! test/hotspot/jtreg/gc/g1/TestCodeCacheUnloadDuringConcCycle.java Changeset: 8d73fe91 Branch: master Author: Jeremy Wood Committer: Alexey Ivanov Date: 2025-08-07 10:21:54 +0000 URL: https://git.openjdk.org/loom/commit/8d73fe91bccd1da53424b9f8a52d9efafabeb243 8358813: JPasswordField identifies spaces in password via delete shortcuts Reviewed-by: aivanov, dnguyen ! src/java.desktop/macosx/classes/com/apple/laf/AquaKeyBindings.java + test/jdk/javax/swing/JPasswordField/PasswordFieldInputMapWordTest.java Changeset: bc3d8656 Branch: master Author: Ashutosh Mehra Date: 2025-08-07 13:26:33 +0000 URL: https://git.openjdk.org/loom/commit/bc3d86564042208cee5119abe11905e747a5ef4c 8364128: Improve gathering of cpu feature names using stringStream Co-authored-by: Johan Sj?len Reviewed-by: kvn, jsjolen ! src/hotspot/cpu/aarch64/vm_version_aarch64.cpp ! src/hotspot/cpu/aarch64/vm_version_aarch64.hpp ! src/hotspot/cpu/x86/vm_version_x86.cpp ! src/hotspot/cpu/x86/vm_version_x86.hpp ! src/hotspot/os_cpu/bsd_aarch64/vm_version_bsd_aarch64.cpp ! src/hotspot/os_cpu/linux_aarch64/vm_version_linux_aarch64.cpp ! src/hotspot/share/runtime/abstract_vm_version.cpp ! src/hotspot/share/runtime/abstract_vm_version.hpp ! src/hotspot/share/utilities/ostream.hpp Changeset: 83953c45 Branch: master Author: Guanqiang Han Committer: Kevin Walls Date: 2025-08-07 14:11:46 +0000 URL: https://git.openjdk.org/loom/commit/83953c458eb65b2af184340dd460325f2b56e5b9 8364822: Comment cleanup, stale references to closeDescriptors and UNIXProcess.c Reviewed-by: kevinw, rriggs ! src/hotspot/os/aix/os_aix.cpp ! src/hotspot/os/bsd/os_bsd.cpp ! src/hotspot/os/linux/os_linux.cpp ! src/java.base/unix/native/libjava/childproc.c From dev at anthonyv.be Fri Aug 8 11:56:13 2025 From: dev at anthonyv.be (Anthony Vanelverdinghe) Date: Fri, 8 Aug 2025 13:56:13 +0200 Subject: Feedback: FailedException and Joiner Message-ID: <7fd06513-e690-442f-b8ad-ff3c133eb92b@anthonyv.be> Here's my feedback from upgrading my Loom experiments to JDK 25: I suddenly realized the code compiled, even though I hadn't implemented any error handling yet: turns out this is done via FailedException now, which is a RuntimeException. Personally, I'd much rather have a checked exception here: the Subtasks might be Callables that throw checked exceptions like IOException and SQLException, and I'd like the compiler to notify me that I haven't dealt with them yet. In fact, such exceptions are likely, since structured concurrency is often used for IO-bound tasks. Also note that `j.u.c.ExecutionException` is a checked exception as well. That being said: in cases where the scope can only ever throw an unchecked exception, having to deal with a checked exception is a nuisance. To improve this, I propose replacing `join` with `joinUnchecked throws UncheckedFailedException` and `joinChecked throws FailedException, UncheckedFailedException`. That way the developer always has to make a conscious choice. The former would work just like `join` does today. The latter would check the `Throwable` coming from `result()`: if it's a checked exception, it would throw `FailedException`, else it would throw `UncheckedFailedException`. (Note that we could reuse `j.u.c.ExecutionException` here and simply introduce `j.u.c.UncheckedExecutionException`.) For `StructuredTaskScope.Joiner` I propose to: * use `Success` instead of `Successful` in the method names, to match `Subtask.State.SUCCESS` * add `all` as the result-returning equivalent of `awaitAll` * have `allSuccessOrThrow` return `Stream`, because in my experience it's only ever followed by `.map(Subtask::get)` (and `anySuccessOrThrow` also returns just `T` instead of `Subtask`) * change the parameter type of `allUntil` to `Predicate>` to allow passing in an existing `Predicate` (e.g., `o -> true`) Also please consider adding factory methods that take a `Collector` (possibly with an overload that takes a `Predicate isDone` as well) or `Gatherer` like below. This allows type inference to work its magic. With the current `allSuccessOrThrow()`, you have to provide the type argument or you end up with `join` returning a `Stream>`. * ` StructuredTaskScope.Joiner allSuccessOrThrow(Collector collector)` * ` StructuredTaskScope.Joiner> allSuccessOrThrow(Gatherer gatherer)` Kind regards Anthony From alan.bateman at oracle.com Fri Aug 8 12:40:14 2025 From: alan.bateman at oracle.com (Alan Bateman) Date: Fri, 8 Aug 2025 13:40:14 +0100 Subject: Feedback: FailedException and Joiner In-Reply-To: <7fd06513-e690-442f-b8ad-ff3c133eb92b@anthonyv.be> References: <7fd06513-e690-442f-b8ad-ff3c133eb92b@anthonyv.be> Message-ID: <35b30239-bdbc-472c-b1bd-b5d303e4a7d6@oracle.com> On 08/08/2025 12:56, Anthony Vanelverdinghe wrote: > Here's my feedback from upgrading my Loom experiments to JDK 25: Can you provide a summary of your experiments? The most useful feedback is usually from experiments with real world applications and scenarios so it would be interesting to know more about your usages, a bit on what the subtasks do and what they return (the focus on the latter is to get some sense on whether the subtasks return results of the same types or different types). -Alan From duke at openjdk.org Fri Aug 8 13:43:26 2025 From: duke at openjdk.org (duke) Date: Fri, 8 Aug 2025 13:43:26 GMT Subject: git: openjdk/loom: fibers: 23 new changesets Message-ID: Changeset: e606278f Branch: fibers Author: Francesco Andreuzzi Committer: Manuel H?ssig Date: 2025-08-07 15:43:36 +0000 URL: https://git.openjdk.org/loom/commit/e606278fc8929fe563dd50a1c3f332747e210276 8358598: PhaseIterGVN::PhaseIterGVN(PhaseGVN* gvn) doesn't use its parameter Reviewed-by: galder, mhaessig, shade ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/phaseX.cpp ! src/hotspot/share/opto/phaseX.hpp ! src/hotspot/share/opto/vector.cpp Changeset: e29346db Branch: fibers Author: Prasanta Sadhukhan Date: 2025-08-07 16:03:12 +0000 URL: https://git.openjdk.org/loom/commit/e29346dbd6328dcadc347a70d8c06ce141efef02 8348760: RadioButton is not shown if JRadioButtonMenuItem is rendered with ImageIcon in WindowsLookAndFeel Reviewed-by: prr, kizune, abhiscxk ! src/java.desktop/share/classes/com/sun/java/swing/SwingUtilities3.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicMenuItemUI.java ! src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsCheckBoxMenuItemUI.java ! src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsIconFactory.java ! src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsMenuItemUI.java ! src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsMenuUI.java ! src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsRadioButtonMenuItemUI.java + test/jdk/javax/swing/JMenuItem/TestRadioAndCheckMenuItemWithIcon.java Changeset: 90ea42f7 Branch: fibers Author: Andrew Dinn Date: 2025-08-07 16:23:32 +0000 URL: https://git.openjdk.org/loom/commit/90ea42f716770fd567e4e3b3bf7466fa93964f07 8364558: Failure to generate compiler stubs from compiler thread should not crash VM when compilation disabled due to full CodeCache Reviewed-by: kvn, shade ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/runtime/stubRoutines.cpp Changeset: 02e18711 Branch: fibers Author: Brian Burkhalter Date: 2025-08-07 18:24:22 +0000 URL: https://git.openjdk.org/loom/commit/02e187119d0ca94d46e631a174c55db4945f3295 8364277: (fs) BasicFileAttributes.isDirectory and isOther return true for NTFS directory junctions when links not followed Reviewed-by: alanb ! src/java.base/windows/classes/sun/nio/fs/WindowsConstants.java ! src/java.base/windows/classes/sun/nio/fs/WindowsFileAttributes.java ! src/java.base/windows/classes/sun/nio/fs/WindowsFileSystemProvider.java ! test/jdk/java/nio/file/attribute/BasicFileAttributeView/Basic.java ! test/lib/jdk/test/lib/util/FileUtils.java ! test/lib/jdk/test/lib/util/libFileUtils.c Changeset: 78117eff Branch: fibers Author: Phil Race Date: 2025-08-07 18:58:28 +0000 URL: https://git.openjdk.org/loom/commit/78117eff563e59a738c59efa7ef595b13f62b621 8364230: javax/swing/text/StringContent can be migrated away from using finalize Reviewed-by: psadhukhan, abhiscxk, kizune ! src/java.desktop/share/classes/javax/swing/text/StringContent.java + test/jdk/javax/swing/text/AbstractDocument/StringContentPositionTest.java Changeset: 5116d9e5 Branch: fibers Author: Brett Okken Committer: Brian Burkhalter Date: 2025-08-07 19:27:28 +0000 URL: https://git.openjdk.org/loom/commit/5116d9e5fe6b63f12e9ae0eb5283433256872dc1 8364213: (bf) Improve java/nio/Buffer/CharBufferAsCharSequenceTest test comments 8364345: Test java/nio/Buffer/CharBufferAsCharSequenceTest.java failed Reviewed-by: bpb, rriggs ! test/jdk/java/nio/Buffer/CharBufferAsCharSequenceTest.java Changeset: c0e6ffab Branch: fibers Author: Liam Miller-Cushon Date: 2025-08-07 19:43:45 +0000 URL: https://git.openjdk.org/loom/commit/c0e6ffabc216279068ab887939028ca27f5143f2 8364954: (bf) CleaningThread should be InnocuousThread Reviewed-by: rriggs, alanb ! src/java.base/share/classes/java/nio/BufferCleaner.java Changeset: 244e6293 Branch: fibers Author: Alexey Semenyuk Date: 2025-08-07 19:55:41 +0000 URL: https://git.openjdk.org/loom/commit/244e6293c3b332105658900639a9f3db7b21a9fe 8364984: Many jpackage tests are failing on Linux after JDK-8334238 Reviewed-by: almatvee ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LinuxHelper.java Changeset: b8acbc3e Branch: fibers Author: Ayush Rigal Committer: Mark Sheppard Date: 2025-08-07 21:11:26 +0000 URL: https://git.openjdk.org/loom/commit/b8acbc3ed8675ad4cc4b9dea69ee1e87c2a2ca45 8364315: Remove unused xml files from test/jaxp/javax/xml/jaxp/functional/javax/xml/transform/xmlfiles Reviewed-by: jpai, joehw - test/jaxp/javax/xml/jaxp/functional/javax/xml/transform/xmlfiles/lexical.xml - test/jaxp/javax/xml/jaxp/functional/javax/xml/transform/xmlfiles/out/doctypeGF.out - test/jaxp/javax/xml/jaxp/functional/javax/xml/transform/xmlfiles/publish2.xml - test/jaxp/javax/xml/jaxp/functional/org/xml/sax/xmlfiles/out/DTDHandlerGF.out Changeset: c71be802 Branch: fibers Author: Harshitha Onkar Date: 2025-08-07 21:19:47 +0000 URL: https://git.openjdk.org/loom/commit/c71be802b530034169d17325478dba6e2f1c3238 8361748: Enforce limits on the size of an XBM image Reviewed-by: prr, jdv ! src/java.desktop/share/classes/sun/awt/image/XbmImageDecoder.java + test/jdk/java/awt/image/XBMDecoder/XBMDecoderTest.java + test/jdk/java/awt/image/XBMDecoder/invalid.xbm + test/jdk/java/awt/image/XBMDecoder/invalid_hex.xbm + test/jdk/java/awt/image/XBMDecoder/invalid_ht.xbm + test/jdk/java/awt/image/XBMDecoder/valid.xbm + test/jdk/java/awt/image/XBMDecoder/valid_hex.xbm Changeset: 4c9eadda Branch: fibers Author: John Jiang Date: 2025-08-08 02:27:30 +0000 URL: https://git.openjdk.org/loom/commit/4c9eaddaef83c6ba30e27ae3e0d16caeeec206cb 8364597: Replace THL A29 Limited with Tencent Reviewed-by: jiefu ! src/hotspot/cpu/x86/stubGenerator_x86_64_exp.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64_log.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64_pow.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahGenerationalControlThread.cpp ! test/hotspot/jtreg/compiler/arraycopy/TestIllegalArrayCopyBeforeInfiniteLoop.java ! test/hotspot/jtreg/compiler/arraycopy/TestNegArrayLengthAsIndex1.java ! test/hotspot/jtreg/compiler/arraycopy/TestNegArrayLengthAsIndex2.java ! test/hotspot/jtreg/compiler/arraycopy/TestNegativeArrayCopyAfterLoop.java ! test/hotspot/jtreg/compiler/c1/TestRangeCheckEliminated.java ! test/hotspot/jtreg/compiler/c2/TestDuplicateSimpleLoopBackedge.java ! test/hotspot/jtreg/compiler/c2/cr6865031/Test.java ! test/hotspot/jtreg/compiler/c2/irTests/TestAutoVectorization2DArray.java ! test/hotspot/jtreg/compiler/compilercontrol/TestConflictInlineCommands.java ! test/hotspot/jtreg/compiler/debug/TraceIterativeGVN.java ! test/hotspot/jtreg/compiler/intrinsics/math/TestPow0Dot5Opt.java ! test/hotspot/jtreg/compiler/intrinsics/math/TestPow2Opt.java ! test/hotspot/jtreg/compiler/intrinsics/sha/cli/TestUseSHA3IntrinsicsOptionOnSupportedCPU.java ! test/hotspot/jtreg/compiler/intrinsics/sha/cli/TestUseSHA3IntrinsicsOptionOnUnsupportedCPU.java ! test/hotspot/jtreg/compiler/jvmci/errors/TestInvalidTieredStopAtLevel.java ! test/hotspot/jtreg/compiler/loopopts/TestLoopEndNodeEliminate.java ! test/hotspot/jtreg/compiler/loopopts/TestLoopPredicateDep.java ! test/hotspot/jtreg/compiler/loopopts/TestSkeletonPredicateNegation.java ! test/hotspot/jtreg/compiler/oracle/TestInvalidCompileCommand.java ! test/hotspot/jtreg/compiler/print/TestTraceOptoParse.java ! test/hotspot/jtreg/compiler/regalloc/TestGCMRecalcPressureNodes.java ! test/hotspot/jtreg/compiler/unsafe/TestMisalignedUnsafeAccess.java ! test/hotspot/jtreg/compiler/vectorapi/TestIntrinsicBailOut.java ! test/hotspot/jtreg/compiler/vectorapi/TestVectorErgonomics.java ! test/hotspot/jtreg/compiler/vectorapi/VectorReinterpretTest.java ! test/hotspot/jtreg/containers/docker/TestMemoryWithCgroupV1.java ! test/hotspot/jtreg/gc/arguments/TestG1CompressedOops.java ! test/hotspot/jtreg/runtime/cds/appcds/FillerObjectLoadTest.java ! test/jdk/java/lang/Thread/virtual/ParkWithFixedThreadPool.java ! test/jdk/javax/net/ssl/DTLS/DTLSNamedGroups.java ! test/jdk/javax/net/ssl/DTLS/DTLSSignatureSchemes.java ! test/jdk/javax/net/ssl/SSLException/CheckSSLHandshakeException.java ! test/jdk/javax/net/ssl/SSLException/CheckSSLKeyException.java ! test/jdk/javax/net/ssl/SSLException/CheckSSLPeerUnverifiedException.java ! test/jdk/javax/net/ssl/SSLException/CheckSSLProtocolException.java ! test/jdk/javax/net/ssl/SSLParameters/NamedGroups.java ! test/jdk/javax/net/ssl/SSLParameters/NamedGroupsSpec.java ! test/jdk/javax/net/ssl/SSLParameters/SignatureSchemes.java ! test/jdk/javax/net/ssl/ServerName/EndingDotHostname.java ! test/jdk/javax/net/ssl/templates/SSLExampleCert.java ! test/jdk/javax/security/auth/callback/PasswordCallback/CheckCleanerBound.java ! test/jdk/javax/security/auth/callback/PasswordCallback/PasswordCleanup.java ! test/jdk/jdk/internal/platform/docker/GetFreeSwapSpaceSize.java ! test/jdk/jdk/internal/platform/docker/TestGetFreeSwapSpaceSize.java ! test/jdk/sun/security/ec/ECDHKeyAgreementParamValidation.java ! test/jdk/sun/security/jgss/GssContextCleanup.java ! test/jdk/sun/security/jgss/GssNameCleanup.java ! test/jdk/sun/security/ssl/SignatureScheme/SigAlgosExtTestWithTLS12.java ! test/jdk/sun/security/ssl/SignatureScheme/SigAlgosExtTestWithTLS13.java ! test/micro/org/openjdk/bench/java/security/Signatures.java ! test/micro/org/openjdk/bench/vm/compiler/AutoVectorization2DArray.java ! test/micro/org/openjdk/bench/vm/compiler/LoopUnroll.java Changeset: d0624f8b Branch: fibers Author: Andrey Turbanov Date: 2025-08-08 05:03:55 +0000 URL: https://git.openjdk.org/loom/commit/d0624f8b62fe0c70e5b6a47e05235ca65a2e1a13 8364808: Make BasicDesktopPaneUI.Actions.MOVE_RESIZE_INCREMENT static Reviewed-by: tr, azvegint, kizune, aivanov ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicDesktopPaneUI.java Changeset: 198782c9 Branch: fibers Author: Thomas Schatzl Date: 2025-08-08 07:54:23 +0000 URL: https://git.openjdk.org/loom/commit/198782c957c728ed959d1fd31e2c2ff6cd1a9bb5 8364877: G1: Inline G1CollectedHeap::set_region_short_lived_locked Reviewed-by: ayang, sangheki ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/g1/g1EdenRegions.hpp ! src/hotspot/share/gc/g1/g1Policy.hpp Changeset: bcca5cee Branch: fibers Author: Thomas Schatzl Date: 2025-08-08 07:56:29 +0000 URL: https://git.openjdk.org/loom/commit/bcca5cee2d788c745bea55388b2844b395519ed0 8364642: G1: Remove parameter in G1CollectedHeap::abandon_collection_set() Reviewed-by: ayang ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp Changeset: 47017e38 Branch: fibers Author: Thomas Schatzl Date: 2025-08-08 07:57:06 +0000 URL: https://git.openjdk.org/loom/commit/47017e38642a58fd6425ec68c1fed96f19f39404 8364760: G1: Remove obsolete code in G1MergeCardSetClosure Reviewed-by: ayang, sangheki ! src/hotspot/share/gc/g1/g1RemSet.cpp Changeset: a26a6f31 Branch: fibers Author: Thomas Schatzl Date: 2025-08-08 08:06:56 +0000 URL: https://git.openjdk.org/loom/commit/a26a6f31524aba61ed83bf3ffdc7713e3e5f5911 8364649: G1: Move collection set related full gc reset code into abandon_collection_set() method Reviewed-by: ayang, sangheki ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1FullCollector.cpp ! src/hotspot/share/gc/g1/g1Policy.cpp Changeset: 1b3e2311 Branch: fibers Author: Afshin Zafari Date: 2025-08-08 09:06:43 +0000 URL: https://git.openjdk.org/loom/commit/1b3e23110b2262e470a8c520b977273fd6a9e8d1 8360048: NMT crash in gtest/NMTGtests.java: fatal error: NMT corruption: Block at 0x0000017748307120: header canary broken Reviewed-by: jsjolen, gziemski ! src/hotspot/share/nmt/memBaseline.cpp ! src/hotspot/share/nmt/memReporter.cpp ! src/hotspot/share/nmt/virtualMemoryTracker.cpp ! src/hotspot/share/nmt/virtualMemoryTracker.hpp ! test/hotspot/gtest/runtime/test_virtualMemoryTracker.cpp Changeset: 241808e1 Branch: fibers Author: Andrew Dinn Date: 2025-08-08 09:12:08 +0000 URL: https://git.openjdk.org/loom/commit/241808e13fb032b0ec192e0b7ff94891a653ac94 8364269: Simplify code cache API by storing adapter entry offsets in blob Reviewed-by: kvn, shade, asmehra ! src/hotspot/share/code/aotCodeCache.cpp ! src/hotspot/share/code/aotCodeCache.hpp ! src/hotspot/share/code/codeBlob.cpp ! src/hotspot/share/code/codeBlob.hpp ! src/hotspot/share/runtime/sharedRuntime.cpp Changeset: c7c715c6 Branch: fibers Author: Alan Bateman Date: 2025-08-08 12:22:37 +0000 URL: https://git.openjdk.org/loom/commit/c7c715c61dc6ccf6c5dfb82ba1f52e1e1980dc1c Merge branch 'master' into fibers ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp Changeset: 7d4490f1 Branch: fibers Author: Alan Bateman Date: 2025-08-08 10:55:45 +0000 URL: https://git.openjdk.org/loom/commit/7d4490f190028ca46158be6444578de818ab0fe8 Sync up from pull/26612 ! src/hotspot/share/services/threadService.cpp ! src/java.base/share/classes/java/lang/System.java ! src/java.base/share/classes/java/lang/VirtualThread.java ! src/java.base/share/classes/jdk/internal/access/JavaLangAccess.java Changeset: 676718df Branch: fibers Author: Alan Bateman Date: 2025-08-08 13:16:21 +0000 URL: https://git.openjdk.org/loom/commit/676718df37a9988491898c9889c100814690b9d3 Bringover prototype io_uring from sandbox Contributed-by: michael.x.mcmahon at oracle.com + src/java.base/linux/classes/jdk/internal/ffi/generated/iouring/__kernel_timespec.java + src/java.base/linux/classes/jdk/internal/ffi/generated/iouring/epoll_data.java + src/java.base/linux/classes/jdk/internal/ffi/generated/iouring/epoll_data_t.java + src/java.base/linux/classes/jdk/internal/ffi/generated/iouring/epoll_event.java + src/java.base/linux/classes/jdk/internal/ffi/generated/iouring/in6_addr.java + src/java.base/linux/classes/jdk/internal/ffi/generated/iouring/in_addr.java + src/java.base/linux/classes/jdk/internal/ffi/generated/iouring/io_cqring_offsets.java + src/java.base/linux/classes/jdk/internal/ffi/generated/iouring/io_sqring_offsets.java + src/java.base/linux/classes/jdk/internal/ffi/generated/iouring/io_uring_cqe.java + src/java.base/linux/classes/jdk/internal/ffi/generated/iouring/io_uring_params.java + src/java.base/linux/classes/jdk/internal/ffi/generated/iouring/io_uring_rsrc_register.java + src/java.base/linux/classes/jdk/internal/ffi/generated/iouring/io_uring_sqe.java + src/java.base/linux/classes/jdk/internal/ffi/generated/iouring/iouring_h.java + src/java.base/linux/classes/jdk/internal/ffi/generated/iouring/iouring_h_1.java + src/java.base/linux/classes/jdk/internal/ffi/generated/iouring/iovec.java + src/java.base/linux/classes/jdk/internal/ffi/generated/iouring/sockaddr.java + src/java.base/linux/classes/jdk/internal/ffi/generated/iouring/sockaddr_in.java + src/java.base/linux/classes/jdk/internal/ffi/generated/iouring/sockaddr_in6.java + src/java.base/linux/classes/jdk/internal/ffi/generated/iouring/sockaddr_storage.java + src/java.base/linux/classes/jdk/internal/ffi/generated/iouring/timespec.java + src/java.base/linux/classes/sun/nio/ch/iouring/Cqe.java + src/java.base/linux/classes/sun/nio/ch/iouring/IOUringImpl.java + src/java.base/linux/classes/sun/nio/ch/iouring/IoUring.java + src/java.base/linux/classes/sun/nio/ch/iouring/KMappedBuffers.java + src/java.base/linux/classes/sun/nio/ch/iouring/Sqe.java + src/java.base/linux/classes/sun/nio/ch/iouring/SystemCallContext.java + src/java.base/linux/classes/sun/nio/ch/iouring/Util.java Changeset: 79f0744e Branch: fibers Author: Alan Bateman Date: 2025-08-08 13:18:03 +0000 URL: https://git.openjdk.org/loom/commit/79f0744e4fb2275a6701b87d5acad91e3821b9b7 Opt-in and experimental poller based on io_uring ! src/java.base/linux/classes/sun/nio/ch/DefaultPollerProvider.java + src/java.base/linux/classes/sun/nio/ch/IoUringPoller.java ! test/jdk/java/nio/channels/vthread/BlockingChannelOps.java Changeset: 26b0dcc5 Branch: fibers Author: Alan Bateman Date: 2025-08-08 13:18:29 +0000 URL: https://git.openjdk.org/loom/commit/26b0dcc5fe40e59034de98cfb8093cc20cc69685 Merge loom into fibers From duke at openjdk.org Fri Aug 8 13:44:26 2025 From: duke at openjdk.org (duke) Date: Fri, 8 Aug 2025 13:44:26 GMT Subject: git: openjdk/loom: master: 18 new changesets Message-ID: Changeset: e606278f Branch: master Author: Francesco Andreuzzi Committer: Manuel H?ssig Date: 2025-08-07 15:43:36 +0000 URL: https://git.openjdk.org/loom/commit/e606278fc8929fe563dd50a1c3f332747e210276 8358598: PhaseIterGVN::PhaseIterGVN(PhaseGVN* gvn) doesn't use its parameter Reviewed-by: galder, mhaessig, shade ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/phaseX.cpp ! src/hotspot/share/opto/phaseX.hpp ! src/hotspot/share/opto/vector.cpp Changeset: e29346db Branch: master Author: Prasanta Sadhukhan Date: 2025-08-07 16:03:12 +0000 URL: https://git.openjdk.org/loom/commit/e29346dbd6328dcadc347a70d8c06ce141efef02 8348760: RadioButton is not shown if JRadioButtonMenuItem is rendered with ImageIcon in WindowsLookAndFeel Reviewed-by: prr, kizune, abhiscxk ! src/java.desktop/share/classes/com/sun/java/swing/SwingUtilities3.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicMenuItemUI.java ! src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsCheckBoxMenuItemUI.java ! src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsIconFactory.java ! src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsMenuItemUI.java ! src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsMenuUI.java ! src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsRadioButtonMenuItemUI.java + test/jdk/javax/swing/JMenuItem/TestRadioAndCheckMenuItemWithIcon.java Changeset: 90ea42f7 Branch: master Author: Andrew Dinn Date: 2025-08-07 16:23:32 +0000 URL: https://git.openjdk.org/loom/commit/90ea42f716770fd567e4e3b3bf7466fa93964f07 8364558: Failure to generate compiler stubs from compiler thread should not crash VM when compilation disabled due to full CodeCache Reviewed-by: kvn, shade ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/runtime/stubRoutines.cpp Changeset: 02e18711 Branch: master Author: Brian Burkhalter Date: 2025-08-07 18:24:22 +0000 URL: https://git.openjdk.org/loom/commit/02e187119d0ca94d46e631a174c55db4945f3295 8364277: (fs) BasicFileAttributes.isDirectory and isOther return true for NTFS directory junctions when links not followed Reviewed-by: alanb ! src/java.base/windows/classes/sun/nio/fs/WindowsConstants.java ! src/java.base/windows/classes/sun/nio/fs/WindowsFileAttributes.java ! src/java.base/windows/classes/sun/nio/fs/WindowsFileSystemProvider.java ! test/jdk/java/nio/file/attribute/BasicFileAttributeView/Basic.java ! test/lib/jdk/test/lib/util/FileUtils.java ! test/lib/jdk/test/lib/util/libFileUtils.c Changeset: 78117eff Branch: master Author: Phil Race Date: 2025-08-07 18:58:28 +0000 URL: https://git.openjdk.org/loom/commit/78117eff563e59a738c59efa7ef595b13f62b621 8364230: javax/swing/text/StringContent can be migrated away from using finalize Reviewed-by: psadhukhan, abhiscxk, kizune ! src/java.desktop/share/classes/javax/swing/text/StringContent.java + test/jdk/javax/swing/text/AbstractDocument/StringContentPositionTest.java Changeset: 5116d9e5 Branch: master Author: Brett Okken Committer: Brian Burkhalter Date: 2025-08-07 19:27:28 +0000 URL: https://git.openjdk.org/loom/commit/5116d9e5fe6b63f12e9ae0eb5283433256872dc1 8364213: (bf) Improve java/nio/Buffer/CharBufferAsCharSequenceTest test comments 8364345: Test java/nio/Buffer/CharBufferAsCharSequenceTest.java failed Reviewed-by: bpb, rriggs ! test/jdk/java/nio/Buffer/CharBufferAsCharSequenceTest.java Changeset: c0e6ffab Branch: master Author: Liam Miller-Cushon Date: 2025-08-07 19:43:45 +0000 URL: https://git.openjdk.org/loom/commit/c0e6ffabc216279068ab887939028ca27f5143f2 8364954: (bf) CleaningThread should be InnocuousThread Reviewed-by: rriggs, alanb ! src/java.base/share/classes/java/nio/BufferCleaner.java Changeset: 244e6293 Branch: master Author: Alexey Semenyuk Date: 2025-08-07 19:55:41 +0000 URL: https://git.openjdk.org/loom/commit/244e6293c3b332105658900639a9f3db7b21a9fe 8364984: Many jpackage tests are failing on Linux after JDK-8334238 Reviewed-by: almatvee ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LinuxHelper.java Changeset: b8acbc3e Branch: master Author: Ayush Rigal Committer: Mark Sheppard Date: 2025-08-07 21:11:26 +0000 URL: https://git.openjdk.org/loom/commit/b8acbc3ed8675ad4cc4b9dea69ee1e87c2a2ca45 8364315: Remove unused xml files from test/jaxp/javax/xml/jaxp/functional/javax/xml/transform/xmlfiles Reviewed-by: jpai, joehw - test/jaxp/javax/xml/jaxp/functional/javax/xml/transform/xmlfiles/lexical.xml - test/jaxp/javax/xml/jaxp/functional/javax/xml/transform/xmlfiles/out/doctypeGF.out - test/jaxp/javax/xml/jaxp/functional/javax/xml/transform/xmlfiles/publish2.xml - test/jaxp/javax/xml/jaxp/functional/org/xml/sax/xmlfiles/out/DTDHandlerGF.out Changeset: c71be802 Branch: master Author: Harshitha Onkar Date: 2025-08-07 21:19:47 +0000 URL: https://git.openjdk.org/loom/commit/c71be802b530034169d17325478dba6e2f1c3238 8361748: Enforce limits on the size of an XBM image Reviewed-by: prr, jdv ! src/java.desktop/share/classes/sun/awt/image/XbmImageDecoder.java + test/jdk/java/awt/image/XBMDecoder/XBMDecoderTest.java + test/jdk/java/awt/image/XBMDecoder/invalid.xbm + test/jdk/java/awt/image/XBMDecoder/invalid_hex.xbm + test/jdk/java/awt/image/XBMDecoder/invalid_ht.xbm + test/jdk/java/awt/image/XBMDecoder/valid.xbm + test/jdk/java/awt/image/XBMDecoder/valid_hex.xbm Changeset: 4c9eadda Branch: master Author: John Jiang Date: 2025-08-08 02:27:30 +0000 URL: https://git.openjdk.org/loom/commit/4c9eaddaef83c6ba30e27ae3e0d16caeeec206cb 8364597: Replace THL A29 Limited with Tencent Reviewed-by: jiefu ! src/hotspot/cpu/x86/stubGenerator_x86_64_exp.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64_log.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64_pow.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahGenerationalControlThread.cpp ! test/hotspot/jtreg/compiler/arraycopy/TestIllegalArrayCopyBeforeInfiniteLoop.java ! test/hotspot/jtreg/compiler/arraycopy/TestNegArrayLengthAsIndex1.java ! test/hotspot/jtreg/compiler/arraycopy/TestNegArrayLengthAsIndex2.java ! test/hotspot/jtreg/compiler/arraycopy/TestNegativeArrayCopyAfterLoop.java ! test/hotspot/jtreg/compiler/c1/TestRangeCheckEliminated.java ! test/hotspot/jtreg/compiler/c2/TestDuplicateSimpleLoopBackedge.java ! test/hotspot/jtreg/compiler/c2/cr6865031/Test.java ! test/hotspot/jtreg/compiler/c2/irTests/TestAutoVectorization2DArray.java ! test/hotspot/jtreg/compiler/compilercontrol/TestConflictInlineCommands.java ! test/hotspot/jtreg/compiler/debug/TraceIterativeGVN.java ! test/hotspot/jtreg/compiler/intrinsics/math/TestPow0Dot5Opt.java ! test/hotspot/jtreg/compiler/intrinsics/math/TestPow2Opt.java ! test/hotspot/jtreg/compiler/intrinsics/sha/cli/TestUseSHA3IntrinsicsOptionOnSupportedCPU.java ! test/hotspot/jtreg/compiler/intrinsics/sha/cli/TestUseSHA3IntrinsicsOptionOnUnsupportedCPU.java ! test/hotspot/jtreg/compiler/jvmci/errors/TestInvalidTieredStopAtLevel.java ! test/hotspot/jtreg/compiler/loopopts/TestLoopEndNodeEliminate.java ! test/hotspot/jtreg/compiler/loopopts/TestLoopPredicateDep.java ! test/hotspot/jtreg/compiler/loopopts/TestSkeletonPredicateNegation.java ! test/hotspot/jtreg/compiler/oracle/TestInvalidCompileCommand.java ! test/hotspot/jtreg/compiler/print/TestTraceOptoParse.java ! test/hotspot/jtreg/compiler/regalloc/TestGCMRecalcPressureNodes.java ! test/hotspot/jtreg/compiler/unsafe/TestMisalignedUnsafeAccess.java ! test/hotspot/jtreg/compiler/vectorapi/TestIntrinsicBailOut.java ! test/hotspot/jtreg/compiler/vectorapi/TestVectorErgonomics.java ! test/hotspot/jtreg/compiler/vectorapi/VectorReinterpretTest.java ! test/hotspot/jtreg/containers/docker/TestMemoryWithCgroupV1.java ! test/hotspot/jtreg/gc/arguments/TestG1CompressedOops.java ! test/hotspot/jtreg/runtime/cds/appcds/FillerObjectLoadTest.java ! test/jdk/java/lang/Thread/virtual/ParkWithFixedThreadPool.java ! test/jdk/javax/net/ssl/DTLS/DTLSNamedGroups.java ! test/jdk/javax/net/ssl/DTLS/DTLSSignatureSchemes.java ! test/jdk/javax/net/ssl/SSLException/CheckSSLHandshakeException.java ! test/jdk/javax/net/ssl/SSLException/CheckSSLKeyException.java ! test/jdk/javax/net/ssl/SSLException/CheckSSLPeerUnverifiedException.java ! test/jdk/javax/net/ssl/SSLException/CheckSSLProtocolException.java ! test/jdk/javax/net/ssl/SSLParameters/NamedGroups.java ! test/jdk/javax/net/ssl/SSLParameters/NamedGroupsSpec.java ! test/jdk/javax/net/ssl/SSLParameters/SignatureSchemes.java ! test/jdk/javax/net/ssl/ServerName/EndingDotHostname.java ! test/jdk/javax/net/ssl/templates/SSLExampleCert.java ! test/jdk/javax/security/auth/callback/PasswordCallback/CheckCleanerBound.java ! test/jdk/javax/security/auth/callback/PasswordCallback/PasswordCleanup.java ! test/jdk/jdk/internal/platform/docker/GetFreeSwapSpaceSize.java ! test/jdk/jdk/internal/platform/docker/TestGetFreeSwapSpaceSize.java ! test/jdk/sun/security/ec/ECDHKeyAgreementParamValidation.java ! test/jdk/sun/security/jgss/GssContextCleanup.java ! test/jdk/sun/security/jgss/GssNameCleanup.java ! test/jdk/sun/security/ssl/SignatureScheme/SigAlgosExtTestWithTLS12.java ! test/jdk/sun/security/ssl/SignatureScheme/SigAlgosExtTestWithTLS13.java ! test/micro/org/openjdk/bench/java/security/Signatures.java ! test/micro/org/openjdk/bench/vm/compiler/AutoVectorization2DArray.java ! test/micro/org/openjdk/bench/vm/compiler/LoopUnroll.java Changeset: d0624f8b Branch: master Author: Andrey Turbanov Date: 2025-08-08 05:03:55 +0000 URL: https://git.openjdk.org/loom/commit/d0624f8b62fe0c70e5b6a47e05235ca65a2e1a13 8364808: Make BasicDesktopPaneUI.Actions.MOVE_RESIZE_INCREMENT static Reviewed-by: tr, azvegint, kizune, aivanov ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicDesktopPaneUI.java Changeset: 198782c9 Branch: master Author: Thomas Schatzl Date: 2025-08-08 07:54:23 +0000 URL: https://git.openjdk.org/loom/commit/198782c957c728ed959d1fd31e2c2ff6cd1a9bb5 8364877: G1: Inline G1CollectedHeap::set_region_short_lived_locked Reviewed-by: ayang, sangheki ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/g1/g1EdenRegions.hpp ! src/hotspot/share/gc/g1/g1Policy.hpp Changeset: bcca5cee Branch: master Author: Thomas Schatzl Date: 2025-08-08 07:56:29 +0000 URL: https://git.openjdk.org/loom/commit/bcca5cee2d788c745bea55388b2844b395519ed0 8364642: G1: Remove parameter in G1CollectedHeap::abandon_collection_set() Reviewed-by: ayang ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp Changeset: 47017e38 Branch: master Author: Thomas Schatzl Date: 2025-08-08 07:57:06 +0000 URL: https://git.openjdk.org/loom/commit/47017e38642a58fd6425ec68c1fed96f19f39404 8364760: G1: Remove obsolete code in G1MergeCardSetClosure Reviewed-by: ayang, sangheki ! src/hotspot/share/gc/g1/g1RemSet.cpp Changeset: a26a6f31 Branch: master Author: Thomas Schatzl Date: 2025-08-08 08:06:56 +0000 URL: https://git.openjdk.org/loom/commit/a26a6f31524aba61ed83bf3ffdc7713e3e5f5911 8364649: G1: Move collection set related full gc reset code into abandon_collection_set() method Reviewed-by: ayang, sangheki ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1FullCollector.cpp ! src/hotspot/share/gc/g1/g1Policy.cpp Changeset: 1b3e2311 Branch: master Author: Afshin Zafari Date: 2025-08-08 09:06:43 +0000 URL: https://git.openjdk.org/loom/commit/1b3e23110b2262e470a8c520b977273fd6a9e8d1 8360048: NMT crash in gtest/NMTGtests.java: fatal error: NMT corruption: Block at 0x0000017748307120: header canary broken Reviewed-by: jsjolen, gziemski ! src/hotspot/share/nmt/memBaseline.cpp ! src/hotspot/share/nmt/memReporter.cpp ! src/hotspot/share/nmt/virtualMemoryTracker.cpp ! src/hotspot/share/nmt/virtualMemoryTracker.hpp ! test/hotspot/gtest/runtime/test_virtualMemoryTracker.cpp Changeset: 241808e1 Branch: master Author: Andrew Dinn Date: 2025-08-08 09:12:08 +0000 URL: https://git.openjdk.org/loom/commit/241808e13fb032b0ec192e0b7ff94891a653ac94 8364269: Simplify code cache API by storing adapter entry offsets in blob Reviewed-by: kvn, shade, asmehra ! src/hotspot/share/code/aotCodeCache.cpp ! src/hotspot/share/code/aotCodeCache.hpp ! src/hotspot/share/code/codeBlob.cpp ! src/hotspot/share/code/codeBlob.hpp ! src/hotspot/share/runtime/sharedRuntime.cpp From dev at anthonyv.be Fri Aug 8 14:18:59 2025 From: dev at anthonyv.be (Anthony Vanelverdinghe) Date: Fri, 8 Aug 2025 16:18:59 +0200 Subject: Feedback: FailedException and Joiner In-Reply-To: <35b30239-bdbc-472c-b1bd-b5d303e4a7d6@oracle.com> References: <7fd06513-e690-442f-b8ad-ff3c133eb92b@anthonyv.be> <35b30239-bdbc-472c-b1bd-b5d303e4a7d6@oracle.com> Message-ID: On 8/8/2025 2:40 PM, Alan Bateman wrote: > > On 08/08/2025 12:56, Anthony Vanelverdinghe wrote: >> Here's my feedback from upgrading my Loom experiments to JDK 25: > > Can you provide a summary of your experiments? The most useful > feedback is usually from experiments with real world applications and > scenarios so it would be interesting to know more about your usages, a > bit on what the subtasks do and what they return (the focus on the > latter is to get some sense on whether the subtasks return results of > the same types or different types). > > -Alan Sure. It's just a single scenario and not a real-world application though: a basic grep. So each subtask is a `Callable` that reads a chunk of a file and returns a T (a Boolean to indicate whether the chunk contained a match, a Long with the number of matches, a record with the lines that matched). And then there's a `Collector` to collect the results (OR'ing the Booleans, summing the Longs, returning a `Stream`). Previously I had written a `class DefaultSts extends StructuredTaskScope` which had a method `results()` returning a `record Results(Reason reason, R successResult, S failedResult, U cancelledResult) {}`. So you'd switch on the `reason` to determine what to do (this dates back to JDK 19, hence the `cancelledResult`). So before I had: `var scope = DefaultSts.of(collector)` and `return scope.results()` And now I have: `var scope = StructuredTaskScope.open(Joiners.ofThrowing(collector))` and `return scope.join()` which is the same as: `var scope = StructuredTaskScope.open(StructuredTaskScope.Joiner.allSuccessfulOrThrow())` and `return scope.join().map(Subtask::get).collect(collector)` Before I would have an exhaustive switch on `Reason` and thus always be reminded to do error handling. As mentioned, I was surprised that my code compiled without error handling now. The actual checked exceptions that get thrown from my subtasks are `ExecutionException` and `InterruptedException`, from invoking `Future::get` on the result of `AsynchronousFileChannel::read`. So if an `IOException` were to occur, it would be at `FailedException(ExecutionException(IOException))`. An issue with the current `join` is also that I typically only want to deal with checked exceptions and let unchecked exceptions bubble up. So I'd need a utility method and something like `catch(FailedException e) { var cause = getCauseAndThrowIfUnchecked(e); ... }`. While I could still have the `Joiner` return something to switch on, analogous to what I did previously, `join` is now designed for failure handling, so I'd rather use that mechanism. By having two methods, `joinChecked` and `joinUnchecked`, a developer? would be able to "assert" whether their subtasks throw checked exceptions. Kind regards, Anthony From duke at openjdk.org Sat Aug 9 08:56:24 2025 From: duke at openjdk.org (duke) Date: Sat, 9 Aug 2025 08:56:24 GMT Subject: git: openjdk/loom: fibers: 4 new changesets Message-ID: <6e1bb78a-3bdd-4ca9-be32-5ae7830473ab@openjdk.org> Changeset: 1c706dd3 Branch: fibers Author: Alan Bateman Date: 2025-08-09 09:50:56 +0000 URL: https://git.openjdk.org/loom/commit/1c706dd3321879a8f345b0c404657651ff145575 Temporarily exclude build/translations/VerifyTranslations.java ! test/jdk/ProblemList.txt Changeset: 0d81757d Branch: fibers Author: Alan Bateman Date: 2025-08-09 09:54:14 +0000 URL: https://git.openjdk.org/loom/commit/0d81757dbe688788f3711b7aa331306bc92b33e8 Add /timeout due to large number of iterations ! test/jdk/com/sun/management/HotSpotDiagnosticMXBean/DumpThreadsWhenParking.java Changeset: c9b2cd4e Branch: fibers Author: Alan Bateman Date: 2025-08-09 09:54:41 +0000 URL: https://git.openjdk.org/loom/commit/c9b2cd4e3f96e420bf1514a6f51633689b7dc5fc poll_remove failing ! src/java.base/linux/classes/sun/nio/ch/IoUringPoller.java ! src/java.base/linux/classes/sun/nio/ch/iouring/IoUring.java Changeset: c6da0415 Branch: fibers Author: Alan Bateman Date: 2025-08-09 09:54:57 +0000 URL: https://git.openjdk.org/loom/commit/c6da04153bb026a0befb1a728836c452cf983dec Don't shutdown custom scheduler ! test/jdk/java/nio/channels/vthread/BlockingChannelOps.java From duke at openjdk.org Sun Aug 10 05:23:26 2025 From: duke at openjdk.org (duke) Date: Sun, 10 Aug 2025 05:23:26 GMT Subject: git: openjdk/loom: fibers: 9 new changesets Message-ID: <39010f70-abb7-439b-a7cc-6763e0c50f3f@openjdk.org> Changeset: cd50d78d Branch: fibers Author: Chen Liang Date: 2025-08-08 17:17:21 +0000 URL: https://git.openjdk.org/loom/commit/cd50d78d447f9f39065bc844fb3041cba2db32db 8361300: Document exceptions for Unsafe offset methods Reviewed-by: jrose, vyazici ! src/hotspot/share/prims/unsafe.cpp ! src/java.base/share/classes/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java ! src/java.base/share/classes/java/util/concurrent/atomic/AtomicLongFieldUpdater.java ! src/java.base/share/classes/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java ! src/java.base/share/classes/jdk/internal/misc/Unsafe.java ! test/jdk/java/util/concurrent/tck/AtomicIntegerFieldUpdaterTest.java ! test/jdk/java/util/concurrent/tck/AtomicLongFieldUpdaterTest.java ! test/jdk/java/util/concurrent/tck/AtomicReferenceFieldUpdaterTest.java + test/jdk/jdk/internal/misc/Unsafe/AddressComputationContractTest.java Changeset: c1c01556 Branch: fibers Author: Alexey Semenyuk Date: 2025-08-08 21:41:44 +0000 URL: https://git.openjdk.org/loom/commit/c1c0155604cbb6c42a220d391a88b029776bdb95 8364129: Rename libwixhelper Reviewed-by: erikj, almatvee ! make/modules/jdk.jpackage/Lib.gmk ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WixUiFragmentBuilder.java ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/main.wxs = src/jdk.jpackage/windows/native/libmsica/Version.cpp = src/jdk.jpackage/windows/native/libmsica/Version.h = src/jdk.jpackage/windows/native/libmsica/libmsica.cpp ! test/jdk/tools/jpackage/windows/WinLongVersionTest.java Changeset: 8ad1fcc4 Branch: fibers Author: Alexey Semenyuk Date: 2025-08-08 22:11:52 +0000 URL: https://git.openjdk.org/loom/commit/8ad1fcc48a4ba49ffde6dfbb851dbb3f56077dec 8364564: Shortcut configuration is not recorded in .jpackage.xml file Reviewed-by: almatvee ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/DesktopIntegration.java ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxFromParams.java ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/model/LinuxLauncher.java ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/model/LinuxLauncherMixin.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/AddLauncherArguments.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/FromParams.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/StandardBundlerParam.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/LauncherShortcut.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/LauncherShortcutStartupDirectory.java ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WinFromParams.java ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WixAppImageFragmentBuilder.java ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/model/WinLauncher.java ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/model/WinLauncherMixin.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherShortcut.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherVerifier.java Changeset: f83454cd Branch: fibers Author: Jaikiran Pai Date: 2025-08-09 02:00:58 +0000 URL: https://git.openjdk.org/loom/commit/f83454cd61538b653656ccf81759b3cc7286ed67 8364786: Test java/net/vthread/HttpALot.java intermittently fails - 24999 handled, expected 25000 Reviewed-by: dfuchs, alanb, vyazici ! test/jdk/java/net/vthread/HttpALot.java Changeset: d5f59581 Branch: fibers Author: Alan Bateman Date: 2025-08-09 16:16:52 +0000 URL: https://git.openjdk.org/loom/commit/d5f5958116c08bf3e600f3f9076c398def68fa14 Merge branch 'master' into fibers Changeset: 8c2d94e1 Branch: fibers Author: Alan Bateman Date: 2025-08-09 16:17:41 +0000 URL: https://git.openjdk.org/loom/commit/8c2d94e1fe9e82369dc6ad63966c6693904df913 Release resources if init fails ! src/java.base/linux/classes/sun/nio/ch/EPollPoller.java ! src/java.base/linux/classes/sun/nio/ch/IoUringPoller.java ! src/java.base/linux/classes/sun/nio/ch/iouring/IoUring.java ! src/java.base/macosx/classes/sun/nio/ch/KQueuePoller.java ! src/java.base/windows/classes/sun/nio/ch/WEPollPoller.java Changeset: b2e890bf Branch: fibers Author: Alan Bateman Date: 2025-08-09 16:17:54 +0000 URL: https://git.openjdk.org/loom/commit/b2e890bf6704ba82f19a5e284852b4afd01bacb6 Update SelectorOps to use new poller mode ! test/jdk/java/nio/channels/vthread/BlockingChannelOps.java ! test/jdk/java/nio/channels/vthread/SelectorOps.java Changeset: 86222660 Branch: fibers Author: Alan Bateman Date: 2025-08-09 16:18:04 +0000 URL: https://git.openjdk.org/loom/commit/86222660504ff0adbb5cbfde75771333321d0931 Merge loom into fibers Changeset: fa1938da Branch: fibers Author: Alan Bateman Date: 2025-08-09 16:23:03 +0000 URL: https://git.openjdk.org/loom/commit/fa1938daadd4b327f39b8cba8338fd663f5c15b9 Update BlockingSocketOps to test new poller mode ! test/jdk/java/net/vthread/BlockingSocketOps.java From duke at openjdk.org Sun Aug 10 05:23:39 2025 From: duke at openjdk.org (duke) Date: Sun, 10 Aug 2025 05:23:39 GMT Subject: git: openjdk/loom: master: 4 new changesets Message-ID: Changeset: cd50d78d Branch: master Author: Chen Liang Date: 2025-08-08 17:17:21 +0000 URL: https://git.openjdk.org/loom/commit/cd50d78d447f9f39065bc844fb3041cba2db32db 8361300: Document exceptions for Unsafe offset methods Reviewed-by: jrose, vyazici ! src/hotspot/share/prims/unsafe.cpp ! src/java.base/share/classes/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java ! src/java.base/share/classes/java/util/concurrent/atomic/AtomicLongFieldUpdater.java ! src/java.base/share/classes/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java ! src/java.base/share/classes/jdk/internal/misc/Unsafe.java ! test/jdk/java/util/concurrent/tck/AtomicIntegerFieldUpdaterTest.java ! test/jdk/java/util/concurrent/tck/AtomicLongFieldUpdaterTest.java ! test/jdk/java/util/concurrent/tck/AtomicReferenceFieldUpdaterTest.java + test/jdk/jdk/internal/misc/Unsafe/AddressComputationContractTest.java Changeset: c1c01556 Branch: master Author: Alexey Semenyuk Date: 2025-08-08 21:41:44 +0000 URL: https://git.openjdk.org/loom/commit/c1c0155604cbb6c42a220d391a88b029776bdb95 8364129: Rename libwixhelper Reviewed-by: erikj, almatvee ! make/modules/jdk.jpackage/Lib.gmk ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WixUiFragmentBuilder.java ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/main.wxs = src/jdk.jpackage/windows/native/libmsica/Version.cpp = src/jdk.jpackage/windows/native/libmsica/Version.h = src/jdk.jpackage/windows/native/libmsica/libmsica.cpp ! test/jdk/tools/jpackage/windows/WinLongVersionTest.java Changeset: 8ad1fcc4 Branch: master Author: Alexey Semenyuk Date: 2025-08-08 22:11:52 +0000 URL: https://git.openjdk.org/loom/commit/8ad1fcc48a4ba49ffde6dfbb851dbb3f56077dec 8364564: Shortcut configuration is not recorded in .jpackage.xml file Reviewed-by: almatvee ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/DesktopIntegration.java ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxFromParams.java ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/model/LinuxLauncher.java ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/model/LinuxLauncherMixin.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/AddLauncherArguments.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/FromParams.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/StandardBundlerParam.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/LauncherShortcut.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/LauncherShortcutStartupDirectory.java ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WinFromParams.java ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WixAppImageFragmentBuilder.java ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/model/WinLauncher.java ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/model/WinLauncherMixin.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherShortcut.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherVerifier.java Changeset: f83454cd Branch: master Author: Jaikiran Pai Date: 2025-08-09 02:00:58 +0000 URL: https://git.openjdk.org/loom/commit/f83454cd61538b653656ccf81759b3cc7286ed67 8364786: Test java/net/vthread/HttpALot.java intermittently fails - 24999 handled, expected 25000 Reviewed-by: dfuchs, alanb, vyazici ! test/jdk/java/net/vthread/HttpALot.java From duke at openjdk.org Tue Aug 12 09:58:46 2025 From: duke at openjdk.org (duke) Date: Tue, 12 Aug 2025 09:58:46 GMT Subject: git: openjdk/loom: fibers: 28 new changesets Message-ID: <14af938e-8f14-41b8-9392-be491c4ce5f5@openjdk.org> Changeset: e13b4c8d Branch: fibers Author: Chen Liang Date: 2025-08-09 23:44:21 +0000 URL: https://git.openjdk.org/loom/commit/e13b4c8de944ab14a1d12f6251e83f4fdd9e0198 8358535: Changes in ClassValue (JDK-8351996) caused a 1-9% regression in Renaissance-PageRank Reviewed-by: jrose, shade ! src/java.base/share/classes/java/lang/ClassValue.java ! test/jdk/java/lang/invoke/ClassValueTest.java Changeset: 022e29a7 Branch: fibers Author: Jaikiran Pai Date: 2025-08-10 04:22:10 +0000 URL: https://git.openjdk.org/loom/commit/022e29a77533aacabd56820d00ecffa9646a8362 8365086: CookieStore.getURIs() and get(URI) should return an immutable List Reviewed-by: liach, vyazici, dfuchs ! src/java.base/share/classes/java/net/InMemoryCookieStore.java + test/jdk/java/net/CookieStoreTest.java Changeset: 15e8609a Branch: fibers Author: Matthias Baesken Date: 2025-08-11 07:08:03 +0000 URL: https://git.openjdk.org/loom/commit/15e8609a2c3d246e89cfb349cbd21777bc471bae 8364996: java/awt/font/FontNames/LocaleFamilyNames.java times out on Windows Reviewed-by: clanger, prr, asteiner ! test/jdk/java/awt/font/FontNames/LocaleFamilyNames.java Changeset: c31f4861 Branch: fibers Author: Volkan Yazici Date: 2025-08-11 07:10:38 +0000 URL: https://git.openjdk.org/loom/commit/c31f4861fb6c85c31348ac3e99ccf754d9ee1a60 8364365: HKSCS encoder does not properly set the replacement character Reviewed-by: sherman ! src/java.base/share/classes/sun/nio/cs/HKSCS.java + test/jdk/sun/nio/cs/TestEncoderReplaceLatin1.java + test/jdk/sun/nio/cs/TestEncoderReplaceUTF16.java Changeset: f28126eb Branch: fibers Author: Joel Sikstr?m Date: 2025-08-11 08:18:28 +0000 URL: https://git.openjdk.org/loom/commit/f28126ebc2f792f0d64bbe6e841d9fafb433b7ea 8365050: Too verbose warning in os::commit_memory_limit() on Windows Reviewed-by: dholmes, mbaesken ! src/hotspot/os/windows/os_windows.cpp Changeset: 10762d40 Branch: fibers Author: Dmitry Cherepanov Date: 2025-08-11 08:19:02 +0000 URL: https://git.openjdk.org/loom/commit/10762d408bba9ce0945100847a8674e7eb7fa75e 8365044: Missing copyright header in Contextual.java Reviewed-by: egahlin ! src/jdk.jfr/share/classes/jdk/jfr/Contextual.java Changeset: 0c39228e Branch: fibers Author: Albert Mingkun Yang Date: 2025-08-11 09:42:12 +0000 URL: https://git.openjdk.org/loom/commit/0c39228ec1c8c6eadafb54567c94ad5f19f27f7a 8364767: G1: Remove use of CollectedHeap::_soft_ref_policy Reviewed-by: tschatzl, sangheki ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1FullGCScope.cpp ! src/hotspot/share/gc/g1/g1FullGCScope.hpp ! src/hotspot/share/gc/g1/g1VMOperations.cpp ! src/hotspot/share/gc/shared/softRefPolicy.hpp ! src/hotspot/share/prims/whitebox.cpp Changeset: 1fc0b016 Branch: fibers Author: Magnus Ihse Bursie Date: 2025-08-11 09:44:49 +0000 URL: https://git.openjdk.org/loom/commit/1fc0b01601af454a0e871afce8ae0c9da1358f13 8361142: Improve custom hooks for makefiles Reviewed-by: erikj ! make/CompileJavaModules.gmk ! make/CreateJmods.gmk ! make/Images.gmk ! make/Main.gmk ! make/MainSupport.gmk ! make/ModuleWrapper.gmk ! make/common/JavaCompilation.gmk ! make/common/Modules.gmk Changeset: 8b5bb013 Branch: fibers Author: Jan Lahoda Date: 2025-08-11 10:28:59 +0000 URL: https://git.openjdk.org/loom/commit/8b5bb013557478c9ceb49f94f22600d5901f4eee 8364987: javac fails with an exception when looking for diamond creation Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Analyzer.java ! test/langtools/tools/javac/analyzer/Diamond.java Changeset: fd766b27 Branch: fibers Author: Albert Mingkun Yang Date: 2025-08-11 10:49:47 +0000 URL: https://git.openjdk.org/loom/commit/fd766b27b9f862075a415780901c242a7d48c26f 8364541: Parallel: Support allocation in old generation when heap is almost full Reviewed-by: phh, tschatzl ! src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp Changeset: a60e523f Branch: fibers Author: Beno?t Maillard Committer: Damon Fenacci Date: 2025-08-11 11:15:34 +0000 URL: https://git.openjdk.org/loom/commit/a60e523f88e7022abe80725b82a8b16a87a377e2 8349191: Test compiler/ciReplay/TestIncrementalInlining.java failed Reviewed-by: mhaessig, dfenacci, chagedorn ! src/hotspot/share/opto/printinlining.cpp ! test/hotspot/jtreg/ProblemList.txt Changeset: 43cfd80c Branch: fibers Author: Darragh Clarke Date: 2025-08-11 11:57:08 +0000 URL: https://git.openjdk.org/loom/commit/43cfd80c1c0493f2f50ffd75461ca75a002e0127 8352502: Response message is null if expect 100 assertion fails with non 100 Reviewed-by: dfuchs ! src/java.base/share/classes/java/net/HttpURLConnection.java ! src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java + test/jdk/java/net/HttpURLConnection/HttpUrlConnectionExpectContinueResponseMessageTest.java Changeset: 0ad919c1 Branch: fibers Author: Casper Norrbin Date: 2025-08-11 12:22:52 +0000 URL: https://git.openjdk.org/loom/commit/0ad919c1e54895b000b58f6a1b54d79f76970845 8352067: Remove the NMT treap and replace its uses with the utilities red-black tree Reviewed-by: jsjolen, ayang ! src/hotspot/share/nmt/memoryFileTracker.cpp - src/hotspot/share/nmt/nmtTreap.hpp ! src/hotspot/share/nmt/regionsTree.cpp ! src/hotspot/share/nmt/regionsTree.hpp ! src/hotspot/share/nmt/regionsTree.inline.hpp ! src/hotspot/share/nmt/vmatree.cpp ! src/hotspot/share/nmt/vmatree.hpp ! src/hotspot/share/opto/printinlining.cpp ! src/hotspot/share/opto/printinlining.hpp ! src/hotspot/share/utilities/rbTree.hpp ! src/hotspot/share/utilities/rbTree.inline.hpp - test/hotspot/gtest/nmt/test_nmt_treap.cpp ! test/hotspot/gtest/nmt/test_vmatree.cpp ! test/hotspot/gtest/utilities/test_rbtree.cpp Changeset: 23985c29 Branch: fibers Author: Magnus Ihse Bursie Date: 2025-08-11 14:12:55 +0000 URL: https://git.openjdk.org/loom/commit/23985c29b44b489472dcd3aad2cb98d9ce003a7b 8357979: Compile jdk.internal.vm.ci targeting the Boot JDK version Reviewed-by: erikj, dnsimon ! make/CompileJavaModules.gmk ! make/autoconf/boot-jdk.m4 ! make/autoconf/spec.gmk.template ! make/common/JavaCompilation.gmk ! make/modules/jdk.internal.vm.ci/Java.gmk Changeset: bdb1646a Branch: fibers Author: Thomas Stuefe Date: 2025-08-11 15:37:31 +0000 URL: https://git.openjdk.org/loom/commit/bdb1646a1e39bae0535efe3f593e7fc0545e4114 8364611: (process) Child process SIGPIPE signal disposition should be default Reviewed-by: erikj, rriggs ! make/test/JtregNativeJdk.gmk ! src/java.base/unix/native/libjava/childproc.c + test/jdk/java/lang/ProcessBuilder/childSignalDisposition/TestChildSignalDisposition.java + test/jdk/java/lang/ProcessBuilder/childSignalDisposition/exePrintSignalDisposition.c + test/jdk/java/lang/ProcessBuilder/childSignalDisposition/libChangeSignalDisposition.c Changeset: e9e331b2 Branch: fibers Author: Francesco Andreuzzi Committer: Paul Hohensee Date: 2025-08-11 17:10:10 +0000 URL: https://git.openjdk.org/loom/commit/e9e331b2a957180dac2e9ce19a58d0a57d2f5dae 8365238: 'jfr' feature requires 'services' with 'custom' build variant Reviewed-by: erikj, shade, ihse ! make/autoconf/jvm-features.m4 Changeset: 958383d6 Branch: fibers Author: Aleksey Shipilev Date: 2025-08-11 18:49:37 +0000 URL: https://git.openjdk.org/loom/commit/958383d69c8742fdb78c28ad856559367c3513d7 8364501: Compiler shutdown crashes on access to deleted CompileTask Reviewed-by: kvn, mhaessig ! src/hotspot/share/compiler/compileBroker.cpp ! src/hotspot/share/compiler/compileTask.cpp ! src/hotspot/share/compiler/compileTask.hpp Changeset: 8cd79752 Branch: fibers Author: Brian Burkhalter Date: 2025-08-11 18:50:39 +0000 URL: https://git.openjdk.org/loom/commit/8cd79752c6426780c6772eafe296aa5b713b2b64 8364761: (aio) AsynchronousChannelGroup.execute doesn't check null command Reviewed-by: alanb, vyazici ! src/java.base/share/classes/sun/nio/ch/AsynchronousChannelGroupImpl.java ! test/jdk/java/nio/channels/AsynchronousChannelGroup/AsExecutor.java Changeset: 9593730a Branch: fibers Author: Joe Darcy Date: 2025-08-11 23:45:24 +0000 URL: https://git.openjdk.org/loom/commit/9593730a23f465d26ba7b310d5b0c5d3b4ee4326 8362376: Use @Stable annotation in Java FDLIBM implementation Reviewed-by: liach, rgiulietti ! src/java.base/share/classes/java/lang/FdLibm.java ! test/jdk/java/lang/StrictMath/ExpTests.java ! test/jdk/java/lang/StrictMath/PowTests.java Changeset: 6927fc39 Branch: fibers Author: Dingli Zhang Committer: Feilong Jiang Date: 2025-08-12 01:25:35 +0000 URL: https://git.openjdk.org/loom/commit/6927fc3904eb239bd43ab7c581d479c00a6a4af2 8365200: RISC-V: compiler/loopopts/superword/TestGeneralizedReductions.java fails with Zvbb and vlen=128 Reviewed-by: fyang, fjiang ! test/hotspot/jtreg/compiler/loopopts/superword/TestGeneralizedReductions.java Changeset: 72d3a2a9 Branch: fibers Author: Alexey Semenyuk Date: 2025-08-12 03:15:49 +0000 URL: https://git.openjdk.org/loom/commit/72d3a2a9773b2a3fe0351e0acb7b10c0751d23d8 8308349: missing working directory option for launcher when invoked from shortcuts Reviewed-by: almatvee ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/DesktopIntegration.java ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxFromParams.java ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/resources/template.desktop ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/Arguments.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/FromParams.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/LauncherShortcutStartupDirectory.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/ParseUtils.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/resources/MainResources.properties ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WinFromParams.java ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WixAppImageFragmentBuilder.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/AdditionalLauncher.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherShortcut.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LinuxHelper.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WinShortcutVerifier.java ! test/jdk/tools/jpackage/share/AddLShortcutTest.java ! test/jdk/tools/jpackage/share/ErrorTest.java Changeset: d78fa5a9 Branch: fibers Author: Matthias Baesken Date: 2025-08-12 07:16:57 +0000 URL: https://git.openjdk.org/loom/commit/d78fa5a9f6254e2e93e75c693efba75e09736749 8365240: [asan] exclude some tests when using asan enabled binaries Reviewed-by: lmesnik, sspitsyn ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/Allocate/alloc001/alloc001.java ! test/jdk/tools/launcher/TooSmallStackSize.java Changeset: 96067816 Branch: fibers Author: Alan Bateman Date: 2025-08-12 08:29:23 +0000 URL: https://git.openjdk.org/loom/commit/96067816e6bb8328789c3f126d9cec79bfcac19b Merge branch 'master' into fibers ! test/hotspot/jtreg/ProblemList.txt ! test/hotspot/jtreg/ProblemList.txt Changeset: 76c1dacc Branch: fibers Author: Alan Bateman Date: 2025-08-11 09:37:50 +0000 URL: https://git.openjdk.org/loom/commit/76c1dacce619cf825256fc92838280b81c333ed1 Cleaner only needed for subpollers ! src/java.base/linux/classes/sun/nio/ch/EPollPoller.java ! src/java.base/macosx/classes/sun/nio/ch/KQueuePoller.java Changeset: b1b38491 Branch: fibers Author: Alan Bateman Date: 2025-08-11 09:38:09 +0000 URL: https://git.openjdk.org/loom/commit/b1b384919d79745b72d13656c9f52488355bee7b Change io_uring poller to use low-level API ! src/java.base/linux/classes/sun/nio/ch/IoUringPoller.java ! src/java.base/linux/classes/sun/nio/ch/iouring/IOUringImpl.java - src/java.base/linux/classes/sun/nio/ch/iouring/IoUring.java Changeset: 5c35a615 Branch: fibers Author: Alan Bateman Date: 2025-08-11 10:28:29 +0000 URL: https://git.openjdk.org/loom/commit/5c35a6153d623dcb2515932f00be850f17008836 Fix pollSelector ! src/java.base/share/classes/sun/nio/ch/Poller.java Changeset: ca124e85 Branch: fibers Author: Alan Bateman Date: 2025-08-12 08:30:36 +0000 URL: https://git.openjdk.org/loom/commit/ca124e85b20f8c73af2f6fc63f6f4d72ed04448b Merge loom into fibers Changeset: 5383a85b Branch: fibers Author: Alan Bateman Date: 2025-08-12 08:59:42 +0000 URL: https://git.openjdk.org/loom/commit/5383a85bdef3098bc76db3f757ac1aa60a2db98b Fix comment ! src/java.base/linux/classes/sun/nio/ch/IoUringPoller.java From duke at openjdk.org Tue Aug 12 10:00:00 2025 From: duke at openjdk.org (duke) Date: Tue, 12 Aug 2025 10:00:00 GMT Subject: git: openjdk/loom: master: 22 new changesets Message-ID: <7ebbd306-81cc-425c-9c55-218f3836001d@openjdk.org> Changeset: e13b4c8d Branch: master Author: Chen Liang Date: 2025-08-09 23:44:21 +0000 URL: https://git.openjdk.org/loom/commit/e13b4c8de944ab14a1d12f6251e83f4fdd9e0198 8358535: Changes in ClassValue (JDK-8351996) caused a 1-9% regression in Renaissance-PageRank Reviewed-by: jrose, shade ! src/java.base/share/classes/java/lang/ClassValue.java ! test/jdk/java/lang/invoke/ClassValueTest.java Changeset: 022e29a7 Branch: master Author: Jaikiran Pai Date: 2025-08-10 04:22:10 +0000 URL: https://git.openjdk.org/loom/commit/022e29a77533aacabd56820d00ecffa9646a8362 8365086: CookieStore.getURIs() and get(URI) should return an immutable List Reviewed-by: liach, vyazici, dfuchs ! src/java.base/share/classes/java/net/InMemoryCookieStore.java + test/jdk/java/net/CookieStoreTest.java Changeset: 15e8609a Branch: master Author: Matthias Baesken Date: 2025-08-11 07:08:03 +0000 URL: https://git.openjdk.org/loom/commit/15e8609a2c3d246e89cfb349cbd21777bc471bae 8364996: java/awt/font/FontNames/LocaleFamilyNames.java times out on Windows Reviewed-by: clanger, prr, asteiner ! test/jdk/java/awt/font/FontNames/LocaleFamilyNames.java Changeset: c31f4861 Branch: master Author: Volkan Yazici Date: 2025-08-11 07:10:38 +0000 URL: https://git.openjdk.org/loom/commit/c31f4861fb6c85c31348ac3e99ccf754d9ee1a60 8364365: HKSCS encoder does not properly set the replacement character Reviewed-by: sherman ! src/java.base/share/classes/sun/nio/cs/HKSCS.java + test/jdk/sun/nio/cs/TestEncoderReplaceLatin1.java + test/jdk/sun/nio/cs/TestEncoderReplaceUTF16.java Changeset: f28126eb Branch: master Author: Joel Sikstr?m Date: 2025-08-11 08:18:28 +0000 URL: https://git.openjdk.org/loom/commit/f28126ebc2f792f0d64bbe6e841d9fafb433b7ea 8365050: Too verbose warning in os::commit_memory_limit() on Windows Reviewed-by: dholmes, mbaesken ! src/hotspot/os/windows/os_windows.cpp Changeset: 10762d40 Branch: master Author: Dmitry Cherepanov Date: 2025-08-11 08:19:02 +0000 URL: https://git.openjdk.org/loom/commit/10762d408bba9ce0945100847a8674e7eb7fa75e 8365044: Missing copyright header in Contextual.java Reviewed-by: egahlin ! src/jdk.jfr/share/classes/jdk/jfr/Contextual.java Changeset: 0c39228e Branch: master Author: Albert Mingkun Yang Date: 2025-08-11 09:42:12 +0000 URL: https://git.openjdk.org/loom/commit/0c39228ec1c8c6eadafb54567c94ad5f19f27f7a 8364767: G1: Remove use of CollectedHeap::_soft_ref_policy Reviewed-by: tschatzl, sangheki ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1FullGCScope.cpp ! src/hotspot/share/gc/g1/g1FullGCScope.hpp ! src/hotspot/share/gc/g1/g1VMOperations.cpp ! src/hotspot/share/gc/shared/softRefPolicy.hpp ! src/hotspot/share/prims/whitebox.cpp Changeset: 1fc0b016 Branch: master Author: Magnus Ihse Bursie Date: 2025-08-11 09:44:49 +0000 URL: https://git.openjdk.org/loom/commit/1fc0b01601af454a0e871afce8ae0c9da1358f13 8361142: Improve custom hooks for makefiles Reviewed-by: erikj ! make/CompileJavaModules.gmk ! make/CreateJmods.gmk ! make/Images.gmk ! make/Main.gmk ! make/MainSupport.gmk ! make/ModuleWrapper.gmk ! make/common/JavaCompilation.gmk ! make/common/Modules.gmk Changeset: 8b5bb013 Branch: master Author: Jan Lahoda Date: 2025-08-11 10:28:59 +0000 URL: https://git.openjdk.org/loom/commit/8b5bb013557478c9ceb49f94f22600d5901f4eee 8364987: javac fails with an exception when looking for diamond creation Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Analyzer.java ! test/langtools/tools/javac/analyzer/Diamond.java Changeset: fd766b27 Branch: master Author: Albert Mingkun Yang Date: 2025-08-11 10:49:47 +0000 URL: https://git.openjdk.org/loom/commit/fd766b27b9f862075a415780901c242a7d48c26f 8364541: Parallel: Support allocation in old generation when heap is almost full Reviewed-by: phh, tschatzl ! src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp Changeset: a60e523f Branch: master Author: Beno?t Maillard Committer: Damon Fenacci Date: 2025-08-11 11:15:34 +0000 URL: https://git.openjdk.org/loom/commit/a60e523f88e7022abe80725b82a8b16a87a377e2 8349191: Test compiler/ciReplay/TestIncrementalInlining.java failed Reviewed-by: mhaessig, dfenacci, chagedorn ! src/hotspot/share/opto/printinlining.cpp ! test/hotspot/jtreg/ProblemList.txt Changeset: 43cfd80c Branch: master Author: Darragh Clarke Date: 2025-08-11 11:57:08 +0000 URL: https://git.openjdk.org/loom/commit/43cfd80c1c0493f2f50ffd75461ca75a002e0127 8352502: Response message is null if expect 100 assertion fails with non 100 Reviewed-by: dfuchs ! src/java.base/share/classes/java/net/HttpURLConnection.java ! src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java + test/jdk/java/net/HttpURLConnection/HttpUrlConnectionExpectContinueResponseMessageTest.java Changeset: 0ad919c1 Branch: master Author: Casper Norrbin Date: 2025-08-11 12:22:52 +0000 URL: https://git.openjdk.org/loom/commit/0ad919c1e54895b000b58f6a1b54d79f76970845 8352067: Remove the NMT treap and replace its uses with the utilities red-black tree Reviewed-by: jsjolen, ayang ! src/hotspot/share/nmt/memoryFileTracker.cpp - src/hotspot/share/nmt/nmtTreap.hpp ! src/hotspot/share/nmt/regionsTree.cpp ! src/hotspot/share/nmt/regionsTree.hpp ! src/hotspot/share/nmt/regionsTree.inline.hpp ! src/hotspot/share/nmt/vmatree.cpp ! src/hotspot/share/nmt/vmatree.hpp ! src/hotspot/share/opto/printinlining.cpp ! src/hotspot/share/opto/printinlining.hpp ! src/hotspot/share/utilities/rbTree.hpp ! src/hotspot/share/utilities/rbTree.inline.hpp - test/hotspot/gtest/nmt/test_nmt_treap.cpp ! test/hotspot/gtest/nmt/test_vmatree.cpp ! test/hotspot/gtest/utilities/test_rbtree.cpp Changeset: 23985c29 Branch: master Author: Magnus Ihse Bursie Date: 2025-08-11 14:12:55 +0000 URL: https://git.openjdk.org/loom/commit/23985c29b44b489472dcd3aad2cb98d9ce003a7b 8357979: Compile jdk.internal.vm.ci targeting the Boot JDK version Reviewed-by: erikj, dnsimon ! make/CompileJavaModules.gmk ! make/autoconf/boot-jdk.m4 ! make/autoconf/spec.gmk.template ! make/common/JavaCompilation.gmk ! make/modules/jdk.internal.vm.ci/Java.gmk Changeset: bdb1646a Branch: master Author: Thomas Stuefe Date: 2025-08-11 15:37:31 +0000 URL: https://git.openjdk.org/loom/commit/bdb1646a1e39bae0535efe3f593e7fc0545e4114 8364611: (process) Child process SIGPIPE signal disposition should be default Reviewed-by: erikj, rriggs ! make/test/JtregNativeJdk.gmk ! src/java.base/unix/native/libjava/childproc.c + test/jdk/java/lang/ProcessBuilder/childSignalDisposition/TestChildSignalDisposition.java + test/jdk/java/lang/ProcessBuilder/childSignalDisposition/exePrintSignalDisposition.c + test/jdk/java/lang/ProcessBuilder/childSignalDisposition/libChangeSignalDisposition.c Changeset: e9e331b2 Branch: master Author: Francesco Andreuzzi Committer: Paul Hohensee Date: 2025-08-11 17:10:10 +0000 URL: https://git.openjdk.org/loom/commit/e9e331b2a957180dac2e9ce19a58d0a57d2f5dae 8365238: 'jfr' feature requires 'services' with 'custom' build variant Reviewed-by: erikj, shade, ihse ! make/autoconf/jvm-features.m4 Changeset: 958383d6 Branch: master Author: Aleksey Shipilev Date: 2025-08-11 18:49:37 +0000 URL: https://git.openjdk.org/loom/commit/958383d69c8742fdb78c28ad856559367c3513d7 8364501: Compiler shutdown crashes on access to deleted CompileTask Reviewed-by: kvn, mhaessig ! src/hotspot/share/compiler/compileBroker.cpp ! src/hotspot/share/compiler/compileTask.cpp ! src/hotspot/share/compiler/compileTask.hpp Changeset: 8cd79752 Branch: master Author: Brian Burkhalter Date: 2025-08-11 18:50:39 +0000 URL: https://git.openjdk.org/loom/commit/8cd79752c6426780c6772eafe296aa5b713b2b64 8364761: (aio) AsynchronousChannelGroup.execute doesn't check null command Reviewed-by: alanb, vyazici ! src/java.base/share/classes/sun/nio/ch/AsynchronousChannelGroupImpl.java ! test/jdk/java/nio/channels/AsynchronousChannelGroup/AsExecutor.java Changeset: 9593730a Branch: master Author: Joe Darcy Date: 2025-08-11 23:45:24 +0000 URL: https://git.openjdk.org/loom/commit/9593730a23f465d26ba7b310d5b0c5d3b4ee4326 8362376: Use @Stable annotation in Java FDLIBM implementation Reviewed-by: liach, rgiulietti ! src/java.base/share/classes/java/lang/FdLibm.java ! test/jdk/java/lang/StrictMath/ExpTests.java ! test/jdk/java/lang/StrictMath/PowTests.java Changeset: 6927fc39 Branch: master Author: Dingli Zhang Committer: Feilong Jiang Date: 2025-08-12 01:25:35 +0000 URL: https://git.openjdk.org/loom/commit/6927fc3904eb239bd43ab7c581d479c00a6a4af2 8365200: RISC-V: compiler/loopopts/superword/TestGeneralizedReductions.java fails with Zvbb and vlen=128 Reviewed-by: fyang, fjiang ! test/hotspot/jtreg/compiler/loopopts/superword/TestGeneralizedReductions.java Changeset: 72d3a2a9 Branch: master Author: Alexey Semenyuk Date: 2025-08-12 03:15:49 +0000 URL: https://git.openjdk.org/loom/commit/72d3a2a9773b2a3fe0351e0acb7b10c0751d23d8 8308349: missing working directory option for launcher when invoked from shortcuts Reviewed-by: almatvee ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/DesktopIntegration.java ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxFromParams.java ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/resources/template.desktop ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/Arguments.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/FromParams.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/LauncherShortcutStartupDirectory.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/ParseUtils.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/resources/MainResources.properties ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WinFromParams.java ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WixAppImageFragmentBuilder.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/AdditionalLauncher.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherShortcut.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LinuxHelper.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WinShortcutVerifier.java ! test/jdk/tools/jpackage/share/AddLShortcutTest.java ! test/jdk/tools/jpackage/share/ErrorTest.java Changeset: d78fa5a9 Branch: master Author: Matthias Baesken Date: 2025-08-12 07:16:57 +0000 URL: https://git.openjdk.org/loom/commit/d78fa5a9f6254e2e93e75c693efba75e09736749 8365240: [asan] exclude some tests when using asan enabled binaries Reviewed-by: lmesnik, sspitsyn ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/Allocate/alloc001/alloc001.java ! test/jdk/tools/launcher/TooSmallStackSize.java From cay.horstmann at gmail.com Tue Aug 12 15:27:35 2025 From: cay.horstmann at gmail.com (Cay Horstmann) Date: Tue, 12 Aug 2025 18:27:35 +0300 Subject: "pinned" terminology Message-ID: I was asked when specifically a thread is pinned/unpinned. Following https://openjdk.org/jeps/444#Pinning, I had assumed that a thread is pinned when it calls a foreign/native method, or prior to JEP 491, when it enters a synchronized block/method. On the other hand, there is this sentence in JEP 491: "In particular, if a virtual thread calls native code, either through a native method or the Foreign Function & Memory API, and that native code calls back to Java code that performs a blocking operation or blocks on a monitor, then the virtual thread *will be pinned*." In the JEP 444 sense, it would have already been pinned when calling the native code, but it seems that in the JEP 491 sense, that only happens upon performing a blocking operation in the callback. I know the JEPs are not authoritative, but I could find no definition for pinning in the API docs or language spec. And I know it's just terminology--the pinning only matters when performing a blocking operation. Still, it would be nice to have a consistent terminology. Any suggestions? Cheers, Cay -- Cay S. Horstmann | https://horstmann.com From alan.bateman at oracle.com Wed Aug 13 13:13:58 2025 From: alan.bateman at oracle.com (Alan Bateman) Date: Wed, 13 Aug 2025 14:13:58 +0100 Subject: "pinned" terminology In-Reply-To: References: Message-ID: On 12/08/2025 16:27, Cay Horstmann wrote: > I was asked when specifically a thread is pinned/unpinned. Following > https://openjdk.org/jeps/444#Pinning, I had assumed that a thread is > pinned when it calls a foreign/native method, or prior to JEP 491, > when it enters a synchronized block/method. > > On the other hand, there is this sentence in JEP 491: "In particular, > if a virtual thread calls native code, either through a native method > or the Foreign Function & Memory API, and that native code calls back > to Java code that performs a blocking operation or blocks on a > monitor, then the virtual thread *will be pinned*." > > In the JEP 444 sense, it would have already been pinned when calling > the native code, but it seems that in the JEP 491 sense, that only > happens upon performing a blocking operation in the callback. A virtual thread is pinned to its carrier when executing native code or when calling through native code (and back to Java). The limitations listed in JEP 444 includes the case where a virtual thread is executing native code. JEP 444 doesn't go into the scenario of a virtual threads calling through native code (so native frames on the stack) and attempts to block. The cited text in JEP 491 is from the section on diagnosing further cases of pinning and I think is okay. -Alan From duke at openjdk.org Fri Aug 15 04:46:29 2025 From: duke at openjdk.org (duke) Date: Fri, 15 Aug 2025 04:46:29 GMT Subject: git: openjdk/loom: fibers: 38 new changesets Message-ID: <769080d0-ad16-499b-8585-9ec483812992@openjdk.org> Changeset: db12f193 Branch: fibers Author: Afshin Zafari Date: 2025-08-12 08:03:18 +0000 URL: https://git.openjdk.org/loom/commit/db12f1934a659843d9cc77f4f21e67ebf9fa94e6 8364280: NMTCommittedVirtualMemoryTracker.test_committed_virtualmemory_region_vm fails with assertion "negative distance" Reviewed-by: gziemski, jsjolen ! test/hotspot/gtest/runtime/test_committed_virtualmemory.cpp Changeset: 5a442197 Branch: fibers Author: Johny Jose Committer: Sean Coffey Date: 2025-08-12 08:26:42 +0000 URL: https://git.openjdk.org/loom/commit/5a442197d21e1dfb89cdbf5f0ad5596869ab333a 7191877: TEST_BUG: java/rmi/transport/checkLeaseInfoLeak/CheckLeaseLeak.java failing intermittently Reviewed-by: smarks, coffeys ! test/jdk/ProblemList.txt ! test/jdk/java/rmi/transport/checkLeaseInfoLeak/CheckLeaseLeak.java ! test/jdk/java/rmi/transport/checkLeaseInfoLeak/LeaseLeakClient.java Changeset: b81f4fae Branch: fibers Author: David Beaumont Committer: Jaikiran Pai Date: 2025-08-12 08:34:26 +0000 URL: https://git.openjdk.org/loom/commit/b81f4faed7180e51aa966a9bf2f84ba755c6736d 8360037: Refactor ImageReader in preparation for Valhalla support Reviewed-by: alanb, rriggs, jpai ! src/java.base/share/classes/jdk/internal/jimage/ImageReader.java ! src/java.base/share/classes/jdk/internal/jrtfs/ExplodedImage.java ! src/java.base/share/classes/jdk/internal/jrtfs/JrtFileAttributes.java ! src/java.base/share/classes/jdk/internal/jrtfs/JrtFileSystem.java ! src/java.base/share/classes/jdk/internal/jrtfs/SystemImage.java ! src/java.base/share/classes/jdk/internal/module/SystemModuleFinders.java + test/jdk/jdk/internal/jimage/ImageReaderTest.java ! test/jdk/jdk/internal/jimage/JImageReadTest.java ! test/jdk/tools/jimage/ImageReaderDuplicateChildNodesTest.java ! test/micro/org/openjdk/bench/jdk/internal/jrtfs/ImageReaderBenchmark.java Changeset: f155f7d6 Branch: fibers Author: Fredrik Bredberg Date: 2025-08-12 08:45:02 +0000 URL: https://git.openjdk.org/loom/commit/f155f7d6e50c702f65858774cfd02ef60aa9cad5 8364141: Remove LockingMode related code from x86 Reviewed-by: aboldtch, dholmes, coleenp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp ! src/hotspot/cpu/x86/c1_LIRGenerator_x86.cpp ! src/hotspot/cpu/x86/c1_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp ! src/hotspot/cpu/x86/interp_masm_x86.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp ! src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp ! src/hotspot/cpu/x86/x86_64.ad Changeset: 3c0eed8e Branch: fibers Author: Fredrik Bredberg Date: 2025-08-12 08:45:36 +0000 URL: https://git.openjdk.org/loom/commit/3c0eed8e476e4da540e4ea44ee966f278e04a067 8364406: Remove LockingMode related code from aarch64 Reviewed-by: aph, dholmes ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c1_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp ! src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp Changeset: 16e461ef Branch: fibers Author: Thomas Schatzl Date: 2025-08-12 08:52:37 +0000 URL: https://git.openjdk.org/loom/commit/16e461ef31628ab47cd8484cdfc970c0008b97ba 8365122: G1: Minor clean up of G1SurvivorRegions Reviewed-by: sangheki, kbarrett ! src/hotspot/share/gc/g1/g1Policy.cpp ! src/hotspot/share/gc/g1/g1SurvivorRegions.cpp ! src/hotspot/share/gc/g1/g1SurvivorRegions.hpp Changeset: 95b7a8b3 Branch: fibers Author: Albert Mingkun Yang Date: 2025-08-12 11:29:43 +0000 URL: https://git.openjdk.org/loom/commit/95b7a8b3e300bf40a2a5bdf8ca8310485db363e6 8365237: Remove unused SoftRefPolicy::_all_soft_refs_clear Reviewed-by: tschatzl, kbarrett ! src/hotspot/share/gc/shared/gcVMOperations.cpp ! src/hotspot/share/gc/shared/gcVMOperations.hpp ! src/hotspot/share/gc/shared/softRefPolicy.hpp Changeset: 19a76a45 Branch: fibers Author: Albert Mingkun Yang Date: 2025-08-12 11:58:37 +0000 URL: https://git.openjdk.org/loom/commit/19a76a45e9c8616414830c865801660bc6761e92 8365316: Remove unnecessary default arg value in gcVMOperations Reviewed-by: tschatzl ! src/hotspot/share/gc/shared/gcVMOperations.hpp Changeset: 391ea151 Branch: fibers Author: Matthias Baesken Date: 2025-08-12 13:16:54 +0000 URL: https://git.openjdk.org/loom/commit/391ea151184c5621f263742605416c3ccd2c3d73 8365307: AIX make fails after JDK-8364611 Reviewed-by: clanger, asteiner ! test/jdk/java/lang/ProcessBuilder/childSignalDisposition/exePrintSignalDisposition.c Changeset: a382996b Branch: fibers Author: Erik Gahlin Date: 2025-08-12 13:42:53 +0000 URL: https://git.openjdk.org/loom/commit/a382996bb496d50b4eb5a6be9f61e5c2f8aaae2d 8364993: JFR: Disable jdk.ModuleExport in default.jfc Reviewed-by: mgronlun ! src/jdk.jfr/share/conf/jfr/default.jfc Changeset: ad0fd13f Branch: fibers Author: Ioi Lam Date: 2025-08-12 16:20:00 +0000 URL: https://git.openjdk.org/loom/commit/ad0fd13f2007c93d8a109626a627823f30e4c8d7 8364454: ProblemList runtime/cds/DeterministicDump.java on macos for JDK-8363986 Reviewed-by: ccheung ! test/hotspot/jtreg/ProblemList.txt Changeset: 4c03e593 Branch: fibers Author: Coleen Phillimore Date: 2025-08-12 16:30:09 +0000 URL: https://git.openjdk.org/loom/commit/4c03e5938df0a9cb10c2379af81163795dd3a086 8364750: Remove unused declaration in jvm.h Reviewed-by: shade ! src/hotspot/share/include/jvm.h Changeset: d0239826 Branch: fibers Author: Brian Burkhalter Date: 2025-08-12 17:39:14 +0000 URL: https://git.openjdk.org/loom/commit/d023982600f8bb19053f579710953aa29e0f30c5 8361209: (bf) Use CharSequence::getChars for StringCharBuffer bulk get methods Reviewed-by: rriggs, alanb ! src/java.base/share/classes/java/nio/StringCharBuffer.java ! src/java.base/share/classes/java/nio/X-Buffer.java.template + test/micro/org/openjdk/bench/java/nio/StringCharBufferBulkTransfer.java Changeset: 87d73401 Branch: fibers Author: Erik Gahlin Date: 2025-08-12 17:44:34 +0000 URL: https://git.openjdk.org/loom/commit/87d734012e3130501bfd37b23cee7f5e0a3a476f 8364756: JFR: Improve slow tests Reviewed-by: mgronlun ! test/jdk/jdk/jfr/api/consumer/streaming/TestFilledChunks.java ! test/jdk/jdk/jfr/api/consumer/streaming/TestStartMultiChunk.java ! test/jdk/jdk/jfr/event/runtime/StressJavaMonitorEvents.java ! test/jdk/jdk/jfr/jmx/streaming/TestMaxSize.java ! test/jdk/jdk/jfr/jmx/streaming/TestRemoteDump.java ! test/jdk/jdk/jfr/jvm/TestWaste.java ! test/jdk/jdk/jfr/startupargs/TestMultipleStartupRecordings.java Changeset: 636c61a3 Branch: fibers Author: Dingli Zhang Committer: Fei Yang Date: 2025-08-13 01:24:39 +0000 URL: https://git.openjdk.org/loom/commit/636c61a3868d9c01b672b3b45cda1e476acdc045 8365302: RISC-V: compiler/loopopts/superword/TestAlignVector.java fails when vlen=128 Reviewed-by: fyang, fjiang ! test/hotspot/jtreg/compiler/loopopts/superword/TestAlignVector.java Changeset: 25480f00 Branch: fibers Author: Ramkumar Sunderbabu Committer: Leonid Mesnik Date: 2025-08-13 01:45:49 +0000 URL: https://git.openjdk.org/loom/commit/25480f0011297ad209eca1b1b56bcf983ea4ee5d 8365184: sun/tools/jhsdb/HeapDumpTestWithActiveProcess.java Re-enable SerialGC flag on debuggee process Reviewed-by: lmesnik, cjplummer, sspitsyn ! test/jdk/sun/tools/jhsdb/JShellHeapDumpTest.java Changeset: 72e22b4d Branch: fibers Author: Jan Lahoda Date: 2025-08-13 08:07:45 +0000 URL: https://git.openjdk.org/loom/commit/72e22b4de59a18f83c75be9a51fd99726f77f6f6 8362885: A more formal way to mark javac's Flags that belong to a specific Symbol type only Reviewed-by: ihse, liach, vromero, mcimadamore, erikj ! make/ToolsLangtools.gmk + make/langtools/tools/flagsgenerator/FlagsGenerator.java ! make/langtools/tools/propertiesparser/parser/MessageType.java ! make/modules/jdk.compiler/Gensrc.gmk ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Flags.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java ! test/langtools/tools/javac/diags/ArgTypeCompilerFactory.java ! test/langtools/tools/javac/flags/FlagsTest.java Changeset: e77cdd93 Branch: fibers Author: Fredrik Bredberg Date: 2025-08-13 08:47:08 +0000 URL: https://git.openjdk.org/loom/commit/e77cdd93ead5601fea4bb1bf1847835e1097b851 8364570: Remove LockingMode related code from riscv64 Reviewed-by: fyang, fjiang ! src/hotspot/cpu/riscv/c1_LIRAssembler_riscv.cpp ! src/hotspot/cpu/riscv/c1_MacroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.hpp ! src/hotspot/cpu/riscv/interp_masm_riscv.cpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/riscv.ad ! src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp ! src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp Changeset: f3b34d32 Branch: fibers Author: Guanqiang Han Committer: Tobias Hartmann Date: 2025-08-13 10:52:54 +0000 URL: https://git.openjdk.org/loom/commit/f3b34d32d6ea409f8c8f0382e8f01e746366f842 8359235: C1 compilation fails with "assert(is_single_stack() && !is_virtual()) failed: type check" Reviewed-by: thartmann, dlong ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c1_LIRGenerator_aarch64.cpp ! src/hotspot/cpu/riscv/c1_LIRAssembler_riscv.cpp ! src/hotspot/cpu/riscv/c1_LIRGenerator_riscv.cpp ! src/hotspot/cpu/x86/c1_LIRGenerator_x86.cpp + test/hotspot/jtreg/compiler/intrinsics/TestStack2RegSlotMismatch.java Changeset: 001aaa1e Branch: fibers Author: Boris Ulasevich Date: 2025-08-13 12:45:48 +0000 URL: https://git.openjdk.org/loom/commit/001aaa1e49f2692061cad44d68c9e81a27ea3b98 8365166: ARM32: missing os::fetch_bcp_from_context implementation Reviewed-by: shade ! src/hotspot/os_cpu/linux_arm/os_linux_arm.cpp Changeset: 899e13f4 Branch: fibers Author: Nikita Gubarkov Committer: Laurent Bourg?s Date: 2025-08-13 17:36:07 +0000 URL: https://git.openjdk.org/loom/commit/899e13f40a70c98d1d393ba6c3973abcb36e1f00 8364434: Inconsistent BufferedContext state after GC Reviewed-by: jdv, azvegint, avu ! src/java.desktop/share/classes/sun/java2d/pipe/BufferedContext.java + test/jdk/java/awt/ColorClass/WeakColorTest.java Changeset: 38a26141 Branch: fibers Author: Srinivas Vamsi Parasa Committer: Sandhya Viswanathan Date: 2025-08-13 17:53:05 +0000 URL: https://git.openjdk.org/loom/commit/38a261415dc29aae01c9b878d94cb302c60a3983 8365265: x86 short forward jump exceeds 8-bit offset in methodHandles_x86.cpp when using Intel APX Reviewed-by: shade, jbhateja, aph ! src/hotspot/cpu/x86/methodHandles_x86.cpp Changeset: ecbdd340 Branch: fibers Author: Alex Menkov Date: 2025-08-13 18:24:56 +0000 URL: https://git.openjdk.org/loom/commit/ecbdd3405a1d46f555deb82098e1865b44601a1f 8361103: java_lang_Thread::async_get_stack_trace does not properly protect JavaThread Reviewed-by: sspitsyn, dholmes ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/prims/jvm.cpp Changeset: 4680dc98 Branch: fibers Author: Johan Sj?len Date: 2025-08-13 18:41:57 +0000 URL: https://git.openjdk.org/loom/commit/4680dc983169d48fcf83eb50dc60e32e79d5d976 8365264: Rename ResourceHashtable to HashTable Reviewed-by: iklam, ayang ! src/hotspot/share/asm/codeBuffer.hpp ! src/hotspot/share/cds/aotArtifactFinder.cpp ! src/hotspot/share/cds/aotClassLinker.hpp ! src/hotspot/share/cds/aotConstantPoolResolver.hpp ! src/hotspot/share/cds/aotReferenceObjSupport.cpp ! src/hotspot/share/cds/archiveBuilder.hpp ! src/hotspot/share/cds/archiveHeapLoader.cpp ! src/hotspot/share/cds/archiveHeapWriter.cpp ! src/hotspot/share/cds/archiveHeapWriter.hpp ! src/hotspot/share/cds/cdsHeapVerifier.hpp ! src/hotspot/share/cds/classListParser.hpp ! src/hotspot/share/cds/classListWriter.cpp ! src/hotspot/share/cds/dumpTimeClassInfo.hpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/cds/heapShared.hpp ! src/hotspot/share/cds/lambdaProxyClassDictionary.hpp ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/cds/regeneratedClasses.cpp ! src/hotspot/share/classfile/bytecodeAssembler.hpp ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/classLoaderStats.hpp ! src/hotspot/share/classfile/loaderConstraints.cpp ! src/hotspot/share/classfile/moduleEntry.cpp ! src/hotspot/share/classfile/moduleEntry.hpp ! src/hotspot/share/classfile/packageEntry.cpp ! src/hotspot/share/classfile/packageEntry.hpp ! src/hotspot/share/classfile/placeholders.cpp ! src/hotspot/share/classfile/resolutionErrors.cpp ! src/hotspot/share/classfile/stringTable.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/classfile/verifier.hpp ! src/hotspot/share/code/codeCache.cpp ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/compiler/disassembler.cpp ! src/hotspot/share/gc/z/zVerify.cpp ! src/hotspot/share/jfr/support/methodtracer/jfrClassFilterClosure.cpp ! src/hotspot/share/jfr/support/methodtracer/jfrClassFilterClosure.hpp ! src/hotspot/share/jfr/support/methodtracer/jfrMethodTracer.cpp ! src/hotspot/share/jfr/utilities/jfrSet.hpp ! src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp ! src/hotspot/share/logging/logAsyncWriter.hpp ! src/hotspot/share/memory/metaspaceClosure.hpp ! src/hotspot/share/nmt/nativeCallStackPrinter.hpp ! src/hotspot/share/oops/constantPool.hpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/trainingData.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/loopnode.hpp ! src/hotspot/share/opto/mempointer.cpp ! src/hotspot/share/opto/node.hpp ! src/hotspot/share/opto/superwordVTransformBuilder.hpp ! src/hotspot/share/prims/foreignGlobals.cpp ! src/hotspot/share/prims/jvmtiTagMapTable.hpp ! src/hotspot/share/runtime/arguments.hpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/synchronizer.hpp ! src/hotspot/share/runtime/threadSMR.cpp ! src/hotspot/share/runtime/vmOperations.cpp ! src/hotspot/share/services/heapDumper.cpp ! src/hotspot/share/utilities/globalDefinitions.hpp + src/hotspot/share/utilities/hashTable.hpp ! src/hotspot/share/utilities/nativeCallStack.hpp ! src/hotspot/share/utilities/objectBitSet.hpp ! src/hotspot/share/utilities/objectBitSet.inline.hpp + src/hotspot/share/utilities/resizableHashTable.hpp - src/hotspot/share/utilities/resizeableResourceHash.hpp - src/hotspot/share/utilities/resourceHash.hpp ! test/hotspot/gtest/runtime/test_os_reserve_between.cpp + test/hotspot/gtest/utilities/test_hashtable.cpp - test/hotspot/gtest/utilities/test_resourceHash.cpp Changeset: 96603200 Branch: fibers Author: Justin Lu Date: 2025-08-13 20:43:46 +0000 URL: https://git.openjdk.org/loom/commit/9660320041d0ba0f22ebe074a64472557b85a24c 8364781: Re-examine DigitList digits resizing during parsing Reviewed-by: liach, naoto ! src/java.base/share/classes/java/text/DigitList.java Changeset: 9c266ae8 Branch: fibers Author: Aleksey Shipilev Date: 2025-08-13 20:49:16 +0000 URL: https://git.openjdk.org/loom/commit/9c266ae83c047025d778da41e413701ac3b50b03 8365229: ARM32: c2i_no_clinit_check_entry assert failed after JDK-8364269 Reviewed-by: kvn, adinn, bulasevich, phh ! src/hotspot/cpu/zero/sharedRuntime_zero.cpp ! src/hotspot/share/code/codeBlob.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp Changeset: 9dcc502c Branch: fibers Author: Prasanta Sadhukhan Date: 2025-08-14 04:55:02 +0000 URL: https://git.openjdk.org/loom/commit/9dcc502cc83773561707f2afe9aee1f9e2386b9e 8365375: Method SU3.setAcceleratorSelectionForeground assigns to acceleratorForeground Reviewed-by: aivanov, prr, kizune ! src/java.desktop/share/classes/com/sun/java/swing/SwingUtilities3.java Changeset: c22e01d7 Branch: fibers Author: Jan Lahoda Date: 2025-08-14 07:02:08 +0000 URL: https://git.openjdk.org/loom/commit/c22e01d77648036db4ed640521e82c49f8791ca1 8341342: Elements.getAllModuleElements() does not work properly before JavacTask.analyze() Reviewed-by: vromero, liach ! src/jdk.compiler/share/classes/com/sun/tools/javac/model/JavacElements.java ! test/jdk/tools/sincechecker/SinceChecker.java + test/langtools/tools/javac/processing/model/util/elements/TestElementsProgrammatic.java Changeset: a6be2286 Branch: fibers Author: Jan Lahoda Date: 2025-08-14 07:04:40 +0000 URL: https://git.openjdk.org/loom/commit/a6be2286421e069a292c749eecd6bdc38a8deaf2 8365314: javac fails with an exception for erroneous source Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Lint.java ! test/langtools/tools/javac/recovery/AnnotationRecovery.java Changeset: 3e329850 Branch: fibers Author: Joel Sikstr?m Date: 2025-08-14 07:37:10 +0000 URL: https://git.openjdk.org/loom/commit/3e3298509f136583b18e5ab8bf75a8b012016f16 8365317: ZGC: Setting ZYoungGCThreads lower than ZOldGCThreads may result in a crash Reviewed-by: tschatzl, eosterlund ! src/hotspot/share/gc/z/zDirector.cpp Changeset: e3201628 Branch: fibers Author: Yudi Zheng Date: 2025-08-14 07:39:49 +0000 URL: https://git.openjdk.org/loom/commit/e320162815d529bc65cd058b34ec39d60d032ce7 8365218: [JVMCI] AArch64 CPU features are not computed correctly after 8364128 Reviewed-by: dnsimon ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotJVMCIBackendFactory.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotJVMCIBackendFactory.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/amd64/AMD64HotSpotJVMCIBackendFactory.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/riscv64/RISCV64HotSpotJVMCIBackendFactory.java Changeset: 7698c373 Branch: fibers Author: Erik Gahlin Date: 2025-08-14 10:43:21 +0000 URL: https://git.openjdk.org/loom/commit/7698c373a684235812c9dc11edd751059f9e8e81 8364556: JFR: Disable SymbolTableStatistics and StringTableStatistics in default.jfc Reviewed-by: mgronlun ! src/jdk.jfr/share/conf/jfr/default.jfc Changeset: 98f54d90 Branch: fibers Author: Matthias Baesken Date: 2025-08-14 11:11:47 +0000 URL: https://git.openjdk.org/loom/commit/98f54d90ea56f63c2fc5137af98b57dbc90fe150 8365487: [asan] some oops (mode) related tests fail Reviewed-by: kbarrett, syan ! test/hotspot/jtreg/runtime/CompressedOops/UseCompressedOops.java ! test/jdk/jdk/jfr/event/gc/configuration/TestGCHeapConfigurationEventWith32BitOops.java ! test/jdk/jdk/jfr/event/gc/configuration/TestGCHeapConfigurationEventWithZeroBasedOops.java Changeset: 41520998 Branch: fibers Author: Roman Marchenko Committer: Magnus Ihse Bursie Date: 2025-08-14 12:31:20 +0000 URL: https://git.openjdk.org/loom/commit/41520998aa8808452ee384b213b2a77c7bad668d 8365098: make/RunTests.gmk generates a wrong path to test artifacts on Alpine Reviewed-by: erikj, ihse ! make/RunTests.gmk Changeset: dd113c8d Branch: fibers Author: Albert Mingkun Yang Date: 2025-08-14 14:50:56 +0000 URL: https://git.openjdk.org/loom/commit/dd113c8df06cc7e1465fb3dfef2e9b2a5a99f1fb 8364628: Serial: Refactor SerialHeap::mem_allocate_work Reviewed-by: phh, kbarrett ! src/hotspot/share/gc/serial/serialHeap.cpp ! src/hotspot/share/gc/serial/serialHeap.hpp ! src/hotspot/share/gc/serial/tenuredGeneration.hpp ! src/hotspot/share/gc/serial/tenuredGeneration.inline.hpp Changeset: 304aab6d Branch: fibers Author: Alan Bateman Date: 2025-08-14 16:28:10 +0000 URL: https://git.openjdk.org/loom/commit/304aab6d4f1ec8d8a88a1f1d38766f90acbe7840 Merge branch 'master' into fibers ! src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp ! src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp ! src/hotspot/cpu/x86/interp_masm_x86.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/include/jvm.h ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/synchronizer.hpp ! test/hotspot/jtreg/ProblemList.txt ! test/jdk/ProblemList.txt ! src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp ! src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp ! src/hotspot/cpu/x86/interp_masm_x86.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/include/jvm.h ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/synchronizer.hpp ! test/hotspot/jtreg/ProblemList.txt ! test/jdk/ProblemList.txt Changeset: 8b14f08b Branch: fibers Author: Alan Bateman Date: 2025-08-13 08:53:49 +0000 URL: https://git.openjdk.org/loom/commit/8b14f08bc3bc43c52d2e03c14f27278e5512bd03 Allow flags be set ! src/java.base/linux/classes/sun/nio/ch/IoUringPoller.java ! src/java.base/linux/classes/sun/nio/ch/iouring/IOUringImpl.java Changeset: ddddfaa6 Branch: fibers Author: Alan Bateman Date: 2025-08-14 16:29:00 +0000 URL: https://git.openjdk.org/loom/commit/ddddfaa6873bf11ad1100cde8955ef3aea12572b Merge loom into fibers From duke at openjdk.org Fri Aug 15 04:48:26 2025 From: duke at openjdk.org (duke) Date: Fri, 15 Aug 2025 04:48:26 GMT Subject: git: openjdk/loom: master: 35 new changesets Message-ID: Changeset: db12f193 Branch: master Author: Afshin Zafari Date: 2025-08-12 08:03:18 +0000 URL: https://git.openjdk.org/loom/commit/db12f1934a659843d9cc77f4f21e67ebf9fa94e6 8364280: NMTCommittedVirtualMemoryTracker.test_committed_virtualmemory_region_vm fails with assertion "negative distance" Reviewed-by: gziemski, jsjolen ! test/hotspot/gtest/runtime/test_committed_virtualmemory.cpp Changeset: 5a442197 Branch: master Author: Johny Jose Committer: Sean Coffey Date: 2025-08-12 08:26:42 +0000 URL: https://git.openjdk.org/loom/commit/5a442197d21e1dfb89cdbf5f0ad5596869ab333a 7191877: TEST_BUG: java/rmi/transport/checkLeaseInfoLeak/CheckLeaseLeak.java failing intermittently Reviewed-by: smarks, coffeys ! test/jdk/ProblemList.txt ! test/jdk/java/rmi/transport/checkLeaseInfoLeak/CheckLeaseLeak.java ! test/jdk/java/rmi/transport/checkLeaseInfoLeak/LeaseLeakClient.java Changeset: b81f4fae Branch: master Author: David Beaumont Committer: Jaikiran Pai Date: 2025-08-12 08:34:26 +0000 URL: https://git.openjdk.org/loom/commit/b81f4faed7180e51aa966a9bf2f84ba755c6736d 8360037: Refactor ImageReader in preparation for Valhalla support Reviewed-by: alanb, rriggs, jpai ! src/java.base/share/classes/jdk/internal/jimage/ImageReader.java ! src/java.base/share/classes/jdk/internal/jrtfs/ExplodedImage.java ! src/java.base/share/classes/jdk/internal/jrtfs/JrtFileAttributes.java ! src/java.base/share/classes/jdk/internal/jrtfs/JrtFileSystem.java ! src/java.base/share/classes/jdk/internal/jrtfs/SystemImage.java ! src/java.base/share/classes/jdk/internal/module/SystemModuleFinders.java + test/jdk/jdk/internal/jimage/ImageReaderTest.java ! test/jdk/jdk/internal/jimage/JImageReadTest.java ! test/jdk/tools/jimage/ImageReaderDuplicateChildNodesTest.java ! test/micro/org/openjdk/bench/jdk/internal/jrtfs/ImageReaderBenchmark.java Changeset: f155f7d6 Branch: master Author: Fredrik Bredberg Date: 2025-08-12 08:45:02 +0000 URL: https://git.openjdk.org/loom/commit/f155f7d6e50c702f65858774cfd02ef60aa9cad5 8364141: Remove LockingMode related code from x86 Reviewed-by: aboldtch, dholmes, coleenp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp ! src/hotspot/cpu/x86/c1_LIRGenerator_x86.cpp ! src/hotspot/cpu/x86/c1_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp ! src/hotspot/cpu/x86/interp_masm_x86.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp ! src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp ! src/hotspot/cpu/x86/x86_64.ad Changeset: 3c0eed8e Branch: master Author: Fredrik Bredberg Date: 2025-08-12 08:45:36 +0000 URL: https://git.openjdk.org/loom/commit/3c0eed8e476e4da540e4ea44ee966f278e04a067 8364406: Remove LockingMode related code from aarch64 Reviewed-by: aph, dholmes ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c1_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp ! src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp Changeset: 16e461ef Branch: master Author: Thomas Schatzl Date: 2025-08-12 08:52:37 +0000 URL: https://git.openjdk.org/loom/commit/16e461ef31628ab47cd8484cdfc970c0008b97ba 8365122: G1: Minor clean up of G1SurvivorRegions Reviewed-by: sangheki, kbarrett ! src/hotspot/share/gc/g1/g1Policy.cpp ! src/hotspot/share/gc/g1/g1SurvivorRegions.cpp ! src/hotspot/share/gc/g1/g1SurvivorRegions.hpp Changeset: 95b7a8b3 Branch: master Author: Albert Mingkun Yang Date: 2025-08-12 11:29:43 +0000 URL: https://git.openjdk.org/loom/commit/95b7a8b3e300bf40a2a5bdf8ca8310485db363e6 8365237: Remove unused SoftRefPolicy::_all_soft_refs_clear Reviewed-by: tschatzl, kbarrett ! src/hotspot/share/gc/shared/gcVMOperations.cpp ! src/hotspot/share/gc/shared/gcVMOperations.hpp ! src/hotspot/share/gc/shared/softRefPolicy.hpp Changeset: 19a76a45 Branch: master Author: Albert Mingkun Yang Date: 2025-08-12 11:58:37 +0000 URL: https://git.openjdk.org/loom/commit/19a76a45e9c8616414830c865801660bc6761e92 8365316: Remove unnecessary default arg value in gcVMOperations Reviewed-by: tschatzl ! src/hotspot/share/gc/shared/gcVMOperations.hpp Changeset: 391ea151 Branch: master Author: Matthias Baesken Date: 2025-08-12 13:16:54 +0000 URL: https://git.openjdk.org/loom/commit/391ea151184c5621f263742605416c3ccd2c3d73 8365307: AIX make fails after JDK-8364611 Reviewed-by: clanger, asteiner ! test/jdk/java/lang/ProcessBuilder/childSignalDisposition/exePrintSignalDisposition.c Changeset: a382996b Branch: master Author: Erik Gahlin Date: 2025-08-12 13:42:53 +0000 URL: https://git.openjdk.org/loom/commit/a382996bb496d50b4eb5a6be9f61e5c2f8aaae2d 8364993: JFR: Disable jdk.ModuleExport in default.jfc Reviewed-by: mgronlun ! src/jdk.jfr/share/conf/jfr/default.jfc Changeset: ad0fd13f Branch: master Author: Ioi Lam Date: 2025-08-12 16:20:00 +0000 URL: https://git.openjdk.org/loom/commit/ad0fd13f2007c93d8a109626a627823f30e4c8d7 8364454: ProblemList runtime/cds/DeterministicDump.java on macos for JDK-8363986 Reviewed-by: ccheung ! test/hotspot/jtreg/ProblemList.txt Changeset: 4c03e593 Branch: master Author: Coleen Phillimore Date: 2025-08-12 16:30:09 +0000 URL: https://git.openjdk.org/loom/commit/4c03e5938df0a9cb10c2379af81163795dd3a086 8364750: Remove unused declaration in jvm.h Reviewed-by: shade ! src/hotspot/share/include/jvm.h Changeset: d0239826 Branch: master Author: Brian Burkhalter Date: 2025-08-12 17:39:14 +0000 URL: https://git.openjdk.org/loom/commit/d023982600f8bb19053f579710953aa29e0f30c5 8361209: (bf) Use CharSequence::getChars for StringCharBuffer bulk get methods Reviewed-by: rriggs, alanb ! src/java.base/share/classes/java/nio/StringCharBuffer.java ! src/java.base/share/classes/java/nio/X-Buffer.java.template + test/micro/org/openjdk/bench/java/nio/StringCharBufferBulkTransfer.java Changeset: 87d73401 Branch: master Author: Erik Gahlin Date: 2025-08-12 17:44:34 +0000 URL: https://git.openjdk.org/loom/commit/87d734012e3130501bfd37b23cee7f5e0a3a476f 8364756: JFR: Improve slow tests Reviewed-by: mgronlun ! test/jdk/jdk/jfr/api/consumer/streaming/TestFilledChunks.java ! test/jdk/jdk/jfr/api/consumer/streaming/TestStartMultiChunk.java ! test/jdk/jdk/jfr/event/runtime/StressJavaMonitorEvents.java ! test/jdk/jdk/jfr/jmx/streaming/TestMaxSize.java ! test/jdk/jdk/jfr/jmx/streaming/TestRemoteDump.java ! test/jdk/jdk/jfr/jvm/TestWaste.java ! test/jdk/jdk/jfr/startupargs/TestMultipleStartupRecordings.java Changeset: 636c61a3 Branch: master Author: Dingli Zhang Committer: Fei Yang Date: 2025-08-13 01:24:39 +0000 URL: https://git.openjdk.org/loom/commit/636c61a3868d9c01b672b3b45cda1e476acdc045 8365302: RISC-V: compiler/loopopts/superword/TestAlignVector.java fails when vlen=128 Reviewed-by: fyang, fjiang ! test/hotspot/jtreg/compiler/loopopts/superword/TestAlignVector.java Changeset: 25480f00 Branch: master Author: Ramkumar Sunderbabu Committer: Leonid Mesnik Date: 2025-08-13 01:45:49 +0000 URL: https://git.openjdk.org/loom/commit/25480f0011297ad209eca1b1b56bcf983ea4ee5d 8365184: sun/tools/jhsdb/HeapDumpTestWithActiveProcess.java Re-enable SerialGC flag on debuggee process Reviewed-by: lmesnik, cjplummer, sspitsyn ! test/jdk/sun/tools/jhsdb/JShellHeapDumpTest.java Changeset: 72e22b4d Branch: master Author: Jan Lahoda Date: 2025-08-13 08:07:45 +0000 URL: https://git.openjdk.org/loom/commit/72e22b4de59a18f83c75be9a51fd99726f77f6f6 8362885: A more formal way to mark javac's Flags that belong to a specific Symbol type only Reviewed-by: ihse, liach, vromero, mcimadamore, erikj ! make/ToolsLangtools.gmk + make/langtools/tools/flagsgenerator/FlagsGenerator.java ! make/langtools/tools/propertiesparser/parser/MessageType.java ! make/modules/jdk.compiler/Gensrc.gmk ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Flags.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java ! test/langtools/tools/javac/diags/ArgTypeCompilerFactory.java ! test/langtools/tools/javac/flags/FlagsTest.java Changeset: e77cdd93 Branch: master Author: Fredrik Bredberg Date: 2025-08-13 08:47:08 +0000 URL: https://git.openjdk.org/loom/commit/e77cdd93ead5601fea4bb1bf1847835e1097b851 8364570: Remove LockingMode related code from riscv64 Reviewed-by: fyang, fjiang ! src/hotspot/cpu/riscv/c1_LIRAssembler_riscv.cpp ! src/hotspot/cpu/riscv/c1_MacroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.hpp ! src/hotspot/cpu/riscv/interp_masm_riscv.cpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/riscv.ad ! src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp ! src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp Changeset: f3b34d32 Branch: master Author: Guanqiang Han Committer: Tobias Hartmann Date: 2025-08-13 10:52:54 +0000 URL: https://git.openjdk.org/loom/commit/f3b34d32d6ea409f8c8f0382e8f01e746366f842 8359235: C1 compilation fails with "assert(is_single_stack() && !is_virtual()) failed: type check" Reviewed-by: thartmann, dlong ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c1_LIRGenerator_aarch64.cpp ! src/hotspot/cpu/riscv/c1_LIRAssembler_riscv.cpp ! src/hotspot/cpu/riscv/c1_LIRGenerator_riscv.cpp ! src/hotspot/cpu/x86/c1_LIRGenerator_x86.cpp + test/hotspot/jtreg/compiler/intrinsics/TestStack2RegSlotMismatch.java Changeset: 001aaa1e Branch: master Author: Boris Ulasevich Date: 2025-08-13 12:45:48 +0000 URL: https://git.openjdk.org/loom/commit/001aaa1e49f2692061cad44d68c9e81a27ea3b98 8365166: ARM32: missing os::fetch_bcp_from_context implementation Reviewed-by: shade ! src/hotspot/os_cpu/linux_arm/os_linux_arm.cpp Changeset: 899e13f4 Branch: master Author: Nikita Gubarkov Committer: Laurent Bourg?s Date: 2025-08-13 17:36:07 +0000 URL: https://git.openjdk.org/loom/commit/899e13f40a70c98d1d393ba6c3973abcb36e1f00 8364434: Inconsistent BufferedContext state after GC Reviewed-by: jdv, azvegint, avu ! src/java.desktop/share/classes/sun/java2d/pipe/BufferedContext.java + test/jdk/java/awt/ColorClass/WeakColorTest.java Changeset: 38a26141 Branch: master Author: Srinivas Vamsi Parasa Committer: Sandhya Viswanathan Date: 2025-08-13 17:53:05 +0000 URL: https://git.openjdk.org/loom/commit/38a261415dc29aae01c9b878d94cb302c60a3983 8365265: x86 short forward jump exceeds 8-bit offset in methodHandles_x86.cpp when using Intel APX Reviewed-by: shade, jbhateja, aph ! src/hotspot/cpu/x86/methodHandles_x86.cpp Changeset: ecbdd340 Branch: master Author: Alex Menkov Date: 2025-08-13 18:24:56 +0000 URL: https://git.openjdk.org/loom/commit/ecbdd3405a1d46f555deb82098e1865b44601a1f 8361103: java_lang_Thread::async_get_stack_trace does not properly protect JavaThread Reviewed-by: sspitsyn, dholmes ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/prims/jvm.cpp Changeset: 4680dc98 Branch: master Author: Johan Sj?len Date: 2025-08-13 18:41:57 +0000 URL: https://git.openjdk.org/loom/commit/4680dc983169d48fcf83eb50dc60e32e79d5d976 8365264: Rename ResourceHashtable to HashTable Reviewed-by: iklam, ayang ! src/hotspot/share/asm/codeBuffer.hpp ! src/hotspot/share/cds/aotArtifactFinder.cpp ! src/hotspot/share/cds/aotClassLinker.hpp ! src/hotspot/share/cds/aotConstantPoolResolver.hpp ! src/hotspot/share/cds/aotReferenceObjSupport.cpp ! src/hotspot/share/cds/archiveBuilder.hpp ! src/hotspot/share/cds/archiveHeapLoader.cpp ! src/hotspot/share/cds/archiveHeapWriter.cpp ! src/hotspot/share/cds/archiveHeapWriter.hpp ! src/hotspot/share/cds/cdsHeapVerifier.hpp ! src/hotspot/share/cds/classListParser.hpp ! src/hotspot/share/cds/classListWriter.cpp ! src/hotspot/share/cds/dumpTimeClassInfo.hpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/cds/heapShared.hpp ! src/hotspot/share/cds/lambdaProxyClassDictionary.hpp ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/cds/regeneratedClasses.cpp ! src/hotspot/share/classfile/bytecodeAssembler.hpp ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/classLoaderStats.hpp ! src/hotspot/share/classfile/loaderConstraints.cpp ! src/hotspot/share/classfile/moduleEntry.cpp ! src/hotspot/share/classfile/moduleEntry.hpp ! src/hotspot/share/classfile/packageEntry.cpp ! src/hotspot/share/classfile/packageEntry.hpp ! src/hotspot/share/classfile/placeholders.cpp ! src/hotspot/share/classfile/resolutionErrors.cpp ! src/hotspot/share/classfile/stringTable.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/classfile/verifier.hpp ! src/hotspot/share/code/codeCache.cpp ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/compiler/disassembler.cpp ! src/hotspot/share/gc/z/zVerify.cpp ! src/hotspot/share/jfr/support/methodtracer/jfrClassFilterClosure.cpp ! src/hotspot/share/jfr/support/methodtracer/jfrClassFilterClosure.hpp ! src/hotspot/share/jfr/support/methodtracer/jfrMethodTracer.cpp ! src/hotspot/share/jfr/utilities/jfrSet.hpp ! src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp ! src/hotspot/share/logging/logAsyncWriter.hpp ! src/hotspot/share/memory/metaspaceClosure.hpp ! src/hotspot/share/nmt/nativeCallStackPrinter.hpp ! src/hotspot/share/oops/constantPool.hpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/trainingData.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/loopnode.hpp ! src/hotspot/share/opto/mempointer.cpp ! src/hotspot/share/opto/node.hpp ! src/hotspot/share/opto/superwordVTransformBuilder.hpp ! src/hotspot/share/prims/foreignGlobals.cpp ! src/hotspot/share/prims/jvmtiTagMapTable.hpp ! src/hotspot/share/runtime/arguments.hpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/synchronizer.hpp ! src/hotspot/share/runtime/threadSMR.cpp ! src/hotspot/share/runtime/vmOperations.cpp ! src/hotspot/share/services/heapDumper.cpp ! src/hotspot/share/utilities/globalDefinitions.hpp + src/hotspot/share/utilities/hashTable.hpp ! src/hotspot/share/utilities/nativeCallStack.hpp ! src/hotspot/share/utilities/objectBitSet.hpp ! src/hotspot/share/utilities/objectBitSet.inline.hpp + src/hotspot/share/utilities/resizableHashTable.hpp - src/hotspot/share/utilities/resizeableResourceHash.hpp - src/hotspot/share/utilities/resourceHash.hpp ! test/hotspot/gtest/runtime/test_os_reserve_between.cpp + test/hotspot/gtest/utilities/test_hashtable.cpp - test/hotspot/gtest/utilities/test_resourceHash.cpp Changeset: 96603200 Branch: master Author: Justin Lu Date: 2025-08-13 20:43:46 +0000 URL: https://git.openjdk.org/loom/commit/9660320041d0ba0f22ebe074a64472557b85a24c 8364781: Re-examine DigitList digits resizing during parsing Reviewed-by: liach, naoto ! src/java.base/share/classes/java/text/DigitList.java Changeset: 9c266ae8 Branch: master Author: Aleksey Shipilev Date: 2025-08-13 20:49:16 +0000 URL: https://git.openjdk.org/loom/commit/9c266ae83c047025d778da41e413701ac3b50b03 8365229: ARM32: c2i_no_clinit_check_entry assert failed after JDK-8364269 Reviewed-by: kvn, adinn, bulasevich, phh ! src/hotspot/cpu/zero/sharedRuntime_zero.cpp ! src/hotspot/share/code/codeBlob.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp Changeset: 9dcc502c Branch: master Author: Prasanta Sadhukhan Date: 2025-08-14 04:55:02 +0000 URL: https://git.openjdk.org/loom/commit/9dcc502cc83773561707f2afe9aee1f9e2386b9e 8365375: Method SU3.setAcceleratorSelectionForeground assigns to acceleratorForeground Reviewed-by: aivanov, prr, kizune ! src/java.desktop/share/classes/com/sun/java/swing/SwingUtilities3.java Changeset: c22e01d7 Branch: master Author: Jan Lahoda Date: 2025-08-14 07:02:08 +0000 URL: https://git.openjdk.org/loom/commit/c22e01d77648036db4ed640521e82c49f8791ca1 8341342: Elements.getAllModuleElements() does not work properly before JavacTask.analyze() Reviewed-by: vromero, liach ! src/jdk.compiler/share/classes/com/sun/tools/javac/model/JavacElements.java ! test/jdk/tools/sincechecker/SinceChecker.java + test/langtools/tools/javac/processing/model/util/elements/TestElementsProgrammatic.java Changeset: a6be2286 Branch: master Author: Jan Lahoda Date: 2025-08-14 07:04:40 +0000 URL: https://git.openjdk.org/loom/commit/a6be2286421e069a292c749eecd6bdc38a8deaf2 8365314: javac fails with an exception for erroneous source Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Lint.java ! test/langtools/tools/javac/recovery/AnnotationRecovery.java Changeset: 3e329850 Branch: master Author: Joel Sikstr?m Date: 2025-08-14 07:37:10 +0000 URL: https://git.openjdk.org/loom/commit/3e3298509f136583b18e5ab8bf75a8b012016f16 8365317: ZGC: Setting ZYoungGCThreads lower than ZOldGCThreads may result in a crash Reviewed-by: tschatzl, eosterlund ! src/hotspot/share/gc/z/zDirector.cpp Changeset: e3201628 Branch: master Author: Yudi Zheng Date: 2025-08-14 07:39:49 +0000 URL: https://git.openjdk.org/loom/commit/e320162815d529bc65cd058b34ec39d60d032ce7 8365218: [JVMCI] AArch64 CPU features are not computed correctly after 8364128 Reviewed-by: dnsimon ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotJVMCIBackendFactory.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotJVMCIBackendFactory.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/amd64/AMD64HotSpotJVMCIBackendFactory.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/riscv64/RISCV64HotSpotJVMCIBackendFactory.java Changeset: 7698c373 Branch: master Author: Erik Gahlin Date: 2025-08-14 10:43:21 +0000 URL: https://git.openjdk.org/loom/commit/7698c373a684235812c9dc11edd751059f9e8e81 8364556: JFR: Disable SymbolTableStatistics and StringTableStatistics in default.jfc Reviewed-by: mgronlun ! src/jdk.jfr/share/conf/jfr/default.jfc Changeset: 98f54d90 Branch: master Author: Matthias Baesken Date: 2025-08-14 11:11:47 +0000 URL: https://git.openjdk.org/loom/commit/98f54d90ea56f63c2fc5137af98b57dbc90fe150 8365487: [asan] some oops (mode) related tests fail Reviewed-by: kbarrett, syan ! test/hotspot/jtreg/runtime/CompressedOops/UseCompressedOops.java ! test/jdk/jdk/jfr/event/gc/configuration/TestGCHeapConfigurationEventWith32BitOops.java ! test/jdk/jdk/jfr/event/gc/configuration/TestGCHeapConfigurationEventWithZeroBasedOops.java Changeset: 41520998 Branch: master Author: Roman Marchenko Committer: Magnus Ihse Bursie Date: 2025-08-14 12:31:20 +0000 URL: https://git.openjdk.org/loom/commit/41520998aa8808452ee384b213b2a77c7bad668d 8365098: make/RunTests.gmk generates a wrong path to test artifacts on Alpine Reviewed-by: erikj, ihse ! make/RunTests.gmk Changeset: dd113c8d Branch: master Author: Albert Mingkun Yang Date: 2025-08-14 14:50:56 +0000 URL: https://git.openjdk.org/loom/commit/dd113c8df06cc7e1465fb3dfef2e9b2a5a99f1fb 8364628: Serial: Refactor SerialHeap::mem_allocate_work Reviewed-by: phh, kbarrett ! src/hotspot/share/gc/serial/serialHeap.cpp ! src/hotspot/share/gc/serial/serialHeap.hpp ! src/hotspot/share/gc/serial/tenuredGeneration.hpp ! src/hotspot/share/gc/serial/tenuredGeneration.inline.hpp From davidalayachew at gmail.com Fri Aug 15 09:52:30 2025 From: davidalayachew at gmail.com (David Alayachew) Date: Fri, 15 Aug 2025 05:52:30 -0400 Subject: My experience with Structured Concurrency Message-ID: Hello @loom-dev , I just wanted to share my experience with Structured Concurrency. I had actually been using it for a while now, but only recently got experience with the new Joiner. After trying it out, my previously stated opinion has changed. Overall, Structured Concurrency has been a pleasure. I'll avoid repeating ALL my old thoughts and just highlight the KEY details. * Structured Concurrency is excellent for complex error-handling. Receiving exceptions via the subtask makes all the error-handling less painful. * Structured Concurrency makes nesting scopes a breeze, a task I historically found very painful to do. * Inheritance allows me to take an existing Scope (now Joiner), and modify only what I need to in order to modify it for my use case. Great for reusing old strategies in new ways. Now for the new stuff -- having Joiner be the point of extension definitely proved to be the right move imo. I didn't mention this in my original message, but while it was easy to get a scope set up using inheritance, it wasn't always clear what invariants needed to be maintained. For example, the ensureOwnerAndJoined method. Was that something we needed to call when inheriting? On which methods? Just join()? The Joiner solution is comparatively simpler, which actually meant that I ended up creating way more Joiners, rather than only several STS'. Joiners invariants are obvious, and there is no ambiguity on what is expected from the implementor. Which, funnily enough, led to a slightly different problem -- I found myself wanting an easier way to create Joiners. Since I was leaning on Joiners so much more heavily than I was for STS, I ended up creating many Joiners that do almost the same thing, with just minor variations. And inheritance wasn't always the right answer, as I can't inherit from multiple classes. Plus, most of my joiners were stateful, but I only wanted the non-stateful parts of it. I could do composition, but it sort of felt weird to delegate to multiple other Joiners. Part of me kept wondering how well a factory method, similar to the ones for Collectors and Gatherers, might fare for Joiners. Regardless, even if we don't get that factory method, this library has been a pleasure, and I can't wait to properly implement this once it goes live. Thank you for your time and consideration. David Alayachew -------------- next part -------------- An HTML attachment was scrubbed... URL: From viktor.klang at oracle.com Fri Aug 15 13:25:02 2025 From: viktor.klang at oracle.com (Viktor Klang) Date: Fri, 15 Aug 2025 13:25:02 +0000 Subject: My experience with Structured Concurrency In-Reply-To: References: Message-ID: Hi David, First of all?thank you for your feedback! I'm curious to learn more about why you ended up in the situation you describe below, specifically about what use-cases led you into wishing for an augmentation to Joiner to facilitate composition. Are you able to share more details? >Which, funnily enough, led to a slightly different problem -- I found myself wanting an easier way to create Joiners. Since I was leaning on Joiners so much more heavily than I was for STS, I ended up creating many Joiners that do almost the same thing, with just minor variations. And inheritance wasn't always the right answer, as I can't inherit from multiple classes. Plus, most of my joiners were stateful, but I only wanted the non-stateful parts of it. I could do composition, but it sort of felt weird to delegate to multiple other Joiners. Cheers, ? Viktor Klang Software Architect, Java Platform Group Oracle ________________________________ From: loom-dev on behalf of David Alayachew Sent: Friday, 15 August 2025 11:52 To: loom-dev Subject: My experience with Structured Concurrency Hello @loom-dev, I just wanted to share my experience with Structured Concurrency. I had actually been using it for a while now, but only recently got experience with the new Joiner. After trying it out, my previously stated opinion has changed. Overall, Structured Concurrency has been a pleasure. I'll avoid repeating ALL my old thoughts and just highlight the KEY details. * Structured Concurrency is excellent for complex error-handling. Receiving exceptions via the subtask makes all the error-handling less painful. * Structured Concurrency makes nesting scopes a breeze, a task I historically found very painful to do. * Inheritance allows me to take an existing Scope (now Joiner), and modify only what I need to in order to modify it for my use case. Great for reusing old strategies in new ways. Now for the new stuff -- having Joiner be the point of extension definitely proved to be the right move imo. I didn't mention this in my original message, but while it was easy to get a scope set up using inheritance, it wasn't always clear what invariants needed to be maintained. For example, the ensureOwnerAndJoined method. Was that something we needed to call when inheriting? On which methods? Just join()? The Joiner solution is comparatively simpler, which actually meant that I ended up creating way more Joiners, rather than only several STS'. Joiners invariants are obvious, and there is no ambiguity on what is expected from the implementor. Which, funnily enough, led to a slightly different problem -- I found myself wanting an easier way to create Joiners. Since I was leaning on Joiners so much more heavily than I was for STS, I ended up creating many Joiners that do almost the same thing, with just minor variations. And inheritance wasn't always the right answer, as I can't inherit from multiple classes. Plus, most of my joiners were stateful, but I only wanted the non-stateful parts of it. I could do composition, but it sort of felt weird to delegate to multiple other Joiners. Part of me kept wondering how well a factory method, similar to the ones for Collectors and Gatherers, might fare for Joiners. Regardless, even if we don't get that factory method, this library has been a pleasure, and I can't wait to properly implement this once it goes live. Thank you for your time and consideration. David Alayachew -------------- next part -------------- An HTML attachment was scrubbed... URL: From duke at openjdk.org Fri Aug 15 14:19:40 2025 From: duke at openjdk.org (duke) Date: Fri, 15 Aug 2025 14:19:40 GMT Subject: git: openjdk/loom: fibers: 2 new changesets Message-ID: Changeset: 1eb0f413 Branch: fibers Author: Patricio Chilano Mateo Date: 2025-08-15 10:18:03 +0000 URL: https://git.openjdk.org/loom/commit/1eb0f413039c9619fdc4cedcfc4156102f74c9a7 Fix x86 call_VM_preemptable_helper ! src/hotspot/cpu/x86/interp_masm_x86.cpp Changeset: c0f79f20 Branch: fibers Author: Patricio Chilano Mateo Date: 2025-08-15 10:18:22 +0000 URL: https://git.openjdk.org/loom/commit/c0f79f20f9e1e710ace12661f8f4539d20d3c7e0 Add new test for failed klass init case ! test/jdk/java/lang/Thread/virtual/KlassInit.java From alan.bateman at oracle.com Fri Aug 15 18:00:20 2025 From: alan.bateman at oracle.com (Alan Bateman) Date: Fri, 15 Aug 2025 19:00:20 +0100 Subject: CFV: New loom Committer: Michael McMahon Message-ID: <257385d6-0f24-4ecf-b9b0-12a93a1e10f6@oracle.com> I hereby nominate Michael McMahon to Loom Committer. Michael is a jdk Project Reviewer and lead for the OpenJDK Networking Group. Michael has been exploring improvements in how virtual threads make use of the network APIs, including io_uring support. Only current Loom Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. Votes are due by 23:59 GMT August 29, 2025. For Lazy Consensus voting instructions, see [2]. -Alan [1] http://openjdk.java.net/census#loom [2] http://openjdk.java.net/projects/#committer-vote From patricio.chilano.mateo at oracle.com Fri Aug 15 18:20:09 2025 From: patricio.chilano.mateo at oracle.com (Patricio Chilano Mateo) Date: Fri, 15 Aug 2025 14:20:09 -0400 Subject: CFV: New loom Committer: Michael McMahon In-Reply-To: <257385d6-0f24-4ecf-b9b0-12a93a1e10f6@oracle.com> References: <257385d6-0f24-4ecf-b9b0-12a93a1e10f6@oracle.com> Message-ID: Vote: yes On 8/15/25 2:00?PM, Alan Bateman wrote: > I hereby nominate Michael McMahon to Loom Committer. > > Michael is a jdk Project Reviewer and lead for the OpenJDK Networking > Group. Michael has been exploring improvements in how virtual threads > make use of the network APIs, including io_uring support. > > Only current Loom Committers [1] are eligible to vote on this nomination. > Votes must be cast in the open by replying to this mailing list. > > Votes are due by 23:59 GMT August 29, 2025. > > For Lazy Consensus voting instructions, see [2]. > > -Alan > > [1] http://openjdk.java.net/census#loom > [2] http://openjdk.java.net/projects/#committer-vote > > From davidalayachew at gmail.com Fri Aug 15 18:44:31 2025 From: davidalayachew at gmail.com (David Alayachew) Date: Fri, 15 Aug 2025 14:44:31 -0400 Subject: My experience with Structured Concurrency In-Reply-To: References: Message-ID: Sure. Long story short, the biggest reason why STS is so useful for me is because it allows me to fire off a bunch of requests, and handle their failures and outcomes centrally. That is the single most useful feature of this library for me. It's also why Future.status was not so useful for me -- it calls get under the hood, and therefore might fail! Handling that was too much scaffolding. So, when someone recently challenged me to use Joiners (rather than the old STS preview versions I was used to), I started creating Joiners to handle all sorts of failure and outcomes. At first, a lot of them could be handled by the Joiner.awaitUntil(), where I would just check and see if the task failed, then handle the error. But as I got further and further along, I started needing to add state to my Joiners in order to get the failure handling that I wanted. For example, if a certain number of timeouts occur, cancel the scope. Well, that necessitates an AtomicNumber. Then, as the error-handling got more and more complex, I started finding myself making a whole bunch of copy paste, minor variations of similar Joiners. Which isn't bad or wrong, but started to feel some strain. Now, I need to jump through an inheritance chain just to see what my Joiner is really doing. It wasn't so bad, but I did start to feel a little uneasy. Bad memories. So, the solution to a problem like this is to create a Joiner factory. Which is essentially what I started to write before I started remembering how Collectors and Gatherers worked. At that point, I kind of realized that this is worth suggesting, which prompted me to write my original email. Like I said, not a big deal if you don't give it to me -- I can just make my own. But yes, that is the surrounding context behind that quote. Let me know if you need more details. On Fri, Aug 15, 2025, 9:25?AM Viktor Klang wrote: > Hi David, > > First of all?thank you for your feedback! > > I'm curious to learn more about why you ended up in the situation you > describe below, specifically about what use-cases led you into wishing for > an augmentation to Joiner to facilitate composition. > > Are you able to share more details? > > >Which, funnily enough, led to a slightly different problem -- I found > myself wanting an easier way to create Joiners. Since I was leaning on > Joiners so much more heavily than I was for STS, I ended up creating many > Joiners that do almost the same thing, with just minor variations. And > inheritance wasn't always the right answer, as I can't inherit from > multiple classes. Plus, most of my joiners were stateful, but I only wanted > the non-stateful parts of it. I could do composition, but it sort of felt > weird to delegate to multiple other Joiners. > > Cheers, > ? > > > *Viktor Klang* > Software Architect, Java Platform Group > Oracle > ------------------------------ > *From:* loom-dev on behalf of David Alayachew > > *Sent:* Friday, 15 August 2025 11:52 > *To:* loom-dev > *Subject:* My experience with Structured Concurrency > > Hello @loom-dev , > > I just wanted to share my experience with Structured Concurrency. I had > actually been using it for a while now, but only recently got experience > with the new Joiner. After trying it out, my previously stated opinion has > changed. > > Overall, Structured Concurrency has been a pleasure. I'll avoid repeating > ALL my old thoughts and just highlight the KEY details. > > * Structured Concurrency is excellent for complex error-handling. > Receiving exceptions via the subtask makes all the error-handling less > painful. > * Structured Concurrency makes nesting scopes a breeze, a task I > historically found very painful to do. > * Inheritance allows me to take an existing Scope (now Joiner), and modify > only what I need to in order to modify it for my use case. Great for > reusing old strategies in new ways. > > Now for the new stuff -- having Joiner be the point of extension > definitely proved to be the right move imo. I didn't mention this in my > original message, but while it was easy to get a scope set up using > inheritance, it wasn't always clear what invariants needed to be > maintained. For example, the ensureOwnerAndJoined method. Was that > something we needed to call when inheriting? On which methods? Just join()? > > The Joiner solution is comparatively simpler, which actually meant that I > ended up creating way more Joiners, rather than only several STS'. Joiners > invariants are obvious, and there is no ambiguity on what is expected from > the implementor. > > Which, funnily enough, led to a slightly different problem -- I found > myself wanting an easier way to create Joiners. Since I was leaning on > Joiners so much more heavily than I was for STS, I ended up creating many > Joiners that do almost the same thing, with just minor variations. And > inheritance wasn't always the right answer, as I can't inherit from > multiple classes. Plus, most of my joiners were stateful, but I only wanted > the non-stateful parts of it. I could do composition, but it sort of felt > weird to delegate to multiple other Joiners. > > Part of me kept wondering how well a factory method, similar to the ones > for Collectors and Gatherers, might fare for Joiners. > > Regardless, even if we don't get that factory method, this library has > been a pleasure, and I can't wait to properly implement this once it goes > live. > > Thank you for your time and consideration. > David Alayachew > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From davidalayachew at gmail.com Fri Aug 15 18:53:24 2025 From: davidalayachew at gmail.com (David Alayachew) Date: Fri, 15 Aug 2025 14:53:24 -0400 Subject: My experience with Structured Concurrency In-Reply-To: References: Message-ID: One other detail I'd like to highlight. Much like Collectors and Gatherers, there are a handful of super useful ones that you use everywhere, and then the rest are ad-hoc, inline ones where you sort of just make your own to handle a custom scenario. If you use streams often, you will run into those frequently, and that's why those factory methods are fantastic. Well, I have kind of found myself in the same position for Joiners. Joiners aren't as complex as Collectors and Gatherers, so there has certainly been less need for it. But I am also only a few weeks into using Joiners (though, I used STS for over a year). If I feel this strain now, then I feel like this experience is definitely worth sharing. On Fri, Aug 15, 2025, 2:44?PM David Alayachew wrote: > Sure. > > Long story short, the biggest reason why STS is so useful for me is > because it allows me to fire off a bunch of requests, and handle their > failures and outcomes centrally. That is the single most useful feature of > this library for me. It's also why Future.status was not so useful for me > -- it calls get under the hood, and therefore might fail! Handling that was > too much scaffolding. > > So, when someone recently challenged me to use Joiners (rather than the > old STS preview versions I was used to), I started creating Joiners to > handle all sorts of failure and outcomes. At first, a lot of them could be > handled by the Joiner.awaitUntil(), where I would just check and see if the > task failed, then handle the error. But as I got further and further along, > I started needing to add state to my Joiners in order to get the failure > handling that I wanted. For example, if a certain number of timeouts occur, > cancel the scope. Well, that necessitates an AtomicNumber. > > Then, as the error-handling got more and more complex, I started finding > myself making a whole bunch of copy paste, minor variations of similar > Joiners. Which isn't bad or wrong, but started to feel some strain. Now, I > need to jump through an inheritance chain just to see what my Joiner is > really doing. It wasn't so bad, but I did start to feel a little uneasy. > Bad memories. > > So, the solution to a problem like this is to create a Joiner factory. > Which is essentially what I started to write before I started remembering > how Collectors and Gatherers worked. At that point, I kind of realized that > this is worth suggesting, which prompted me to write my original email. > > Like I said, not a big deal if you don't give it to me -- I can just make > my own. > > But yes, that is the surrounding context behind that quote. Let me know if > you need more details. > > > On Fri, Aug 15, 2025, 9:25?AM Viktor Klang > wrote: > >> Hi David, >> >> First of all?thank you for your feedback! >> >> I'm curious to learn more about why you ended up in the situation you >> describe below, specifically about what use-cases led you into wishing for >> an augmentation to Joiner to facilitate composition. >> >> Are you able to share more details? >> >> >Which, funnily enough, led to a slightly different problem -- I found >> myself wanting an easier way to create Joiners. Since I was leaning on >> Joiners so much more heavily than I was for STS, I ended up creating many >> Joiners that do almost the same thing, with just minor variations. And >> inheritance wasn't always the right answer, as I can't inherit from >> multiple classes. Plus, most of my joiners were stateful, but I only wanted >> the non-stateful parts of it. I could do composition, but it sort of felt >> weird to delegate to multiple other Joiners. >> >> Cheers, >> ? >> >> >> *Viktor Klang* >> Software Architect, Java Platform Group >> Oracle >> ------------------------------ >> *From:* loom-dev on behalf of David >> Alayachew >> *Sent:* Friday, 15 August 2025 11:52 >> *To:* loom-dev >> *Subject:* My experience with Structured Concurrency >> >> Hello @loom-dev , >> >> I just wanted to share my experience with Structured Concurrency. I had >> actually been using it for a while now, but only recently got experience >> with the new Joiner. After trying it out, my previously stated opinion has >> changed. >> >> Overall, Structured Concurrency has been a pleasure. I'll avoid repeating >> ALL my old thoughts and just highlight the KEY details. >> >> * Structured Concurrency is excellent for complex error-handling. >> Receiving exceptions via the subtask makes all the error-handling less >> painful. >> * Structured Concurrency makes nesting scopes a breeze, a task I >> historically found very painful to do. >> * Inheritance allows me to take an existing Scope (now Joiner), and >> modify only what I need to in order to modify it for my use case. Great for >> reusing old strategies in new ways. >> >> Now for the new stuff -- having Joiner be the point of extension >> definitely proved to be the right move imo. I didn't mention this in my >> original message, but while it was easy to get a scope set up using >> inheritance, it wasn't always clear what invariants needed to be >> maintained. For example, the ensureOwnerAndJoined method. Was that >> something we needed to call when inheriting? On which methods? Just join()? >> >> The Joiner solution is comparatively simpler, which actually meant that I >> ended up creating way more Joiners, rather than only several STS'. Joiners >> invariants are obvious, and there is no ambiguity on what is expected from >> the implementor. >> >> Which, funnily enough, led to a slightly different problem -- I found >> myself wanting an easier way to create Joiners. Since I was leaning on >> Joiners so much more heavily than I was for STS, I ended up creating many >> Joiners that do almost the same thing, with just minor variations. And >> inheritance wasn't always the right answer, as I can't inherit from >> multiple classes. Plus, most of my joiners were stateful, but I only wanted >> the non-stateful parts of it. I could do composition, but it sort of felt >> weird to delegate to multiple other Joiners. >> >> Part of me kept wondering how well a factory method, similar to the ones >> for Collectors and Gatherers, might fare for Joiners. >> >> Regardless, even if we don't get that factory method, this library has >> been a pleasure, and I can't wait to properly implement this once it goes >> live. >> >> Thank you for your time and consideration. >> David Alayachew >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From duke at openjdk.org Fri Aug 15 18:57:57 2025 From: duke at openjdk.org (duke) Date: Fri, 15 Aug 2025 18:57:57 GMT Subject: git: openjdk/loom: fibers: 18 new changesets Message-ID: <01c8a82a-e36a-4ea0-90ff-94aebc09dd01@openjdk.org> Changeset: b0f98df7 Branch: fibers Author: Phil Race Date: 2025-08-14 15:20:47 +0000 URL: https://git.openjdk.org/loom/commit/b0f98df75aee1e94a8c4b3eb8d0b1f4e715011ae 8365416: java.desktop no longer needs preview feature access Reviewed-by: alanb, jpai ! src/java.base/share/classes/module-info.java Changeset: 26ccb3ce Branch: fibers Author: Igor Veresov Date: 2025-08-14 16:59:05 +0000 URL: https://git.openjdk.org/loom/commit/26ccb3cef17a7a2a4b09af1e1e29b96d54a418aa 8362530: VM crash with -XX:+PrintTieredEvents when collecting AOT profiling Reviewed-by: chagedorn, kvn ! src/hotspot/share/compiler/compilationPolicy.cpp ! src/hotspot/share/compiler/compilationPolicy.hpp ! test/hotspot/jtreg/runtime/cds/appcds/aotFlags/AOTFlags.java Changeset: ba231052 Branch: fibers Author: David Beaumont Committer: Aleksey Shipilev Date: 2025-08-14 17:02:05 +0000 URL: https://git.openjdk.org/loom/commit/ba231052319676ece5105253b58efa4e906feab4 8365048: idea.sh script does not correctly detect/handle git worktrees Reviewed-by: shade, vyazici, erikj, mcimadamore, ihse ! bin/idea.sh Changeset: dccca0fb Branch: fibers Author: William Kemper Date: 2025-08-14 19:58:54 +0000 URL: https://git.openjdk.org/loom/commit/dccca0fb7a892d31179b70fa861b8b3cdde54e84 8365572: Shenandoah: Remove unused thread local _paced_time field Reviewed-by: shade ! src/hotspot/share/gc/shenandoah/shenandoahThreadLocalData.cpp ! src/hotspot/share/gc/shenandoah/shenandoahThreadLocalData.hpp Changeset: c5cbcac8 Branch: fibers Author: Chen Liang Date: 2025-08-14 20:27:08 +0000 URL: https://git.openjdk.org/loom/commit/c5cbcac828e1c7aa845cf16e68f6306ae49e050c 8361730: The CodeBuilder.trying(BlockCodeBuilder,CatchBuilder) method generates corrupted bytecode in certain cases Reviewed-by: asotona ! src/java.base/share/classes/java/lang/classfile/CodeBuilder.java Changeset: 8c363b3e Branch: fibers Author: Chen Liang Date: 2025-08-14 21:41:14 +0000 URL: https://git.openjdk.org/loom/commit/8c363b3e3e5c1273a5e9b3393ed09a31b0647a21 8364319: Move java.lang.constant.AsTypeMethodHandleDesc to jdk.internal Reviewed-by: redestad - src/java.base/share/classes/java/lang/constant/AsTypeMethodHandleDesc.java ! src/java.base/share/classes/java/lang/constant/ConstantDescs.java ! src/java.base/share/classes/java/lang/constant/MethodHandleDesc.java + src/java.base/share/classes/jdk/internal/constant/AsTypeMethodHandleDesc.java Changeset: a65f2002 Branch: fibers Author: Vladimir Kozlov Date: 2025-08-14 23:59:34 +0000 URL: https://git.openjdk.org/loom/commit/a65f20022080e627da4782b9b643912a9dd69335 8365512: Replace -Xcomp with -Xmixed for AOT assembly phase Reviewed-by: shade ! src/hotspot/share/cds/cdsConfig.cpp Changeset: 44b19c01 Branch: fibers Author: David Beaumont Committer: SendaoYan Date: 2025-08-15 02:53:42 +0000 URL: https://git.openjdk.org/loom/commit/44b19c01acdfff07a4f017466be3f03fae6013c6 8365532: java/lang/module/ModuleReader/ModuleReaderTest.testImage fails Reviewed-by: alanb ! src/java.base/share/classes/jdk/internal/module/SystemModuleFinders.java Changeset: 6fb6f3d3 Branch: fibers Author: Chen Liang Date: 2025-08-15 04:25:37 +0000 URL: https://git.openjdk.org/loom/commit/6fb6f3d39b321e2a1c1fa2cef2c19222a6dcf7b9 8361638: java.lang.classfile.CodeBuilder.CatchBuilder should not throw IllegalArgumentException for representable exception handlers Reviewed-by: asotona ! src/java.base/share/classes/java/lang/classfile/CodeBuilder.java ! src/java.base/share/classes/java/lang/classfile/instruction/ExceptionCatch.java ! src/java.base/share/classes/jdk/internal/classfile/impl/CatchBuilderImpl.java ! test/jdk/jdk/classfile/BuilderTryCatchTest.java Changeset: e3aeebec Branch: fibers Author: Doug Simon Date: 2025-08-15 07:35:52 +0000 URL: https://git.openjdk.org/loom/commit/e3aeebec1798b9adbb02e11f285951d4275c52e8 8365468: EagerJVMCI should only apply to the CompilerBroker JVMCI runtime Reviewed-by: never ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotJVMCIRuntime.java Changeset: fa2eb616 Branch: fibers Author: Manuel H?ssig Date: 2025-08-15 08:55:11 +0000 URL: https://git.openjdk.org/loom/commit/fa2eb616482250dff6a3b667798aec37114005a9 8365491: VSCode IDE: add basic configuration for the Oracle Java extension Reviewed-by: ihse, jlahoda ! make/ide/vscode/hotspot/template-workspace.jsonc Changeset: 5856dc34 Branch: fibers Author: Markus Gr?nlund Date: 2025-08-15 09:32:51 +0000 URL: https://git.openjdk.org/loom/commit/5856dc34c82de9f840be1dc28a9917224971491f 8365199: Use a set instead of a list as the intermediary Klass* storage to reduce typeset processing Reviewed-by: egahlin ! src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleCheckpoint.cpp ! src/hotspot/share/jfr/leakprofiler/sampling/objectSample.hpp ! src/hotspot/share/jfr/recorder/checkpoint/jfrMetadataEvent.cpp ! src/hotspot/share/jfr/recorder/checkpoint/jfrMetadataEvent.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetUtils.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetUtils.hpp ! src/hotspot/share/jfr/recorder/service/jfrRecorderService.cpp ! src/hotspot/share/jfr/support/jfrKlassUnloading.cpp ! src/hotspot/share/jfr/utilities/jfrSet.hpp ! test/jdk/jdk/jfr/event/runtime/TestFlush.java Changeset: b6d5f49b Branch: fibers Author: Guanqiang Han Committer: Matthias Baesken Date: 2025-08-15 09:41:17 +0000 URL: https://git.openjdk.org/loom/commit/b6d5f49b8dc2cb7c8e93d7885c2432a28d04e57e 8365296: Build failure with Clang due to -Wformat warning after JDK-8364611 Reviewed-by: ayang, mbaesken ! test/jdk/java/lang/ProcessBuilder/childSignalDisposition/exePrintSignalDisposition.c Changeset: 059b49b9 Branch: fibers Author: Volkan Yazici Date: 2025-08-15 10:37:26 +0000 URL: https://git.openjdk.org/loom/commit/059b49b9551ad52f211613a3da2ac0a79deb5ed4 8365244: Some test control variables are undocumented in doc/testing.md Reviewed-by: erikj ! doc/testing.html ! doc/testing.md Changeset: dbae90c9 Branch: fibers Author: Francesco Andreuzzi Committer: Aleksey Shipilev Date: 2025-08-15 10:45:00 +0000 URL: https://git.openjdk.org/loom/commit/dbae90c950200cb417aebeab65e5fce7a7e5f94f 8364723: Sort share/interpreter includes Reviewed-by: shade, ayang ! src/hotspot/share/interpreter/abstractInterpreter.cpp ! src/hotspot/share/interpreter/bytecodeStream.cpp ! src/hotspot/share/interpreter/bytecodeTracer.cpp ! src/hotspot/share/interpreter/bytecodeUtils.cpp ! src/hotspot/share/interpreter/interpreter.cpp ! src/hotspot/share/interpreter/interpreterRuntime.cpp ! src/hotspot/share/interpreter/templateInterpreter.cpp ! src/hotspot/share/interpreter/templateInterpreterGenerator.cpp ! src/hotspot/share/interpreter/zero/bytecodeInterpreter.cpp ! src/hotspot/share/interpreter/zero/bytecodeInterpreter.inline.hpp ! src/hotspot/share/interpreter/zero/zeroInterpreterGenerator.hpp ! test/hotspot/jtreg/sources/TestIncludesAreSorted.java Changeset: 7c113e52 Branch: fibers Author: Alan Bateman Date: 2025-08-15 18:18:27 +0000 URL: https://git.openjdk.org/loom/commit/7c113e5235c562a38bf1a5fc8a9e9d3bfac7275a Merge branch 'master' into fibers ! src/hotspot/share/interpreter/interpreterRuntime.cpp ! src/hotspot/share/interpreter/interpreterRuntime.cpp Changeset: 1f48247a Branch: fibers Author: Alan Bateman Date: 2025-08-15 17:01:30 +0000 URL: https://git.openjdk.org/loom/commit/1f48247a3433d2d0d5dd7f03a3b292e75408e18c Poller update ! src/java.base/linux/classes/sun/nio/ch/EPollPoller.java ! src/java.base/linux/classes/sun/nio/ch/IoUringPoller.java ! src/java.base/macosx/classes/sun/nio/ch/KQueuePoller.java ! src/java.base/share/classes/sun/nio/ch/Poller.java ! test/jdk/java/nio/channels/vthread/BlockingChannelOps.java Changeset: c377cb8e Branch: fibers Author: Alan Bateman Date: 2025-08-15 18:18:39 +0000 URL: https://git.openjdk.org/loom/commit/c377cb8ebe6ad181b68404957bbb93661c549fb0 Merge loom into fibers From duke at openjdk.org Fri Aug 15 18:58:45 2025 From: duke at openjdk.org (duke) Date: Fri, 15 Aug 2025 18:58:45 GMT Subject: git: openjdk/loom: master: 15 new changesets Message-ID: Changeset: b0f98df7 Branch: master Author: Phil Race Date: 2025-08-14 15:20:47 +0000 URL: https://git.openjdk.org/loom/commit/b0f98df75aee1e94a8c4b3eb8d0b1f4e715011ae 8365416: java.desktop no longer needs preview feature access Reviewed-by: alanb, jpai ! src/java.base/share/classes/module-info.java Changeset: 26ccb3ce Branch: master Author: Igor Veresov Date: 2025-08-14 16:59:05 +0000 URL: https://git.openjdk.org/loom/commit/26ccb3cef17a7a2a4b09af1e1e29b96d54a418aa 8362530: VM crash with -XX:+PrintTieredEvents when collecting AOT profiling Reviewed-by: chagedorn, kvn ! src/hotspot/share/compiler/compilationPolicy.cpp ! src/hotspot/share/compiler/compilationPolicy.hpp ! test/hotspot/jtreg/runtime/cds/appcds/aotFlags/AOTFlags.java Changeset: ba231052 Branch: master Author: David Beaumont Committer: Aleksey Shipilev Date: 2025-08-14 17:02:05 +0000 URL: https://git.openjdk.org/loom/commit/ba231052319676ece5105253b58efa4e906feab4 8365048: idea.sh script does not correctly detect/handle git worktrees Reviewed-by: shade, vyazici, erikj, mcimadamore, ihse ! bin/idea.sh Changeset: dccca0fb Branch: master Author: William Kemper Date: 2025-08-14 19:58:54 +0000 URL: https://git.openjdk.org/loom/commit/dccca0fb7a892d31179b70fa861b8b3cdde54e84 8365572: Shenandoah: Remove unused thread local _paced_time field Reviewed-by: shade ! src/hotspot/share/gc/shenandoah/shenandoahThreadLocalData.cpp ! src/hotspot/share/gc/shenandoah/shenandoahThreadLocalData.hpp Changeset: c5cbcac8 Branch: master Author: Chen Liang Date: 2025-08-14 20:27:08 +0000 URL: https://git.openjdk.org/loom/commit/c5cbcac828e1c7aa845cf16e68f6306ae49e050c 8361730: The CodeBuilder.trying(BlockCodeBuilder,CatchBuilder) method generates corrupted bytecode in certain cases Reviewed-by: asotona ! src/java.base/share/classes/java/lang/classfile/CodeBuilder.java Changeset: 8c363b3e Branch: master Author: Chen Liang Date: 2025-08-14 21:41:14 +0000 URL: https://git.openjdk.org/loom/commit/8c363b3e3e5c1273a5e9b3393ed09a31b0647a21 8364319: Move java.lang.constant.AsTypeMethodHandleDesc to jdk.internal Reviewed-by: redestad - src/java.base/share/classes/java/lang/constant/AsTypeMethodHandleDesc.java ! src/java.base/share/classes/java/lang/constant/ConstantDescs.java ! src/java.base/share/classes/java/lang/constant/MethodHandleDesc.java + src/java.base/share/classes/jdk/internal/constant/AsTypeMethodHandleDesc.java Changeset: a65f2002 Branch: master Author: Vladimir Kozlov Date: 2025-08-14 23:59:34 +0000 URL: https://git.openjdk.org/loom/commit/a65f20022080e627da4782b9b643912a9dd69335 8365512: Replace -Xcomp with -Xmixed for AOT assembly phase Reviewed-by: shade ! src/hotspot/share/cds/cdsConfig.cpp Changeset: 44b19c01 Branch: master Author: David Beaumont Committer: SendaoYan Date: 2025-08-15 02:53:42 +0000 URL: https://git.openjdk.org/loom/commit/44b19c01acdfff07a4f017466be3f03fae6013c6 8365532: java/lang/module/ModuleReader/ModuleReaderTest.testImage fails Reviewed-by: alanb ! src/java.base/share/classes/jdk/internal/module/SystemModuleFinders.java Changeset: 6fb6f3d3 Branch: master Author: Chen Liang Date: 2025-08-15 04:25:37 +0000 URL: https://git.openjdk.org/loom/commit/6fb6f3d39b321e2a1c1fa2cef2c19222a6dcf7b9 8361638: java.lang.classfile.CodeBuilder.CatchBuilder should not throw IllegalArgumentException for representable exception handlers Reviewed-by: asotona ! src/java.base/share/classes/java/lang/classfile/CodeBuilder.java ! src/java.base/share/classes/java/lang/classfile/instruction/ExceptionCatch.java ! src/java.base/share/classes/jdk/internal/classfile/impl/CatchBuilderImpl.java ! test/jdk/jdk/classfile/BuilderTryCatchTest.java Changeset: e3aeebec Branch: master Author: Doug Simon Date: 2025-08-15 07:35:52 +0000 URL: https://git.openjdk.org/loom/commit/e3aeebec1798b9adbb02e11f285951d4275c52e8 8365468: EagerJVMCI should only apply to the CompilerBroker JVMCI runtime Reviewed-by: never ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotJVMCIRuntime.java Changeset: fa2eb616 Branch: master Author: Manuel H?ssig Date: 2025-08-15 08:55:11 +0000 URL: https://git.openjdk.org/loom/commit/fa2eb616482250dff6a3b667798aec37114005a9 8365491: VSCode IDE: add basic configuration for the Oracle Java extension Reviewed-by: ihse, jlahoda ! make/ide/vscode/hotspot/template-workspace.jsonc Changeset: 5856dc34 Branch: master Author: Markus Gr?nlund Date: 2025-08-15 09:32:51 +0000 URL: https://git.openjdk.org/loom/commit/5856dc34c82de9f840be1dc28a9917224971491f 8365199: Use a set instead of a list as the intermediary Klass* storage to reduce typeset processing Reviewed-by: egahlin ! src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleCheckpoint.cpp ! src/hotspot/share/jfr/leakprofiler/sampling/objectSample.hpp ! src/hotspot/share/jfr/recorder/checkpoint/jfrMetadataEvent.cpp ! src/hotspot/share/jfr/recorder/checkpoint/jfrMetadataEvent.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetUtils.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetUtils.hpp ! src/hotspot/share/jfr/recorder/service/jfrRecorderService.cpp ! src/hotspot/share/jfr/support/jfrKlassUnloading.cpp ! src/hotspot/share/jfr/utilities/jfrSet.hpp ! test/jdk/jdk/jfr/event/runtime/TestFlush.java Changeset: b6d5f49b Branch: master Author: Guanqiang Han Committer: Matthias Baesken Date: 2025-08-15 09:41:17 +0000 URL: https://git.openjdk.org/loom/commit/b6d5f49b8dc2cb7c8e93d7885c2432a28d04e57e 8365296: Build failure with Clang due to -Wformat warning after JDK-8364611 Reviewed-by: ayang, mbaesken ! test/jdk/java/lang/ProcessBuilder/childSignalDisposition/exePrintSignalDisposition.c Changeset: 059b49b9 Branch: master Author: Volkan Yazici Date: 2025-08-15 10:37:26 +0000 URL: https://git.openjdk.org/loom/commit/059b49b9551ad52f211613a3da2ac0a79deb5ed4 8365244: Some test control variables are undocumented in doc/testing.md Reviewed-by: erikj ! doc/testing.html ! doc/testing.md Changeset: dbae90c9 Branch: master Author: Francesco Andreuzzi Committer: Aleksey Shipilev Date: 2025-08-15 10:45:00 +0000 URL: https://git.openjdk.org/loom/commit/dbae90c950200cb417aebeab65e5fce7a7e5f94f 8364723: Sort share/interpreter includes Reviewed-by: shade, ayang ! src/hotspot/share/interpreter/abstractInterpreter.cpp ! src/hotspot/share/interpreter/bytecodeStream.cpp ! src/hotspot/share/interpreter/bytecodeTracer.cpp ! src/hotspot/share/interpreter/bytecodeUtils.cpp ! src/hotspot/share/interpreter/interpreter.cpp ! src/hotspot/share/interpreter/interpreterRuntime.cpp ! src/hotspot/share/interpreter/templateInterpreter.cpp ! src/hotspot/share/interpreter/templateInterpreterGenerator.cpp ! src/hotspot/share/interpreter/zero/bytecodeInterpreter.cpp ! src/hotspot/share/interpreter/zero/bytecodeInterpreter.inline.hpp ! src/hotspot/share/interpreter/zero/zeroInterpreterGenerator.hpp ! test/hotspot/jtreg/sources/TestIncludesAreSorted.java From viktor.klang at oracle.com Fri Aug 15 21:09:26 2025 From: viktor.klang at oracle.com (Viktor Klang) Date: Fri, 15 Aug 2025 21:09:26 +0000 Subject: [External] : Re: My experience with Structured Concurrency In-Reply-To: References: Message-ID: Hi David, Thanks for the added detail, that really helps my understanding of your situation. Did you try/consider/evaluate nested scopes (each with different Joiner strategies) over composing Joiners themselves? And if you did, what were your findings when comparing those two different approaches? Cheers, ? Viktor Klang Software Architect, Java Platform Group Oracle ________________________________ From: David Alayachew Sent: Friday, 15 August 2025 20:53 To: Viktor Klang Cc: loom-dev Subject: [External] : Re: My experience with Structured Concurrency One other detail I'd like to highlight. Much like Collectors and Gatherers, there are a handful of super useful ones that you use everywhere, and then the rest are ad-hoc, inline ones where you sort of just make your own to handle a custom scenario. If you use streams often, you will run into those frequently, and that's why those factory methods are fantastic. Well, I have kind of found myself in the same position for Joiners. Joiners aren't as complex as Collectors and Gatherers, so there has certainly been less need for it. But I am also only a few weeks into using Joiners (though, I used STS for over a year). If I feel this strain now, then I feel like this experience is definitely worth sharing. On Fri, Aug 15, 2025, 2:44?PM David Alayachew > wrote: Sure. Long story short, the biggest reason why STS is so useful for me is because it allows me to fire off a bunch of requests, and handle their failures and outcomes centrally. That is the single most useful feature of this library for me. It's also why Future.status was not so useful for me -- it calls get under the hood, and therefore might fail! Handling that was too much scaffolding. So, when someone recently challenged me to use Joiners (rather than the old STS preview versions I was used to), I started creating Joiners to handle all sorts of failure and outcomes. At first, a lot of them could be handled by the Joiner.awaitUntil(), where I would just check and see if the task failed, then handle the error. But as I got further and further along, I started needing to add state to my Joiners in order to get the failure handling that I wanted. For example, if a certain number of timeouts occur, cancel the scope. Well, that necessitates an AtomicNumber. Then, as the error-handling got more and more complex, I started finding myself making a whole bunch of copy paste, minor variations of similar Joiners. Which isn't bad or wrong, but started to feel some strain. Now, I need to jump through an inheritance chain just to see what my Joiner is really doing. It wasn't so bad, but I did start to feel a little uneasy. Bad memories. So, the solution to a problem like this is to create a Joiner factory. Which is essentially what I started to write before I started remembering how Collectors and Gatherers worked. At that point, I kind of realized that this is worth suggesting, which prompted me to write my original email. Like I said, not a big deal if you don't give it to me -- I can just make my own. But yes, that is the surrounding context behind that quote. Let me know if you need more details. On Fri, Aug 15, 2025, 9:25?AM Viktor Klang > wrote: Hi David, First of all?thank you for your feedback! I'm curious to learn more about why you ended up in the situation you describe below, specifically about what use-cases led you into wishing for an augmentation to Joiner to facilitate composition. Are you able to share more details? >Which, funnily enough, led to a slightly different problem -- I found myself wanting an easier way to create Joiners. Since I was leaning on Joiners so much more heavily than I was for STS, I ended up creating many Joiners that do almost the same thing, with just minor variations. And inheritance wasn't always the right answer, as I can't inherit from multiple classes. Plus, most of my joiners were stateful, but I only wanted the non-stateful parts of it. I could do composition, but it sort of felt weird to delegate to multiple other Joiners. Cheers, ? Viktor Klang Software Architect, Java Platform Group Oracle ________________________________ From: loom-dev > on behalf of David Alayachew > Sent: Friday, 15 August 2025 11:52 To: loom-dev > Subject: My experience with Structured Concurrency Hello @loom-dev, I just wanted to share my experience with Structured Concurrency. I had actually been using it for a while now, but only recently got experience with the new Joiner. After trying it out, my previously stated opinion has changed. Overall, Structured Concurrency has been a pleasure. I'll avoid repeating ALL my old thoughts and just highlight the KEY details. * Structured Concurrency is excellent for complex error-handling. Receiving exceptions via the subtask makes all the error-handling less painful. * Structured Concurrency makes nesting scopes a breeze, a task I historically found very painful to do. * Inheritance allows me to take an existing Scope (now Joiner), and modify only what I need to in order to modify it for my use case. Great for reusing old strategies in new ways. Now for the new stuff -- having Joiner be the point of extension definitely proved to be the right move imo. I didn't mention this in my original message, but while it was easy to get a scope set up using inheritance, it wasn't always clear what invariants needed to be maintained. For example, the ensureOwnerAndJoined method. Was that something we needed to call when inheriting? On which methods? Just join()? The Joiner solution is comparatively simpler, which actually meant that I ended up creating way more Joiners, rather than only several STS'. Joiners invariants are obvious, and there is no ambiguity on what is expected from the implementor. Which, funnily enough, led to a slightly different problem -- I found myself wanting an easier way to create Joiners. Since I was leaning on Joiners so much more heavily than I was for STS, I ended up creating many Joiners that do almost the same thing, with just minor variations. And inheritance wasn't always the right answer, as I can't inherit from multiple classes. Plus, most of my joiners were stateful, but I only wanted the non-stateful parts of it. I could do composition, but it sort of felt weird to delegate to multiple other Joiners. Part of me kept wondering how well a factory method, similar to the ones for Collectors and Gatherers, might fare for Joiners. Regardless, even if we don't get that factory method, this library has been a pleasure, and I can't wait to properly implement this once it goes live. Thank you for your time and consideration. David Alayachew -------------- next part -------------- An HTML attachment was scrubbed... URL: From davidalayachew at gmail.com Sat Aug 16 00:04:00 2025 From: davidalayachew at gmail.com (David Alayachew) Date: Fri, 15 Aug 2025 20:04:00 -0400 Subject: [External] : Re: My experience with Structured Concurrency In-Reply-To: References: Message-ID: Oh, I'm already doing that. Lol, I love STS BECAUSE nesting scopes is so easy to do. But that's an interesting idea. I kind of see what you mean -- maybe I am stuffing too much logic into a single Joiner. I can't tell yet, so I guess I'll just have to try it out and get back to you. Thanks for the tip. On Fri, Aug 15, 2025, 5:09?PM Viktor Klang wrote: > Hi David, > > Thanks for the added detail, that really helps my understanding of your > situation. > > Did you try/consider/evaluate nested scopes (each with different Joiner > strategies) over composing Joiners themselves? > And if you did, what were your findings when comparing those two different > approaches? > > Cheers, > ? > > > *Viktor Klang* > Software Architect, Java Platform Group > Oracle > ------------------------------ > *From:* David Alayachew > *Sent:* Friday, 15 August 2025 20:53 > *To:* Viktor Klang > *Cc:* loom-dev > *Subject:* [External] : Re: My experience with Structured Concurrency > > One other detail I'd like to highlight. > > Much like Collectors and Gatherers, there are a handful of super useful > ones that you use everywhere, and then the rest are ad-hoc, inline ones > where you sort of just make your own to handle a custom scenario. If you > use streams often, you will run into those frequently, and that's why those > factory methods are fantastic. > > Well, I have kind of found myself in the same position for Joiners. > Joiners aren't as complex as Collectors and Gatherers, so there has > certainly been less need for it. But I am also only a few weeks into using > Joiners (though, I used STS for over a year). If I feel this strain now, > then I feel like this experience is definitely worth sharing. > > On Fri, Aug 15, 2025, 2:44?PM David Alayachew > wrote: > > Sure. > > Long story short, the biggest reason why STS is so useful for me is > because it allows me to fire off a bunch of requests, and handle their > failures and outcomes centrally. That is the single most useful feature of > this library for me. It's also why Future.status was not so useful for me > -- it calls get under the hood, and therefore might fail! Handling that was > too much scaffolding. > > So, when someone recently challenged me to use Joiners (rather than the > old STS preview versions I was used to), I started creating Joiners to > handle all sorts of failure and outcomes. At first, a lot of them could be > handled by the Joiner.awaitUntil(), where I would just check and see if the > task failed, then handle the error. But as I got further and further along, > I started needing to add state to my Joiners in order to get the failure > handling that I wanted. For example, if a certain number of timeouts occur, > cancel the scope. Well, that necessitates an AtomicNumber. > > Then, as the error-handling got more and more complex, I started finding > myself making a whole bunch of copy paste, minor variations of similar > Joiners. Which isn't bad or wrong, but started to feel some strain. Now, I > need to jump through an inheritance chain just to see what my Joiner is > really doing. It wasn't so bad, but I did start to feel a little uneasy. > Bad memories. > > So, the solution to a problem like this is to create a Joiner factory. > Which is essentially what I started to write before I started remembering > how Collectors and Gatherers worked. At that point, I kind of realized that > this is worth suggesting, which prompted me to write my original email. > > Like I said, not a big deal if you don't give it to me -- I can just make > my own. > > But yes, that is the surrounding context behind that quote. Let me know if > you need more details. > > > On Fri, Aug 15, 2025, 9:25?AM Viktor Klang > wrote: > > Hi David, > > First of all?thank you for your feedback! > > I'm curious to learn more about why you ended up in the situation you > describe below, specifically about what use-cases led you into wishing for > an augmentation to Joiner to facilitate composition. > > Are you able to share more details? > > >Which, funnily enough, led to a slightly different problem -- I found > myself wanting an easier way to create Joiners. Since I was leaning on > Joiners so much more heavily than I was for STS, I ended up creating many > Joiners that do almost the same thing, with just minor variations. And > inheritance wasn't always the right answer, as I can't inherit from > multiple classes. Plus, most of my joiners were stateful, but I only wanted > the non-stateful parts of it. I could do composition, but it sort of felt > weird to delegate to multiple other Joiners. > > Cheers, > ? > > > *Viktor Klang* > Software Architect, Java Platform Group > Oracle > ------------------------------ > *From:* loom-dev on behalf of David Alayachew > > *Sent:* Friday, 15 August 2025 11:52 > *To:* loom-dev > *Subject:* My experience with Structured Concurrency > > Hello @loom-dev , > > I just wanted to share my experience with Structured Concurrency. I had > actually been using it for a while now, but only recently got experience > with the new Joiner. After trying it out, my previously stated opinion has > changed. > > Overall, Structured Concurrency has been a pleasure. I'll avoid repeating > ALL my old thoughts and just highlight the KEY details. > > * Structured Concurrency is excellent for complex error-handling. > Receiving exceptions via the subtask makes all the error-handling less > painful. > * Structured Concurrency makes nesting scopes a breeze, a task I > historically found very painful to do. > * Inheritance allows me to take an existing Scope (now Joiner), and modify > only what I need to in order to modify it for my use case. Great for > reusing old strategies in new ways. > > Now for the new stuff -- having Joiner be the point of extension > definitely proved to be the right move imo. I didn't mention this in my > original message, but while it was easy to get a scope set up using > inheritance, it wasn't always clear what invariants needed to be > maintained. For example, the ensureOwnerAndJoined method. Was that > something we needed to call when inheriting? On which methods? Just join()? > > The Joiner solution is comparatively simpler, which actually meant that I > ended up creating way more Joiners, rather than only several STS'. Joiners > invariants are obvious, and there is no ambiguity on what is expected from > the implementor. > > Which, funnily enough, led to a slightly different problem -- I found > myself wanting an easier way to create Joiners. Since I was leaning on > Joiners so much more heavily than I was for STS, I ended up creating many > Joiners that do almost the same thing, with just minor variations. And > inheritance wasn't always the right answer, as I can't inherit from > multiple classes. Plus, most of my joiners were stateful, but I only wanted > the non-stateful parts of it. I could do composition, but it sort of felt > weird to delegate to multiple other Joiners. > > Part of me kept wondering how well a factory method, similar to the ones > for Collectors and Gatherers, might fare for Joiners. > > Regardless, even if we don't get that factory method, this library has > been a pleasure, and I can't wait to properly implement this once it goes > live. > > Thank you for your time and consideration. > David Alayachew > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From alan.bateman at oracle.com Sat Aug 16 08:52:57 2025 From: alan.bateman at oracle.com (Alan Bateman) Date: Sat, 16 Aug 2025 09:52:57 +0100 Subject: My experience with Structured Concurrency In-Reply-To: References: Message-ID: <82b1331d-b33a-4f31-9621-059dc5db4791@oracle.com> On 15/08/2025 19:44, David Alayachew wrote: > : > > So, when someone recently challenged me to use Joiners (rather than > the old STS preview versions I was used to), I started creating > Joiners to handle all sorts of failure and outcomes. At first, a lot > of them could be handled by the Joiner.awaitUntil(), where I would > just check and see if the task failed, then handle the error. But as I > got further and further along, I started needing to add state to my > Joiners in order to get the failure handling that I wanted. For > example, if a certain number of timeouts occur, cancel the scope. > Well, that necessitates an AtomicNumber. > I assume you mean allUntil(Predicate), which is intended to make it easy to create a Joiner that implements a cancellation policy. Joiners are inherently stateful as many will accumulate results or exceptions, or maybe just count failures.? With allUntil then it does mean that the predicate may not be pure function, is that the reason for the hesitation? Beyond allUntil does mean implementing the Joiner interface. I think your mails are pondering whether there is something between allUntil and implementing Joiner yourself. I don't think we've had enough feedback to date to know if there is something needed there. One thing that would help is if your could enumerate a few of the Joiners that you implemented. I'm wondering if they are general purpose of very specific. -Alan From alan.bateman at oracle.com Sat Aug 16 09:08:09 2025 From: alan.bateman at oracle.com (Alan Bateman) Date: Sat, 16 Aug 2025 10:08:09 +0100 Subject: CFV: New loom Committer: Michael McMahon In-Reply-To: <257385d6-0f24-4ecf-b9b0-12a93a1e10f6@oracle.com> References: <257385d6-0f24-4ecf-b9b0-12a93a1e10f6@oracle.com> Message-ID: <3eefd2a3-36cd-43f5-ac75-83cd01fa5de6@oracle.com> Vote: yes From davidalayachew at gmail.com Sat Aug 16 19:23:20 2025 From: davidalayachew at gmail.com (David Alayachew) Date: Sat, 16 Aug 2025 15:23:20 -0400 Subject: My experience with Structured Concurrency In-Reply-To: <82b1331d-b33a-4f31-9621-059dc5db4791@oracle.com> References: <82b1331d-b33a-4f31-9621-059dc5db4791@oracle.com> Message-ID: Hey Alan, > I assume you mean allUntil(Predicate) Whoops, yes. > With allUntil then it does mean that the > predicate may not be pure function Mine was. It was basically just a Joiner.allUntil(t -> t.state() == FAILED && t.exception() instanceof SomeException). Side note -- excited to see what Pattern-matching will bring to the Subtask type specifically. Deconstructing it is something I will be doing a lot of. But yes, if you are referring to once the allUntil became insufficient for my needs, then yeah. I didn't like the idea of implementing multiple levels of joiners, all with their own state. I could certainly make it work, but that was my point with saying "bad memories" -- I remember how much work it was making it work with inheritance in the past for separate contexts. And I don't want to relive those bad memories. In general, I try to avoid too many levels of inheritance with state. > One thing that would help is if your > could enumerate a few of the Joiners > that you implemented. I'm wondering > if they are general purpose of very > specific. Sure. Let me highlight 5 of them. Let me know if you need more examples -- I have about 30+ custom implementations. 1. A stateful Joiner> that folds each success into an add() on a builder for . When add() returns false (has sufficient input), the joiner cancels the scope. It returns an Optional of the constructed data model. 2. A stateful Joiner>> that cancels the scope once I hit X number of tasks that throw SomeException. It returns the tasks that succeeded, plus those X failures. 3. A stateful Joiner> that takes each successful result, performs an RPC call using that result, then cancels the scope if the rpc call is successful. It returns an Optional of the first successful rpc call. 4. A stateful Joiner, Optional> that, upon each successful List, recursively creates new scopes inside of the onComplete, with the exit condition being that a list is empty. It then performs a reduce on the returned scopes, bubbling up the call stack until it returns an Optional 5. A stateful Joiner> that cancels the scope on the first success, but uses a Predicate to determine a success. It returns an Optional of the result. Let me know if there is anything further that I can provide. On Sat, Aug 16, 2025 at 4:53?AM Alan Bateman wrote: > On 15/08/2025 19:44, David Alayachew wrote: > > : > > > > So, when someone recently challenged me to use Joiners (rather than > > the old STS preview versions I was used to), I started creating > > Joiners to handle all sorts of failure and outcomes. At first, a lot > > of them could be handled by the Joiner.awaitUntil(), where I would > > just check and see if the task failed, then handle the error. But as I > > got further and further along, I started needing to add state to my > > Joiners in order to get the failure handling that I wanted. For > > example, if a certain number of timeouts occur, cancel the scope. > > Well, that necessitates an AtomicNumber. > > > I assume you mean allUntil(Predicate), which is intended to make it easy > to create a Joiner that implements a cancellation policy. Joiners are > inherently stateful as many will accumulate results or exceptions, or > maybe just count failures. With allUntil then it does mean that the > predicate may not be pure function, is that the reason for the > hesitation? Beyond allUntil does mean implementing the Joiner interface. > I think your mails are pondering whether there is something between > allUntil and implementing Joiner yourself. I don't think we've had > enough feedback to date to know if there is something needed there. One > thing that would help is if your could enumerate a few of the Joiners > that you implemented. I'm wondering if they are general purpose of very > specific. > > -Alan > -------------- next part -------------- An HTML attachment was scrubbed... URL: From alan.bateman at oracle.com Sun Aug 17 17:13:15 2025 From: alan.bateman at oracle.com (Alan Bateman) Date: Sun, 17 Aug 2025 18:13:15 +0100 Subject: My experience with Structured Concurrency In-Reply-To: References: <82b1331d-b33a-4f31-9621-059dc5db4791@oracle.com> Message-ID: On 16/08/2025 20:23, David Alayachew wrote: > : > > Sure. Let me highlight 5 of them. Let me know if you need more > examples -- I have about 30+ custom implementations. Thanks for sharing this selection. I will guess that #1, #2, and #5 are relatively simpler Joiner implementations, is there really any benefit to use composition or inheritance here? For #4 and #5 then its surprising that there is RPC or split/join in the onComplete method.? The onComplete method is called with the completed subtask and any exception/error executing onComplete isn't going to change the subtask status. Is there a reason you've chosen to put that code there rather than in the subtasks? (for his API then the question as to "where" to put code is a good discussion as it may not be always obvious whether to code should execute in the subtask, in the Joiner handling subtask completion, or in the main task in the processing after join. -Alan -------------- next part -------------- An HTML attachment was scrubbed... URL: From davidalayachew at gmail.com Sun Aug 17 20:50:49 2025 From: davidalayachew at gmail.com (David Alayachew) Date: Sun, 17 Aug 2025 16:50:49 -0400 Subject: [External] : Re: My experience with Structured Concurrency In-Reply-To: References: Message-ID: Hey, I've been trying out your idea, but I can't find a single place where doing it would apply. I understand the idea of nesting scopes well enough. For example, I could put a innerScope inside of a outerscope.fork() call. Alternatively, I could have another scope after the outerScope.join() call. But doing it the first way would mean that I am creating an entire scope for each outerScope subtask. Is that what you are proposing? That makes sense if there are multiple tasks worth of processing that I want. For example, if the outerscope subtask would return a list of things, each of which, I could do further processing on. But that doesn't make sense if each outerScope subtask has only one "thing" that needs further downstream processing. The entire point of a scope is to do multi-threading. Having one task defeats the purpose of that. And doing it the second way means I would have to wait for all of my tasks to complete from the outerScope before the innerScope could do anything. In both cases, I wouldn't really be able to gain anything for my composed joiners. And to be clear, most of my Joiner compositions were simply nesting and adding to an existing implementation. For example, I had a joiner that closed the scope after 3 counts of tasks failing with SomeException. Well, I then used composition to make it cancel AND return the tasks up to and including the 3 failed. In that case, I don't see how I would gain anything by adding another scope. Could you help me see what you had in mind? Maybe I am just lacking creativity. On Fri, Aug 15, 2025 at 8:04?PM David Alayachew wrote: > Oh, I'm already doing that. Lol, I love STS BECAUSE nesting scopes is so > easy to do. > > But that's an interesting idea. I kind of see what you mean -- maybe I am > stuffing too much logic into a single Joiner. I can't tell yet, so I guess > I'll just have to try it out and get back to you. > > Thanks for the tip. > > > On Fri, Aug 15, 2025, 5:09?PM Viktor Klang > wrote: > >> Hi David, >> >> Thanks for the added detail, that really helps my understanding of your >> situation. >> >> Did you try/consider/evaluate nested scopes (each with different Joiner >> strategies) over composing Joiners themselves? >> And if you did, what were your findings when comparing those two >> different approaches? >> >> Cheers, >> ? >> >> >> *Viktor Klang* >> Software Architect, Java Platform Group >> Oracle >> ------------------------------ >> *From:* David Alayachew >> *Sent:* Friday, 15 August 2025 20:53 >> *To:* Viktor Klang >> *Cc:* loom-dev >> *Subject:* [External] : Re: My experience with Structured Concurrency >> >> One other detail I'd like to highlight. >> >> Much like Collectors and Gatherers, there are a handful of super useful >> ones that you use everywhere, and then the rest are ad-hoc, inline ones >> where you sort of just make your own to handle a custom scenario. If you >> use streams often, you will run into those frequently, and that's why those >> factory methods are fantastic. >> >> Well, I have kind of found myself in the same position for Joiners. >> Joiners aren't as complex as Collectors and Gatherers, so there has >> certainly been less need for it. But I am also only a few weeks into using >> Joiners (though, I used STS for over a year). If I feel this strain now, >> then I feel like this experience is definitely worth sharing. >> >> On Fri, Aug 15, 2025, 2:44?PM David Alayachew >> wrote: >> >> Sure. >> >> Long story short, the biggest reason why STS is so useful for me is >> because it allows me to fire off a bunch of requests, and handle their >> failures and outcomes centrally. That is the single most useful feature of >> this library for me. It's also why Future.status was not so useful for me >> -- it calls get under the hood, and therefore might fail! Handling that was >> too much scaffolding. >> >> So, when someone recently challenged me to use Joiners (rather than the >> old STS preview versions I was used to), I started creating Joiners to >> handle all sorts of failure and outcomes. At first, a lot of them could be >> handled by the Joiner.awaitUntil(), where I would just check and see if the >> task failed, then handle the error. But as I got further and further along, >> I started needing to add state to my Joiners in order to get the failure >> handling that I wanted. For example, if a certain number of timeouts occur, >> cancel the scope. Well, that necessitates an AtomicNumber. >> >> Then, as the error-handling got more and more complex, I started finding >> myself making a whole bunch of copy paste, minor variations of similar >> Joiners. Which isn't bad or wrong, but started to feel some strain. Now, I >> need to jump through an inheritance chain just to see what my Joiner is >> really doing. It wasn't so bad, but I did start to feel a little uneasy. >> Bad memories. >> >> So, the solution to a problem like this is to create a Joiner factory. >> Which is essentially what I started to write before I started remembering >> how Collectors and Gatherers worked. At that point, I kind of realized that >> this is worth suggesting, which prompted me to write my original email. >> >> Like I said, not a big deal if you don't give it to me -- I can just make >> my own. >> >> But yes, that is the surrounding context behind that quote. Let me know >> if you need more details. >> >> >> On Fri, Aug 15, 2025, 9:25?AM Viktor Klang >> wrote: >> >> Hi David, >> >> First of all?thank you for your feedback! >> >> I'm curious to learn more about why you ended up in the situation you >> describe below, specifically about what use-cases led you into wishing for >> an augmentation to Joiner to facilitate composition. >> >> Are you able to share more details? >> >> >Which, funnily enough, led to a slightly different problem -- I found >> myself wanting an easier way to create Joiners. Since I was leaning on >> Joiners so much more heavily than I was for STS, I ended up creating many >> Joiners that do almost the same thing, with just minor variations. And >> inheritance wasn't always the right answer, as I can't inherit from >> multiple classes. Plus, most of my joiners were stateful, but I only wanted >> the non-stateful parts of it. I could do composition, but it sort of felt >> weird to delegate to multiple other Joiners. >> >> Cheers, >> ? >> >> >> *Viktor Klang* >> Software Architect, Java Platform Group >> Oracle >> ------------------------------ >> *From:* loom-dev on behalf of David >> Alayachew >> *Sent:* Friday, 15 August 2025 11:52 >> *To:* loom-dev >> *Subject:* My experience with Structured Concurrency >> >> Hello @loom-dev , >> >> I just wanted to share my experience with Structured Concurrency. I had >> actually been using it for a while now, but only recently got experience >> with the new Joiner. After trying it out, my previously stated opinion has >> changed. >> >> Overall, Structured Concurrency has been a pleasure. I'll avoid repeating >> ALL my old thoughts and just highlight the KEY details. >> >> * Structured Concurrency is excellent for complex error-handling. >> Receiving exceptions via the subtask makes all the error-handling less >> painful. >> * Structured Concurrency makes nesting scopes a breeze, a task I >> historically found very painful to do. >> * Inheritance allows me to take an existing Scope (now Joiner), and >> modify only what I need to in order to modify it for my use case. Great for >> reusing old strategies in new ways. >> >> Now for the new stuff -- having Joiner be the point of extension >> definitely proved to be the right move imo. I didn't mention this in my >> original message, but while it was easy to get a scope set up using >> inheritance, it wasn't always clear what invariants needed to be >> maintained. For example, the ensureOwnerAndJoined method. Was that >> something we needed to call when inheriting? On which methods? Just join()? >> >> The Joiner solution is comparatively simpler, which actually meant that I >> ended up creating way more Joiners, rather than only several STS'. Joiners >> invariants are obvious, and there is no ambiguity on what is expected from >> the implementor. >> >> Which, funnily enough, led to a slightly different problem -- I found >> myself wanting an easier way to create Joiners. Since I was leaning on >> Joiners so much more heavily than I was for STS, I ended up creating many >> Joiners that do almost the same thing, with just minor variations. And >> inheritance wasn't always the right answer, as I can't inherit from >> multiple classes. Plus, most of my joiners were stateful, but I only wanted >> the non-stateful parts of it. I could do composition, but it sort of felt >> weird to delegate to multiple other Joiners. >> >> Part of me kept wondering how well a factory method, similar to the ones >> for Collectors and Gatherers, might fare for Joiners. >> >> Regardless, even if we don't get that factory method, this library has >> been a pleasure, and I can't wait to properly implement this once it goes >> live. >> >> Thank you for your time and consideration. >> David Alayachew >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From davidalayachew at gmail.com Sun Aug 17 21:00:29 2025 From: davidalayachew at gmail.com (David Alayachew) Date: Sun, 17 Aug 2025 17:00:29 -0400 Subject: My experience with Structured Concurrency In-Reply-To: References: <82b1331d-b33a-4f31-9621-059dc5db4791@oracle.com> Message-ID: > I will guess that #1, #2, and #5 are relatively > simpler Joiner implementations, is there really > any benefit to use composition or inheritance here? Sorry, I have been unclear. Let me clarify. Yes, it is not hard at all to implement #1, #2, and #5 at all. But I don't have 5 joiners. I have well past 30 of them. Most of my joiners are very similar to each other. The 5 I showed you are most of the major "categories" of joiners I would make. But each category would have many derivatives of it. For example, #2 had a derivative that was the same, but for multiple Exception types as opposed to just one. Another derivative of #2 would go past a type test, and actually look at the fields of the Exception (like HTTP Error Code). Yet another would go one level deep, in case the exception was wrapped (like wrapping an HTTP Exception in a RuntimeException). So I started making a whole new class each time I wanted to do almost the same thing. But you start to run out of names that accurately describe what you are doing. And yeah, some joiners are going to be heavily reused, so it makes sense for them to have a whole type (and maybe source file). But many won't either. Once I realized that I was making a bunch of the same thing with minor variations, that's when I started thinking about inheritance and composition. Sorry if I made it sound like that's what I first jumped to. No, I thought about inheritance and composition because those are usually the default answers to the question of "How do I do what T is doing, but with a minor variation?" But inheritance and composition didn't get me very far for these joiners, which is what I was trying to say in my original email. Inheritance with state is error-prone (from my experience). And composition meant that I was making my code brittle. What if those methods I am depending upon need to change? So I went back to making each joiner be its own thing. In reality, most of my custom Joiners were either a simple record implementing the Joiner, or an anonymous class. Records are fine, but you start to run out of reasonable names when you have 5 different records that do close to the same thing. I kind of found a compromise by creating the record Joiner inside the method itself that I am working in (or the class if other methods need it too). That way, it's scoped off from the rest of the world. But considering how many I was making, it felt like a clunky solution. I'm fine peppering my code base with inlined records all over the place *as long as those records don't have a body*. But once they do, it starts to get annoying, and makes the code harder to read and skim. >From there, I thought about making a factory. You know the rest of the story. > For #4 and #5 then its surprising that there is RPC > or split/join in the onComplete method. The > onComplete method is called with the completed > subtask and any exception/error executing > onComplete isn't going to change the subtask > status. Is there a reason you've chosen to put > that code there rather than in the subtasks? Yeah. Long story short, if that RPC call or the nested scope fails, well the literal goal that I created this scope to do (contruct an object) has, in effect, failed. That's grounds to just throw an exception and see if someone upstream can handle it. Maybe a retry or something. To me, it felt like I was keeping inline with what onComplete was trying to do -- sort of be an AOP-like post-processing joinpoint. If the contents of onComplete fails, well then the goal was unattainable anyways, so killing the scope via thrown exception doesn't feel wrong. And the exception will propagate, so it felt like I was following right along with how the spec intended things to go. Granted, I certainly am marching on the edge here, I'll concede that. > (for his API then the question as to "where" to > put code is a good discussion as it may not be > always obvious whether to code should execute in > the subtask, in the Joiner handling subtask > completion, or in the main task in the processing > after join. I would love a short guide on what code to put in what place. This looks to be a pretty integral API for handling a large number of tasks moving forward, so I see value in it. On Sun, Aug 17, 2025 at 1:13?PM Alan Bateman wrote: > On 16/08/2025 20:23, David Alayachew wrote: > > : > > Sure. Let me highlight 5 of them. Let me know if you need more examples -- > I have about 30+ custom implementations. > > > Thanks for sharing this selection. > > I will guess that #1, #2, and #5 are relatively simpler Joiner > implementations, is there really any benefit to use composition or > inheritance here? > > For #4 and #5 then its surprising that there is RPC or split/join in the > onComplete method. The onComplete method is called with the completed > subtask and any exception/error executing onComplete isn't going to change > the subtask status. Is there a reason you've chosen to put that code there > rather than in the subtasks? (for his API then the question as to "where" > to put code is a good discussion as it may not be always obvious whether to > code should execute in the subtask, in the Joiner handling subtask > completion, or in the main task in the processing after join. > > -Alan > -------------- next part -------------- An HTML attachment was scrubbed... URL: From rengels at ix.netcom.com Sun Aug 17 21:27:46 2025 From: rengels at ix.netcom.com (robert engels) Date: Sun, 17 Aug 2025 16:27:46 -0500 Subject: My experience with Structured Concurrency In-Reply-To: References: <82b1331d-b33a-4f31-9621-059dc5db4791@oracle.com> Message-ID: <9B8A55C2-DAFE-4828-9A8C-744BC8FF8BF1@ix.netcom.com> Isn?t this a perfect use of an anonymous class with a base class? > On Aug 17, 2025, at 4:00?PM, David Alayachew wrote: > > > I will guess that #1, #2, and #5 are relatively > > simpler Joiner implementations, is there really > > any benefit to use composition or inheritance here? > > Sorry, I have been unclear. Let me clarify. > > Yes, it is not hard at all to implement #1, #2, and #5 at all. But I don't have 5 joiners. I have well past 30 of them. > > Most of my joiners are very similar to each other. The 5 I showed you are most of the major "categories" of joiners I would make. But each category would have many derivatives of it. > > For example, #2 had a derivative that was the same, but for multiple Exception types as opposed to just one. Another derivative of #2 would go past a type test, and actually look at the fields of the Exception (like HTTP Error Code). Yet another would go one level deep, in case the exception was wrapped (like wrapping an HTTP Exception in a RuntimeException). > > So I started making a whole new class each time I wanted to do almost the same thing. But you start to run out of names that accurately describe what you are doing. And yeah, some joiners are going to be heavily reused, so it makes sense for them to have a whole type (and maybe source file). But many won't either. > > Once I realized that I was making a bunch of the same thing with minor variations, that's when I started thinking about inheritance and composition. Sorry if I made it sound like that's what I first jumped to. No, I thought about inheritance and composition because those are usually the default answers to the question of "How do I do what T is doing, but with a minor variation?" > > But inheritance and composition didn't get me very far for these joiners, which is what I was trying to say in my original email. Inheritance with state is error-prone (from my experience). And composition meant that I was making my code brittle. What if those methods I am depending upon need to change? > > So I went back to making each joiner be its own thing. In reality, most of my custom Joiners were either a simple record implementing the Joiner, or an anonymous class. Records are fine, but you start to run out of reasonable names when you have 5 different records that do close to the same thing. I kind of found a compromise by creating the record Joiner inside the method itself that I am working in (or the class if other methods need it too). That way, it's scoped off from the rest of the world. But considering how many I was making, it felt like a clunky solution. I'm fine peppering my code base with inlined records all over the place *as long as those records don't have a body*. But once they do, it starts to get annoying, and makes the code harder to read and skim. > > From there, I thought about making a factory. You know the rest of the story. > > > For #4 and #5 then its surprising that there is RPC > > or split/join in the onComplete method. The > > onComplete method is called with the completed > > subtask and any exception/error executing > > onComplete isn't going to change the subtask > > status. Is there a reason you've chosen to put > > that code there rather than in the subtasks? > > Yeah. Long story short, if that RPC call or the nested scope fails, well the literal goal that I created this scope to do (contruct an object) has, in effect, failed. That's grounds to just throw an exception and see if someone upstream can handle it. Maybe a retry or something. > > To me, it felt like I was keeping inline with what onComplete was trying to do -- sort of be an AOP-like post-processing joinpoint. If the contents of onComplete fails, well then the goal was unattainable anyways, so killing the scope via thrown exception doesn't feel wrong. And the exception will propagate, so it felt like I was following right along with how the spec intended things to go. Granted, I certainly am marching on the edge here, I'll concede that. > > > (for his API then the question as to "where" to > > put code is a good discussion as it may not be > > always obvious whether to code should execute in > > the subtask, in the Joiner handling subtask > > completion, or in the main task in the processing > > after join. > > I would love a short guide on what code to put in what place. This looks to be a pretty integral API for handling a large number of tasks moving forward, so I see value in it. > > > On Sun, Aug 17, 2025 at 1:13?PM Alan Bateman > wrote: >> On 16/08/2025 20:23, David Alayachew wrote: >>> : >>> >>> Sure. Let me highlight 5 of them. Let me know if you need more examples -- I have about 30+ custom implementations. >> >> Thanks for sharing this selection. >> >> I will guess that #1, #2, and #5 are relatively simpler Joiner implementations, is there really any benefit to use composition or inheritance here? >> >> For #4 and #5 then its surprising that there is RPC or split/join in the onComplete method. The onComplete method is called with the completed subtask and any exception/error executing onComplete isn't going to change the subtask status. Is there a reason you've chosen to put that code there rather than in the subtasks? (for his API then the question as to "where" to put code is a good discussion as it may not be always obvious whether to code should execute in the subtask, in the Joiner handling subtask completion, or in the main task in the processing after join. >> >> -Alan -------------- next part -------------- An HTML attachment was scrubbed... URL: From davidalayachew at gmail.com Sun Aug 17 21:46:35 2025 From: davidalayachew at gmail.com (David Alayachew) Date: Sun, 17 Aug 2025 17:46:35 -0400 Subject: My experience with Structured Concurrency In-Reply-To: <9B8A55C2-DAFE-4828-9A8C-744BC8FF8BF1@ix.netcom.com> References: <82b1331d-b33a-4f31-9621-059dc5db4791@oracle.com> <9B8A55C2-DAFE-4828-9A8C-744BC8FF8BF1@ix.netcom.com> Message-ID: Can you give an example? I used Anonymous classes in my solutions, but most of them were just based off of the Joiner interface. I guess I could introduce some state into the abstract class, and then just tweak it for my needs. And obviously, I'd need a new abstract class for each "category" of joiner. Then from there, just implement it inline, making each inline case cheaper. Is that what you are hinting to? On Sun, Aug 17, 2025, 5:28?PM robert engels wrote: > Isn?t this a perfect use of an anonymous class with a base class? > > On Aug 17, 2025, at 4:00?PM, David Alayachew > wrote: > > > I will guess that #1, #2, and #5 are relatively > > simpler Joiner implementations, is there really > > any benefit to use composition or inheritance here? > > Sorry, I have been unclear. Let me clarify. > > Yes, it is not hard at all to implement #1, #2, and #5 at all. But I don't > have 5 joiners. I have well past 30 of them. > > Most of my joiners are very similar to each other. The 5 I showed you are > most of the major "categories" of joiners I would make. But each category > would have many derivatives of it. > > For example, #2 had a derivative that was the same, but for multiple > Exception types as opposed to just one. Another derivative of #2 would go > past a type test, and actually look at the fields of the Exception (like > HTTP Error Code). Yet another would go one level deep, in case the > exception was wrapped (like wrapping an HTTP Exception in a > RuntimeException). > > So I started making a whole new class each time I wanted to do almost the > same thing. But you start to run out of names that accurately describe what > you are doing. And yeah, some joiners are going to be heavily reused, so it > makes sense for them to have a whole type (and maybe source file). But many > won't either. > > Once I realized that I was making a bunch of the same thing with minor > variations, that's when I started thinking about inheritance and > composition. Sorry if I made it sound like that's what I first jumped to. > No, I thought about inheritance and composition because those are usually > the default answers to the question of "How do I do what T is doing, but > with a minor variation?" > > But inheritance and composition didn't get me very far for these joiners, > which is what I was trying to say in my original email. Inheritance with > state is error-prone (from my experience). And composition meant that I was > making my code brittle. What if those methods I am depending upon need to > change? > > So I went back to making each joiner be its own thing. In reality, most of > my custom Joiners were either a simple record implementing the Joiner, or > an anonymous class. Records are fine, but you start to run out of > reasonable names when you have 5 different records that do close to the > same thing. I kind of found a compromise by creating the record Joiner > inside the method itself that I am working in (or the class if other > methods need it too). That way, it's scoped off from the rest of the world. > But considering how many I was making, it felt like a clunky solution. I'm > fine peppering my code base with inlined records all over the place *as > long as those records don't have a body*. But once they do, it starts to > get annoying, and makes the code harder to read and skim. > > From there, I thought about making a factory. You know the rest of the > story. > > > For #4 and #5 then its surprising that there is RPC > > or split/join in the onComplete method. The > > onComplete method is called with the completed > > subtask and any exception/error executing > > onComplete isn't going to change the subtask > > status. Is there a reason you've chosen to put > > that code there rather than in the subtasks? > > Yeah. Long story short, if that RPC call or the nested scope fails, well > the literal goal that I created this scope to do (contruct an object) has, > in effect, failed. That's grounds to just throw an exception and see if > someone upstream can handle it. Maybe a retry or something. > > To me, it felt like I was keeping inline with what onComplete was trying > to do -- sort of be an AOP-like post-processing joinpoint. If the contents > of onComplete fails, well then the goal was unattainable anyways, so > killing the scope via thrown exception doesn't feel wrong. And the > exception will propagate, so it felt like I was following right along with > how the spec intended things to go. Granted, I certainly am marching on the > edge here, I'll concede that. > > > (for his API then the question as to "where" to > > put code is a good discussion as it may not be > > always obvious whether to code should execute in > > the subtask, in the Joiner handling subtask > > completion, or in the main task in the processing > > after join. > > I would love a short guide on what code to put in what place. This looks > to be a pretty integral API for handling a large number of tasks moving > forward, so I see value in it. > > > On Sun, Aug 17, 2025 at 1:13?PM Alan Bateman > wrote: > >> On 16/08/2025 20:23, David Alayachew wrote: >> >> : >> >> Sure. Let me highlight 5 of them. Let me know if you need more examples >> -- I have about 30+ custom implementations. >> >> >> Thanks for sharing this selection. >> >> I will guess that #1, #2, and #5 are relatively simpler Joiner >> implementations, is there really any benefit to use composition or >> inheritance here? >> >> For #4 and #5 then its surprising that there is RPC or split/join in the >> onComplete method. The onComplete method is called with the completed >> subtask and any exception/error executing onComplete isn't going to change >> the subtask status. Is there a reason you've chosen to put that code there >> rather than in the subtasks? (for his API then the question as to "where" >> to put code is a good discussion as it may not be always obvious whether to >> code should execute in the subtask, in the Joiner handling subtask >> completion, or in the main task in the processing after join. >> >> -Alan >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From rengels at ix.netcom.com Sun Aug 17 22:19:40 2025 From: rengels at ix.netcom.com (robert engels) Date: Sun, 17 Aug 2025 17:19:40 -0500 Subject: My experience with Structured Concurrency In-Reply-To: References: <82b1331d-b33a-4f31-9621-059dc5db4791@oracle.com> <9B8A55C2-DAFE-4828-9A8C-744BC8FF8BF1@ix.netcom.com> Message-ID: Exactly, in my experience if you are creating lots of classes with slight differences you are not only missing an opportunity for DRY, but you are increasing the cognitive load substantially - i.e. understanding the code base (without lots of jumping around). I haven?t dug deep into your use case, but it sounds like an XXXErrorHandler(s) based anonymous class(es) with properly defined extensions/callbacks would allow a code reader at the site to see the specialized handling these requests take - rather than trying to name all of the scenarios and then have to understand them and remember what all of them mean. It does make testing a bit different - but I may be an outlier here - and I think more black box testing is beneficial anyway - rather than trying to test each handling implementation (if the interfaces/bases are properly designed, the extension code should be trivial and hard to mess up). > On Aug 17, 2025, at 4:46?PM, David Alayachew wrote: > > Can you give an example? I used Anonymous classes in my solutions, but most of them were just based off of the Joiner interface. > > I guess I could introduce some state into the abstract class, and then just tweak it for my needs. And obviously, I'd need a new abstract class for each "category" of joiner. Then from there, just implement it inline, making each inline case cheaper. Is that what you are hinting to? > > On Sun, Aug 17, 2025, 5:28?PM robert engels > wrote: >> Isn?t this a perfect use of an anonymous class with a base class? >> >>> On Aug 17, 2025, at 4:00?PM, David Alayachew > wrote: >>> >>> > I will guess that #1, #2, and #5 are relatively >>> > simpler Joiner implementations, is there really >>> > any benefit to use composition or inheritance here? >>> >>> Sorry, I have been unclear. Let me clarify. >>> >>> Yes, it is not hard at all to implement #1, #2, and #5 at all. But I don't have 5 joiners. I have well past 30 of them. >>> >>> Most of my joiners are very similar to each other. The 5 I showed you are most of the major "categories" of joiners I would make. But each category would have many derivatives of it. >>> >>> For example, #2 had a derivative that was the same, but for multiple Exception types as opposed to just one. Another derivative of #2 would go past a type test, and actually look at the fields of the Exception (like HTTP Error Code). Yet another would go one level deep, in case the exception was wrapped (like wrapping an HTTP Exception in a RuntimeException). >>> >>> So I started making a whole new class each time I wanted to do almost the same thing. But you start to run out of names that accurately describe what you are doing. And yeah, some joiners are going to be heavily reused, so it makes sense for them to have a whole type (and maybe source file). But many won't either. >>> >>> Once I realized that I was making a bunch of the same thing with minor variations, that's when I started thinking about inheritance and composition. Sorry if I made it sound like that's what I first jumped to. No, I thought about inheritance and composition because those are usually the default answers to the question of "How do I do what T is doing, but with a minor variation?" >>> >>> But inheritance and composition didn't get me very far for these joiners, which is what I was trying to say in my original email. Inheritance with state is error-prone (from my experience). And composition meant that I was making my code brittle. What if those methods I am depending upon need to change? >>> >>> So I went back to making each joiner be its own thing. In reality, most of my custom Joiners were either a simple record implementing the Joiner, or an anonymous class. Records are fine, but you start to run out of reasonable names when you have 5 different records that do close to the same thing. I kind of found a compromise by creating the record Joiner inside the method itself that I am working in (or the class if other methods need it too). That way, it's scoped off from the rest of the world. But considering how many I was making, it felt like a clunky solution. I'm fine peppering my code base with inlined records all over the place *as long as those records don't have a body*. But once they do, it starts to get annoying, and makes the code harder to read and skim. >>> >>> From there, I thought about making a factory. You know the rest of the story. >>> >>> > For #4 and #5 then its surprising that there is RPC >>> > or split/join in the onComplete method. The >>> > onComplete method is called with the completed >>> > subtask and any exception/error executing >>> > onComplete isn't going to change the subtask >>> > status. Is there a reason you've chosen to put >>> > that code there rather than in the subtasks? >>> >>> Yeah. Long story short, if that RPC call or the nested scope fails, well the literal goal that I created this scope to do (contruct an object) has, in effect, failed. That's grounds to just throw an exception and see if someone upstream can handle it. Maybe a retry or something. >>> >>> To me, it felt like I was keeping inline with what onComplete was trying to do -- sort of be an AOP-like post-processing joinpoint. If the contents of onComplete fails, well then the goal was unattainable anyways, so killing the scope via thrown exception doesn't feel wrong. And the exception will propagate, so it felt like I was following right along with how the spec intended things to go. Granted, I certainly am marching on the edge here, I'll concede that. >>> >>> > (for his API then the question as to "where" to >>> > put code is a good discussion as it may not be >>> > always obvious whether to code should execute in >>> > the subtask, in the Joiner handling subtask >>> > completion, or in the main task in the processing >>> > after join. >>> >>> I would love a short guide on what code to put in what place. This looks to be a pretty integral API for handling a large number of tasks moving forward, so I see value in it. >>> >>> >>> On Sun, Aug 17, 2025 at 1:13?PM Alan Bateman > wrote: >>>> On 16/08/2025 20:23, David Alayachew wrote: >>>>> : >>>>> >>>>> Sure. Let me highlight 5 of them. Let me know if you need more examples -- I have about 30+ custom implementations. >>>> >>>> Thanks for sharing this selection. >>>> >>>> I will guess that #1, #2, and #5 are relatively simpler Joiner implementations, is there really any benefit to use composition or inheritance here? >>>> >>>> For #4 and #5 then its surprising that there is RPC or split/join in the onComplete method. The onComplete method is called with the completed subtask and any exception/error executing onComplete isn't going to change the subtask status. Is there a reason you've chosen to put that code there rather than in the subtasks? (for his API then the question as to "where" to put code is a good discussion as it may not be always obvious whether to code should execute in the subtask, in the Joiner handling subtask completion, or in the main task in the processing after join. >>>> >>>> -Alan >> -------------- next part -------------- An HTML attachment was scrubbed... URL: