You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tiles.apache.org by mc...@apache.org on 2016/07/13 12:13:34 UTC

svn commit: r1752405 - /tiles/framework/branches/TILES_3_0_X/tiles-core/src/main/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAO.java

Author: mck
Date: Wed Jul 13 12:13:34 2016
New Revision: 1752405

URL: http://svn.apache.org/viewvc?rev=1752405&view=rev
Log:
TILES-585 \u2013 Definition cascade attributes duplicated values under high load
Fix by Jakub Dziworski - jakub.dziworski@gmail.com
This closes #9
ref: https://github.com/apache/tiles/pull/9/commits/78d9001ea5d0b02523ada36453848125d80ec6e3

Modified:
    tiles/framework/branches/TILES_3_0_X/tiles-core/src/main/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAO.java

Modified: tiles/framework/branches/TILES_3_0_X/tiles-core/src/main/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAO.java
URL: http://svn.apache.org/viewvc/tiles/framework/branches/TILES_3_0_X/tiles-core/src/main/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAO.java?rev=1752405&r1=1752404&r2=1752405&view=diff
==============================================================================
--- tiles/framework/branches/TILES_3_0_X/tiles-core/src/main/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAO.java (original)
+++ tiles/framework/branches/TILES_3_0_X/tiles-core/src/main/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAO.java Wed Jul 13 12:13:34 2016
@@ -167,6 +167,11 @@ public class CachingLocaleUrlDefinitionD
      * @since 2.1.0
      */
     protected synchronized Map<String, Definition> checkAndloadDefinitions(Locale customizationKey) {
+        Map<String, Definition> existingDefinitions = locale2definitionMap.get(customizationKey);
+        boolean definitionsAlreadyLoaded = existingDefinitions != null;
+        if (definitionsAlreadyLoaded) {
+            return existingDefinitions;
+        }
         if (checkRefresh && refreshRequired()) {
             locale2definitionMap.clear();
             definitionResolver.clearPatternPaths(customizationKey);