You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Charles Sanders (JIRA)" <ji...@apache.org> on 2019/05/21 14:16:00 UTC

[jira] [Commented] (SOLR-13194) NullPointerException in org/apache/solr/handler/component/ExpandComponent.java[240]

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

Charles Sanders commented on SOLR-13194:
----------------------------------------

In the process method, a request is made for rb.results.docList.  But the docList returned is null.  Subsequent calls on docList then return NPE.  The docList is null because there are no records that match the user's search request.

 In TestExpandComponent, there is a test to verify 'count of 0' when a request is made on a collection that contains no records.  From this I summized that any request that returns no rows should have the same result, count of 0.

The patch submitted checks to see if docList is null and if so, returns from the process method.  This returns a result of count 0, rather than the NPE.

> NullPointerException in org/apache/solr/handler/component/ExpandComponent.java[240]
> -----------------------------------------------------------------------------------
>
>                 Key: SOLR-13194
>                 URL: https://issues.apache.org/jira/browse/SOLR-13194
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>    Affects Versions: master (9.0)
>         Environment: h1. Steps to reproduce
> * Use a Linux machine.
> *  Build commit {{ea2c8ba}} of Solr as described in the section below.
> * Build the films collection as described below.
> * Start the server using the command {{./bin/solr start -f -p 8983 -s /tmp/home}}
> * Request the URL given in the bug description.
> h1. Compiling the server
> {noformat}
> git clone https://github.com/apache/lucene-solr
> cd lucene-solr
> git checkout ea2c8ba
> ant compile
> cd solr
> ant server
> {noformat}
> h1. Building the collection
> We followed [Exercise 2|http://lucene.apache.org/solr/guide/7_5/solr-tutorial.html#exercise-2] from the [Solr Tutorial|http://lucene.apache.org/solr/guide/7_5/solr-tutorial.html]. The attached file ({{home.zip}}) gives the contents of folder {{/tmp/home}} that you will obtain by following the steps below:
> {noformat}
> mkdir -p /tmp/home
> echo '<?xml version="1.0" encoding="UTF-8" ?><solr></solr>' > /tmp/home/solr.xml
> {noformat}
> In one terminal start a Solr instance in foreground:
> {noformat}
> ./bin/solr start -f -p 8983 -s /tmp/home
> {noformat}
> In another terminal, create a collection of movies, with no shards and no replication, and initialize it:
> {noformat}
> bin/solr create -c films
> curl -X POST -H 'Content-type:application/json' --data-binary '{"add-field": {"name":"name", "type":"text_general", "multiValued":false, "stored":true}}' http://localhost:8983/solr/films/schema
> curl -X POST -H 'Content-type:application/json' --data-binary '{"add-copy-field" : {"source":"*","dest":"_text_"}}' http://localhost:8983/solr/films/schema
> ./bin/post -c films example/films/films.json
> {noformat}
>            Reporter: Marek
>            Priority: Minor
>              Labels: diffblue, newdev
>         Attachments: SOLR-13194.patch, home.zip
>
>
> Requesting the following URL causes Solr to return an HTTP 500 error response:
> {noformat}
> http://localhost:8983/solr/films/select?expand=true&fq={!collapse%20field=id}&group=true&group.func=genre
> {noformat}
> The error response seems to be caused by the following uncaught exception:
> {noformat}
> ERROR (qtp689401025-38) [   x:films] o.a.s.s.HttpSolrCall null:java.lang.NullPointerException
> 	at org.apache.solr.handler.component.ExpandComponent.process(ExpandComponent.java:240)
> 	at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:298)
> 	at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199)
> 	at org.apache.solr.core.SolrCore.execute(SolrCore.java:2559)
> 	at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:711)
> 	at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:516)
> 	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:394)
> 	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:340)
> {noformat}
> There is called method 'size' on the variable 'docList', which is null. The null value comes from parameter 'rb' (an instance of class 'org.apache.solr.handler.component.ResponseBuilder'), where 'rb.results.docList' is assigned to the mentioned local variable 'docList'.
> We found this bug using [Diffblue Microservices Testing|https://www.diffblue.com/labs/?utm_source=solr-br]. Find more information on this [fuzz testing campaign|https://www.diffblue.com/blog/2018/12/19/diffblue-microservice-testing-a-sneak-peek-at-our-early-product-and-results?utm_source=solr-br].



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

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