You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by et...@apache.org on 2008/10/30 19:03:49 UTC

svn commit: r709218 - /incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.java

Author: etnu
Date: Thu Oct 30 11:03:48 2008
New Revision: 709218

URL: http://svn.apache.org/viewvc?rev=709218&view=rev
Log:
Switched manual locking to ConcurrentHashMap since it seems to perform better anyway and is less error prone.


Modified:
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.java

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.java?rev=709218&r1=709217&r2=709218&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.java Thu Oct 30 11:03:48 2008
@@ -30,8 +30,6 @@
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
-import java.util.concurrent.locks.ReadWriteLock;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
 import java.util.logging.Logger;
 
 /**
@@ -49,8 +47,7 @@
 
   // Caches the transitive dependencies to enable faster lookups.
   private final Map<Collection<String>, Collection<GadgetFeature>> cache
-      = Maps.newHashMap();
-  private final ReadWriteLock cacheLock = new ReentrantReadWriteLock();
+      = Maps.newConcurrentHashMap();
 
   private boolean graphComplete = false;
 
@@ -133,9 +130,7 @@
     }
     // We use the cache only for situations where all needed are available.
     // if any are missing, the result won't be cached.
-    cacheLock.readLock().lock();
     Collection<GadgetFeature> libCache = cache.get(needed);
-    cacheLock.readLock().unlock();
     if (libCache != null) {
       return libCache;
     }
@@ -150,9 +145,7 @@
       }
     }
     if (unsupported == null || unsupported.isEmpty()) {
-      cacheLock.writeLock().lock();
       cache.put(needed, Collections.unmodifiableList(ret));
-      cacheLock.writeLock().unlock();
     }
     return ret;
   }