package com.sequenceiq.cloudbreak.controller.mapper; import javax.ws.rs.core.Response; import javax.ws.rs.ext.ExceptionMapper; import javax.ws.rs.ext.Provider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.sequenceiq.cloudbreak.controller.json.ExceptionResult; import com.sequenceiq.cloudbreak.logger.MDCBuilder; @Provider public class RuntimeExceptionMapper implements ExceptionMapper<RuntimeException> { private static final Logger LOGGER = LoggerFactory.getLogger(RuntimeExceptionMapper.class); @Override public Response toResponse(RuntimeException exception) { MDCBuilder.buildMdcContext(); String message = exception.getMessage(); LOGGER.error(message, exception); return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(new ExceptionResult("Internal server error: " + message)) .build(); } }