MultiReader.numDocs incorrect after undeleteAll
-----------------------------------------------
Key: LUCENE-479
URL: http://issues.apache.org/jira/browse/LUCENE-479
Project: Lucene - Java
Type: Bug
Components: Index
Versions: CVS Nightly - Specify date in submission
Reporter: Robert Kirchgessner
Priority: Minor
Calling MultiReader.undeleteAll does not clear cached numDocs value. So the
subsequent numDocs() call returns a wrong value if there were deleted documents
in the index. Following patch fixes the bug and adds a test showing the issue.
Index: src/test/org/apache/lucene/index/TestMultiReader.java
===================================================================
--- src/test/org/apache/lucene/index/TestMultiReader.java (revision
354923)
+++ src/test/org/apache/lucene/index/TestMultiReader.java (working copy)
@@ -69,6 +69,18 @@
assertTrue(vector != null);
TestSegmentReader.checkNorms(reader);
}
+
+ public void testUndeleteAll() throws IOException {
+ sis.read(dir);
+ MultiReader reader = new MultiReader(dir, sis, false, readers);
+ assertTrue(reader != null);
+ assertEquals( 2, reader.numDocs() );
+ reader.delete(0);
+ assertEquals( 1, reader.numDocs() );
+ reader.undeleteAll();
+ assertEquals( 2, reader.numDocs() );
+ }
+
public void testTermVectors() {
MultiReader reader = new MultiReader(dir, sis, false, readers);
Index: src/java/org/apache/lucene/index/MultiReader.java
===================================================================
--- src/java/org/apache/lucene/index/MultiReader.java (revision 354923)
+++ src/java/org/apache/lucene/index/MultiReader.java (working copy)
@@ -122,6 +122,7 @@
for (int i = 0; i < subReaders.length; i++)
subReaders[i].undeleteAll();
hasDeletions = false;
+ numDocs = -1; // invalidate cache
}
private int readerIndex(int n) { // find reader for doc n:
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]