RFR: 8331987: Enhance stacktrace clarity for CompletableFuture CancellationException
Chen Liang
liach at openjdk.org
Mon May 13 17:10:05 UTC 2024
On Mon, 13 May 2024 16:41:37 GMT, Viktor Klang <vklang at 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/CancellationException.java line 72:
> 70: * @param cause the underlying cancellation exception
> 71: */
> 72: CancellationException(String message, CancellationException cause) {
Can we remove the message argument, which is always empty?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/19219#discussion_r1598786142
More information about the core-libs-dev
mailing list