@GET @Produces(MediaType.WILDCARD) public Response errorEmpty(@Context HttpServletRequest request) { Number statusCode = (Number) request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE); Response.Status finalStatus = statusCode == null ? Response.Status.OK : Response.Status.fromStatusCode(statusCode.intValue()); return Response.status(finalStatus).build(); }
/** * Get the status of the error response. * * @return Response status code. */ public Response.Status getStatus() { return Response.Status.fromStatusCode(super.getResponse().getStatus()); }
@GET @Produces(MediaType.TEXT_PLAIN) public Response errorText(@Context HttpServletRequest request) { StringBuilder text = new StringBuilder(1000); text.append("Error"); Number statusCode = (Number) request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE); if (statusCode != null) { text.append(' ').append(statusCode); } Object requestURI = request.getAttribute(RequestDispatcher.ERROR_REQUEST_URI); if (requestURI != null) { text.append(" : "); text.append(requestURI); } text.append('\n'); Object message = request.getAttribute(RequestDispatcher.ERROR_MESSAGE); if (message != null) { text.append(message).append('\n'); } Throwable throwable = (Throwable) request.getAttribute(RequestDispatcher.ERROR_EXCEPTION); if (throwable != null) { StringWriter sw = new StringWriter(); throwable.printStackTrace(new PrintWriter(sw)); text.append(sw); } Response.Status finalStatus = statusCode == null ? Response.Status.OK : Response.Status.fromStatusCode(statusCode.intValue()); return Response.status(finalStatus).entity(text.toString()).build(); }
final Response.Status status = Response.Status.fromStatusCode(statusCode);
if (Response.Status.fromStatusCode(response.getStatus()) == Response.Status.UNAUTHORIZED) {
Response.Status.OK : Response.Status.fromStatusCode(statusCode.intValue()); return Response.status(finalStatus).entity(html.toString()).build();
private ResponseValue toResponseValue(Response response) { Status status = Status.fromStatusCode(response.getStatus()); this.logger.debug("Response status is {}.", status.getStatusCode()); Family family = response.getStatusInfo().getFamily();
final Response.Status status = Response.Status.fromStatusCode(statusCode);
final Response.Status status = Response.Status.fromStatusCode(statusCode);
private void onException(Throwable e, Response r, boolean mapped) { if (request.isTracingEnabled()) { Response.Status s = Response.Status.fromStatusCode(r.getStatus()); if (s != null) { request.trace(String.format("mapped exception to response: %s -> %d (%s)", ReflectionHelper.objectToString(e), r.getStatus(), s.getReasonPhrase())); } else { request.trace(String.format("mapped exception to response: %s -> %d", ReflectionHelper.objectToString(e), r.getStatus())); } } if (!mapped && r.getStatus() >= 500) { logException(e, r, Level.SEVERE); } else if (LOGGER.isLoggable(Level.FINE)) { logException(e, r, Level.FINE); } setResponse(r); this.mappedThrowable = e; if (getEntity() != null && getHttpHeaders().getFirst(HttpHeaders.CONTENT_TYPE) == null) { Object m = request.getProperties().get(HttpMethodRule.CONTENT_TYPE_PROPERTY); if (m != null) { request.getProperties().remove(HttpMethodRule.CONTENT_TYPE_PROPERTY); getHttpHeaders().putSingle(HttpHeaders.CONTENT_TYPE, m); } } }
@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(); } }
if (Response.Status.fromStatusCode(response.getStatus()) == Response.Status.UNAUTHORIZED) {
if (Response.Status.fromStatusCode(response.getStatus()) == Response.Status.UNAUTHORIZED) {
@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(); } }
private void logException(Throwable e, Response r, Level l) { Response.Status s = Response.Status.fromStatusCode(r.getStatus()); if (s != null) { LOGGER.log(l, "Mapped exception to response: " + r.getStatus() + " (" + s.getReasonPhrase() + ")", e); } else { LOGGER.log(l, "Mapped exception to response: " + r.getStatus(), e); } }
@Override public StatusType getStatusInfo() { return Status.fromStatusCode(getStatus()); }
public void writeError( int status, String message ) throws IOException { if ( bytesWritten == 0 || bytesWritten == IS_ERROR ) { g.writeRaw( "null" ); } g.writeNumberField( "status", status ); if ( message != null && !message.trim().equals( Response.Status.fromStatusCode( status ).getReasonPhrase() ) ) { g.writeStringField( "message", message ); } else { if ( errorStream != null ) { g.writeStringField( "message", errorStream.toString( StandardCharsets.UTF_8.name() ) ); } } g.close(); } }
/** * Create a new status type instance. * <p> * For standard status codes listed in {@link javax.ws.rs.core.Response.Status} enum, the default reason phrase * is used. For any other status code an empty string is used as a reason phrase. * </p> * * @param code response status code. * @return new status type instance representing a given response status code. */ public static StatusType from(int code) { StatusType result = Response.Status.fromStatusCode(code); return (result != null) ? result : new StatusImpl(code, ""); }
/** * Create a new status type instance. * <p> * For standard status codes listed in {@link javax.ws.rs.core.Response.Status} enum, the default reason phrase * is used. For any other status code an empty string is used as a reason phrase. * </p> * * @param code response status code. * @return new status type instance representing a given response status code. */ public static StatusType from(int code) { StatusType result = Response.Status.fromStatusCode(code); return (result != null) ? result : new StatusImpl(code, ""); }
/** * Workaround for JAX_RS_SPEC-312 * */ public String getMessage() { Response response = getResponse(); Response.Status status = Response.Status.fromStatusCode( response.getStatus() ); if ( status != null ) { return ( response.getStatus() + ( " " + status.getReasonPhrase() ) ); } else { return Integer.toString( response.getStatus() ); } }