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 <[email protected]> Authored: Mon Aug 28 23:11:12 2017 -0400 Committer: Woonsan Ko <[email protected]> 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
