On Thu, Jan 28, 2010 at 8:24 AM, Michael McCandless
<luc...@mikemccandless.com> wrote:
> Bummer.
>
> So the only viable workarounds are 1) don't use Thread.interrupt (nor,
> things like Future.cancel, which in turn use Thread.interrupt) with
> NIOFSDir, or 2) we fix NIOFSDir to reopen the channel AND the app must
> make a deletion policy that keeps a commit alive if any reader is
> using it.  Or, 3) don't use NIOFSDir!

All of these options suck.... (venom directed at Sun... not you Mike :-)
Lucene is used embedded in so many places - it would be OK for Lucene
itself not to use Thread.interrupt() or Future.cancel(), but *any*
other component or application that happens to include Lucene?  And I
know that Solr already uses Future.cancel() - which means we need to
go carefully look to see that nothing that could be canceled calls
lucene APIs that could read/write the index.

Other options include hard hacks like bytecode modification to stop
the close (assuming what does the code is even in Java).

In the meantime - perhaps Lucene should revert and not use NIOFSDir by default?

-Yonik
http://www.lucidimagination.com

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to