@Override public void onFailure(Throwable ex) { result.setErrorResult(ex); } });
@Override public void onError(Throwable ex) { this.result.setErrorResult(ex); }
@Override public void completeWithError(Throwable failure) { this.deferredResult.setErrorResult(failure); }
@Override public void onFailure(Throwable ex) { result.setErrorResult(ex); } });
@Override public void onError(Throwable ex) { this.result.setErrorResult(ex); }
@Override public void completeWithError(Throwable failure) { this.deferredResult.setErrorResult(failure); }
@Override public <T> boolean handleError(NativeWebRequest request, DeferredResult<T> result, Throwable t) throws Exception { result.setErrorResult(t); return true; } };
@Override public <T> boolean handleTimeout(NativeWebRequest request, DeferredResult<T> result) throws Exception { result.setErrorResult(23); return true; } };
@Override public <T> boolean handleTimeout(NativeWebRequest request, DeferredResult<T> result) throws Exception { result.setErrorResult(new AsyncRequestTimeoutException()); return false; }
public void run() { try { Thread.sleep(100); deferredResult.setErrorResult(new RuntimeException("Delayed Error")); } catch (InterruptedException e) { /* no-op */ } } }.start();
@Override public <T> boolean handleTimeout(NativeWebRequest request, DeferredResult<T> result) throws Exception { result.setErrorResult(new AsyncRequestTimeoutException()); return false; }
private DeferredResult<Object> adaptCompletionStage(CompletionStage<?> future) { DeferredResult<Object> result = new DeferredResult<>(); future.handle((BiFunction<Object, Throwable, Object>) (value, ex) -> { if (ex != null) { result.setErrorResult(ex); } else { result.setResult(value); } return null; }); return result; }
private DeferredResult<Object> adaptCompletionStage(CompletionStage<?> future) { DeferredResult<Object> result = new DeferredResult<>(); future.handle((BiFunction<Object, Throwable, Object>) (value, ex) -> { if (ex != null) { result.setErrorResult(ex); } else { result.setResult(value); } return null; }); return result; }
@Test public void deferredResult() throws Exception { DeferredResult<String> result = new DeferredResult<>(); IllegalStateException ex = new IllegalStateException(); testHandle(result, DeferredResult.class, () -> result.setErrorResult(ex), ex); }
return; deferredResult.setErrorResult(ex);
return; deferredResult.setErrorResult(ex);
@Override public void onFailure(Throwable t) { deferredResult.setErrorResult(failure == null ? t : failure.apply(t)); } });
@Override public <T> boolean handleTimeout(NativeWebRequest request, DeferredResult<T> result) throws Exception { result.setErrorResult(new AsyncRequestTimeoutException()); return false; }
@GetMapping(path = ASYNC_ERROR_PATH) @SuppressWarnings("unused") public DeferredResult<String> getAsyncError() { logger.info("Async error endpoint hit"); sleepThread(SLEEP_TIME_MILLIS); DeferredResult<String> deferredResult = new DeferredResult<>(); deferredResult.setErrorResult(new RuntimeException("Intentional exception by asyncError endpoint")); return deferredResult; }
@Override public void onFailure(Throwable e) { result.setErrorResult( RestResponseBuilder.<Void> builder().error(new RestError(RestErrorCode.UNCATEGORIZED_ERROR.getCode(), e.getMessage())).build()); } });