Refine search
@Override public Response toResponse(WebApplicationException exception) { Response r = exception.getResponse(); return Response.status(r.getStatus()).entity("Code:" + r.getStatus() + ":" + getClass().getSimpleName()).build(); } }
@Override public Response toResponse(E exception) { // If we're dealing with a web exception, we can service certain types of request (like // redirection or server errors) better and also propagate properties of the inner response. if (exception instanceof WebApplicationException) { final Response response = ((WebApplicationException) exception).getResponse(); Response.Status.Family family = response.getStatusInfo().getFamily(); if (family.equals(Response.Status.Family.REDIRECTION)) { return response; } if (family.equals(Response.Status.Family.SERVER_ERROR)) { logException(exception); } return Response.fromResponse(response) .type(MediaType.APPLICATION_JSON_TYPE) .entity(new ErrorMessage(response.getStatus(), exception.getLocalizedMessage())) .build(); } // Else the thrown exception is a not a web exception, so the exception is most likely // unexpected. We'll create a unique id in the server error response that is also logged for // correlation final long id = logException(exception); return Response.status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()) .type(MediaType.APPLICATION_JSON_TYPE) .entity(new ErrorMessage(formatErrorMessage(id, exception))) .build(); }
/** * Get the status of the error response. * * @return Response status code. */ public Response.Status getStatus() { return Response.Status.fromStatusCode(super.getResponse().getStatus()); }
@Override public Response toResponse(final Exception ex) { final String errorTrackingId = UUID.randomUUID().toString(); Tuple2<String, Status> error = new Tuple2<>(MapOfExceptionsToErrorCodes.INTERNAL_SERVER_ERROR, Status.INTERNAL_SERVER_ERROR); Optional<Tuple2<String, Status>> errorFromLookup = find(ex.getClass()); if (errorFromLookup.isPresent()) { error = errorFromLookup.get(); } else { if(ex instanceof javax.ws.rs.WebApplicationException){ javax.ws.rs.WebApplicationException rsEx = ((javax.ws.rs.WebApplicationException)ex); error = tuple(rsEx.getResponse().getStatusInfo().getReasonPhrase(),Status.fromStatusCode(rsEx.getResponse().getStatus())); } } logger.error(String.format("%s Error id: %s, %s", error._1(), errorTrackingId, ex.getMessage()), ex); Response.ResponseBuilder responseBuilder = Response.status(error._2()).type(MediaType.APPLICATION_JSON_TYPE); if (showDetails) { responseBuilder.entity(new ExceptionWrapper(error._1(), String.format("Error id: %s %s", errorTrackingId, ex.getMessage()))); } else { responseBuilder.entity(new ExceptionWrapper(MapOfExceptionsToErrorCodes.INTERNAL_SERVER_ERROR, errorTrackingId)); } return responseBuilder.build(); } }
@Override public Response toResponse(final WebApplicationException exception) { Response.ResponseBuilder builder = Response.status(exception.getResponse().getStatus()).entity(toJson(exception)).type(MediaType.APPLICATION_JSON); return builder.build(); }
waeResponse = webApplicationException.getResponse(); if (waeResponse.hasEntity()) { LOGGER.log(Level.FINE, LocalizationMessages .EXCEPTION_MAPPING_WAE_ENTITY(waeResponse.getStatus()), throwable); return waeResponse; .EXCEPTION_MAPPING_WAE_NO_ENTITY(waeResponse.getStatus()), throwable);
private Response createResponse(final WebApplicationException exception) { final ErrorMessage errorMessage = new ErrorMessage(exception.getResponse().getStatus(), exception.getLocalizedMessage()); return Response.status(errorMessage.getCode()) .type(APPLICATION_JSON_TYPE) .entity(errorMessage) .build(); } }
waeResponse = webApplicationException.getResponse(); if (waeResponse.hasEntity()) { LOGGER.log(Level.FINE, LocalizationMessages .EXCEPTION_MAPPING_WAE_ENTITY(waeResponse.getStatus()), throwable); return waeResponse; .EXCEPTION_MAPPING_WAE_NO_ENTITY(waeResponse.getStatus()), throwable);
public ErrorInfo(WebApplicationException exception) { this.message = exception.getMessage(); this.status = exception.getResponse().getStatus(); }
waeResponse = webApplicationException.getResponse(); if (waeResponse.hasEntity()) { LOGGER.log(Level.FINE, LocalizationMessages .EXCEPTION_MAPPING_WAE_ENTITY(waeResponse.getStatus()), throwable); return waeResponse; .EXCEPTION_MAPPING_WAE_NO_ENTITY(waeResponse.getStatus()), throwable);
@Override public Response toResponse(Throwable t) { int status = 500; if (!(t instanceof WebApplicationException)) { LOGGER.error("Server error: ", t); } else { status = ((WebApplicationException) t).getResponse().getStatus(); } ErrorInfo einfo = new ErrorInfo(status, t.getMessage()); try { return Response.status(status).entity(JsonUtils.objectToString(einfo)).type(MediaType.APPLICATION_JSON).build(); } catch (JsonProcessingException e) { String err = String.format("{\"status\":%d, \"error\":%s}", einfo.code, einfo.error); return Response.status(status).entity(err).type(MediaType.APPLICATION_JSON).build(); } }
@Override public Response toResponse(WebApplicationException exception) { logger.error(String.format("Error %s url: '%s'", exception.getClass().getSimpleName(), uriInfo.getPath()), exception); Response response = exception.getResponse(); this.code = Code.forValue(response.getStatus()); Map<String, Object> entityMap = new LinkedHashMap<>(); entityMap.put("instance", host); entityMap.put("code", Optional.of(code.toString()).orElse(null)); entityMap.put("message", exception.getCause()); entityMap.put("retryable", false); return Response.status(response.getStatus()).entity(entityMap).build(); }
@Override public Response toResponse(WebApplicationException exception) { // get the message and ensure it is not blank String message = exception.getMessage(); if (message == null) { message = StringUtils.EMPTY; } // format the message if (message.contains(EXCEPTION_SEPARATOR)) { message = StringUtils.substringAfter(message, EXCEPTION_SEPARATOR); } // get the response final Response response = exception.getResponse(); // log the error logger.info(String.format("%s. Returning %s response.", exception, response.getStatus())); if (logger.isDebugEnabled()) { logger.debug(StringUtils.EMPTY, exception); } // generate the response return Response.status(response.getStatus()).entity(message).type("text/plain").build(); }
private Response handlerWebApplicationException(WebApplicationException throwable) { WebApplicationException ex = throwable; CommonResultView<?> resultView = CommonResultView.fail(ex.getResponse().getStatus() , ex.getResponse().getStatus(), ex.getMessage(), null); log.error("[WebApplicationException] {} - {}, [uri]{}", resultView.getStatus() , resultView.getMessage(), uriInfo.getPath()); return Response.status(resultView.getStatus()) .entity(resultView) .type(MediaType.APPLICATION_JSON).build(); }
private void sendDeliveryReceiptFor(Envelope message) { if (!message.hasSource()) return; try { receiptSender.sendReceipt(account, message.getSource(), message.getTimestamp()); } catch (NoSuchUserException | NotPushRegisteredException e) { logger.info("No longer registered " + e.getMessage()); } catch (WebApplicationException e) { logger.warn("Bad federated response for receipt: " + e.getResponse().getStatus()); } }
@Override public Response toResponse(final Throwable exception) { // TODO: Distinguish between exceptions that warrant a stack trace and ones that don't if (exception instanceof KsqlRestException) { final KsqlRestException restException = (KsqlRestException)exception; return restException.getResponse(); } if (exception instanceof WebApplicationException) { final WebApplicationException webApplicationException = (WebApplicationException)exception; return Response .status( Response.Status.fromStatusCode( webApplicationException.getResponse().getStatus())) .type(MediaType.APPLICATION_JSON_TYPE) .entity( new KsqlErrorMessage( Errors.toErrorCode(webApplicationException.getResponse().getStatus()), webApplicationException)) .build(); } return Response .status(Response.Status.INTERNAL_SERVER_ERROR) .type(MediaType.APPLICATION_JSON_TYPE) .entity(new KsqlErrorMessage(Errors.ERROR_CODE_SERVER_ERROR, exception)) .build(); } }
response = ((ResponseProcessingException) cause).getResponse(); } else if (cause instanceof WebApplicationException) { response = ((WebApplicationException) cause).getResponse(); } else if ((cause instanceof ProcessingException) && (cause.getCause() != null)) { throw new DockerRequestException(method, resource.getUri(), response.getStatus(), message(response), cause); } else if ((cause instanceof SocketTimeoutException)
@Test public void defaultErrorHandling() { try { client.target(SERVER_URI) .path("/") .request(MediaType.APPLICATION_JSON_TYPE) .accept(MediaType.APPLICATION_JSON_TYPE) .post(Entity.json(""), new GenericType<List<String>>() {}); check(false); } catch (WebApplicationException ex) { check(ex.getResponse().getStatus()).is(400); } }
@Override public void dispatch(final Object resource, final HttpContext context) { final AbstractResourceMethod resourceMethod = context.getUriInfo().getMatchedMethod(); final String key = getKey(resourceMethod); try { dispatcher.dispatch(resource, context); metrics.success(key); } catch (WebApplicationException e) { final int status = e.getResponse().getStatus(); if (status == 404) { metrics.success(key); } else if (status > 400 && status < 500) { metrics.badRequest(key); } else { metrics.failure(key); } throw e; } catch (Exception e) { metrics.failure(key); throw e; } }
@Test public void getInstance_notFound() { new Expectations() { { config.getAppName(); result = APP_NAME; factory.getInstance(APP_NAME, instanceInfo.getRegion(), NODE_ID); result = null; } }; try { resource.getInstance(NODE_ID); fail("Expected WebApplicationException thrown"); } catch (WebApplicationException e) { assertEquals(404, e.getResponse().getStatus()); assertEquals( "No priam instance with id " + NODE_ID + " found", e.getResponse().getEntity()); } }