You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2010/10/18 11:00:49 UTC
svn commit: r1023693 -
/sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/defaults/DefaultErrorHandlerServlet.java
Author: fmeschbe
Date: Mon Oct 18 09:00:48 2010
New Revision: 1023693
URL: http://svn.apache.org/viewvc?rev=1023693&view=rev
Log:
SLING-1842 should get the response writer after setting the
response character encoding and ensure response is reset before
starting the error response....
Modified:
sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/defaults/DefaultErrorHandlerServlet.java
Modified: sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/defaults/DefaultErrorHandlerServlet.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/defaults/DefaultErrorHandlerServlet.java?rev=1023693&r1=1023692&r2=1023693&view=diff
==============================================================================
--- sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/defaults/DefaultErrorHandlerServlet.java (original)
+++ sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/defaults/DefaultErrorHandlerServlet.java Mon Oct 18 09:00:48 2010
@@ -142,22 +142,31 @@ public class DefaultErrorHandlerServlet
final String statusMessage = ResponseUtil.escapeXml(statusMessageIn);
// set the status code and content type in the response
- final PrintWriter pw = response.getWriter();
+ final PrintWriter pw;
if(!response.isCommitted()) {
+
+ response.reset();
response.setStatus(statusCode);
- response.setContentType("text/html; charset=UTF-8");
+ response.setContentType("text/html");
+ 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.println("<title>" + statusCode + " " + statusMessage + "</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.println("<h1>" + statusMessage + " (" + statusCode + ")</h1>");
pw.print("<p>The requested URL " + ResponseUtil.escapeXml(requestUri)
+ " resulted in an error");