Author: musachy
Date: Fri Nov 21 09:13:32 2008
New Revision: 719643

URL: http://svn.apache.org/viewvc?rev=719643&view=rev
Log:
WW-2879 Use Concurrent API in FreemarkerTemplateEngine

thanks to Mathias Bogaert for the patch

Modified:
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/template/FreemarkerTemplateEngine.java

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/template/FreemarkerTemplateEngine.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/template/FreemarkerTemplateEngine.java?rev=719643&r1=719642&r2=719643&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/template/FreemarkerTemplateEngine.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/template/FreemarkerTemplateEngine.java
 Fri Nov 21 09:13:32 2008
@@ -23,10 +23,9 @@
 
 import java.io.IOException;
 import java.io.Writer;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArraySet;
 
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
@@ -55,8 +54,8 @@
     static Class bodyContent = null;
     private FreemarkerManager freemarkerManager;
 
-    private final HashMap<String, freemarker.template.Template> templates = 
new HashMap<String, freemarker.template.Template>();
-    private final HashSet<String> missingTemplates = new HashSet<String>();
+    private final Map<String, freemarker.template.Template> templates = new 
ConcurrentHashMap<String, freemarker.template.Template>();
+    private final Set<String> missingTemplates = new 
CopyOnWriteArraySet<String>();
     private boolean freemarkerCaching = false;
 
     static {
@@ -191,28 +190,20 @@
     }
 
     protected void addToMissingTemplateCache(String templateName) {
-        synchronized(missingTemplates) {
-            missingTemplates.add(templateName);
-        }
+        missingTemplates.add(templateName);
     }
     
     protected boolean isTemplateMissing(String templateName) {
-        synchronized(missingTemplates) {
-            return missingTemplates.contains(templateName);
-        }
+        return missingTemplates.contains(templateName);
     }
 
     protected void addToCache(String templateName,
         freemarker.template.Template template) {
-        synchronized(templates) {
-            templates.put(templateName, template);
-        }
+        templates.put(templateName, template);
     }
     
     protected freemarker.template.Template findInCache(String templateName) {
-        synchronized(templates) {
-            return templates.get(templateName);
-        }
+        return templates.get(templateName);
     }
     
     /**


Reply via email to