001
014
015 package com.liferay.portal.kernel.concurrent;
016
017 import java.util.concurrent.ExecutionException;
018 import java.util.concurrent.Future;
019
020
023 public class BaseFutureListener<T> implements FutureListener<T> {
024
025 @Override
026 public final void complete(Future<T> future) {
027 if (future.isCancelled()) {
028 completeWithCancel(future);
029
030 return;
031 }
032
033 try {
034 completeWithResult(future, future.get());
035 }
036 catch (Throwable t) {
037 if (t instanceof ExecutionException) {
038 t = t.getCause();
039 }
040
041 completeWithException(future, t);
042 }
043 }
044
045 public void completeWithCancel(Future<T> future) {
046 }
047
048 public void completeWithException(Future<T> future, Throwable throwable) {
049 }
050
051 public void completeWithResult(Future<T> future, T result) {
052 }
053
054 }