You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by Fuad Efendi <fu...@efendi.ca> on 2012/06/18 17:45:36 UTC

Solr - ConcurrentHashMap - NullPointerException

I am recalling big noise in JIRA; and Paul Nobble implemented first version
of thisŠ what can be wrong now, after few years? Solr 3.6.0


Jun 18, 2012 3:40:43 PM org.apache.solr.common.SolrException log
SEVERE: java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:768)
at org.apache.solr.util.ConcurrentLRUCache.get(ConcurrentLRUCache.java:87)
at org.apache.solr.search.FastLRUCache.get(FastLRUCache.java:136)
at 
org.apache.solr.search.SolrIndexSearcher.getPositiveDocSet(SolrIndexSearcher
.java:632)
at 
org.apache.solr.search.SolrIndexSearcher.numDocs(SolrIndexSearcher.java:1743
)
at 
org.apache.solr.request.SimpleFacets.getFacetQueryCounts(SimpleFacets.java:2
34)
at 
org.apache.solr.request.SimpleFacets.getFacetCounts(SimpleFacets.java:194)
at 
org.apache.solr.handler.component.FacetComponent.process(FacetComponent.java
:72)
at 
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHand
ler.java:186)
at 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.
java:129)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1376)
at 
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:3
65)
at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:
260)
at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:235)
at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:206)
at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:233)
at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:191)
at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127
)
at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102
)
at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:109)
at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http
11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:680)



Fuad Efendi
416-993-2060
http://www.tokenizer.ca




Re: Solr - ConcurrentHashMap - NullPointerException

Posted by Fuad Efendi <fu...@efendi.ca>.
Rare problemŠ it happened when I provided NULL facet query via solrconfig:
       <str name="facet.query"></str>

 


We probably should add null check:

  // only handle positive (non negative) queries

  DocSet getPositiveDocSet(Query q) throws IOException {

    DocSet answer;

    if (filterCache != null) {

      answer = filterCache.get(q);

      if (answer!=null) return answer;

    }

    answer = getDocSetNC(q,null);

    if (filterCache != null) filterCache.put(

        q,answer);

    return answer;

  }





From:  Fuad Efendi <fu...@efendi.ca>
Reply-To:  lucene-dev <de...@lucene.apache.org>
Date:  Monday, 18 June, 2012 11:52 AM
To:  lucene-dev <de...@lucene.apache.org>
Subject:  Re: Solr - ConcurrentHashMap - NullPointerException

Some research, line 768 of ConcurrentHashMap:

 int hash = hash(key.hashCode());


I believe we have Unit Test with null as a keyŠ very strange for Solr cache
implementationŠ



   /**

     * Returns the value to which the specified key is mapped,

     * or {@code null} if this map contains no mapping for the key.

     *

     * <p>More formally, if this map contains a mapping from a key

     * {@code k} to a value {@code v} such that {@code key.equals(k)},

     * then this method returns {@code v}; otherwise it returns

     * {@code null}.  (There can be at most one such mapping.)

     *

     * @throws NullPointerException if the specified key is null

     */

    public V get(Object key) {

        int hash = hash(key.hashCode());

        return segmentFor(hash).get(key, hash);

    }







From:  Fuad Efendi <fu...@efendi.ca>
Reply-To:  lucene-dev <de...@lucene.apache.org>
Date:  Monday, 18 June, 2012 11:45 AM
To:  lucene-dev <de...@lucene.apache.org>
Subject:  Solr - ConcurrentHashMap - NullPointerException


I am recalling big noise in JIRA; and Paul Nobble implemented first version
of thisŠ what can be wrong now, after few years? Solr 3.6.0


Jun 18, 2012 3:40:43 PM org.apache.solr.common.SolrException log
SEVERE: java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:768)
at org.apache.solr.util.ConcurrentLRUCache.get(ConcurrentLRUCache.java:87)
at org.apache.solr.search.FastLRUCache.get(FastLRUCache.java:136)
at 
org.apache.solr.search.SolrIndexSearcher.getPositiveDocSet(SolrIndexSearcher
.java:632)
at 
org.apache.solr.search.SolrIndexSearcher.numDocs(SolrIndexSearcher.java:1743
)
at 
org.apache.solr.request.SimpleFacets.getFacetQueryCounts(SimpleFacets.java:2
34)
at 
org.apache.solr.request.SimpleFacets.getFacetCounts(SimpleFacets.java:194)
at 
org.apache.solr.handler.component.FacetComponent.process(FacetComponent.java
:72)
at 
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHand
ler.java:186)
at 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.
java:129)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1376)
at 
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:3
65)
at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:
260)
at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:235)
at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:206)
at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:233)
at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:191)
at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127
)
at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102
)
at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:109)
at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http
11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:680)



Fuad Efendi
416-993-2060
http://www.tokenizer.ca




Re: Solr - ConcurrentHashMap - NullPointerException

Posted by Fuad Efendi <fu...@efendi.ca>.
Some research, line 768 of ConcurrentHashMap:

 int hash = hash(key.hashCode());


I believe we have Unit Test with null as a keyŠ very strange for Solr cache
implementationŠ



   /**

     * Returns the value to which the specified key is mapped,

     * or {@code null} if this map contains no mapping for the key.

     *

     * <p>More formally, if this map contains a mapping from a key

     * {@code k} to a value {@code v} such that {@code key.equals(k)},

     * then this method returns {@code v}; otherwise it returns

     * {@code null}.  (There can be at most one such mapping.)

     *

     * @throws NullPointerException if the specified key is null

     */

    public V get(Object key) {

        int hash = hash(key.hashCode());

        return segmentFor(hash).get(key, hash);

    }







From:  Fuad Efendi <fu...@efendi.ca>
Reply-To:  lucene-dev <de...@lucene.apache.org>
Date:  Monday, 18 June, 2012 11:45 AM
To:  lucene-dev <de...@lucene.apache.org>
Subject:  Solr - ConcurrentHashMap - NullPointerException


I am recalling big noise in JIRA; and Paul Nobble implemented first version
of thisŠ what can be wrong now, after few years? Solr 3.6.0


Jun 18, 2012 3:40:43 PM org.apache.solr.common.SolrException log
SEVERE: java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:768)
at org.apache.solr.util.ConcurrentLRUCache.get(ConcurrentLRUCache.java:87)
at org.apache.solr.search.FastLRUCache.get(FastLRUCache.java:136)
at 
org.apache.solr.search.SolrIndexSearcher.getPositiveDocSet(SolrIndexSearcher
.java:632)
at 
org.apache.solr.search.SolrIndexSearcher.numDocs(SolrIndexSearcher.java:1743
)
at 
org.apache.solr.request.SimpleFacets.getFacetQueryCounts(SimpleFacets.java:2
34)
at 
org.apache.solr.request.SimpleFacets.getFacetCounts(SimpleFacets.java:194)
at 
org.apache.solr.handler.component.FacetComponent.process(FacetComponent.java
:72)
at 
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHand
ler.java:186)
at 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.
java:129)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1376)
at 
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:3
65)
at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:
260)
at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:235)
at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:206)
at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:233)
at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:191)
at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127
)
at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102
)
at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:109)
at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http
11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:680)



Fuad Efendi
416-993-2060
http://www.tokenizer.ca