You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ma...@apache.org on 2009/02/19 09:37:03 UTC
svn commit: r745780 -
/myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/resource/CachingResourceLoader.java
Author: matzew
Date: Thu Feb 19 08:37:03 2009
New Revision: 745780
URL: http://svn.apache.org/viewvc?rev=745780&view=rev
Log:
TRINIDAD-1403 - CachingResourceLoader uses unsynchronized Map for maintaining cache but accesses Map from multiple threads
Modified:
myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/resource/CachingResourceLoader.java
Modified: myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/resource/CachingResourceLoader.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/resource/CachingResourceLoader.java?rev=745780&r1=745779&r2=745780&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/resource/CachingResourceLoader.java (original)
+++ myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/resource/CachingResourceLoader.java Thu Feb 19 08:37:03 2009
@@ -21,14 +21,12 @@
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
-
import java.io.InputStream;
import java.net.URL;
-
import java.net.URLConnection;
import java.net.URLStreamHandler;
-import java.util.Map;
-import java.util.HashMap;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
import org.apache.myfaces.trinidad.util.URLUtils;
@@ -49,7 +47,7 @@
{
super(parent);
- _cache = new HashMap<String, URL>();
+ _cache = new ConcurrentHashMap<String, URL>();
}
/**
@@ -76,14 +74,14 @@
if (url != null)
{
url = new URL("cache", null, -1, path, new URLStreamHandlerImpl(url));
- _cache.put(path, url);
+ _cache.putIfAbsent(path, url);
}
}
return url;
}
- private final Map<String, URL> _cache;
+ private final ConcurrentMap<String, URL> _cache;
/**
* URLStreamHandler to cache URL contents and URLConnection headers.