--- jsr166/src/jsr166e/CompletableFuture.java 2013/02/06 07:51:57 1.11 +++ jsr166/src/jsr166e/CompletableFuture.java 2013/03/17 22:41:04 1.16 @@ -55,7 +55,7 @@ import java.util.concurrent.locks.LockSu * Executor} or by default the {@link ForkJoinPool#commonPool()}, of a * function or action that will result in the completion of a new * CompletableFuture. To simplify monitoring, debugging, and tracking, - * all generated asynchronous tasks are instances of the tagging + * all generated asynchronous tasks are instances of the marker * interface {@link AsynchronousCompletionTask}. * *

jsr166e note: During transition, this class @@ -380,7 +380,7 @@ public class CompletableFuture implem /* ------------- Async tasks -------------- */ /** - * A tagging interface identifying asynchronous tasks produced by + * A marker interface identifying asynchronous tasks produced by * {@code async} methods. This may be useful for monitoring, * debugging, and tracking asynchronous activities. */ @@ -1319,19 +1319,18 @@ public class CompletableFuture implem Object r; Throwable ex, cause; if ((r = result) == null && (r = waitingGet(true)) == null) throw new InterruptedException(); - if (r instanceof AltResult) { - if ((ex = ((AltResult)r).ex) != null) { - if (ex instanceof CancellationException) - throw (CancellationException)ex; - if ((ex instanceof CompletionException) && - (cause = ex.getCause()) != null) - ex = cause; - throw new ExecutionException(ex); - } - return null; + if (!(r instanceof AltResult)) { + @SuppressWarnings("unchecked") T tr = (T) r; + return tr; } - @SuppressWarnings("unchecked") T tr = (T) r; - return tr; + if ((ex = ((AltResult)r).ex) == null) + return null; + if (ex instanceof CancellationException) + throw (CancellationException)ex; + if ((ex instanceof CompletionException) && + (cause = ex.getCause()) != null) + ex = cause; + throw new ExecutionException(ex); } /** @@ -1356,19 +1355,18 @@ public class CompletableFuture implem throw new InterruptedException(); if ((r = result) == null) r = timedAwaitDone(nanos); - if (r instanceof AltResult) { - if ((ex = ((AltResult)r).ex) != null) { - if (ex instanceof CancellationException) - throw (CancellationException)ex; - if ((ex instanceof CompletionException) && - (cause = ex.getCause()) != null) - ex = cause; - throw new ExecutionException(ex); - } - return null; + if (!(r instanceof AltResult)) { + @SuppressWarnings("unchecked") T tr = (T) r; + return tr; } - @SuppressWarnings("unchecked") T tr = (T) r; - return tr; + if ((ex = ((AltResult)r).ex) == null) + return null; + if (ex instanceof CancellationException) + throw (CancellationException)ex; + if ((ex instanceof CompletionException) && + (cause = ex.getCause()) != null) + ex = cause; + throw new ExecutionException(ex); } /** @@ -1389,18 +1387,17 @@ public class CompletableFuture implem Object r; Throwable ex; if ((r = result) == null) r = waitingGet(false); - if (r instanceof AltResult) { - if ((ex = ((AltResult)r).ex) != null) { - if (ex instanceof CancellationException) - throw (CancellationException)ex; - if (ex instanceof CompletionException) - throw (CompletionException)ex; - throw new CompletionException(ex); - } - return null; + if (!(r instanceof AltResult)) { + @SuppressWarnings("unchecked") T tr = (T) r; + return tr; } - @SuppressWarnings("unchecked") T tr = (T) r; - return tr; + if ((ex = ((AltResult)r).ex) == null) + return null; + if (ex instanceof CancellationException) + throw (CancellationException)ex; + if (ex instanceof CompletionException) + throw (CompletionException)ex; + throw new CompletionException(ex); } /** @@ -1417,18 +1414,17 @@ public class CompletableFuture implem Object r; Throwable ex; if ((r = result) == null) return valueIfAbsent; - if (r instanceof AltResult) { - if ((ex = ((AltResult)r).ex) != null) { - if (ex instanceof CancellationException) - throw (CancellationException)ex; - if (ex instanceof CompletionException) - throw (CompletionException)ex; - throw new CompletionException(ex); - } - return null; + if (!(r instanceof AltResult)) { + @SuppressWarnings("unchecked") T tr = (T) r; + return tr; } - @SuppressWarnings("unchecked") T tr = (T) r; - return tr; + if ((ex = ((AltResult)r).ex) == null) + return null; + if (ex instanceof CancellationException) + throw (CancellationException)ex; + if (ex instanceof CompletionException) + throw (CompletionException)ex; + throw new CompletionException(ex); } /** @@ -1792,7 +1788,6 @@ public class CompletableFuture implem * @param executor the executor to use for asynchronous execution * @return the new CompletableFuture */ - public CompletableFuture thenCombineAsync(CompletableFuture other, BiFun fn, Executor executor) { @@ -2559,7 +2554,6 @@ public class CompletableFuture implem * * @param fn the function to use to compute the value of the * returned CompletableFuture - * @return the new CompletableFuture */ public CompletableFuture handle(BiFun fn) {