On 14/02/2006, at 7:44 AM, Doug Cutting wrote:
Paul Smith wrote:
We're using Lucene 1.4.3, and after hunting around in the source
code just to see what I might be missing, I came across this, and
I'd just like some comments.
Please try using a 1.9 build to see if this is something that's
perhaps already been fixed.
is 1.9 binary backward compatible? (both source code and index format).
CompoundFileReader has an inner-class CSInputStream which is used
to read the stream (and we're using the Compound format, so this
is relevant here).
However it overrides InputStream.close(), but does not call
super.close(). After tracing around where this is all used I
believe that this method REALLY SHOULD be calling super.close()
(or not overriding) it,because CompoundFileReader will be given
an InputStream to wrap, eventually coming down to FSInputStream
which apparently then calss Descriptor.close().
No, all CSInputStream's share a single FSInputStream, so the
FSInputStream shouldn't be closed until all of the CSInputStream's,
have been closed. This is done by CompoundFileReader.close(). It
sounds like that's what's not getting called. As you update
indexes, how do you close stale readers?
Yes, after looking at the code again I see that it extends from a
Lucene class called InputStream, and I had assumed it was
java.io.InputStream.
I'm going to take yet-another look at our code, but nothing is
obvious. Our current production environment is running in a side-by-
side mode. There are no searches being performed, only indexing as we
test out our indexing support/monitoring, and fail-over techniques.
Paul
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]