You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@lucene.apache.org by mi...@apache.org on 2007/07/13 00:15:21 UTC
svn commit: r555793 - in /lucene/java/trunk/src:
java/org/apache/lucene/index/IndexWriter.java
test/org/apache/lucene/index/TestIndexWriter.java
Author: mikemccand
Date: Thu Jul 12 15:15:20 2007
New Revision: 555793
URL: http://svn.apache.org/viewvc?view=rev&rev=555793
Log:
LUCENE-843: fixed the triggerMerger logic from LUCENE-887 that I accidentally lost
Modified:
lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java
lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java
Modified: lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java?view=diff&rev=555793&r1=555792&r2=555793
==============================================================================
--- lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java Thu Jul 12 15:15:20 2007
@@ -1828,10 +1828,6 @@
flush(true, false);
}
- public final synchronized void flush() throws CorruptIndexException, IOException {
- flush(true, false);
- }
-
/**
* Flush all in-memory buffered updates (adds and deletes)
* to the Directory.
@@ -1840,7 +1836,19 @@
* @throws CorruptIndexException if the index is corrupt
* @throws IOException if there is a low-level IO error
*/
- public final synchronized void flush(boolean triggerMerge, boolean flushDocStores) throws CorruptIndexException, IOException {
+ public final synchronized void flush() throws CorruptIndexException, IOException {
+ flush(true, false);
+ }
+
+ /**
+ * Flush all in-memory buffered udpates (adds and deletes)
+ * to the Directory.
+ * @param triggerMerge if true, we may merge segments (if
+ * deletes or docs were flushed) if necessary
+ * @param flushDocStores if false we are allowed to keep
+ * doc stores open to share with the next segment
+ */
+ protected final synchronized void flush(boolean triggerMerge, boolean flushDocStores) throws CorruptIndexException, IOException {
ensureOpen();
// Make sure no threads are actively adding a document
@@ -1986,7 +1994,8 @@
else
maybeMergeSegments(docWriter.getMaxBufferedDocs());
*/
- maybeMergeSegments(docWriter.getMaxBufferedDocs());
+ if (triggerMerge)
+ maybeMergeSegments(docWriter.getMaxBufferedDocs());
}
} finally {
docWriter.clearFlushPending();
Modified: lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java?view=diff&rev=555793&r1=555792&r2=555793
==============================================================================
--- lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java (original)
+++ lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java Thu Jul 12 15:15:20 2007
@@ -1293,6 +1293,23 @@
dir.close();
}
+ public void testFlushWithNoMerging() throws IOException {
+ Directory dir = new RAMDirectory();
+ IndexWriter writer = new IndexWriter(dir, new WhitespaceAnalyzer(), true);
+ writer.setMaxBufferedDocs(2);
+ Document doc = new Document();
+ doc.add(new Field("field", "aaa", Field.Store.YES, Field.Index.TOKENIZED, Field.TermVector.WITH_POSITIONS_OFFSETS));
+ for(int i=0;i<19;i++)
+ writer.addDocument(doc);
+ writer.flush(false, true);
+ writer.close();
+ SegmentInfos sis = new SegmentInfos();
+ sis.read(dir);
+ // Since we flushed w/o allowing merging we should now
+ // have 10 segments
+ assert sis.size() == 10;
+ }
+
// Make sure we can flush segment w/ norms, then add
// empty doc (no norms) and flush
public void testEmptyDocAfterFlushingRealDoc() throws IOException {