Index: src/test/org/apache/lucene/index/TestIndexWriterDelete.java =================================================================== --- src/test/org/apache/lucene/index/TestIndexWriterDelete.java (revision 789351) +++ src/test/org/apache/lucene/index/TestIndexWriterDelete.java (working copy) @@ -297,9 +297,9 @@ assertEquals(7, reader.numDocs()); reader.close(); - // Add 2 new docs (after the deleteAll, before the commit) + // Add a doc and update a doc (after the deleteAll, before the commit) addDoc(modifier, 101, value); - addDoc(modifier, 102, value); + updateDoc(modifier, 102, value); // commit the delete all modifier.commit(); @@ -396,6 +396,18 @@ } + private void updateDoc(IndexWriter modifier, int id, int value) + throws IOException { + Document doc = new Document(); + doc.add(new Field("content", "aaa", Field.Store.NO, Field.Index.ANALYZED)); + doc.add(new Field("id", String.valueOf(id), Field.Store.YES, + Field.Index.NOT_ANALYZED)); + doc.add(new Field("value", String.valueOf(value), Field.Store.NO, + Field.Index.NOT_ANALYZED)); + modifier.updateDocument(new Term("id", String.valueOf(id)), doc); + } + + private void addDoc(IndexWriter modifier, int id, int value) throws IOException { Document doc = new Document(); Index: src/java/org/apache/lucene/index/IndexWriter.java =================================================================== --- src/java/org/apache/lucene/index/IndexWriter.java (revision 789351) +++ src/java/org/apache/lucene/index/IndexWriter.java (working copy) @@ -3260,6 +3260,7 @@ // Remove any buffered docs docWriter.abort(); + docWriter.setFlushedDocCount(0); // Remove all segments segmentInfos.clear();