-
Bug
-
Resolution: Not an Issue
-
P4
-
None
-
8, 9
-
generic
-
generic
FULL PRODUCT VERSION :
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Darwin delta.local 16.5.0 Darwin Kernel Version 16.5.0: Fri Mar 3 16:52:33 PST 2017; root:xnu-3789.51.2~3/RELEASE_X86_64 x86_64
A DESCRIPTION OF THE PROBLEM :
Code:
```
public static class JoinBug {
public static void main(String[] args) {
CompletableFuture<Object> f1 = new CompletableFuture<>();
CompletableFuture<Object> f2 = f1.thenApply(x -> x);
new Thread(() -> f1.completeExceptionally(new RuntimeException())).start();
// prints stack trace without current thread
f2.join();
}
}
```
It prints stack trace.
Stack trace does not include current thread stack trace (e. g. method main).
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Stack trace should include current thread (thread which calls "join") frames.
ACTUAL -
Exception in thread "main" java.util.concurrent.CompletionException: java.lang.RuntimeException
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:292)
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:308)
at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:593)
at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:577)
at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1977)
at ru.yandex.misc.concurrent.CompletableFutures$JoinBug.lambda$main$7(CompletableFutures.java:208)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException
... 2 more
REPRODUCIBILITY :
This bug can be reproduced always.
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Darwin delta.local 16.5.0 Darwin Kernel Version 16.5.0: Fri Mar 3 16:52:33 PST 2017; root:xnu-3789.51.2~3/RELEASE_X86_64 x86_64
A DESCRIPTION OF THE PROBLEM :
Code:
```
public static class JoinBug {
public static void main(String[] args) {
CompletableFuture<Object> f1 = new CompletableFuture<>();
CompletableFuture<Object> f2 = f1.thenApply(x -> x);
new Thread(() -> f1.completeExceptionally(new RuntimeException())).start();
// prints stack trace without current thread
f2.join();
}
}
```
It prints stack trace.
Stack trace does not include current thread stack trace (e. g. method main).
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Stack trace should include current thread (thread which calls "join") frames.
ACTUAL -
Exception in thread "main" java.util.concurrent.CompletionException: java.lang.RuntimeException
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:292)
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:308)
at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:593)
at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:577)
at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1977)
at ru.yandex.misc.concurrent.CompletableFutures$JoinBug.lambda$main$7(CompletableFutures.java:208)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException
... 2 more
REPRODUCIBILITY :
This bug can be reproduced always.