--- jsr166/src/test/tck/CompletableFutureTest.java 2016/09/21 18:01:06 1.174 +++ jsr166/src/test/tck/CompletableFutureTest.java 2016/09/21 18:07:37 1.175 @@ -4058,6 +4058,23 @@ public class CompletableFutureTest exten checkCompletedNormally(minimal.toCompletableFuture(), v1); }} + /** + * Completion of a toCompletableFuture copy of a minimal stage + * does not complete its source. + */ + public void testMinimalCompletionStage_toCompletableFuture_oneWayPropagation() { + CompletableFuture f = new CompletableFuture<>(); + CompletionStage g = f.minimalCompletionStage(); + assertTrue(g.toCompletableFuture().complete(1)); + assertTrue(g.toCompletableFuture().complete(null)); + assertTrue(g.toCompletableFuture().cancel(true)); + assertTrue(g.toCompletableFuture().cancel(false)); + assertTrue(g.toCompletableFuture().completeExceptionally(new CFException())); + checkIncomplete(g.toCompletableFuture()); + f.complete(1); + checkCompletedNormally(g.toCompletableFuture(), 1); + } + /** Demo utility method for external reliable toCompletableFuture */ static CompletableFuture toCompletableFuture(CompletionStage stage) { CompletableFuture f = new CompletableFuture<>();