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 Grégoire Neuville <gr...@gmail.com> on 2008/12/05 12:26:29 UTC

JSONResponseWriter bug ? (solr-1.3)

Hi,

I think I've discovered a bug with the JSONResponseWriter : starting
from the following query -

http://127.0.0.1:8080/solr-urbamet/select?q=(tout:1)&rows=0&sort=TITRE+desc&facet=true&facet.query=SUJET:b*&facet.field=SUJET&facet.prefix=b&facet.limit=1&facet.missing=true&wt=json&json.nl=arrarr

- which produced a NullPointerException (see the stacktrace below), I
played with the parameters and obtained the following results :

##PAGINATION
rows : starting from 0, the exception occurs until we pass a certain threshold
=> rows implicated

##SORTING
the rows threshold afore mentionned seems to be influenced by the
presence/absence of the sort parameter

##FACETS
facet=false => OK while facet=true => NullPointerException
=>facets implicated
--
facet.field absent => OK while facet.field=whatever => NullPointerException
=>facet.field implicated
--
facet.missing=false => OK while facet.missing=true => NullPointerException
=> facet.missing implicated
--
facet.limit=-1 or 0 => OK while facet.limit>0  => NullPointerException
=> facet.limit implicated
--
facet.query absent or facet.query = whatever => NullPointerException
=>facet.query not implicated
--
facet.offset=(several values or absent) => NullPointerException
=> facet.offset not implicated
--
=> facet.sort not implicated (true or false => NullPointerException)
--
=> facet.mincount not implicated (several values or absent =>
NullPointerException)

#ResponseWriter
wt=standard => ok while wt=json => NullPointerException
=> jsonwriter implicated
json.nl=flat or map => ok
=> jsonwriter 'arrarr' format implicated

I hope this debugging is readable and will help.
--
Grégoire Neuville

Stacktrace :

GRAVE: java.lang.NullPointerException
       at org.apache.solr.request.JSONWriter.writeStr(JSONResponseWriter.java:607)
       at org.apache.solr.request.JSONWriter.writeNamedListAsArrArr(JSONResponseWriter.java:245)
       at org.apache.solr.request.JSONWriter.writeNamedList(JSONResponseWriter.java:294)
       at org.apache.solr.request.TextResponseWriter.writeVal(TextResponseWriter.java:151)
       at org.apache.solr.request.JSONWriter.writeNamedListAsMapWithDups(JSONResponseWriter.java:175)
       at org.apache.solr.request.JSONWriter.writeNamedList(JSONResponseWriter.java:288)
       at org.apache.solr.request.TextResponseWriter.writeVal(TextResponseWriter.java:151)
       at org.apache.solr.request.JSONWriter.writeNamedListAsMapWithDups(JSONResponseWriter.java:175)
       at org.apache.solr.request.JSONWriter.writeNamedList(JSONResponseWriter.java:288)
       at org.apache.solr.request.TextResponseWriter.writeVal(TextResponseWriter.java:151)
       at org.apache.solr.request.JSONWriter.writeNamedListAsMapWithDups(JSONResponseWriter.java:175)
       at org.apache.solr.request.JSONWriter.writeNamedList(JSONResponseWriter.java:288)
       at org.apache.solr.request.JSONWriter.writeResponse(JSONResponseWriter.java:88)
       at org.apache.solr.request.JSONResponseWriter.write(JSONResponseWriter.java:49)
       at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:257)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
       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:286)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
       at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
       at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
       at java.lang.Thread.run(Thread.java:595)

Re: JSONResponseWriter bug ? (solr-1.3)

Posted by Yonik Seeley <yo...@apache.org>.
Thanks for the report Grégoire, it definitely looks like a bug.
Would you mind opening a JIRA issue for this?

-Yonik

On Fri, Dec 5, 2008 at 6:26 AM, Grégoire Neuville
<gr...@gmail.com> wrote:
> Hi,
>
> I think I've discovered a bug with the JSONResponseWriter : starting
> from the following query -
>
> http://127.0.0.1:8080/solr-urbamet/select?q=(tout:1)&rows=0&sort=TITRE+desc&facet=true&facet.query=SUJET:b*&facet.field=SUJET&facet.prefix=b&facet.limit=1&facet.missing=true&wt=json&json.nl=arrarr
>
> - which produced a NullPointerException (see the stacktrace below), I
> played with the parameters and obtained the following results :
>
> ##PAGINATION
> rows : starting from 0, the exception occurs until we pass a certain threshold
> => rows implicated
>
> ##SORTING
> the rows threshold afore mentionned seems to be influenced by the
> presence/absence of the sort parameter
>
> ##FACETS
> facet=false => OK while facet=true => NullPointerException
> =>facets implicated
> --
> facet.field absent => OK while facet.field=whatever => NullPointerException
> =>facet.field implicated
> --
> facet.missing=false => OK while facet.missing=true => NullPointerException
> => facet.missing implicated
> --
> facet.limit=-1 or 0 => OK while facet.limit>0  => NullPointerException
> => facet.limit implicated
> --
> facet.query absent or facet.query = whatever => NullPointerException
> =>facet.query not implicated
> --
> facet.offset=(several values or absent) => NullPointerException
> => facet.offset not implicated
> --
> => facet.sort not implicated (true or false => NullPointerException)
> --
> => facet.mincount not implicated (several values or absent =>
> NullPointerException)
>
> #ResponseWriter
> wt=standard => ok while wt=json => NullPointerException
> => jsonwriter implicated
> json.nl=flat or map => ok
> => jsonwriter 'arrarr' format implicated
>
> I hope this debugging is readable and will help.
> --
> Grégoire Neuville
>
> Stacktrace :
>
> GRAVE: java.lang.NullPointerException
>       at org.apache.solr.request.JSONWriter.writeStr(JSONResponseWriter.java:607)
>       at org.apache.solr.request.JSONWriter.writeNamedListAsArrArr(JSONResponseWriter.java:245)
>       at org.apache.solr.request.JSONWriter.writeNamedList(JSONResponseWriter.java:294)
>       at org.apache.solr.request.TextResponseWriter.writeVal(TextResponseWriter.java:151)
>       at org.apache.solr.request.JSONWriter.writeNamedListAsMapWithDups(JSONResponseWriter.java:175)
>       at org.apache.solr.request.JSONWriter.writeNamedList(JSONResponseWriter.java:288)
>       at org.apache.solr.request.TextResponseWriter.writeVal(TextResponseWriter.java:151)
>       at org.apache.solr.request.JSONWriter.writeNamedListAsMapWithDups(JSONResponseWriter.java:175)
>       at org.apache.solr.request.JSONWriter.writeNamedList(JSONResponseWriter.java:288)
>       at org.apache.solr.request.TextResponseWriter.writeVal(TextResponseWriter.java:151)
>       at org.apache.solr.request.JSONWriter.writeNamedListAsMapWithDups(JSONResponseWriter.java:175)
>       at org.apache.solr.request.JSONWriter.writeNamedList(JSONResponseWriter.java:288)
>       at org.apache.solr.request.JSONWriter.writeResponse(JSONResponseWriter.java:88)
>       at org.apache.solr.request.JSONResponseWriter.write(JSONResponseWriter.java:49)
>       at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:257)
>       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>       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:286)
>       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>       at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>       at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>       at java.lang.Thread.run(Thread.java:595)
>