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>