On Mon, 13 May 2024 17:06:10 GMT, Viktor Klang <vkl...@openjdk.org> wrote:
>> This change adds wrapping of the CancellationException produced by >> CompletableFuture::get() and CompletableFuture::join() to add more >> diagnostic information and align better with FutureTask. >> >> Running the sample code from the JBS issue in JShell will produce the >> following: >> >> >> jshell> java.util.concurrent.CancellationException: >> at >> java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:392) >> at >> java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2073) >> at REPL.$JShell$18.m2($JShell$18.java:10) >> at REPL.$JShell$17.m1($JShell$17.java:8) >> at REPL.$JShell$16B.lambda$main$0($JShell$16B.java:8) >> at java.base/java.lang.Thread.run(Thread.java:1575) >> Caused by: java.util.concurrent.CancellationException >> at >> java.base/java.util.concurrent.CompletableFuture.cancel(CompletableFuture.java:2510) >> at REPL.$JShell$16B.lambda$main$1($JShell$16B.java:11) >> ... 1 more > > src/java.base/share/classes/java/util/concurrent/CompletableFuture.java line > 392: > >> 390: return null; >> 391: if (x instanceof CancellationException) >> 392: throw new CancellationException("", >> (CancellationException)x); > > One option here would be to put "CompletableFuture.get()" or "get()" as a > message. Given the serviceability motivation, the overkill of adding "get" and "join" strings seems reasonable. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/19219#discussion_r1598868469