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.fivefaces.structureclient.controller.ControllerExceptionHandler Maven / Gradle / Ivy
package com.fivefaces.structureclient.controller;
import com.fivefaces.cloud.workflow.awsonprem.exception.StateMachineFailedException;
import com.fivefaces.common.exception.ItemNotFoundException;
import com.fivefaces.structureclient.controller.exception.ForbiddenAccessException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
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;
import javax.persistence.EntityNotFoundException;
import java.util.HashMap;
@ControllerAdvice
@Slf4j
public class ControllerExceptionHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler(value = {DataIntegrityViolationException.class})
protected ResponseEntity handleConflict(RuntimeException ex, WebRequest request) {
log.error(ex.getMessage(), ex);
return handleExceptionInternal(ex, ex,
new HttpHeaders(), HttpStatus.UNPROCESSABLE_ENTITY, request);
}
@ExceptionHandler(value = {EmptyResultDataAccessException.class})
protected ResponseEntity handleDelete(RuntimeException ex, WebRequest request) {
log.error(ex.getMessage(), ex);
return handleExceptionInternal(ex, ex,
new HttpHeaders(), HttpStatus.NOT_FOUND, request);
}
@ExceptionHandler(value = {EntityNotFoundException.class})
protected ResponseEntity handleMissingEntity(RuntimeException ex, WebRequest request) {
log.error(ex.getMessage(), ex);
return handleExceptionInternal(ex, ex,
new HttpHeaders(), HttpStatus.NOT_FOUND, request);
}
@ExceptionHandler(value = {ItemNotFoundException.class})
protected ResponseEntity handleItemNotFoundException(ItemNotFoundException ex, WebRequest request) {
log.error(ex.getMessage(), ex);
return handleExceptionInternal(ex, ex.getMessage(),
new HttpHeaders(), HttpStatus.NOT_FOUND, request);
}
@ExceptionHandler(value = {ForbiddenAccessException.class})
protected ResponseEntity handleForbiddenAccessException(ForbiddenAccessException ex, WebRequest request) {
log.error(ex.getMessage(), ex);
return handleExceptionInternal(ex, ex.getMessage(),
new HttpHeaders(), HttpStatus.FORBIDDEN, request);
}
@ExceptionHandler(value = {StateMachineFailedException.class})
protected ResponseEntity handleStateMachineFailedException(StateMachineFailedException ex, WebRequest request) {
return handleExceptionInternal(ex, new HashMap<>() {{
put("Status", "FAILED");
}},
new HttpHeaders(), HttpStatus.INTERNAL_SERVER_ERROR, request);
}
@ExceptionHandler(value = {RuntimeException.class})
protected ResponseEntity handleRuntimeEntity(RuntimeException ex, WebRequest request) {
log.error(ex.getMessage(), ex);
return handleExceptionInternal(ex, ex,
new HttpHeaders(), HttpStatus.INTERNAL_SERVER_ERROR, request);
}
@ExceptionHandler(value = {IllegalArgumentException.class})
protected ResponseEntity handleIllegalArgumentException(IllegalArgumentException ex, WebRequest request) {
log.error(ex.getMessage(), ex);
return handleExceptionInternal(ex, ex.getMessage(),
new HttpHeaders(), HttpStatus.BAD_REQUEST, request);
}
@ExceptionHandler(value = {WorkflowFailedException.class})
protected ResponseEntity handleWorkflowFailedException(WorkflowFailedException ex, WebRequest request) {
log.error(ex.getMessage(), ex);
return handleExceptionInternal(ex, new HashMap<>() {{
put("message", ex.getMessage());
put("result", ex.getResult());
}},
new HttpHeaders(), HttpStatus.INTERNAL_SERVER_ERROR, request);
}
}