[
https://issues.apache.org/jira/browse/SOLR-18156?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chris M. Hostetter updated SOLR-18156:
--------------------------------------
Attachment: SOLR-18156.patch
Assignee: Chris M. Hostetter
Status: Open (was: Open)
Patch with a suggested fix (override {{searchLeaf}} instead and move the custom
logic into it)
This also includes randomized usage of {{timeAllowed}} in {{testJoin}} to
demonstrate the problem if the patch is not in place...
{noformat}
> java.lang.ClassCastException: class
org.apache.solr.search.SolrIndexSearcher$5 cannot be cast to class
org.apache.solr.search.SolrIndexSearcher
(org.apache.solr.search.SolrIndexSearcher$5 and
org.apache.solr.search.SolrIndexSearcher are in unnamed module of loader 'app')
> at
__randomizedtesting.SeedInfo.seed([BA5796A98208953D:C3DD5A1D902F3BDD]:0)
> at org.apache.solr.search.JoinQuery.createWeight(JoinQuery.java:98)
> at
org.apache.lucene.search.IndexSearcher.createWeight(IndexSearcher.java:979)
> at
org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:635)
> at
org.apache.solr.search.SolrIndexSearcher$5.searchWithTimeout(SolrIndexSearcher.java:819)
> at
org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:825)
> at
org.apache.solr.search.SolrIndexSearcher.buildAndRunCollectorChain(SolrIndexSearcher.java:329)
> at
org.apache.solr.search.SolrIndexSearcher.getDocListNC(SolrIndexSearcher.java:1986)
> at
org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:1791)
> at
org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:797)
> at
org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:792)
> at
org.apache.solr.handler.component.QueryComponent.doProcessUngroupedSearch(QueryComponent.java:1836)
> at
org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:444)
> at
org.apache.solr.handler.component.SearchHandler.processComponentsLocal(SearchHandler.java:483)
> at
org.apache.solr.handler.component.SearchHandler.processComponents(SearchHandler.java:411)
> at
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:239)
> at
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:260)
> at org.apache.solr.core.SolrCore.execute(SolrCore.java:2953)
{noformat}
> JoinQuery class cast exception on SolrIndexSearcher when using timeAllowed
> --------------------------------------------------------------------------
>
> Key: SOLR-18156
> URL: https://issues.apache.org/jira/browse/SOLR-18156
> Project: Solr
> Issue Type: Bug
> Reporter: Chris M. Hostetter
> Assignee: Chris M. Hostetter
> Priority: Major
> Attachments: SOLR-18156.patch
>
>
> Beginning with Solr 10.0.0, attempting to use any of the {{join}} QParsers in
> conjunction with QueryLimits results in a ClassCastException.
> This is because {{JoinQuery.createWeight(...)}} expects it will only ever be
> called with a {{{}SolrIndexSearcher{}}}, but
> {{SolrIndexSearcher.seach(Query,Collector)}} is overriddent to create an
> anonymous {{IndexSearcher}} to use when QueryLimits are enabled.
> This was not a problem in Solr 9.x, because back then the logic for creating
> an anonymous {{IndexSearcher}} was inside the overridden
> {{SolrIndexSearcher.seach(List<LeafReaderContext>,Weight,Collector)}} (after
> the {{Weight}} instance had already been created using the original
> {{{}SolrIndexSearcher{}}})
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]