struts git commit: WW-4545 - Setting status code in HttpHeaders will be ignored

2015-12-17 Thread amashchenko
Repository: struts
Updated Branches:
  refs/heads/support-2-3 8bbfb461c -> f29585248


WW-4545 - Setting status code in HttpHeaders will be ignored

(cherry picked from commit 4cd9a74cb8efa8dc0d3c57ac267a70b0538f3bf0)


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/f2958524
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/f2958524
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/f2958524

Branch: refs/heads/support-2-3
Commit: f2958524823a2b514aa5de239d264cf6a622297d
Parents: 8bbfb46
Author: Johannes Geppert 
Authored: Thu Sep 10 19:11:12 2015 +0200
Committer: Aleksandr Mashchenko 
Committed: Thu Dec 17 19:45:59 2015 +0200

--
 .../rest/DefaultContentTypeHandlerManager.java   | 15 ++-
 1 file changed, 14 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/f2958524/plugins/rest/src/main/java/org/apache/struts2/rest/DefaultContentTypeHandlerManager.java
--
diff --git 
a/plugins/rest/src/main/java/org/apache/struts2/rest/DefaultContentTypeHandlerManager.java
 
b/plugins/rest/src/main/java/org/apache/struts2/rest/DefaultContentTypeHandlerManager.java
index b1bcffc..c55f319 100644
--- 
a/plugins/rest/src/main/java/org/apache/struts2/rest/DefaultContentTypeHandlerManager.java
+++ 
b/plugins/rest/src/main/java/org/apache/struts2/rest/DefaultContentTypeHandlerManager.java
@@ -126,8 +126,12 @@ public class DefaultContentTypeHandlerManager implements 
ContentTypeHandlerManag
  */
 public String handleResult(ActionConfig actionConfig, Object methodResult, 
Object target) throws IOException {
 String resultCode = readResultCode(methodResult);
+Integer statusCode = readStatusCode(methodResult);
 HttpServletRequest req = ServletActionContext.getRequest();
 HttpServletResponse res = ServletActionContext.getResponse();
+if(statusCode != null) {
+res.setStatus(statusCode);
+}
 
 ContentTypeHandler handler = getHandlerForResponse(req, res);
 if (handler != null) {
@@ -143,13 +147,22 @@ public class DefaultContentTypeHandlerManager implements 
ContentTypeHandlerManag
 res.setContentLength(data.length);
 res.setContentType(handler.getContentType());
 res.getOutputStream().write(data);
-res.getOutputStream().close();
+res.getOutputStream().flush();
 }
 }
 }
 return resultCode;
 }
 
+
+protected Integer readStatusCode(Object methodResult) {
+if (methodResult instanceof HttpHeaders) {
+return ((HttpHeaders) methodResult).getStatus();
+} else {
+return null;
+}
+}
+
 protected String readResultCode(Object methodResult) {
 if (methodResult == null) {
 return null;



struts git commit: WW-4545 - Setting status code in HttpHeaders will be ignored

2015-09-10 Thread jogep
Repository: struts
Updated Branches:
  refs/heads/master e10658cb3 -> 4cd9a74cb


WW-4545 - Setting status code in HttpHeaders will be ignored


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/4cd9a74c
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/4cd9a74c
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/4cd9a74c

Branch: refs/heads/master
Commit: 4cd9a74cb8efa8dc0d3c57ac267a70b0538f3bf0
Parents: e10658c
Author: Johannes Geppert 
Authored: Thu Sep 10 19:11:12 2015 +0200
Committer: Johannes Geppert 
Committed: Thu Sep 10 19:11:12 2015 +0200

--
 .../rest/DefaultContentTypeHandlerManager.java   | 15 ++-
 1 file changed, 14 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/4cd9a74c/plugins/rest/src/main/java/org/apache/struts2/rest/DefaultContentTypeHandlerManager.java
--
diff --git 
a/plugins/rest/src/main/java/org/apache/struts2/rest/DefaultContentTypeHandlerManager.java
 
b/plugins/rest/src/main/java/org/apache/struts2/rest/DefaultContentTypeHandlerManager.java
index 2e3201a..5f50bf9 100644
--- 
a/plugins/rest/src/main/java/org/apache/struts2/rest/DefaultContentTypeHandlerManager.java
+++ 
b/plugins/rest/src/main/java/org/apache/struts2/rest/DefaultContentTypeHandlerManager.java
@@ -126,8 +126,12 @@ public class DefaultContentTypeHandlerManager implements 
ContentTypeHandlerManag
  */
 public String handleResult(ActionConfig actionConfig, Object methodResult, 
Object target) throws IOException {
 String resultCode = readResultCode(methodResult);
+Integer statusCode = readStatusCode(methodResult);
 HttpServletRequest req = ServletActionContext.getRequest();
 HttpServletResponse res = ServletActionContext.getResponse();
+if(statusCode != null) {
+res.setStatus(statusCode);
+}
 
 ContentTypeHandler handler = getHandlerForResponse(req, res);
 if (handler != null) {
@@ -143,13 +147,22 @@ public class DefaultContentTypeHandlerManager implements 
ContentTypeHandlerManag
 res.setContentLength(data.length);
 res.setContentType(handler.getContentType());
 res.getOutputStream().write(data);
-res.getOutputStream().close();
+res.getOutputStream().flush();
 }
 }
 }
 return resultCode;
 }
 
+
+protected Integer readStatusCode(Object methodResult) {
+if (methodResult instanceof HttpHeaders) {
+return ((HttpHeaders) methodResult).getStatus();
+} else {
+return null;
+}
+}
+
 protected String readResultCode(Object methodResult) {
 if (methodResult == null) {
 return null;