Я играю с 'ListenableFutureCallback'.onSuccess () работает нормально, но onFailure никогда не вызывается.Ниже приведен пример кода.
@Service
public class AsyncClass {
@Async
public ListenableFuture<String> execute(Callable<String> callable) throws Exception {
String str = callable.call();
//To force an exception to occur
str.toString();
return new AsyncResult<>(str);
}
}
public void futureMethod(String str) throws Exception {
AsyncClass asyncClass = new AsyncClass();
ListenableFuture<String> future = asyncClass.execute(() -> {
return str;
});
future.addCallback(new ListenableFutureCallback<Object>() {
@Override
public void onFailure(Throwable ex) {
System.out.println("FAIL");
}
@Override
public void onSuccess(Object result) {
System.out.println("SUCCESS");
}
});
}
onSuccess работает правильно.
futureMethod("test value");
Console: SUCCESS
onFailure, однако, не работает.
futureMethod(null);
Console: java.lang.NullPointerException: null