lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Doug Cutting <>
Subject Re: CompoundFileReader question/'leaking' file descriptors ?
Date Mon, 13 Feb 2006 20:44:09 GMT
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.

> 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?


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message