Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.chutneytesting.RestExceptionHandler Maven / Gradle / Ivy
package com.chutneytesting;
import com.chutneytesting.admin.domain.BackupNotFoundException;
import com.chutneytesting.admin.domain.gitbackup.UnreachableRemoteException;
import com.chutneytesting.design.domain.campaign.CampaignNotFoundException;
import com.chutneytesting.design.domain.dataset.DataSetNotFoundException;
import com.chutneytesting.design.domain.globalvar.GlobalVarNotFoundException;
import com.chutneytesting.design.domain.scenario.AlreadyExistingScenarioException;
import com.chutneytesting.design.domain.scenario.ScenarioNotFoundException;
import com.chutneytesting.design.domain.scenario.ScenarioNotParsableException;
import com.chutneytesting.design.domain.scenario.compose.AlreadyExistingComposableStepException;
import com.chutneytesting.design.domain.scenario.compose.ComposableStepCyclicDependencyException;
import com.chutneytesting.design.domain.scenario.compose.ComposableStepNotFoundException;
import com.chutneytesting.environment.domain.exception.AlreadyExistingEnvironmentException;
import com.chutneytesting.environment.domain.exception.AlreadyExistingTargetException;
import com.chutneytesting.environment.domain.exception.EnvironmentNotFoundException;
import com.chutneytesting.environment.domain.exception.InvalidEnvironmentNameException;
import com.chutneytesting.environment.domain.exception.TargetNotFoundException;
import com.chutneytesting.execution.domain.campaign.CampaignAlreadyRunningException;
import com.chutneytesting.execution.domain.campaign.CampaignExecutionNotFoundException;
import com.chutneytesting.execution.domain.compiler.ScenarioConversionException;
import com.chutneytesting.execution.domain.history.ReportNotFoundException;
import com.chutneytesting.execution.domain.scenario.FailedExecutionAttempt;
import com.chutneytesting.execution.domain.scenario.ScenarioNotRunningException;
import com.chutneytesting.security.domain.CurrentUserNotFoundException;
import java.time.format.DateTimeParseException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.http.converter.HttpMessageConversionException;
import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.http.converter.HttpMessageNotWritableException;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.context.request.WebRequest;
import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
@ControllerAdvice
public class RestExceptionHandler extends ResponseEntityExceptionHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(RestExceptionHandler.class);
@Override
protected ResponseEntity handleHttpMessageNotReadable(HttpMessageNotReadableException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
LOGGER.warn(ex.getMessage());
return super.handleHttpMessageNotReadable(ex, headers, status, request);
}
@Override
protected ResponseEntity handleHttpMessageNotWritable(HttpMessageNotWritableException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
LOGGER.warn(ex.getMessage());
return super.handleHttpMessageNotWritable(ex, headers, status, request);
}
@ExceptionHandler({
RuntimeException.class,
FailedExecutionAttempt.class
})
public ResponseEntity _500(RuntimeException ex, WebRequest request) {
LOGGER.error("Controller global exception handler", ex);
return handleExceptionInternalWithExceptionMessageAsBody(ex, HttpStatus.INTERNAL_SERVER_ERROR, request);
}
@ExceptionHandler({
TargetNotFoundException.class,
ScenarioNotFoundException.class,
CampaignNotFoundException.class,
CampaignExecutionNotFoundException.class,
EnvironmentNotFoundException.class,
ComposableStepNotFoundException.class,
CurrentUserNotFoundException.class,
BackupNotFoundException.class,
DataSetNotFoundException.class,
ScenarioNotRunningException.class,
GlobalVarNotFoundException.class,
ReportNotFoundException.class,
UnreachableRemoteException.class
})
protected ResponseEntity notFound(RuntimeException ex, WebRequest request) {
return handleExceptionInternalWithExceptionMessageAsBody(ex, HttpStatus.NOT_FOUND, request);
}
@ExceptionHandler({
AlreadyExistingTargetException.class,
AlreadyExistingEnvironmentException.class,
CampaignAlreadyRunningException.class,
AlreadyExistingScenarioException.class,
AlreadyExistingComposableStepException.class,
ComposableStepCyclicDependencyException.class
})
protected ResponseEntity conflict(RuntimeException ex, WebRequest request) {
return handleExceptionInternalWithExceptionMessageAsBody(ex, HttpStatus.CONFLICT, request);
}
@ExceptionHandler({
ScenarioConversionException.class,
ScenarioNotParsableException.class
})
protected ResponseEntity unprocessableEntity(RuntimeException ex, WebRequest request) {
return handleExceptionInternalWithExceptionMessageAsBody(ex, HttpStatus.UNPROCESSABLE_ENTITY, request);
}
@ExceptionHandler({
DateTimeParseException.class,
InvalidEnvironmentNameException.class,
HttpMessageConversionException.class
})
protected ResponseEntity badRequest(RuntimeException ex, WebRequest request) {
return handleExceptionInternalWithExceptionMessageAsBody(ex, HttpStatus.BAD_REQUEST, request);
}
@ExceptionHandler({
IllegalArgumentException.class,
AccessDeniedException.class
})
protected ResponseEntity forbidden(RuntimeException ex, WebRequest request) {
return handleExceptionInternalWithExceptionMessageAsBody(ex, HttpStatus.FORBIDDEN, request);
}
private ResponseEntity handleExceptionInternalWithExceptionMessageAsBody(RuntimeException ex, HttpStatus status, WebRequest request) {
String bodyOfResponse = ex.getMessage();
return handleExceptionInternal(ex, bodyOfResponse, new HttpHeaders(), status, request);
}
}