[
https://issues.apache.org/jira/browse/SOLR-6469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14184053#comment-14184053
]
Anurag Sharma commented on SOLR-6469:
-------------------------------------
Highlighter component assumes that rb.resultIds has a valid data and is not
null. When query is formed in shard+grouping+highlight case rb.resultIds is
coming as null because in groupedFinishStage after merging groups resultIds
becomes reinitialized and old ids are lost. So at the time of highlighting it
throw NPE.
Attaching the patch that fixes the issue but it's without a unit test. Tested
the fix directly on server and it doesn't show NPE any more. While writing the
Unit test facing issue of running the shard. Here is the unit test code snippet:
{code}
+ assertQ("Shards+highlight+Grouping",
+ req(CommonParams.Q, "text:(AAA)",
+ CommonParams.QT, "/elevate",
+ CommonParams.SORT, "id asc",
+ GroupParams.GROUP_SORT, "id asc",
+ GroupParams.GROUP_QUERY,"text:AAA",
+ GroupParams.GROUP, "true",
+ CommonParams.FL, "id",
+ HighlightParams.HIGHLIGHT,"true",
+ ShardParams.SHARDS,"localhost/solr/elevated")
+ ,"//lst[@name='highlighting']"
+ );
{code}
Please suggest if anyone knows how to write unit test for this case.
> Solr search with multicore + grouping + highlighting cause NPE
> --------------------------------------------------------------
>
> Key: SOLR-6469
> URL: https://issues.apache.org/jira/browse/SOLR-6469
> Project: Solr
> Issue Type: Bug
> Components: highlighter, multicore, SearchComponents - other
> Affects Versions: 4.8.1
> Environment: Windows 7, Intellij
> Reporter: Shay Sofer
> Labels: patch
> Attachments: SOLR-6469.patch
>
>
> Integration of Grouping + shards + highlighting cause NullPointerException.
> Query:
> localhost:8983/solr/Global_A/select?q=%2Btext%3A%28shay*%29+&rows=100&fl=id%2CobjId%2Cnull&shards=http%3A%2F%2F127.0.0.1%3A8983%2Fsolr%2F0_A%2Chttp%3A%2F%2F127.0.0.1%3A8983%2Fsolr%2FGlobal_A&group=true&group.query=name__s%3Ashay&sort=name__s_sort+asc&hl=true
> results:
> java.lang.NullPointerException
> at
> org.apache.solr.handler.component.HighlightComponent.finishStage(HighlightComponent.java:189)
> at
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:330)
> at
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
> at org.apache.solr.core.SolrCore.execute(SolrCore.java:1952)
> at
> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:774)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:418)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:207)
> 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:722)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]