[
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 RequiredSolrParams(params);
144 this.rb = rb;
145 }
146
{quote}
was:
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 }
{qupte}
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}
> 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
> 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}
> 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]