--- jsr166/src/jsr166e/CompletableFuture.java 2013/02/06 07:07:48 1.10
+++ jsr166/src/jsr166e/CompletableFuture.java 2013/05/20 16:16:42 1.17
@@ -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.
*/
@@ -1053,7 +1053,7 @@ public class CompletableFuture implem
(r = a.result) != null &&
compareAndSet(0, 1)) {
if ((r instanceof AltResult) &&
- (ex = ((AltResult)r).ex) != null) {
+ (ex = ((AltResult)r).ex) != null) {
try {
t = fn.apply(ex);
} catch (Throwable rex) {
@@ -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 extends U> other,
BiFun super T,? super U,? extends V> fn,
Executor executor) {
@@ -2531,7 +2526,7 @@ public class CompletableFuture implem
if (r != null && (d == null || d.compareAndSet(0, 1))) {
T t = null; Throwable ex, dx = null;
if (r instanceof AltResult) {
- if ((ex = ((AltResult)r).ex) != null) {
+ if ((ex = ((AltResult)r).ex) != null) {
try {
t = fn.apply(ex);
} catch (Throwable rex) {
@@ -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 super T, Throwable, ? extends U> fn) {
@@ -2633,9 +2627,8 @@ public class CompletableFuture implem
*/
public boolean isCancelled() {
Object r;
- return ((r = result) != null &&
- (r instanceof AltResult) &&
- (((AltResult)r).ex instanceof CancellationException));
+ return ((r = result) instanceof AltResult) &&
+ (((AltResult)r).ex instanceof CancellationException);
}
/**