[ 
https://issues.apache.org/jira/browse/SOLR-7559?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jeroen Steggink updated SOLR-7559:
----------------------------------
    Attachment: SOLR-7559.patch

Incorrect parameters where chosen

> Cannot use Faceting Feature while using/mlt handler
> ---------------------------------------------------
>
>                 Key: SOLR-7559
>                 URL: https://issues.apache.org/jira/browse/SOLR-7559
>             Project: Solr
>          Issue Type: Bug
>          Components: MoreLikeThis
>    Affects Versions: 5.1
>         Environment: windows 7 OS, Eclipse JDK 7
>            Reporter: Tim Hearn
>         Attachments: SOLR-7559.patch
>
>   Original Estimate: 10m
>  Remaining Estimate: 10m
>
> When sending a query using the /mlt handler with faceting enabled, Solr 
> returns an NPE.  The exception is as follows:
> {quote}
> at
> org.apache.solr.request.SimpleFacets.getHeatmapCounts(SimpleFacets.java:1555)
> at
> org.apache.solr.request.SimpleFacets.getFacetCounts(SimpleFacets.java:284)
> at
> org.apache.solr.handler.MoreLikeThisHandler.handleRequestBody(MoreLikeThisHandler.java:233)
> at
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)
> at org.apache.solr.core.SolrCore.execute(SolrCore.java:1984)
> at
> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:829)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:446)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:220)
> at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
> at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
> at
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
> at
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
> at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
> at
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
> at
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
> at
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
> at org.eclipse.jetty.server.Server.handle(Server.java:368)
> at
> org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
> at
> org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
> at
> org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:942)
> at
> org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1004)
> at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640)
> at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
> at
> org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
> at
> org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
> at java.lang.Thread.run(Thread.java:745)
> {quote}
> The issue appears to start in the MoreLikeThisHandler.java class, line 233:
> {quote}
>   228 if (params.getBool(FacetParams.FACET, false)) {
>   229           if (mltDocs.docSet == null) {
>   230             rsp.add("facet_counts", null);
>   231           } else {
>   232             SimpleFacets f = new SimpleFacets(req, mltDocs.docSet, 
> params);
>   233             rsp.add("facet_counts", f.getFacetCounts());
>   234           }
>   235         }
> {quote}
> When the above constructor is used in the SimpleFacets class it sets the 
> ResponseBuilder object in that class to null, which is what causes the NPE to 
> be thrown when getHeatMapFacets() is called from getFacetCounts()
> {quote}
>   129   public SimpleFacets(SolrQueryRequest req,
>   130                       DocSet docs,
>   131                       SolrParams params) {
>   132     this(req,docs,params,null);
>   133   }
>   134 
>   135   public SimpleFacets(SolrQueryRequest req,
>   136                       DocSet docs,
>   137                       SolrParams params,
>   138                       ResponseBuilder rb) {
>   139     this.req = req;
>   140     this.searcher = req.getSearcher();
>   141     this.docs = this.docsOrig = docs;
>   142     this.params = orig = params;
>   143     this.required = new RequiredSolrParams(params);
>   144     this.rb = rb;
>   145   }
>   146 
> {quote}
> {quote}
>   129   public SimpleFacets(SolrQueryRequest req,
>   130                       DocSet docs,
>   131                       SolrParams params) {
>   132     this(req,docs,params,null);
>   133   }
>   134 
>   135   public SimpleFacets(SolrQueryRequest req,
>   136                       DocSet docs,
>   137                       SolrParams params,
>   138                       ResponseBuilder rb) {
>   139     this.req = req;
>   140     this.searcher = req.getSearcher();
>   141     this.docs = this.docsOrig = docs;
>   142     this.params = orig = params;
>   143     this.required = new RequiredSolrParams(params);
>   144     this.rb = rb;
>   145   }
>   146 
> {quote}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to