--- jsr166/src/test/tck/ExecutorCompletionService9Test.java 2016/05/22 15:29:32 1.2 +++ jsr166/src/test/tck/ExecutorCompletionService9Test.java 2021/01/27 01:57:24 1.9 @@ -7,16 +7,14 @@ import java.util.ArrayList; import java.util.Collection; +import java.util.Comparator; import java.util.List; import java.util.Set; -import java.util.HashSet; import java.util.concurrent.Callable; import java.util.concurrent.CompletionService; import java.util.concurrent.ExecutionException; -import java.util.concurrent.ExecutorCompletionService; import java.util.concurrent.Executor; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.ForkJoinPool; +import java.util.concurrent.ExecutorCompletionService; import java.util.concurrent.Future; import junit.framework.Test; @@ -35,7 +33,7 @@ public class ExecutorCompletionService9T throws InterruptedException, ExecutionException { CompletionService cs = new ExecutorCompletionService<>(e); - solvers.forEach((solver) -> cs.submit(solver)); + solvers.forEach(cs::submit); for (int i = solvers.size(); i > 0; i--) { Integer r = cs.take().get(); if (r != null) @@ -52,7 +50,7 @@ public class ExecutorCompletionService9T List> futures = new ArrayList<>(n); Integer result = null; try { - solvers.forEach((solver) -> futures.add(cs.submit(solver))); + solvers.forEach(solver -> futures.add(cs.submit(solver))); for (int i = n; i > 0; i--) { try { Integer r = cs.take().get(); @@ -63,17 +61,17 @@ public class ExecutorCompletionService9T } catch (ExecutionException ignore) {} } } finally { - futures.forEach((future) -> future.cancel(true)); + futures.forEach(future -> future.cancel(true)); } if (result != null) use(result); } - HashSet results; + ArrayList results; void use(Integer x) { - if (results == null) results = new HashSet(); + if (results == null) results = new ArrayList<>(); results.add(x); } @@ -82,14 +80,16 @@ public class ExecutorCompletionService9T */ public void testSolveAll() throws InterruptedException, ExecutionException { + results = null; Set> solvers = Set.of( () -> null, () -> 1, () -> 2, () -> 3, () -> null); - solveAll(ForkJoinPool.commonPool(), solvers); - assertEquals(Set.of(1, 2, 3), results); + solveAll(cachedThreadPool, solvers); + results.sort(Comparator.naturalOrder()); + assertEquals(List.of(1, 2, 3), results); } /** @@ -97,14 +97,15 @@ public class ExecutorCompletionService9T */ public void testSolveAny() throws InterruptedException { + results = null; Set> solvers = Set.of( () -> { throw new ArithmeticException(); }, () -> null, () -> 1, () -> 2); - solveAny(ForkJoinPool.commonPool(), solvers); + solveAny(cachedThreadPool, solvers); assertEquals(1, results.size()); - Integer elt = results.iterator().next(); + Integer elt = results.get(0); assertTrue(elt.equals(1) || elt.equals(2)); }