/** * @return a plain/text report of the throwable. */ protected String getTextReport() { StringBuffer sb = new StringBuffer(getString("EXCEPTION.TITLE")); String separator = getString("EXCEPTION.SEPARATOR"); sb.append(getTextReportInformation(separator)); sb.append(getTextReportException(separator)); if (ContextUtils.isWeb()) { sb.append(getTextReportRequest()); } sb.append(getTextReportProperties()); sb.append(TEXT_HRULE); return sb.toString(); }
@Override public void handleException() throws ExceptionHandlingException { // try to log the throwable try { logTextReport(getThrowable(), getTextReport()); } catch (Throwable t) { logger.error("The following error was thrown by the application:", throwable); logger.error("Another throwable was thrown while logging the first one (giving up):", t); throw new ExceptionHandlingException(t); } }
/** * @return a StringBuffer. */ private StringBuffer getTextReportProperties() { String systemPropertiesStr = text(systemProperties); StringBuffer sb = new StringBuffer(); sb.append(TEXT_HRULE); sb.append(TEXT_CR + getString("EXCEPTION.HEADER.SYSTEM_PROPERTIES")); sb.append(TEXT_HRULE); sb.append(TEXT_CR + systemPropertiesStr); sb.append(TEXT_HRULE); sb.append(TEXT_CR + getString("EXCEPTION.HEADER.MEMORY")); sb.append(TEXT_HRULE); sb.append(TEXT_CR + getString("EXCEPTION.MEMORY.VALUES", freeMemory, totalMemory, maxMemory)); return sb; }
StringBuffer sb = new StringBuffer(); sb.append(TEXT_HRULE); sb.append(TEXT_CR + getString("EXCEPTION.HEADER.INFORMATION")); sb.append(TEXT_HRULE); sb.append(TEXT_CR + getString("EXCEPTION.INFORMATION.APPLICATION") + separator + applicationName); sb.append(TEXT_CR + getString("EXCEPTION.INFORMATION.VERSION") + separator + applicationVersion); if (server == null) { server = getString("EXCEPTION.INFORMATION.SERVER.UNKNOWN"); sb.append(TEXT_CR + getString("EXCEPTION.INFORMATION.SERVER") + separator + server); String dateStr; if (date == null) { dateStr = getString("EXCEPTION.INFORMATION.DATE.UNKNOWN"); } else { dateStr = printableDate(date.longValue()); sb.append(TEXT_CR + getString("EXCEPTION.INFORMATION.DATE") + separator + dateStr); if (ContextUtils.isWeb()) { if (userId == null) { userId = getString("EXCEPTION.INFORMATION.USER_ID.UNKNOWN"); sb.append(TEXT_CR + getString("EXCEPTION.INFORMATION.USER_ID") + separator + userId); if (portal == null) { portal = getString("EXCEPTION.INFORMATION.PORTAL.UNKNOWN");
/** * @param separator * @return a StringBuffer. */ private StringBuffer getTextReportException( final String separator) { StringBuffer sb = new StringBuffer(); if (throwable != null) { Throwable cause = ExceptionUtils.getRealCause(throwable); sb.append(TEXT_HRULE); sb.append(TEXT_CR + getString("EXCEPTION.HEADER.EXCEPTION")); sb.append(TEXT_HRULE); sb.append(TEXT_CR + getString("EXCEPTION.EXCEPTION.NAME") + separator + cause.getClass().getSimpleName()); sb.append(TEXT_CR + getString("EXCEPTION.EXCEPTION.MESSAGE") + separator + cause.getMessage()); sb.append(TEXT_CR + getString("EXCEPTION.EXCEPTION.SHORT_STACK_TRACE") + separator); sb.append(TEXT_CR + ExceptionUtils.getShortPrintableStackTrace(throwable)); sb.append(TEXT_CR + getString("EXCEPTION.EXCEPTION.STACK_TRACE") + separator); sb.append(TEXT_CR + ExceptionUtils.getPrintableStackTrace(throwable)); } return sb; }
@Override public ExceptionService getExceptionService() { return new SimpleExceptionServiceImpl( getI18nService(), getApplicationService(), exceptionViews, authenticationService, logLevel); }
try { throwable = t; applicationName = getApplicationService().getName(); applicationVersion = getApplicationService().getVersion(); date = new Long(System.currentTimeMillis()); if (ContextUtils.isPortlet()) { portal = HttpUtils.getPortalInfo(); quickStart = getApplicationService().isQuickStart(); systemProperties = SystemUtils.getSystemPropertiesStrings(); freeMemory = SystemUtils.getFreeMemory();
String globalSessionAttributesStr = text(globalSessionAttributes); String sessionAttributesStr = text(sessionAttributes); String requestAttributesStr = text(requestAttributes); String requestHeadersStr = text(requestHeaders); String requestParametersStr = text(requestParameters); String cookiesStr = text(cookies); StringBuffer sb = new StringBuffer(); sb.append(TEXT_HRULE); sb.append(TEXT_CR + getString("EXCEPTION.HEADER.REQUEST_ATTRIBUTES")); sb.append(TEXT_HRULE); if (requestAttributesStr == null) { requestAttributesStr = getString("EXCEPTION.REQUEST_ATTRIBUTES.NONE"); sb.append(TEXT_CR + getString("EXCEPTION.HEADER.SESSION_ATTRIBUTES")); sb.append(TEXT_HRULE); if (sessionAttributesStr == null) { sessionAttributesStr = getString("EXCEPTION.SESSION_ATTRIBUTES.NONE"); sb.append(TEXT_CR + getString("EXCEPTION.HEADER.GLOBAL_SESSION_ATTRIBUTES")); sb.append(TEXT_HRULE); if (globalSessionAttributesStr == null) { globalSessionAttributesStr = getString("EXCEPTION.GLOBAL_SESSION_ATTRIBUTES.NONE"); sb.append(TEXT_CR + getString("EXCEPTION.HEADER.REQUEST_HEADERS")); sb.append(TEXT_HRULE); if (requestHeadersStr == null) { requestHeadersStr = getString("EXCEPTION.REQUEST_HEADERS.NONE"); sb.append(TEXT_CR + getString("EXCEPTION.HEADER.REQUEST_PARAMETERS"));