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)