[ 
https://issues.apache.org/jira/browse/SOLR-8921?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16657331#comment-16657331
 ] 

Isabelle Giguere commented on SOLR-8921:
----------------------------------------

I'm attaching unit tests, with 2 collections, and a few fields in the schema.
But, this issue has nothing do do with the number of collections, and not much 
to do with the field types.
An NPE can happen if the string that is used as facet pivot value is a 
stopword, or an empty string.

PivotFacetProcessor.getDocSet(DocSet base, SchemaField field, String pivotValue)

// if pivotValue = "a", or if pivotValue = "in" (stopword)
ft.getFieldQuery(null, field, pivotValue)
  -> returns null
 searcher.getDocSet(query, base);
  -> throws NPE
  
// if pivotValue = ""  (empty str)
 ft.getFieldQuery(null, field, pivotValue)
  -> returned query= name:
 searcher.getDocSet(query, base);
  -> returns DocSet size -1
  -> NPE could be thrown from PivotFacetProcessor.getSubsetSize(DocSet base, 
SchemaField field, String pivotValue) (? - to validate)




> Potential NPE in pivot facet
> ----------------------------
>
>                 Key: SOLR-8921
>                 URL: https://issues.apache.org/jira/browse/SOLR-8921
>             Project: Solr
>          Issue Type: Bug
>    Affects Versions: 5.4.1
>            Reporter: Steve Molloy
>            Priority: Major
>         Attachments: SOLR-8921.patch, SOLR-8921.patch, 
> SOLR-8921_tag_7.5.0.patch, SOLR-8921_unit-tests_tag_7.5.0.patch
>
>
> For some queries distributed over multiple collections, I've hit a NPE when 
> SolrIndexSearcher tries to fetch results from cache. Basically, query 
> generated to compute pivot on document sub set is null, causing the NPE on 
> lookup.
> 2016-03-28 11:34:58.361 ERROR (qtp268141378-751) [c:otif_fr s:shard1 
> r:core_node1 x:otif_fr_shard1_replica1] o.a.s.h.RequestHandlerBase 
> java.lang.NullPointerException
>       at 
> java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936)
>       at 
> org.apache.solr.util.ConcurrentLFUCache.get(ConcurrentLFUCache.java:92)
>       at org.apache.solr.search.LFUCache.get(LFUCache.java:153)
>       at 
> org.apache.solr.search.SolrIndexSearcher.getPositiveDocSet(SolrIndexSearcher.java:940)
>       at 
> org.apache.solr.search.SolrIndexSearcher.numDocs(SolrIndexSearcher.java:2098)
>       at 
> org.apache.solr.handler.component.PivotFacetProcessor.getSubsetSize(PivotFacetProcessor.java:356)
>       at 
> org.apache.solr.handler.component.PivotFacetProcessor.processSingle(PivotFacetProcessor.java:219)
>       at 
> org.apache.solr.handler.component.PivotFacetProcessor.process(PivotFacetProcessor.java:167)
>       at 
> org.apache.solr.handler.component.FacetComponent.process(FacetComponent.java:263)
>       at 
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:273)
>       at 
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:156)
>       at org.apache.solr.core.SolrCore.execute(SolrCore.java:2073)
>       at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:658)
>       at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:457)
>       at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:223)
>       at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:181)
>       at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
>       at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
>       at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
>       at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
>       at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
>       at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
>       at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
>       at 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
>       at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
>       at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
>       at 
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
>       at 
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
>       at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
>       at org.eclipse.jetty.server.Server.handle(Server.java:499)
>       at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
>       at 
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
>       at 
> org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
>       at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
>       at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
>       at java.lang.Thread.run(Thread.java:745)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to