WW-4749 Uses Boolean to allow define behaviour per result

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

Branch: refs/heads/master
Commit: 3034b3a97050bcb24e34f39b203a960a0ddca93e
Parents: 6dad53c
Author: Lukasz Lenart <lukaszlen...@apache.org>
Authored: Fri Apr 28 13:00:09 2017 +0200
Committer: Lukasz Lenart <lukaszlen...@apache.org>
Committed: Fri Apr 28 13:00:09 2017 +0200

----------------------------------------------------------------------
 .../struts2/views/freemarker/FreemarkerResult.java     | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/3034b3a9/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerResult.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerResult.java 
b/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerResult.java
index c9683b8..b083796 100644
--- 
a/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerResult.java
+++ 
b/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerResult.java
@@ -60,7 +60,7 @@ public class FreemarkerResult extends StrutsResultSupport {
     protected ObjectWrapper wrapper;
     protected FreemarkerManager freemarkerManager;
     private Writer writer;
-    private boolean useBufferedWriter = false;
+    private Boolean useBufferedWriter = null;
 
     /*
      * Struts results are constructed for each result execution
@@ -144,7 +144,12 @@ public class FreemarkerResult extends StrutsResultSupport {
         // Give subclasses a chance to hook into preprocessing
         if (preTemplateProcess(template, model)) {
             try {
-                final boolean willUseBufferedWriter = isUseBufferedWriter() || 
template.getTemplateExceptionHandler() == 
TemplateExceptionHandler.RETHROW_HANDLER;
+                final boolean willUseBufferedWriter;
+                if (useBufferedWriter != null) {
+                    willUseBufferedWriter = isUseBufferedWriter();
+                } else {
+                    willUseBufferedWriter = 
template.getTemplateExceptionHandler() == 
TemplateExceptionHandler.RETHROW_HANDLER;
+                }
 
                 // Process the template
                 Writer writer = getWriter();
@@ -352,13 +357,13 @@ public class FreemarkerResult extends StrutsResultSupport 
{
     }
 
     public boolean isUseBufferedWriter() {
-        return useBufferedWriter;
+        return useBufferedWriter != null && useBufferedWriter;
     }
 
     /**
      * @param useBufferedWriter template is processed and flushed according to 
freemarker library policies
      */
-    public void setUseBufferedWriter(boolean useBufferedWriter) {
+    public void setUseBufferedWriter(Boolean useBufferedWriter) {
         this.useBufferedWriter = useBufferedWriter;
     }
 }

Reply via email to