/** * Provides access to a root cause Exception that might have occurred in a complex include scenario.<p> * * @param req the current request * * @return the root cause exception or null if no root cause exception is available * * @see #getThrowable() */ public static Throwable getThrowable(ServletRequest req) { CmsFlexController controller = (CmsFlexController)req.getAttribute(ATTRIBUTE_NAME); if (controller != null) { return controller.getThrowable(); } else { return null; } }
/** * Sets the error attributes to the current session.<p> * * @param cms the cms context * @param throwable the throwable * @param request the current request */ private static void setErrorAttributes(CmsObject cms, Throwable throwable, HttpServletRequest request) { String errorUri = CmsFlexController.getThrowableResourceUri(request); if (errorUri == null) { errorUri = cms.getRequestContext().getUri(); } // try to get the exception root cause Throwable cause = CmsFlexController.getThrowable(request); if (cause == null) { cause = throwable; } request.getSession().setAttribute(THROWABLE, cause); request.getSession().setAttribute(PATH, errorUri); }
/** * Generates a formated exception output.<p> * * Because the exception could be thrown while accessing the system files, * the complete HTML code must be added here!<p> * * @param t the caught Exception * @param request the servlet request * @param cms the CmsObject * @return String containing the HTML code of the error message */ private String createErrorBox(Throwable t, HttpServletRequest request, CmsObject cms) { String errorUri = CmsFlexController.getThrowableResourceUri(request); if (errorUri == null) { errorUri = cms.getRequestContext().getUri(); } // try to get the exception root cause Throwable cause = CmsFlexController.getThrowable(request); if (cause == null) { cause = t; } CmsErrorBean errorBean = new CmsErrorBean(cms, cause); errorBean.setParamAction(errorUri); return errorBean.toHtml(); }
/** * Provides access to a root cause Exception that might have occurred in a complex include scenario.<p> * * @param req the current request * * @return the root cause exception or null if no root cause exception is available * * @see #getThrowable() */ public static Throwable getThrowable(ServletRequest req) { CmsFlexController controller = (CmsFlexController)req.getAttribute(ATTRIBUTE_NAME); if (controller != null) { return controller.getThrowable(); } else { return null; } }
/** * Handles any exception that might occur in the context of this element to * ensure that templates are not disturbed.<p> * * @param t the Throwable that was caught */ protected void handleException(Throwable t) { if (LOG.isErrorEnabled()) { LOG.error(Messages.get().getBundle().key(Messages.LOG_ERR_JSP_BEAN_0), t); } if (!(m_isSupressingExceptions || getRequestContext().getCurrentProject().isOnlineProject())) { if (LOG.isDebugEnabled()) { // no stack trace needed since it was already logged with the "error" log message above LOG.debug( Messages.get().getBundle().key(Messages.LOG_DEBUG_INTERRUPTED_EXCEPTION_1, getClass().getName())); } String uri = null; Throwable u = getController().getThrowable(); if (u != null) { uri = getController().getThrowableResourceUri(); } else { uri = getRequestContext().getUri(); } throw new CmsRuntimeException( Messages.get().container(Messages.ERR_RUNTIME_1, (uri != null) ? uri : getClass().getName()), t); } }
} catch (Throwable t) { Throwable cause = CmsFlexController.getThrowable(getRequest()); if (cause == null) { cause = t;
/** * Handles any exception that might occur in the context of this element to * ensure that templates are not disturbed.<p> * * @param t the Throwable that was caught */ protected void handleException(Throwable t) { if (LOG.isErrorEnabled()) { LOG.error(Messages.get().getBundle().key(Messages.LOG_ERR_JSP_BEAN_0), t); } if (!(m_isSupressingExceptions || getRequestContext().currentProject().isOnlineProject())) { if (LOG.isDebugEnabled()) { // no stack trace needed since it was already logged with the "error" log message above LOG.debug(Messages.get().getBundle().key( Messages.LOG_DEBUG_INTERRUPTED_EXCEPTION_1, getClass().getName())); } String uri = null; Throwable u = getController().getThrowable(); if (u != null) { uri = getController().getThrowableResourceUri(); } else { uri = getRequestContext().getUri(); } throw new CmsRuntimeException(Messages.get().container( Messages.ERR_RUNTIME_1, (uri != null) ? uri : getClass().getName()), t); } }
} catch (Throwable t) { Throwable cause = CmsFlexController.getThrowable(getRequest()); if (cause == null) { cause = t;