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