[jira] [Updated] (SOLR-7559) Cannot use Faceting Feature while using/mlt handler

2015-05-26 Thread Jeroen Steggink (JIRA)

 [ 
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 

[jira] [Updated] (SOLR-7559) Cannot use Faceting Feature while using/mlt handler

2015-05-18 Thread Tim Hearn (JIRA)

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

Tim Hearn updated SOLR-7559:

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

[jira] [Updated] (SOLR-7559) Cannot use Faceting Feature while using/mlt handler

2015-05-18 Thread Tim Hearn (JIRA)

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

Tim Hearn updated SOLR-7559:

Description: 
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}
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