You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by dd...@apache.org on 2017/09/13 09:49:03 UTC

[02/36] incubator-freemarker git commit: FREEMARKER-55: using namespace variable for status variable.

FREEMARKER-55: using namespace variable for status variable.


Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/19a3277c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/19a3277c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/19a3277c

Branch: refs/heads/3
Commit: 19a3277c5809e30243a921a2ee42d3a40ecf9ebc
Parents: 6709117
Author: Woonsan Ko <wo...@apache.org>
Authored: Mon Aug 28 23:11:12 2017 -0400
Committer: Woonsan Ko <wo...@apache.org>
Committed: Mon Aug 28 23:11:12 2017 -0400

----------------------------------------------------------------------
 .../apache/freemarker/spring/model/BindDirective.java  | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19a3277c/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/BindDirective.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/BindDirective.java b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/BindDirective.java
index 967344d..9ca7c6a 100644
--- a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/BindDirective.java
+++ b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/BindDirective.java
@@ -91,10 +91,15 @@ public class BindDirective implements TemplateDirectiveModel {
             resolvedPath = resolveNestedPath(resolvedPath);
         }
 
-        BindStatus status = requestContext.getBindStatus(resolvedPath);
-        env.setLocalVariable(STATUS_VARIABLE_NAME, new BeanModel(status, (DefaultObjectWrapper) objectWrapper));
-
-        callPlace.executeNestedContent(null, out, env);
+        final TemplateModel oldStatusModel = env.getVariable(STATUS_VARIABLE_NAME);
+
+        try {
+            BindStatus status = requestContext.getBindStatus(resolvedPath);
+            env.setVariable(STATUS_VARIABLE_NAME, new BeanModel(status, (DefaultObjectWrapper) objectWrapper));
+            callPlace.executeNestedContent(null, out, env);
+        } finally {
+            env.setVariable(STATUS_VARIABLE_NAME, oldStatusModel);
+        }
     }
 
     @Override