TAP5-2520, TAP5-2526: synchronize access to the cache because 
CaseInsensitiveMap is not thread-safe


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/e2a092b6
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/e2a092b6
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/e2a092b6

Branch: refs/heads/master
Commit: e2a092b6c56f1f12accff5d5f3df37dd53259798
Parents: 15a1dbf
Author: Jochen Kemnade <[email protected]>
Authored: Mon Jan 11 10:38:01 2016 +0100
Committer: Jochen Kemnade <[email protected]>
Committed: Mon Jan 11 10:38:01 2016 +0100

----------------------------------------------------------------------
 .../internal/services/assets/JavaScriptStackAssemblerImpl.java    | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/e2a092b6/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/JavaScriptStackAssemblerImpl.java
----------------------------------------------------------------------
diff --git 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/JavaScriptStackAssemblerImpl.java
 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/JavaScriptStackAssemblerImpl.java
index 3299af7..fb81bfc 100644
--- 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/JavaScriptStackAssemblerImpl.java
+++ 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/JavaScriptStackAssemblerImpl.java
@@ -26,6 +26,7 @@ import 
org.apache.tapestry5.services.javascript.JavaScriptAggregationStrategy;
 import org.apache.tapestry5.services.javascript.ModuleManager;
 
 import java.io.*;
+import java.util.Collections;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -51,7 +52,7 @@ public class JavaScriptStackAssemblerImpl implements 
JavaScriptStackAssembler
 
     private final boolean minificationEnabled;
 
-    private final Map<String, StreamableResource> cache = 
CollectionFactory.newCaseInsensitiveMap();
+    private final Map<String, StreamableResource> cache = 
Collections.synchronizedMap(CollectionFactory.newCaseInsensitiveMap());
 
     private class Parameters
     {

Reply via email to