package com.salesmanager.shop.store.controller.error; import org.jopendocument.util.ExceptionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpStatus; import org.springframework.security.access.AccessDeniedException; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.support.RedirectAttributes; @ControllerAdvice public class ErrorController { private static final Logger LOGGER = LoggerFactory.getLogger(ErrorController.class); @ExceptionHandler(Exception.class) @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR) public ModelAndView handleException(Exception ex) { LOGGER.error("Error page controller",ex); ModelAndView model = null; if(ex instanceof AccessDeniedException) { model = new ModelAndView("error/access_denied"); } else { model = new ModelAndView("error/generic_error"); model.addObject("stackError", ExceptionUtils.getStackTrace(ex)); model.addObject("errMsg", ex.getMessage()); } return model; } @ExceptionHandler(RuntimeException.class) @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR) public ModelAndView handleRuntimeException(Exception ex) { LOGGER.error("Error page controller",ex); ModelAndView model = null; model = new ModelAndView("error/generic_error"); model.addObject("stackError", ExceptionUtils.getStackTrace(ex)); model.addObject("errMsg", ex.getMessage()); return model; } /* @ExceptionHandler(Exception.class) @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR) public String handleException(Model model, Exception ex, HttpServletRequest request) { MerchantStore store = getSessionAttribute(Constants.MERCHANT_STORE, request); StringBuilder template = null; //ModelAndView model = null; if(ex instanceof AccessDeniedException) { if(store != null) { template = new StringBuilder().append(ControllerConstants.Tiles.Error.accessDenied).append(".").append(store.getStoreTemplate()); } else { template = new StringBuilder().append(ControllerConstants.Tiles.Error.accessDenied); } //model = new ModelAndView("error/access_denied"); } else { model.addAttribute("stackError", ExceptionUtils.getStackTrace(ex)); model.addAttribute("errMsg", ex.getMessage()); if(store != null) { template = new StringBuilder().append(ControllerConstants.Tiles.Error.error).append(".").append(store.getStoreTemplate()); } else { template = new StringBuilder().append(ControllerConstants.Tiles.Error.error); } //model = new ModelAndView("error/generic_error"); //model.addObject("stackError", ExceptionUtils.getStackTrace(ex)); //model.addObject("errMsg", ex.getMessage()); } return template.toString(); } */ }