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

Digy updated LUCENENET-442:
---------------------------

    Attachment: LUCENENET-442.patch

Thanks Andy.
Nice catch.
I prepared a patch for 2.9.4g and will commit to 2.9.4g branch & trunk soon.

DIGY

> ParallelMultiSearcher threads don't handle all exceptions
> ---------------------------------------------------------
>
>                 Key: LUCENENET-442
>                 URL: https://issues.apache.org/jira/browse/LUCENENET-442
>             Project: Lucene.Net
>          Issue Type: Bug
>          Components: Lucene.Net Core
>    Affects Versions: Lucene.Net 2.9.2
>            Reporter: Andy Twidle
>             Fix For: Lucene.Net 2.9.4, Lucene.Net 2.9.4g
>
>         Attachments: LUCENENET-442.patch
>
>
> The ParallelMultiSearcher doesn't allow non-IOException exceptions to be 
> managed by the calling application.  
> LUCENENET-388 worked around one specific example of this, but any genuine 
> Lucene exception (eg: BooleanQuery.TooManyClauses) will also fall foul of 
> this pattern.
> In our specific instance we could treat the symptoms and up the max clause 
> count, but I'm sure there will be more.  Could the System.IOException be 
> generalised to System.Exception?  Or would that be too much deviation from 
> the Java code base?
> --
> Example stack trace of an exception thrown by a Searcher executed:
> Framework Version: v4.0.30319
> Description: The process was terminated due to an unhandled exception.
> Exception Info: Lucene.Net.Search.BooleanQuery+TooManyClauses
> Stack:
>    at Lucene.Net.Search.BooleanQuery.Add(Lucene.Net.Search.BooleanClause)
>    at Lucene.Net.Search.BooleanQuery.Add(Lucene.Net.Search.Query, Occur)
>    at Lucene.Net.Search.PrefixQuery.Rewrite(Lucene.Net.Index.IndexReader)
>    at Lucene.Net.Search.BooleanQuery.Rewrite(Lucene.Net.Index.IndexReader)
>    at Lucene.Net.Search.IndexSearcher.Rewrite(Lucene.Net.Search.Query)
>    at Lucene.Net.Search.Query.Weight(Lucene.Net.Search.Searcher)
>    at Lucene.Net.Search.Searcher.CreateWeight(Lucene.Net.Search.Query)
>    at Lucene.Net.Search.Searcher.Search(Lucene.Net.Search.Query, 
> Lucene.Net.Search.Filter, Lucene.Net.Search.HitCollector)
>    at Lucene.Net.Search.Searcher.Search(Lucene.Net.Search.Query, 
> Lucene.Net.Search.HitCollector)
>    at Lucene.Net.Search.QueryWrapperFilter.Bits(Lucene.Net.Index.IndexReader)
>    at 
> Lucene.Net.Search.CachingWrapperFilter.Bits(Lucene.Net.Index.IndexReader)
>    at Lucene.Net.Search.IndexSearcher.Search(Lucene.Net.Search.Weight, 
> Lucene.Net.Search.Filter, Lucene.Net.Search.HitCollector)
>    at Lucene.Net.Search.IndexSearcher.Search(Lucene.Net.Search.Weight, 
> Lucene.Net.Search.Filter, Int32)
>    at Lucene.Net.Search.MultiSearcherThread.Run()
>    at 
> System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, 
> System.Threading.ContextCallback, System.Object, Boolean)
>    at 
> System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, 
> System.Threading.ContextCallback, System.Object)
>    at System.Threading.ThreadHelper.ThreadStart()

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to