### Eclipse Workspace Patch 1.0
#P Tomcat_7.0.x
Index: java/org/apache/catalina/valves/mbeans-descriptors.xml
===================================================================
--- java/org/apache/catalina/valves/mbeans-descriptors.xml (revision 1587591)
+++ java/org/apache/catalina/valves/mbeans-descriptors.xml (working copy)
@@ -194,6 +194,16 @@
type="java.lang.String"
writeable="false"/>
+ The Error Report Valve is a simple error handler
+ for HTTP status codes that will generate and return HTML error pages. NOTE: Disabling both showServerInfo and showReport will
+ only return the HTTP status code and remove all CSS. The Error Report Valve supports the following
+ configuration attributes: Java class name of the implementation to use. This MUST be set to
+ org.apache.catalina.valves.ErrorReportValve to use the
+ default error report valve. Flag to determine if the error report is presented when an error occurs.
+ If set to Flag to determine if server information is presented when an error occurs.
+ If set to type ");
- if (throwable != null) {
- sb.append(smClient.getString("errorReportValve.exceptionReport"));
- } else {
- sb.append(smClient.getString("errorReportValve.statusReport"));
+ if(showReport) {
+ sb.append(" type ");
+ if (throwable != null) {
+ sb.append(smClient.getString("errorReportValve.exceptionReport"));
+ } else {
+ sb.append(smClient.getString("errorReportValve.statusReport"));
+ }
+ sb.append(" ");
+ sb.append(smClient.getString("errorReportValve.message"));
+ sb.append(" ");
+ sb.append(message).append(" ");
+ sb.append(smClient.getString("errorReportValve.description"));
+ sb.append(" ");
+ sb.append(report);
+ sb.append(" ");
+ sb.append(smClient.getString("errorReportValve.exception"));
+ sb.append(" false
, then the error report is not in
+ the HTML response.
+ Default value: true
+ false
, then the server version is not returned in
+ the HTML response.
+ Default value: true
+ ");
sb.append(smClient.getString("errorReportValve.statusHeader",
"" + statusCode, message)).append("
");
- sb.append("
");
- sb.append("
");
+ sb.append("");
+ sb.append(RequestUtil.filter(stackTrace));
+ sb.append("
"); + sb.append(smClient.getString("errorReportValve.rootCause")); + sb.append("
"); + sb.append(RequestUtil.filter(stackTrace)); + sb.append(""); + // In case root cause is somehow heavily nested + rootCause = rootCause.getCause(); + loops++; + } + + sb.append("
"); + sb.append(smClient.getString("errorReportValve.note")); + sb.append(" "); + sb.append(smClient.getString("errorReportValve.rootCauseInLogs", + showServerInfo?ServerInfo.getServerInfo():"")); + sb.append("
"); + + } } - sb.append(""); - sb.append(""); - sb.append(smClient.getString("errorReportValve.message")); - sb.append(" "); - sb.append(message).append("
"); - sb.append(""); - sb.append(smClient.getString("errorReportValve.description")); - sb.append(" "); - sb.append(report); - sb.append("
"); - - if (throwable != null) { - - String stackTrace = getPartialServletStackTrace(throwable); - sb.append(""); - sb.append(smClient.getString("errorReportValve.exception")); - sb.append("
"); - sb.append(RequestUtil.filter(stackTrace)); - sb.append(""); - - int loops = 0; - Throwable rootCause = throwable.getCause(); - while (rootCause != null && (loops < 10)) { - stackTrace = getPartialServletStackTrace(rootCause); - sb.append("
"); - sb.append(smClient.getString("errorReportValve.rootCause")); - sb.append("
"); - sb.append(RequestUtil.filter(stackTrace)); - sb.append(""); - // In case root cause is somehow heavily nested - rootCause = rootCause.getCause(); - loops++; - } - - sb.append("
"); - sb.append(smClient.getString("errorReportValve.note")); - sb.append(" "); - sb.append(smClient.getString("errorReportValve.rootCauseInLogs", - ServerInfo.getServerInfo())); - sb.append("
"); - + + if(showServerInfo) { + sb.append("