Laura Nash created LUCENENET-603:
------------------------------------

             Summary: ConcurrentMergeScheduler crashes the application if a 
transient error occurs
                 Key: LUCENENET-603
                 URL: https://issues.apache.org/jira/browse/LUCENENET-603
             Project: Lucene.Net
          Issue Type: Improvement
          Components: Lucene.Net Core
    Affects Versions: Lucene.Net 3.0.3
            Reporter: Laura Nash


We are using Lucene.NET 3.0.3 within a larger application hosted in a Windows 
Service.  The Lucene.NET use occurs in a background processing thread and is 
non-critical, it shouldn't ever cause the Windows Service to crash.

Currently if an error occurs (even a very transient error) within our 
implementation of Lucene.Net.Store.BufferedIndexOutput FlushBuffer() then our 
Windows Service crashes.  

This is because ConcurrentMergeScheduler.HandleMergeException throws an 
exception, even though it is being called inside a background thread generated 
within the Lucene code and so the exception thrown can never be caught and will 
always crash the application.  The code and comments around this seem to 
suggest this is not expected to crash out (maybe due to the port from java and 
java behaves differently from .NET for this?).

Handling all errors inside our FlushBuffer implementation causes the file to 
become corrupted as the flush is considered a success.

I think this throw should be removed.  We have commented it out and this 
appears to have had no detrimental affect.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to