RFR: 8331987: Enhance stacktrace clarity for CompletableFuture CancellationException
Viktor Klang
vklang at openjdk.org
Mon May 13 16:50:17 UTC 2024
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
-------------
Commit messages:
- Make it possible to customize the message when wrapping a CancellationException
- Adding wrapping of CompletableFuture CancellationExceptions from get() and join() to add diagnostic information
Changes: https://git.openjdk.org/jdk/pull/19219/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19219&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8331987
Stats: 29 lines in 3 files changed: 25 ins; 0 del; 4 mod
Patch: https://git.openjdk.org/jdk/pull/19219.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/19219/head:pull/19219
PR: https://git.openjdk.org/jdk/pull/19219
More information about the core-libs-dev
mailing list