You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Jörg Kiegeland <ki...@ikv.de> on 2007/11/15 16:49:37 UTC
Set result limit to MAX_VALUE causes NullPointerException
Hi,
if I do a query and set the result limit to Integer.MAX_VALUE, it causes
following exception:
org.apache.solr.client.solrj.SolrServerException: Error executing query
at
org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:86)
at
org.apache.solr.client.solrj.impl.BaseSolrServer.query(BaseSolrServer.java:99)
...
Caused by: org.apache.solr.common.SolrException:
null__javalangNullPointerException___at_orgapachesolrutilSolrPluginUtilsoptimizePreFetchDocsSolrPluginUtilsjava253___at_orgapachesolrhandlerStandardRequestHandlerhandleRequestBodyStandardRequestHandlerjava104___at_orgapachesolrhandlerRequestHandlerBasehandleRequestRequestHandlerBasejava117___at_orgapachesolrcoreSolrCoreexecuteSolrCorejava811___at_orgapachesolrservletSolrDispatchFilterexecuteSolrDispatchFilterjava206___at_orgapachesolrservletSolrDispatchFilterdoFilterSolrDispatchFilterjava174___at_orgmortbayjettyservletServletHandler$CachedChaindoFilterServletHandlerjava1089___at_orgmortbayjettyservletServletHandlerhandleServletHandlerjava365___at_orgmortbayjettyservletSessionHandlerhandleSessionHandlerjava181___at_orgmortbayjettyhandlerContextHandlerhandleContextHandlerjava712___at_orgmortbayjettyhandlerHandlerWrapperhandleHandlerWrapperjava139___at_orgmortbayjettyServerhandleServerjava285___at_orgmortbayjettyHttpConnectionhandleRequestHttpConnectionjava502___at_orgmortbayjettyHttpConnection$RequestHandlerheaderCompleteHttpConnectionjava821___at_orgmortbayjettyHttpParserparseNextHttpParserjava513___at_orgmortbayjettyHttpParserparseAvailableHttpParserjava208___at_orgmortbayjettyHttpConnectionhandleHttpConnectionjava378___at_orgmortbayjettybioSocketConnector$ConnectionrunSocketConnectorjava226___at_orgmortbaythreadBoundedThreadPool$PoolThreadrunBoundedThreadPooljava442__
null__javalangNullPointerException___at_orgapachesolrutilSolrPluginUtilsoptimizePreFetchDocsSolrPluginUtilsjava253___at_orgapachesolrhandlerStandardRequestHandlerhandleRequestBodyStandardRequestHandlerjava104___at_orgapachesolrhandlerRequestHandlerBasehandleRequestRequestHandlerBasejava117___at_orgapachesolrcoreSolrCoreexecuteSolrCorejava811___at_orgapachesolrservletSolrDispatchFilterexecuteSolrDispatchFilterjava206___at_orgapachesolrservletSolrDispatchFilterdoFilterSolrDispatchFilterjava174___at_orgmortbayjettyservletServletHandler$CachedChaindoFilterServletHandlerjava1089___at_orgmortbayjettyservletServletHandlerhandleServletHandlerjava365___at_orgmortbayjettyservletSessionHandlerhandleSessionHandlerjava181___at_orgmortbayjettyhandlerContextHandlerhandleContextHandlerjava712___at_orgmortbayjettyhandlerHandlerWrapperhandleHandlerWrapperjava139___at_orgmortbayjettyServerhandleServerjava285___at_orgmortbayjettyHttpConnectionhandleRequestHttpConnectionjava502___at_orgmortbayjettyHttpConnection$RequestHandlerheaderCompleteHttpConnectionjava821___at_orgmortbayjettyHttpParserparseNextHttpParserjava513___at_orgmortbayjettyHttpParserparseAvailableHttpParserjava208___at_orgmortbayjettyHttpConnectionhandleHttpConnectionjava378___at_orgmortbayjettybioSocketConnector$ConnectionrunSocketConnectorjava226___at_orgmortbaythreadBoundedThreadPool$PoolThreadrunBoundedThreadPooljava442__
request:
http://localhost:8984/example/select?q=(dim_features:"_JrsckpOREdy_bZ3jDobN3g"
OR dim_features:"_JrsckJOREdy_bZ3jDobN3g" OR
dim_features:"_JrsckZOREdy_bZ3jDobN3g") AND NOT
dim_features:"_Jrsck5OREdy_bZ3jDobN3g" AND to_revision:[2147483647 TO
2147483647] AND NOT from_revision:{2147483647 TO
2147483647}&rows=2147483647&wt=xml&version=2.2
at
org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:230)
at
org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:80)
... 29 more
This is Solr 1.3 using HTTP. I used to get a NullPointerException also
in Solr 1.2 using the embedded-API.
I now set a high value like 10000 as result limit, which is always
enough for my needs, but I nevertheless wanted to point at this error.
Greetings
Jörg
Re: Set result limit to MAX_VALUE causes NullPointerException
Posted by Chris Hostetter <ho...@fucit.org>.
: I now set a high value like 10000 as result limit, which is always enough for
: my needs, but I nevertheless wanted to point at this error.
For the record: while Yonik has fixed solr so that it *can* accept
MAX_VALUE, doesn't mean you *should* use MAX_VALUE.
even if you want *all* the results, no matter ow many there are, if you
are confident you know what the upper bound is (ie: 10000 "is always
enough" for your needs) you should use that upper bound and put an
assertion in your client that checks hte value of numFound and reports an
error if it's higher then your epectation.
Example: if you have 1 million documents, and you *know* a query is going
to match no more then 1000 and you want them all then say rows=1000
instead of rows='MAX_VALUE' ...
1) it might allow Solr to be more be more efficient in processing your
request since it knows you only want a certain number anyway. 9ie: in
allocating arrays and such)
2) it protects you in the event that you are wrong.
what if because of a bug in your indexing code, or some action taken by
someone else, it turns out that your query actually matches all 1 million
docs in your index ... by asking for "all" of them, you
not only risk crashing your client when it gets back 10,000 times
as much data as it exepcted but you could also hoze your network, and
maybe even crash the Solr server itself.
-Hoss
Re: Set result limit to MAX_VALUE causes NullPointerException
Posted by Yonik Seeley <yo...@apache.org>.
On Nov 15, 2007 10:49 AM, Jörg Kiegeland <ki...@ikv.de> wrote:
> if I do a query and set the result limit to Integer.MAX_VALUE, it causes
> following exception:
Thanks for the bug report. Could you try the patch in
https://issues.apache.org/jira/browse/SOLR-413
-Yonik