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

Munendra S N edited comment on SOLR-13509 at 6/3/19 5:20 PM:
-------------------------------------------------------------

[^SOLR-13509.patch]
Simple test demonstrating the problem(this test needs to be moved to better 
place). 
[This|https://github.com/apache/lucene-solr/blob/040340af4631dd3f7986ae9a2a8166315d90510e/solr/core/src/java/org/apache/solr/search/facet/FacetModule.java#L284]
 is throwing the NPE as omitHeader is set to true. Here, facets are checked but 
stats are not checked(I think it would be difficult do it)

Initially thought adding null check here would be suffice but what about other 
component?? Should the shardRequest always ask for responseHeader irrespective 
of omitHeader?


was (Author: munendrasn):
[^SOLR-13509.patch]
Simple test demonstrating the problem(this test needs to be moved to better 
place). 
[This|https://github.com/apache/lucene-solr/blob/040340af4631dd3f7986ae9a2a8166315d90510e/solr/core/src/java/org/apache/solr/search/facet/FacetModule.java#L284]
 is throwing the NPE as omitHeader is set to true. Here, facets are checked but 
stats are not checked(I think it would be difficult do it)

Initially thought adding null check here would be suffice but what about other 
component?? Should the shardRequest always ask for responseHeader irrespective 
of omitHeader

> NullPointerException in JSON Facet if omitHeaders=true
> ------------------------------------------------------
>
>                 Key: SOLR-13509
>                 URL: https://issues.apache.org/jira/browse/SOLR-13509
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: Facet Module
>    Affects Versions: 8.1.1
>         Environment: Solr 8.1.1 downloaded tar gz, started in cloud mode:
> {code:java}
> bin/solr start -e cloud -noprompt
> bin/solr create -c techproducts -s 2 -rf 2 -d 
> server/solr/configsets/sample_techproducts_configs/conf -n 
> sample_techproducts_configs
> bin/post -c techproducts example/exampledocs/*.xml{code}
>            Reporter: Markus Kalkbrenner
>            Priority: Major
>         Attachments: SOLR-13509.patch
>
>
> The error exists in Solr 8.1.1 and didn't occur in Solr 8.0 and 7.x.
> Running this simple JSON Facet against the techproducts example (in cloud 
> mode) succeeds as expected:
> {code:java}
> curl http://localhost:8983/solr/techproducts/select -d '
> q=*:*&
> omitHeader=false&
> json.facet={
>   "max_price" : "max(price)"
> }{code}
> But as soon you omit Headers it results in a NullPointerException (which 
> didn't happen in earlier Solr versions):
> {code:java}
> curl http://localhost:8983/solr/techproducts/select -d '
> q=*:*&
> omitHeader=true&
> json.facet={
>   "max_price" : "max(price)"
> }'
> {code}
> Exception:
> {noformat}
> 2019-06-03 12:40:11.446 ERROR (qtp67730604-361) [c:techproducts s:shard2 
> r:core_node7 x:techproducts_shard2_replica_n4] o.a.s.h.RequestHandlerBase 
> java.lang.NullPointerException
>     at 
> org.apache.solr.search.facet.FacetModule.handleResponses(FacetModule.java:284)
>     at 
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:423)
>     at 
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199)
>     at org.apache.solr.core.SolrCore.execute(SolrCore.java:2566)
>     at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:756)
>     at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:542)
>     at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:397)
>     at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:343)
>     at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1602)
>     at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
>     at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
>     at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
>     at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>     at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
>     at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1588)
>     at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
>     at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345)
>     at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
>     at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
>     at 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1557)
>     at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
>     at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)
>     at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
>     at 
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220)
>     at 
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
>     at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>     at 
> org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335)
>     at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>     at org.eclipse.jetty.server.Server.handle(Server.java:502)
>     at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
>     at 
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
>     at 
> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
>     at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>     at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
>     at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
>     at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
>     at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
>     at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
>     at 
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
>     at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
>     at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
>     at java.base/java.lang.Thread.run(Thread.java:834)
> 2019-06-03 12:40:11.447 INFO  (qtp67730604-361) [c:techproducts s:shard2 
> r:core_node7 x:techproducts_shard2_replica_n4] o.a.s.c.S.Request 
> [techproducts_shard2_replica_n4]  webapp=/solr path=/select 
> params={q=*:*&json.facet={%0a++"max_price"+:+"max(price)"%0a}&omitHeader=true}
>  hits=32 status=500 QTime=11
> 2019-06-03 12:40:11.447 ERROR (qtp67730604-361) [c:techproducts s:shard2 
> r:core_node7 x:techproducts_shard2_replica_n4] o.a.s.s.HttpSolrCall 
> null:java.lang.NullPointerException
>     at 
> org.apache.solr.search.facet.FacetModule.handleResponses(FacetModule.java:284)
>     at 
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:423)
>     at 
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199)
>     at org.apache.solr.core.SolrCore.execute(SolrCore.java:2566)
>     at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:756)
>     at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:542)
>     at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:397)
>     at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:343)
>     at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1602)
>     at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
>     at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
>     at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
>     at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>     at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
>     at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1588)
>     at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
>     at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345)
>     at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
>     at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
>     at 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1557)
>     at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
>     at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)
>     at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
>     at 
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220)
>     at 
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
>     at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>     at 
> org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335)
>     at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>     at org.eclipse.jetty.server.Server.handle(Server.java:502)
>     at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
>     at 
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
>     at 
> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
>     at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>     at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
>     at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
>     at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
>     at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
>     at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
>     at 
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
>     at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
>     at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
>     at java.base/java.lang.Thread.run(Thread.java:834)
> {noformat}
>  



--
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