On Mon, 13 May 2024 16:41:37 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.

src/java.base/share/classes/java/util/concurrent/CompletableFuture.java line 
410:

> 408:                 return null;
> 409:             if (x instanceof CancellationException)
> 410:                 throw new CancellationException("", 
> (CancellationException)x);

One option here would be to put "CompletableFuture.join()" or "join()" as a 
message.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/19219#discussion_r1598789543
PR Review Comment: https://git.openjdk.org/jdk/pull/19219#discussion_r1598789698

Reply via email to