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>