FREEMARKER-55: allow building only once.

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

Branch: refs/heads/3
Commit: e12792ea4e845baf739191ec07b34d60e2653aa9
Parents: 2a8d761
Author: Woonsan Ko <[email protected]>
Authored: Wed Jul 5 18:49:32 2017 -0400
Committer: Woonsan Ko <[email protected]>
Committed: Wed Jul 5 18:49:32 2017 -0400

----------------------------------------------------------------------
 .../java/org/apache/freemarker/servlet/jsp/TaglibFactory.java  | 6 ++++++
 1 file changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/e12792ea/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/TaglibFactory.java
----------------------------------------------------------------------
diff --git 
a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/TaglibFactory.java
 
b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/TaglibFactory.java
index 556c632..f4fea3b 100644
--- 
a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/TaglibFactory.java
+++ 
b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/TaglibFactory.java
@@ -2039,6 +2039,8 @@ public class TaglibFactory implements TemplateHashModel {
          */
         private List<String> classPathTlds = new ArrayList<>();
 
+        private boolean alreadyBuilt;
+
         public Builder() {
         }
 
@@ -2161,7 +2163,11 @@ public class TaglibFactory implements TemplateHashModel {
         }
 
         public TaglibFactory build() throws ConfigurationException {
+            if (alreadyBuilt) {
+                throw new IllegalStateException("build() can only be executed 
once.");
+            }
             TaglibFactory taglibFactory = new TaglibFactory(this);
+            alreadyBuilt = true;
             return taglibFactory;
         }
     }

Reply via email to