ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/tck/CompletableFutureTest.java
(Generate patch)

Comparing jsr166/src/test/tck/CompletableFutureTest.java (file contents):
Revision 1.203 by jsr166, Sat Sep 22 22:25:12 2018 UTC vs.
Revision 1.206 by jsr166, Sun Sep 23 02:04:03 2018 UTC

# Line 4780 | Line 4780 | public class CompletableFutureTest exten
4780      }
4781  
4782      /**
4783 +     * default-implemented exceptionallyAsync action is not invoked when
4784 +     * source completes normally, and source result is propagated
4785 +     */
4786 +    public void testDefaultExceptionallyAsync_normalCompletion() {
4787 +        for (boolean createIncomplete : new boolean[] { true, false })
4788 +        for (Integer v1 : new Integer[] { 1, null })
4789 +    {
4790 +        final CompletableFuture<Integer> f = new CompletableFuture<>();
4791 +        final DelegatedCompletionStage<Integer> d =
4792 +            new DelegatedCompletionStage<Integer>(f);
4793 +        if (!createIncomplete) assertTrue(f.complete(v1));
4794 +        final CompletionStage<Integer> g = d.exceptionallyAsync
4795 +            ((Throwable t) -> {
4796 +                threadFail("should not be called");
4797 +                return null;            // unreached
4798 +            });
4799 +        if (createIncomplete) assertTrue(f.complete(v1));
4800 +
4801 +        checkCompletedNormally(g.toCompletableFuture(), v1);
4802 +    }}
4803 +
4804 +    /**
4805       * default-implemented exceptionallyAsync action completes with
4806       * function value on source exception
4807       */
4808 <    public void testDefaulExceptionallyAsync_exceptionalCompletion() {
4808 >    public void testDefaultExceptionallyAsync_exceptionalCompletion() {
4809          for (boolean createIncomplete : new boolean[] { true, false })
4810          for (Integer v1 : new Integer[] { 1, null })
4811      {
# Line 4810 | Line 4832 | public class CompletableFutureTest exten
4832       * throws an exception, it completes exceptionally with that
4833       * exception
4834       */
4835 <    public void testDefaulExceptionallyAsync_exceptionalCompletionActionFailed() {
4835 >    public void testDefaultExceptionallyAsync_exceptionalCompletionActionFailed() {
4836          for (boolean createIncomplete : new boolean[] { true, false })
4837      {
4838          final AtomicInteger a = new AtomicInteger(0);
# Line 4983 | Line 5005 | public class CompletableFutureTest exten
5005          final DelegatedCompletionStage<Integer> d =
5006              new DelegatedCompletionStage<Integer>(f);
5007          if (!createIncomplete) assertTrue(f.complete(v1));
5008 <        final CompletionStage<Integer> g = d.exceptionallyComposeAsync(r,  new ThreadExecutor());
5008 >        final CompletionStage<Integer> g = d.exceptionallyComposeAsync(r, new ThreadExecutor());
5009          if (createIncomplete) assertTrue(f.complete(v1));
5010  
5011          checkCompletedNormally(f, v1);
# Line 5005 | Line 5027 | public class CompletableFutureTest exten
5027          final DelegatedCompletionStage<Integer> d =
5028              new DelegatedCompletionStage<Integer>(f);
5029          if (!createIncomplete) f.completeExceptionally(ex);
5030 <        final CompletionStage<Integer> g = d.exceptionallyComposeAsync(r,  new ThreadExecutor());
5030 >        final CompletionStage<Integer> g = d.exceptionallyComposeAsync(r, new ThreadExecutor());
5031          if (createIncomplete) f.completeExceptionally(ex);
5032  
5033          checkCompletedExceptionally(f, ex);
# Line 5028 | Line 5050 | public class CompletableFutureTest exten
5050          final DelegatedCompletionStage<Integer> d =
5051              new DelegatedCompletionStage<Integer>(f);
5052          if (!createIncomplete) f.completeExceptionally(ex);
5053 <        final CompletionStage<Integer> g = d.exceptionallyComposeAsync(r,  new ThreadExecutor());
5053 >        final CompletionStage<Integer> g = d.exceptionallyComposeAsync(r, new ThreadExecutor());
5054          if (createIncomplete) f.completeExceptionally(ex);
5055  
5056          checkCompletedExceptionally(f, ex);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines