That is correct, as long as you incRef the reader before starting each query, and decRef the reader after finishing each query.

If you call close() during this time, the reader is not actually closed until decRef is called for all previous incRefs.

Be certain that once you close() a reader there is no way a new query can grab that reader. That would be a thread hazard that could result in using an already closed reader.

Also be certain you always decRef, eg in a finally clause.

Mike

Khawaja Shams wrote:

Hello, Thank you for your ideas. While these look promising, it seems like there are many places within Lucene's codebase that are invoking the incRef and decRef methods. Upon a shallow analysis of the code, it seems like I can call close, and the doClose method does not get called until refCount is 0. Can anyone correct or confirm my assumption that you can call close and any query in progress as you call close will succeed because the reader
won't be closed until the refCount is 0.  Thanks again!

On Wed, Oct 15, 2008 at 3:10 AM, Michael McCandless <
[EMAIL PROTECTED]> wrote:


As of 2.4.0 they are public.

Mike


Ganesh wrote:

incRef/decRef methods are protected. Is there any other way to use these
methods without extending it?

Regards
Ganesh

----- Original Message ----- From: "Michael McCandless" <
[EMAIL PROTECTED]>
To: <java-user@lucene.apache.org>
Sent: Wednesday, October 15, 2008 2:31 PM
Subject: Re: Closing Index Reader



Ganesh wrote:

Yes. Once the Indexreader is closed, you should not do make any calls
with that object.
Extend the IndexReader to add support for reference count. Close the
reader once the count is zero.


Actually you can just use the [expert] incRef/decRef methods on
IndexReader to track in-flight searches still using it. You shouldn't have
to extend it.

Mike

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Send instant messages to your online friends
http://in.messenger.yahoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to