The idea is to make null and "" equivalent . COncurrentHashMap cannot take null keys
On Thu, Dec 18, 2008 at 2:17 PM, Chris Hostetter <[email protected]> wrote: > > Uh... wait a minute, what is "if(handlerName == null) return null;" doing > in the "register" method? that's not the same semantics as before. > > and why are there redundent null checks in normalize? > > if the intention is to make null equivilent to "" let's make it work > correctly (and mention it in the javadocs) > > : Date: Wed, 17 Dec 2008 13:12:40 -0000 > : From: [email protected] > : Reply-To: [email protected] > : To: [email protected] > : Subject: svn commit: r727372 - > : /lucene/solr/trunk/src/java/org/apache/solr/core/RequestHandlers.java > : > : 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); > : } > : > : > : > > > > -Hoss > > -- --Noble Paul
