List of usage examples for org.springframework.web.context.request.async DeferredResult setErrorResult
public boolean setErrorResult(Object result)
From source file:com.sishuok.chapter3.web.interceptor.MyDeferredResultInterceptor.java
@Override public <T> boolean handleTimeout(final NativeWebRequest request, final DeferredResult<T> deferredResult) throws Exception { System.out.println(""); deferredResult.setErrorResult("error");// return true; //return true ?handleTimeout? }
From source file:org.trustedanalytics.kafka.adminapi.api.ApiController.java
@RequestMapping(method = RequestMethod.GET, value = "/topics/{topic}") @ResponseBody// w ww. j av a 2 s.c om public DeferredResult<List<String>> readTopic(@PathVariable final String topic) { LOG.info("readTopic invoked: {}", topic); if (StringUtils.isEmpty(topic)) { throw new InvalidTopicException("Missing mandatory topic name"); } Topic.validate(topic); if (!kafkaService.topicExists(topic)) { throw new UnknownTopicOrPartitionException("Topic does not exist: " + topic); } DeferredResult<List<String>> deferredResult = new DeferredResult<>(); CompletableFuture.supplyAsync(() -> kafkaService.readTopic(topic)) .whenCompleteAsync((result, throwable) -> { deferredResult.setResult(result); deferredResult.setErrorResult(throwable); }); return deferredResult; }
From source file:spring.travel.site.controllers.LoginController.java
@RequestMapping(method = RequestMethod.POST) @ResponseBody/*from www . ja va2 s .co m*/ public DeferredResult<ResponseEntity<User>> login(@Valid @RequestBody LoginData loginData) { DeferredResult<ResponseEntity<User>> result = new DeferredResult<>(); loginService.login(loginData).whenComplete((user, t) -> { if (user.isPresent()) { try { result.setResult(success(user.get())); } catch (AuthException ae) { result.setErrorResult(new UserNotFoundException()); } } else { result.setErrorResult(new UserNotFoundException()); } }); return result; }
From source file:com.sishuok.chapter3.web.listener.ListenerController.java
@RequestMapping("/listener2") @ResponseBody//from w ww . j a va2s. c om public DeferredResult<String> listener2() { final DeferredResult<String> result = new DeferredResult<String>(); result.onTimeout(new Runnable() { @Override public void run() { System.out.println("==="); result.setErrorResult("error"); } }); result.onCompletion(new Runnable() { @Override public void run() { System.out.println("===?"); } }); new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(31 * 1000L); } catch (InterruptedException e) { } System.out.println( "DeferredResult????"); result.setResult("success"); } }).start(); return result; }
From source file:fi.minedu.oiva.backend.spring.handler.CompletionStageReturnValueHandler.java
@SuppressWarnings("unchecked") @Override/* ww w. j av a 2s.c o m*/ public void handleReturnValue(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception { if (returnValue == null) { mavContainer.setRequestHandled(true); return; } final DeferredResult<Object> deferredResult = new DeferredResult<>(); WebAsyncUtils.getAsyncManager(webRequest).startDeferredResultProcessing(deferredResult, mavContainer); CompletionStage<?> future = (CompletionStage<?>) returnValue; future.whenComplete((result, ex) -> { if (ex != null) { deferredResult.setErrorResult(ex); } else { deferredResult.setResult(result); } }); }
From source file:com.chessix.vas.web.AccountController.java
@RequestMapping(value = "/{clasId}/range/from/{start}/count/{count}", method = RequestMethod.POST) public DeferredResult<Object> createAccounts(@PathVariable final String clasId, @PathVariable final String start, @PathVariable final String count) { log.info("createAccounts({},{},{})", clasId, start, count); final ActorRef clas = clasService.getClas(clasId); final DeferredResult<Object> deferredResult = new DeferredResult<Object>(); final int countValue = Integer.parseInt(count); if (countValue > MAX_ACCOUNTS_IN_BATCH) { deferredResult .setErrorResult(String.format("count %s is to large (> %d)", count, MAX_ACCOUNTS_IN_BATCH)); return deferredResult; }/*from w ww . j a va 2s.c o m*/ if (clas != null) { final List<AccountCreated> results = Collections.synchronizedList(new LinkedList<AccountCreated>()); final AtomicInteger resultsCounter = new AtomicInteger(0); for (int i = Integer.parseInt(start); i < Integer.parseInt(start) + countValue; i++) { final String accountId = Integer.toString(i); log.debug("createAccounts() : create {}", accountId); final Future<Object> future = Patterns.ask(clas, new CreateAccount.RequestBuilder(clasId).accountId(accountId).build(), timeout * countValue); future.onSuccess(new OnSuccess<Object>() { @Override public void onSuccess(final Object result) { log.info("createAccount({}) : result: {}", clasId, result); final CreateAccount.Response response = (CreateAccount.Response) result; results.add(new AccountCreated(clasId, response.getAccountId(), true, String.format("Account %s created", accountId))); // check if all values are received if (resultsCounter.incrementAndGet() >= countValue) { deferredResult.setResult(results); } } }, system.dispatcher()); future.onFailure(new OnFailure() { @Override public void onFailure(final Throwable arg) throws Throwable { log.error("onFailure", arg); deferredResult .setErrorResult(new AccountCreated(clasId, null, false, arg.getLocalizedMessage())); } }, system.dispatcher()); } } else { deferredResult.setErrorResult(new AccountCreated(clasId, null, false, "CLAS does not exist")); } return deferredResult; }
From source file:com.carlomicieli.jtrains.infrastructure.web.CompletableFutureReturnValueHandler.java
@Override public void handleReturnValue(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception { final DeferredResult<Object> deferredResult = new DeferredResult<>(); final CompletableFuture<?> future = (CompletableFuture<?>) returnValue; final CompletableFuture<Object> completedFuture = future.handle((ret, err) -> { if (ret != null) { deferredResult.setResult(ret); return ret; } else {//w w w .ja v a2 s .c o m deferredResult.setErrorResult(err); return null; } }); WebAsyncUtils.getAsyncManager(webRequest).startDeferredResultProcessing(deferredResult, mavContainer); }
From source file:com.kixeye.chassis.transport.websocket.responseconverter.ListenableFutureResponseConverter.java
@Override public DeferredResult<Object> convertToDeferredResult(Object response) { final DeferredResult<Object> deferredResult = new DeferredResult<>(); Futures.addCallback((ListenableFuture<?>) response, new FutureCallback<Object>() { @Override/*from ww w .ja va2 s . com*/ public void onSuccess(@Nullable Object result) { deferredResult.setResult(result); } @Override public void onFailure(Throwable t) { deferredResult.setErrorResult(t); } }); return deferredResult; }
From source file:io.ignitr.dispatchr.manager.controller.client.ClientController.java
/** * Deletes a specific client.// w ww .ja v a 2 s .com * * @param clientId client identifier * @return an HTTP 204 response if the client was deleted or an HTTP 404 if the client does not exist */ @RequestMapping(method = RequestMethod.DELETE, produces = MediaType.APPLICATION_JSON_VALUE) public DeferredResult<ResponseEntity<?>> unregister(@PathVariable("clientId") String clientId, HttpServletRequest httpRequest) { final DeferredResult<ResponseEntity<?>> deferredResult = new DeferredResult<>(); service.unregister(clientId).lift(new RequestContextStashOperator<>()).last().subscribeOn(Schedulers.io()) .subscribe(complete -> { deferredResult.setResult(ResponseEntity.noContent().build()); }, error -> { deferredResult.setErrorResult(errorHandler.handleError(httpRequest, error)); }); return deferredResult; }
From source file:com.kixeye.chassis.transport.http.ListenableFutureReturnValueHandler.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. ja v a2 s.c o m } final DeferredResult<Object> deferredResult = new DeferredResult<>(); Futures.addCallback((ListenableFuture<?>) returnValue, new FutureCallback<Object>() { @Override public void onSuccess(@Nullable Object result) { deferredResult.setResult(result); } @Override public void onFailure(Throwable t) { deferredResult.setErrorResult(t); } }); WebAsyncUtils.getAsyncManager(webRequest).startDeferredResultProcessing(deferredResult, mavContainer); }