/** * Create a new async result which exposes the given exception as an * {@link ExecutionException} from {@link Future#get()}. * @param ex the exception to expose (either an pre-built {@link ExecutionException} * or a cause to be wrapped in an {@link ExecutionException}) * @since 4.2 * @see ExecutionException */ public static <V> ListenableFuture<V> forExecutionException(Throwable ex) { return new AsyncResult<>(null, ex); }
/** * Create a new async result which exposes the given value from {@link Future#get()}. * @param value the value to expose * @since 4.2 * @see Future#get() */ public static <V> ListenableFuture<V> forValue(V value) { return new AsyncResult<>(value, null); }
public Future<Integer> incrementReturningAFuture() { counter++; return new AsyncResult<Integer>(5); } }
@Async public Future<Integer> incrementReturningAFuture() { counter++; return new AsyncResult<Integer>(5); }
@Async("e2") public Future<Thread> work3() { return new AsyncResult<>(Thread.currentThread()); } }
@Async("e1") public Future<Thread> work() { return new AsyncResult<>(Thread.currentThread()); }
@Async public Future<Thread> work0() { return new AsyncResult<>(Thread.currentThread()); }
@Async public Future<Thread> defaultWork() { return new AsyncResult<Thread>(Thread.currentThread()); }
public Future<String> returnSomething(int i) { assertTrue(!Thread.currentThread().getName().equals(originalThreadName)); return new AsyncResult<>(Integer.toString(i)); } }
@Override public Future<String> returnSomething(int i) { assertTrue(!Thread.currentThread().getName().equals(originalThreadName)); return new AsyncResult<>(Integer.toString(i)); } }
public Future<String> returnSomething(int i) { assertTrue(!Thread.currentThread().getName().equals(originalThreadName)); if (i == 0) { throw new IllegalArgumentException(); } return new AsyncResult<>(Integer.toString(i)); }
public ListenableFuture<String> returnSomethingListenable(int i) { assertTrue(!Thread.currentThread().getName().equals(originalThreadName)); if (i == 0) { throw new IllegalArgumentException(); } return new AsyncResult<>(Integer.toString(i)); }
@Override public Future<String> returnSomething(int i) { assertTrue(!Thread.currentThread().getName().equals(originalThreadName)); return new AsyncResult<>(Integer.toString(i)); } }
@Override public Object invoke(MethodInvocation invocation) throws Throwable { assertTrue(!Thread.currentThread().getName().equals(originalThreadName)); if (Future.class.equals(invocation.getMethod().getReturnType())) { return new AsyncResult<>(invocation.getArguments()[0].toString()); } return null; } });
@Override public Object invoke(MethodInvocation invocation) throws Throwable { assertTrue(!Thread.currentThread().getName().equals(originalThreadName)); if (Future.class.equals(invocation.getMethod().getReturnType())) { return new AsyncResult<>(invocation.getArguments()[0].toString()); } return null; } });
@Override public Future<String> asyncFoo(int id) { return new AsyncResult<>(this.fooDao.findFoo(id)); }
public Future<String> returnSomething2(int i) { assertTrue(!Thread.currentThread().getName().equals(originalThreadName)); assertTrue(Thread.currentThread().getName().startsWith("e0-")); return new AsyncResult<>(Integer.toString(i)); } }
@Async public ListenableFuture<String> returnSomethingListenable(int i) { assertTrue(!Thread.currentThread().getName().equals(originalThreadName)); if (i == 0) { throw new IllegalArgumentException(); } else if (i < 0) { return AsyncResult.forExecutionException(new IOException()); } return new AsyncResult<>(Integer.toString(i)); }
@MyAsync public Future<String> returnSomething(int i) { assertTrue(!Thread.currentThread().getName().equals(originalThreadName)); assertTrue(Thread.currentThread().getName().startsWith("e2-")); return new AsyncResult<>(Integer.toString(i)); }
@Override public Future<String> asyncFoo(int id) { System.out.println(Thread.currentThread().getName()); Assert.state(ServiceInvocationCounter.getThreadLocalCount() != null, "Thread-local counter not exposed"); return new AsyncResult<>(fooDao().findFoo(id)); }