Author: mgrigorov
Date: Mon May 23 08:10:26 2011
New Revision: 1126370

URL: http://svn.apache.org/viewvc?rev=1126370&view=rev
Log:
WICKET-3730 extremely slow performance in development mode

Use synchronizedMap() when using Application as cache holder because concurrent 
reads/writes are possible.


Modified:
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/AbstractResourceCachingStrategy.java

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/AbstractResourceCachingStrategy.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/AbstractResourceCachingStrategy.java?rev=1126370&r1=1126369&r2=1126370&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/AbstractResourceCachingStrategy.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/AbstractResourceCachingStrategy.java
 Mon May 23 08:10:26 2011
@@ -16,6 +16,8 @@
  */
 package org.apache.wicket.request.resource.caching;
 
+import java.util.Collections;
+import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.wicket.Application;
@@ -113,8 +115,8 @@ public abstract class AbstractResourceCa
                        // create it on first call
                        if (cache == null)
                        {
-                               // TODO can this have synchronization issues ?!
-                               cache = Generics.newHashMap();
+                               // use Collections.synchronizedMap() because 
j.u.CHM doesn't support null values
+                               cache = Collections.<ResourceReference, Time> 
synchronizedMap(new HashMap<ResourceReference, Time>());
                                application.setMetaData(TIMESTAMP_KEY, cache);
                        }
                }


Reply via email to