You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Lukasz Lenart (JIRA)" <ji...@apache.org> on 2012/12/09 19:07:21 UTC

[jira] [Updated] (WW-3766) remove struts.freemarker.mru.max.strong.size from default.properties

     [ https://issues.apache.org/jira/browse/WW-3766?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Lukasz Lenart updated WW-3766:
------------------------------

    Description: 
if struts.freemarker.mru.max.strong.size > 0 ,freemarker will use MruCacheStorage instead of SoftCacheStorage,and MruCacheStorage is not concurrent,it will synchronized on every call,it will affect performance. 

in TemplateCache:
{code:java}
CachedTemplate cachedTemplate;
if(isStorageConcurrent) {
    cachedTemplate = (CachedTemplate)storage.get(tk);
}
else {
    synchronized(storage) {
       cachedTemplate = (CachedTemplate)storage.get(tk);
    }
}
{code}
please remove struts.freemarker.mru.max.strong.size from default.properties lets developers make their own choice.
a better solution is implements a concurrent MruCacheStorage for struts2

  was:
if struts.freemarker.mru.max.strong.size > 0 ,freemarker will use MruCacheStorage instead of SoftCacheStorage,and MruCacheStorage is not concurrent,it will synchronized on every call,it will affect performance. 

in TemplateCache:

        CachedTemplate cachedTemplate;
        if(isStorageConcurrent) {
            cachedTemplate = (CachedTemplate)storage.get(tk);
        }
        else {
            synchronized(storage) {
                cachedTemplate = (CachedTemplate)storage.get(tk);
            }
        }

please remove struts.freemarker.mru.max.strong.size from default.properties lets developers make their own choice.
a better solution is implements a concurrent MruCacheStorage for struts2

    
> remove struts.freemarker.mru.max.strong.size from default.properties
> --------------------------------------------------------------------
>
>                 Key: WW-3766
>                 URL: https://issues.apache.org/jira/browse/WW-3766
>             Project: Struts 2
>          Issue Type: Improvement
>            Reporter: zhouyanming
>            Priority: Critical
>              Labels: freemarker
>             Fix For: 2.3.8
>
>
> if struts.freemarker.mru.max.strong.size > 0 ,freemarker will use MruCacheStorage instead of SoftCacheStorage,and MruCacheStorage is not concurrent,it will synchronized on every call,it will affect performance. 
> in TemplateCache:
> {code:java}
> CachedTemplate cachedTemplate;
> if(isStorageConcurrent) {
>     cachedTemplate = (CachedTemplate)storage.get(tk);
> }
> else {
>     synchronized(storage) {
>        cachedTemplate = (CachedTemplate)storage.get(tk);
>     }
> }
> {code}
> please remove struts.freemarker.mru.max.strong.size from default.properties lets developers make their own choice.
> a better solution is implements a concurrent MruCacheStorage for struts2

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira