[ 
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]

Reply via email to