Author: lukaszlenart
Date: Fri Mar 30 21:04:33 2012
New Revision: 1307614

URL: http://svn.apache.org/viewvc?rev=1307614&view=rev
Log:
WW-3750 reduces scope of cashing

Modified:
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/freemarker/ScopesHashModel.java
    
struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/actionNames.ftl
    
struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/page-header.ftl

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/freemarker/ScopesHashModel.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/freemarker/ScopesHashModel.java?rev=1307614&r1=1307613&r2=1307614&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/freemarker/ScopesHashModel.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/freemarker/ScopesHashModel.java
 Fri Mar 30 21:04:33 2012
@@ -32,7 +32,6 @@ import javax.servlet.http.HttpServletReq
 import javax.servlet.http.HttpSession;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
 
 
 /**
@@ -52,8 +51,7 @@ public class ScopesHashModel extends Sim
     private ServletContext servletContext;
     private ValueStack stack;
     private final Map<String,TemplateModel> unlistedModels = new 
HashMap<String,TemplateModel>();
-    private final Map<String, Object> stackCache = new 
ConcurrentHashMap<String, Object>();
-    private static final Object NULL_OBJECT = new Object();
+    private volatile Object parametersCache;
 
     public ScopesHashModel(ObjectWrapper objectWrapper, ServletContext 
context, HttpServletRequest request, ValueStack stack) {
         super(objectWrapper);
@@ -143,21 +141,15 @@ public class ScopesHashModel extends Sim
     }
 
     private Object findValueOnStack(final String key) {
-        if (this.stackCache.containsKey(key)) {
-            final Object value = this.stackCache.get(key);
-            if (value == NULL_OBJECT) {
-                return null;
-            }
-            return value;
-        }
-
-        final Object value = this.stack.findValue(key);
-        if (value == null) {
-            this.stackCache.put(key, NULL_OBJECT);
-        } else {
-            this.stackCache.put(key, value);
+        if ("parameters".equals(key)) {
+            if (parametersCache != null) {
+                return parametersCache;
+            }
+            Object parametersLocal = stack.findValue(key);
+            parametersCache = parametersLocal;
+            return parametersLocal;
         }
-        return value;
+        return stack.findValue(key);
     }
 
     public void put(String string, boolean b) {

Modified: 
struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/actionNames.ftl
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/actionNames.ftl?rev=1307614&r1=1307613&r2=1307614&view=diff
==============================================================================
--- 
struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/actionNames.ftl
 (original)
+++ 
struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/actionNames.ftl
 Fri Mar 30 21:04:33 2012
@@ -32,7 +32,7 @@
                     <@s.param name="namespace">${namespace}</@s.param>
                     <@s.param name="actionName">${name}</@s.param>
                 </@s.url>
-                <li><@s.a href="%{showConfig}">${name}</@s.a></li>
+                <li><a href="${showConfig}">${name}</a></li>
                        </#list>
                        </ul>
                </td>

Modified: 
struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/page-header.ftl
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/page-header.ftl?rev=1307614&r1=1307613&r2=1307614&view=diff
==============================================================================
--- 
struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/page-header.ftl
 (original)
+++ 
struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/page-header.ftl
 Fri Mar 30 21:04:33 2012
@@ -69,7 +69,7 @@
                             <@s.url var="namespaceLink" action="actionNames" 
includeParams="none">
                                 <@s.param 
name="namespace">${namespace}</@s.param>
                             </@s.url>
-                            <@s.a href="%{namespaceLink}"><#if namespace == 
""> default <#else> ${namespace} </#if></@s.a>
+                            <a href="${namespaceLink}"><#if namespace == ""> 
default <#else> ${namespace} </#if></a>
                         </div>
                     </#foreach>
                     </div>
@@ -84,7 +84,7 @@
                                 <@s.param 
name="namespace">${namespace}</@s.param>
                                 <@s.param name="actionName">${name}</@s.param>
                             </@s.url>
-                            <@s.a href="%{actionLink}">${name}</@s.a>
+                            <a href="${actionLink}">${name}</a>
                         </div>
                                    </#foreach>
                     </#if>


Reply via email to