Hi Andi,

Andi Vajda wrote:


Hi !

I just upgraded from Lucene 2.3.2 to Lucene 2.4.0.
I've been using IndexReader.reopen() with 2.3.2 just fine for a long time now.

With 2.4.0, reopening the same index (hence, a 2.3.2 index), I'm getting spurious AlreadyClosedExceptions thrown from inside reopen():

"trace": "org.apache.lucene.store.AlreadyClosedException: this Directory is closed
        at org.apache.lucene.store.Directory.ensureOpen(Directory.java:220)
        at org.apache.lucene.store.FSDirectory.list(FSDirectory.java:320)
at org.apache.lucene.index.SegmentInfos $FindSegmentsFile.run(SegmentInfos.java:533) at org .apache .lucene.index.SegmentInfos.readCurrentVersion(SegmentInfos.java:366) at org .apache .lucene .index.DirectoryIndexReader.isCurrent(DirectoryIndexReader.java:188) at org .apache .lucene.index.DirectoryIndexReader.reopen(DirectoryIndexReader.java: 124)

This looks like it could be LUCENE-1453 (fixed on trunk). Does this exception happen on trunk Lucene? Are you opening the original reader w/ String or File path?

Is the javadoc about this method still correct ? That is, do I need to close the old reader instance manually after reopen() returned a new instance as
is stated there ?
This is what I was doing in 2.3.2 (and am still doing in 2.4.0).

Yes, you have to close the old reader.

If I remove the close() call I don't get the error anymore but won't that leak ? Or is the javadoc for IndexReader.reopen() just wrong ?

Andi..

ps: that javadoc uses a variable called 'new'. Isn't that a java keyword ?
http://lucene.apache.org/java/2_4_0/api/core/org/apache/lucene/index/IndexReader.html

Good point!  It is not valid java code (in the javadocs).  I'll fix!

Mike

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