SLING-6948 HttpServletResponse.getOutput() and getOutputAsString() return different information

git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1798871 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/servlethelpers/ResponseBodySupport.java b/src/main/java/org/apache/sling/servlethelpers/ResponseBodySupport.java
index 2a0aaac..e40bdfe 100644
--- a/src/main/java/org/apache/sling/servlethelpers/ResponseBodySupport.java
+++ b/src/main/java/org/apache/sling/servlethelpers/ResponseBodySupport.java
@@ -81,6 +81,9 @@
     }
 
     public byte[] getOutput() {
+        if (printWriter != null) {
+            printWriter.flush();
+        }
         if (servletOutputStream != null) {
             try {
                 servletOutputStream.flush();
@@ -92,9 +95,6 @@
     }
 
     public String getOutputAsString(String charset) {
-        if (printWriter != null) {
-            printWriter.flush();
-        }
         try {
             return new String(getOutput(), defaultCharset(charset));
         } catch (UnsupportedEncodingException ex) {
diff --git a/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletResponseTest.java b/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletResponseTest.java
index 3f72e15..abbfa6a 100644
--- a/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletResponseTest.java
+++ b/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletResponseTest.java
@@ -133,6 +133,8 @@
         final String TEST_CONTENT = "Der Jodelkaiser äöü߀ ᚠᛇᚻ";
         response.setCharacterEncoding(CharEncoding.UTF_8);
         response.getWriter().write(TEST_CONTENT);
+
+        assertEquals(TEST_CONTENT, new String(response.getOutput(), CharEncoding.UTF_8));
         assertEquals(TEST_CONTENT, response.getOutputAsString());
 
         response.resetBuffer();