[
https://issues.apache.org/jira/browse/TILES-585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
mck reopened TILES-585:
-----------------------
Thanks [~laoseth] for pointing this out.
I've attached a patch to address this. I also changed the Map from being a
HashMap to a ConcurrentHashMap. (IMHO the code isn't locked down enough,
non-synchronized protected methods for writes, to avoid doing The Right Thing™
and using the ConcurrentHashMap). Could you review it please?
[~jakub.dziworski] and [~apetrelli] would you mind also reviewing this.
> Definition cascade attributes duplicated values under high load
> ---------------------------------------------------------------
>
> Key: TILES-585
> URL: https://issues.apache.org/jira/browse/TILES-585
> Project: Tiles
> Issue Type: Bug
> Components: tiles-core
> Affects Versions: 3.0.5
> Reporter: Jakub Dziworski
> Assignee: mck
> Priority: Critical
> Fix For: 3.1.x, 3.0.7
>
> Attachments: TILES-585.patch
>
>
> The problem concerns {code:java}
> CachingLocaleUrlDefinitionDAO.getDefinitions(Locale customizationKey) {code}
> which lacks synchronization.
> To reproduce the bug:
> # Set up few clients with different Accept-Language headers
> # Make the clients perform many request in short time (check out jmeter
> script attached below)
> # the retValue contains entries with definitions with cascade attirbutes
> whose elements are duplicated.
> We *fixed it by marking getDefinitions method synchronized*.
> Here is jmeter script to reproduce bug:
> [http://pastebin.com/pQT32Crx]
> For following definition:
> {code}
> <definition name="template" template="/WEB-INF/views/template.jsp">
> <put-list-attribute name="scripts" cascade="true">
> <add-attribute value="mstatic/js/form-validation-lang-hu.js" />
> <add-attribute value="mstatic/js/jquery.core.min.js" />
> <add-attribute value="mstatic/js/scripts.min.js" />
> <!--other attributes-->
> </put-list-attribute>
> </definition>
> {code}
> Cascade attributes are duplicated:
>
> !https://s31.postimg.org/9z8fr06ux/image.png!
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)