Search in sources :

Example 6 with ErrorResponseBody

use of org.apache.flink.runtime.rest.messages.ErrorResponseBody in project flink by apache.

the class PipelineErrorHandler method channelRead0.

@Override
protected void channelRead0(ChannelHandlerContext ctx, HttpRequest message) {
    // we can't deal with this message. No one in the pipeline handled it. Log it.
    logger.warn("Unknown message received: {}", message);
    HandlerUtils.sendErrorResponse(ctx, message, new ErrorResponseBody("Bad request received."), HttpResponseStatus.BAD_REQUEST, Collections.emptyMap());
}
Also used : ErrorResponseBody(org.apache.flink.runtime.rest.messages.ErrorResponseBody)

Example 7 with ErrorResponseBody

use of org.apache.flink.runtime.rest.messages.ErrorResponseBody in project flink by apache.

the class PipelineErrorHandler method exceptionCaught.

@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
    logger.warn("Unhandled exception", cause);
    HandlerUtils.sendErrorResponse(ctx, false, new ErrorResponseBody("Internal server error: " + cause.getMessage()), HttpResponseStatus.INTERNAL_SERVER_ERROR, responseHeaders);
}
Also used : ErrorResponseBody(org.apache.flink.runtime.rest.messages.ErrorResponseBody)

Example 8 with ErrorResponseBody

use of org.apache.flink.runtime.rest.messages.ErrorResponseBody in project flink by apache.

the class HistoryServerStaticFileServerHandler method exceptionCaught.

@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
    if (ctx.channel().isActive()) {
        LOG.error("Caught exception", cause);
        HandlerUtils.sendErrorResponse(ctx, false, new ErrorResponseBody("Internal server error."), INTERNAL_SERVER_ERROR, Collections.emptyMap());
    }
}
Also used : ErrorResponseBody(org.apache.flink.runtime.rest.messages.ErrorResponseBody)

Example 9 with ErrorResponseBody

use of org.apache.flink.runtime.rest.messages.ErrorResponseBody in project flink by apache.

the class RestClient method parseResponse.

private static <P extends ResponseBody> CompletableFuture<P> parseResponse(JsonResponse rawResponse, JavaType responseType) {
    CompletableFuture<P> responseFuture = new CompletableFuture<>();
    final JsonParser jsonParser = objectMapper.treeAsTokens(rawResponse.json);
    try {
        P response = objectMapper.readValue(jsonParser, responseType);
        responseFuture.complete(response);
    } catch (IOException originalException) {
        // lets see if it is an ErrorResponse instead
        try {
            ErrorResponseBody error = objectMapper.treeToValue(rawResponse.getJson(), ErrorResponseBody.class);
            responseFuture.completeExceptionally(new RestClientException(error.errors.toString(), rawResponse.getHttpResponseStatus()));
        } catch (JsonProcessingException jpe2) {
            // if this fails it is either the expected type or response type was wrong, most
            // likely caused
            // by a client/search MessageHeaders mismatch
            LOG.error("Received response was neither of the expected type ({}) nor an error. Response={}", responseType, rawResponse, jpe2);
            responseFuture.completeExceptionally(new RestClientException("Response was neither of the expected type(" + responseType + ") nor an error.", originalException, rawResponse.getHttpResponseStatus()));
        }
    }
    return responseFuture;
}
Also used : CompletableFuture(java.util.concurrent.CompletableFuture) RestClientException(org.apache.flink.runtime.rest.util.RestClientException) ErrorResponseBody(org.apache.flink.runtime.rest.messages.ErrorResponseBody) IOException(java.io.IOException) JsonProcessingException(org.apache.flink.shaded.jackson2.com.fasterxml.jackson.core.JsonProcessingException) JsonParser(org.apache.flink.shaded.jackson2.com.fasterxml.jackson.core.JsonParser)

Example 10 with ErrorResponseBody

use of org.apache.flink.runtime.rest.messages.ErrorResponseBody in project flink by apache.

the class LeaderRetrievalHandler method channelRead0.

@Override
protected void channelRead0(ChannelHandlerContext channelHandlerContext, RoutedRequest routedRequest) {
    HttpRequest request = routedRequest.getRequest();
    OptionalConsumer<? extends T> optLeaderConsumer = OptionalConsumer.of(leaderRetriever.getNow());
    optLeaderConsumer.ifPresent(gateway -> {
        try {
            respondAsLeader(channelHandlerContext, routedRequest, gateway);
        } catch (Exception e) {
            logger.error("Error while responding to the http request.", e);
            HandlerUtils.sendErrorResponse(channelHandlerContext, request, new ErrorResponseBody("Error while responding to the http request."), HttpResponseStatus.INTERNAL_SERVER_ERROR, responseHeaders);
        }
    }).ifNotPresent(() -> HandlerUtils.sendErrorResponse(channelHandlerContext, request, new ErrorResponseBody("Service temporarily unavailable due to an ongoing leader election. Please refresh."), HttpResponseStatus.SERVICE_UNAVAILABLE, responseHeaders));
}
Also used : HttpRequest(org.apache.flink.shaded.netty4.io.netty.handler.codec.http.HttpRequest) SimpleChannelInboundHandler(org.apache.flink.shaded.netty4.io.netty.channel.SimpleChannelInboundHandler) ChannelHandlerContext(org.apache.flink.shaded.netty4.io.netty.channel.ChannelHandlerContext) Logger(org.slf4j.Logger) RoutedRequest(org.apache.flink.runtime.rest.handler.router.RoutedRequest) GatewayRetriever(org.apache.flink.runtime.webmonitor.retriever.GatewayRetriever) LoggerFactory(org.slf4j.LoggerFactory) RestfulGateway(org.apache.flink.runtime.webmonitor.RestfulGateway) ChannelHandler(org.apache.flink.shaded.netty4.io.netty.channel.ChannelHandler) Preconditions(org.apache.flink.util.Preconditions) HttpResponseStatus(org.apache.flink.shaded.netty4.io.netty.handler.codec.http.HttpResponseStatus) OptionalConsumer(org.apache.flink.util.OptionalConsumer) Map(java.util.Map) HandlerUtils(org.apache.flink.runtime.rest.handler.util.HandlerUtils) HttpRequest(org.apache.flink.shaded.netty4.io.netty.handler.codec.http.HttpRequest) Nonnull(javax.annotation.Nonnull) Time(org.apache.flink.api.common.time.Time) ErrorResponseBody(org.apache.flink.runtime.rest.messages.ErrorResponseBody) ErrorResponseBody(org.apache.flink.runtime.rest.messages.ErrorResponseBody)

Aggregations

ErrorResponseBody (org.apache.flink.runtime.rest.messages.ErrorResponseBody)13 RestHandlerException (org.apache.flink.runtime.rest.handler.RestHandlerException)4 HttpRequest (org.apache.flink.shaded.netty4.io.netty.handler.codec.http.HttpRequest)3 IOException (java.io.IOException)2 ResponseBody (org.apache.flink.runtime.rest.messages.ResponseBody)2 ArchivedJson (org.apache.flink.runtime.webmonitor.history.ArchivedJson)2 File (java.io.File)1 FileNotFoundException (java.io.FileNotFoundException)1 InputStream (java.io.InputStream)1 RandomAccessFile (java.io.RandomAccessFile)1 URI (java.net.URI)1 URL (java.net.URL)1 ParseException (java.text.ParseException)1 SimpleDateFormat (java.text.SimpleDateFormat)1 Date (java.util.Date)1 Map (java.util.Map)1 CompletableFuture (java.util.concurrent.CompletableFuture)1 Nonnull (javax.annotation.Nonnull)1 Time (org.apache.flink.api.common.time.Time)1 FlinkHttpObjectAggregator (org.apache.flink.runtime.rest.FlinkHttpObjectAggregator)1