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");