Author: shalin
Date: Wed Dec 17 05:12:40 2008
New Revision: 727372

URL: http://svn.apache.org/viewvc?rev=727372&view=rev
Log:
SOLR-917 -- Change RequestHandlers#handlers from a synchronizedMap to a 
ConcurrentHashMap

Modified:
    lucene/solr/trunk/src/java/org/apache/solr/core/RequestHandlers.java

Modified: lucene/solr/trunk/src/java/org/apache/solr/core/RequestHandlers.java
URL: 
http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/core/RequestHandlers.java?rev=727372&r1=727371&r2=727372&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/core/RequestHandlers.java 
(original)
+++ lucene/solr/trunk/src/java/org/apache/solr/core/RequestHandlers.java Wed 
Dec 17 05:12:40 2008
@@ -21,6 +21,8 @@
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -50,8 +52,8 @@
   protected final SolrCore core;
   // Use a synchronized map - since the handlers can be changed at runtime, 
   // the map implementation should be thread safe
-  private final Map<String, SolrRequestHandler> handlers = 
Collections.synchronizedMap(
-      new HashMap<String,SolrRequestHandler>() );
+  private final Map<String, SolrRequestHandler> handlers =
+      new ConcurrentHashMap<String,SolrRequestHandler>() ;
 
   /**
    * Trim the trailing '/' if its there.
@@ -64,6 +66,7 @@
    */
   private static String normalize( String p )
   {
+    if(p == null) return "";
     if( p != null && p.endsWith( "/" ) && p.length() > 1 )
       return p.substring( 0, p.length()-1 );
     
@@ -90,6 +93,7 @@
    * @return the previous handler at the given path or null
    */
   public SolrRequestHandler register( String handlerName, SolrRequestHandler 
handler ) {
+    if(handlerName == null) return null;
     String norm = normalize( handlerName );
     if( handler == null ) {
       return handlers.remove( norm );
@@ -175,7 +179,6 @@
         register(RequestHandlers.DEFAULT_HANDLER_NAME, defaultHandler);
       }
     }
-    register(null, defaultHandler);
     register("", defaultHandler);
   }
     


Reply via email to