List of usage examples for org.springframework.web.context.request.async DeferredResult hasResult
public boolean hasResult()
From source file:com.kixeye.chassis.transport.websocket.responseconverter.ObservableResponseConverter.java
@Override public DeferredResult<Object> convertToDeferredResult(Object response) { final DeferredResult<Object> deferredResult = new DeferredResult<>(); ((Observable<?>) response).subscribe(new Observer<Object>() { @Override/*w ww. ja v a 2 s . co m*/ public void onCompleted() { if (!deferredResult.hasResult()) { deferredResult.setResult(null); } } @Override public void onError(Throwable e) { deferredResult.setErrorResult(e); } @Override public void onNext(Object args) { deferredResult.setResult(args); } }); return deferredResult; }
From source file:com.kixeye.chassis.transport.http.ObserableReturnValueHandler.java
@Override public void handleReturnValue(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception { if (returnValue == null) { mavContainer.setRequestHandled(true); return;/*from w w w .j av a2 s . co m*/ } final DeferredResult<Object> deferredResult = new DeferredResult<>(); ((Observable<?>) returnValue).subscribe(new Observer<Object>() { @Override public void onCompleted() { if (!deferredResult.hasResult()) { logger.error("onComplete before onNext"); deferredResult.setResult(null); } } @Override public void onError(Throwable e) { deferredResult.setErrorResult(e); } @Override public void onNext(Object args) { deferredResult.setResult(args); } }); WebAsyncUtils.getAsyncManager(webRequest).startDeferredResultProcessing(deferredResult, mavContainer); }