protected void serveResourceException(ResourceRequest resourceRequest, ResourceResponse resourceResponse, NuxeoException e) throws PortletException,
IOException {
int httpErrorCode = 0;
if (e.getErrorCode() == NuxeoException.ERROR_NOTFOUND) {
httpErrorCode = HttpServletResponse.SC_NOT_FOUND;
String message = "Resource CMSPortlet " + resourceRequest.getParameterMap() + " not found (error 404).";
this.logger.error(message);
} else if (e.getErrorCode() == NuxeoException.ERROR_FORBIDDEN) {
httpErrorCode = HttpServletResponse.SC_FORBIDDEN;
}
if (httpErrorCode != 0) {
NuxeoController nuxeoController = this.createNuxeoController(resourceRequest, resourceResponse);
PortalControllerContext portalCtx = new PortalControllerContext(this.getPortletContext(), resourceRequest, resourceResponse);
String errorUrl = nuxeoController.getPortalUrlFactory().getHttpErrorUrl(portalCtx, httpErrorCode);
resourceResponse.setProperty(ResourceResponse.HTTP_STATUS_CODE, String.valueOf(HttpServletResponse.SC_MOVED_TEMPORARILY));
resourceResponse.setProperty("Location", errorUrl);
resourceResponse.getPortletOutputStream().close();
} else {
throw e;
}
}