in src/main/java/org/apache/sling/servlets/resolver/internal/defaults/DefaultErrorHandlerServlet.java [239:295]
private PrintWriter sendIntro(
final HttpServletResponse response,
final int statusCode,
final String statusMessageIn,
final String requestUri,
final String servletName)
throws IOException {
final String statusMessage = ResponseUtil.escapeXml(statusMessageIn);
// set the status code and content type in the response
final PrintWriter pw;
if (!response.isCommitted()) {
response.reset();
response.setStatus(statusCode);
response.setContentType(HTML_CONTENT_TYPE);
response.setCharacterEncoding("UTF-8");
pw = response.getWriter();
pw.println("<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">");
pw.println("<html>");
pw.println("<head>");
pw.print("<title>");
pw.print(statusCode);
pw.print(" ");
pw.print(statusMessage);
pw.println("</title>");
pw.println("</head>");
pw.println("<body>");
} else {
// Response already committed: don't change status or write HTML prolog, but report
// the error inline and warn about that
log.warn("Response already committed, unable to change status, output might not be well formed");
pw = response.getWriter();
}
pw.print("<h1>");
pw.print(statusMessage);
pw.print(" (");
pw.print(statusCode);
pw.println(")</h1>");
pw.print("<p>The requested URL ");
pw.print(ResponseUtil.escapeXml(requestUri));
pw.print(" resulted in an error");
if (servletName != null) {
pw.print(" in ");
pw.print(ResponseUtil.escapeXml(servletName));
}
pw.println(".</p>");
return pw;
}