lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Doug Cutting (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (LUCENE-479) MultiReader.numDocs incorrect after undeleteAll
Date Thu, 08 Dec 2005 19:55:08 GMT
     [ http://issues.apache.org/jira/browse/LUCENE-479?page=all ]
     
Doug Cutting resolved LUCENE-479:
---------------------------------

    Fix Version: 1.9
     Resolution: Fixed

I committed this.  Thanks!

> 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 (JIRA)
>     Priority: Minor
>      Fix For: 1.9
>  Attachments: undeleteAll.patch
>
> 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: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


Mime
View raw message