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.199 by dl, Thu Sep 20 00:01:22 2018 UTC vs.
Revision 1.207 by jsr166, Sun Sep 23 02:06:28 2018 UTC

# Line 551 | Line 551 | public class CompletableFutureTest exten
551          public CompletableFuture<Integer> apply(Integer x) {
552              invoked();
553              value = x;
554 <            CompletableFuture<Integer> f = new CompletableFuture<>();
555 <            assertTrue(f.complete(inc(x)));
556 <            return f;
554 >            return CompletableFuture.completedFuture(inc(x));
555          }
556      }
557  
# Line 574 | Line 572 | public class CompletableFutureTest exten
572          ExceptionalCompletableFutureFunction(ExecutionMode m) { super(m); }
573          public CompletionStage<Integer> apply(Throwable x) {
574              invoked();
575 <            CompletableFuture<Integer> d = new CompletableFuture<Integer>();
578 <            d.complete(value);
579 <            return d;
575 >            return CompletableFuture.completedFuture(value);
576          }
577      }
578  
# Line 930 | Line 926 | public class CompletableFutureTest exten
926          for (boolean createIncomplete : new boolean[] { true, false })
927          for (Integer v1 : new Integer[] { 1, null })
928      {
933        final AtomicInteger a = new AtomicInteger(0);
929          final CompletableFuture<Integer> f = new CompletableFuture<>();
930          if (!createIncomplete) assertTrue(f.complete(v1));
931          final CompletableFuture<Integer> g = m.exceptionally
932              (f, (Throwable t) -> {
938                a.getAndIncrement();
933                  threadFail("should not be called");
934                  return null;            // unreached
935              });
# Line 943 | Line 937 | public class CompletableFutureTest exten
937  
938          checkCompletedNormally(g, v1);
939          checkCompletedNormally(f, v1);
946        assertEquals(0, a.get());
940      }}
941  
942      /**
# Line 4784 | Line 4777 | public class CompletableFutureTest exten
4777      }
4778  
4779      /**
4780 +     * default-implemented exceptionallyAsync action is not invoked when
4781 +     * source completes normally, and source result is propagated
4782 +     */
4783 +    public void testDefaultExceptionallyAsync_normalCompletion() {
4784 +        for (boolean createIncomplete : new boolean[] { true, false })
4785 +        for (Integer v1 : new Integer[] { 1, null })
4786 +    {
4787 +        final CompletableFuture<Integer> f = new CompletableFuture<>();
4788 +        final DelegatedCompletionStage<Integer> d =
4789 +            new DelegatedCompletionStage<Integer>(f);
4790 +        if (!createIncomplete) assertTrue(f.complete(v1));
4791 +        final CompletionStage<Integer> g = d.exceptionallyAsync
4792 +            ((Throwable t) -> {
4793 +                threadFail("should not be called");
4794 +                return null;            // unreached
4795 +            });
4796 +        if (createIncomplete) assertTrue(f.complete(v1));
4797 +
4798 +        checkCompletedNormally(g.toCompletableFuture(), v1);
4799 +    }}
4800 +
4801 +    /**
4802       * default-implemented exceptionallyAsync action completes with
4803       * function value on source exception
4804       */
4805 <    public void testDefaulExceptionallyAsync_exceptionalCompletion() {
4805 >    public void testDefaultExceptionallyAsync_exceptionalCompletion() {
4806          for (boolean createIncomplete : new boolean[] { true, false })
4807          for (Integer v1 : new Integer[] { 1, null })
4808      {
# Line 4814 | Line 4829 | public class CompletableFutureTest exten
4829       * throws an exception, it completes exceptionally with that
4830       * exception
4831       */
4832 <    public void testDefaulExceptionallyAsync_exceptionalCompletionActionFailed() {
4832 >    public void testDefaultExceptionallyAsync_exceptionalCompletionActionFailed() {
4833          for (boolean createIncomplete : new boolean[] { true, false })
4834      {
4835          final AtomicInteger a = new AtomicInteger(0);
# Line 4839 | Line 4854 | public class CompletableFutureTest exten
4854      }}
4855  
4856      /**
4857 <     * defult exceptionallyCompose result completes normally after normal
4857 >     * default exceptionallyCompose result completes normally after normal
4858       * completion of source
4859       */
4860      public void testDefaultExceptionallyCompose_normalCompletion() {
# Line 4906 | Line 4921 | public class CompletableFutureTest exten
4921      }}
4922  
4923      /**
4924 <     * defult exceptionallyComposeAsync result completes normally after normal
4924 >     * default exceptionallyComposeAsync result completes normally after normal
4925       * completion of source
4926       */
4927      public void testDefaultExceptionallyComposeAsync_normalCompletion() {
# Line 4974 | Line 4989 | public class CompletableFutureTest exten
4989  
4990  
4991      /**
4992 <     * defult exceptionallyComposeAsync result completes normally after normal
4992 >     * default exceptionallyComposeAsync result completes normally after normal
4993       * completion of source
4994       */
4995      public void testDefaultExceptionallyComposeAsyncExecutor_normalCompletion() {
# Line 4987 | Line 5002 | public class CompletableFutureTest exten
5002          final DelegatedCompletionStage<Integer> d =
5003              new DelegatedCompletionStage<Integer>(f);
5004          if (!createIncomplete) assertTrue(f.complete(v1));
5005 <        final CompletionStage<Integer> g = d.exceptionallyComposeAsync(r,  new ThreadExecutor());
5005 >        final CompletionStage<Integer> g = d.exceptionallyComposeAsync(r, new ThreadExecutor());
5006          if (createIncomplete) assertTrue(f.complete(v1));
5007  
5008          checkCompletedNormally(f, v1);
# Line 5009 | Line 5024 | public class CompletableFutureTest exten
5024          final DelegatedCompletionStage<Integer> d =
5025              new DelegatedCompletionStage<Integer>(f);
5026          if (!createIncomplete) f.completeExceptionally(ex);
5027 <        final CompletionStage<Integer> g = d.exceptionallyComposeAsync(r,  new ThreadExecutor());
5027 >        final CompletionStage<Integer> g = d.exceptionallyComposeAsync(r, new ThreadExecutor());
5028          if (createIncomplete) f.completeExceptionally(ex);
5029  
5030          checkCompletedExceptionally(f, ex);
# Line 5032 | Line 5047 | public class CompletableFutureTest exten
5047          final DelegatedCompletionStage<Integer> d =
5048              new DelegatedCompletionStage<Integer>(f);
5049          if (!createIncomplete) f.completeExceptionally(ex);
5050 <        final CompletionStage<Integer> g = d.exceptionallyComposeAsync(r,  new ThreadExecutor());
5050 >        final CompletionStage<Integer> g = d.exceptionallyComposeAsync(r, new ThreadExecutor());
5051          if (createIncomplete) f.completeExceptionally(ex);
5052  
5053          checkCompletedExceptionally(f, ex);
# Line 5041 | Line 5056 | public class CompletableFutureTest exten
5056      }}
5057  
5058   }
5044

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines