in frontend/server/src/main/java/com/amazonaws/ml/mms/http/HttpRequestHandler.java [44:80]
protected void channelRead0(ChannelHandlerContext ctx, FullHttpRequest req) {
try {
NettyUtils.requestReceived(ctx.channel(), req);
if (!req.decoderResult().isSuccess()) {
throw new BadRequestException("Invalid HTTP message.");
}
QueryStringDecoder decoder = new QueryStringDecoder(req.uri());
String path = decoder.path();
String[] segments = path.split("/");
handlerChain.handleRequest(ctx, req, decoder, segments);
} catch (ResourceNotFoundException | ModelNotFoundException e) {
logger.trace("", e);
NettyUtils.sendError(ctx, HttpResponseStatus.NOT_FOUND, e);
} catch (BadRequestException | ModelException e) {
logger.trace("", e);
NettyUtils.sendError(ctx, HttpResponseStatus.BAD_REQUEST, e);
} catch (ConflictStatusException e) {
logger.trace("", e);
NettyUtils.sendError(ctx, HttpResponseStatus.CONFLICT, e);
} catch (RequestTimeoutException e) {
logger.trace("", e);
NettyUtils.sendError(ctx, HttpResponseStatus.REQUEST_TIMEOUT, e);
} catch (MethodNotAllowedException e) {
logger.trace("", e);
NettyUtils.sendError(ctx, HttpResponseStatus.METHOD_NOT_ALLOWED, e);
} catch (ServiceUnavailableException e) {
logger.trace("", e);
NettyUtils.sendError(ctx, HttpResponseStatus.SERVICE_UNAVAILABLE, e);
} catch (OutOfMemoryError e) {
logger.trace("", e);
NettyUtils.sendError(ctx, HttpResponseStatus.INSUFFICIENT_STORAGE, e);
} catch (Throwable t) {
logger.error("", t);
NettyUtils.sendError(ctx, HttpResponseStatus.INTERNAL_SERVER_ERROR, t);
}
}