You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by us...@apache.org on 2011/12/09 10:13:45 UTC
svn commit: r1212292 [4/6] - in /lucene/dev/trunk: ./ lucene/
lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/
lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/
lucene/contrib/highlighter/src/test/org/...
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReaderClone.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReaderClone.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReaderClone.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReaderClone.java Fri Dec 9 09:13:39 2011
@@ -17,14 +17,11 @@ package org.apache.lucene.index;
* limitations under the License.
*/
-import org.apache.lucene.search.similarities.DefaultSimilarity;
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.TextField;
import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.LockObtainFailedException;
import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.Bits;
/**
* Tests cloning multiple types of readers, modifying the liveDocs and norms
@@ -32,468 +29,10 @@ import org.apache.lucene.util.Bits;
* implemented properly
*/
public class TestIndexReaderClone extends LuceneTestCase {
-
- public void testCloneReadOnlySegmentReader() throws Exception {
- final Directory dir1 = newDirectory();
-
- TestIndexReaderReopen.createIndex(random, dir1, false);
- IndexReader reader = IndexReader.open(dir1, false);
- IndexReader readOnlyReader = reader.clone(true);
- if (!isReadOnly(readOnlyReader)) {
- fail("reader isn't read only");
- }
- if (deleteWorked(1, readOnlyReader)) {
- fail("deleting from the original should not have worked");
- }
- reader.close();
- readOnlyReader.close();
- dir1.close();
- }
-
- // open non-readOnly reader1, clone to non-readOnly
- // reader2, make sure we can change reader2
- public void testCloneNoChangesStillReadOnly() throws Exception {
- final Directory dir1 = newDirectory();
-
- TestIndexReaderReopen.createIndex(random, dir1, true);
- IndexReader r1 = IndexReader.open(dir1, false);
- IndexReader r2 = r1.clone(false);
- if (!deleteWorked(1, r2)) {
- fail("deleting from the cloned should have worked");
- }
- r1.close();
- r2.close();
- dir1.close();
- }
-
- // open non-readOnly reader1, clone to non-readOnly
- // reader2, make sure we can change reader1
- public void testCloneWriteToOrig() throws Exception {
- final Directory dir1 = newDirectory();
-
- TestIndexReaderReopen.createIndex(random, dir1, true);
- IndexReader r1 = IndexReader.open(dir1, false);
- IndexReader r2 = r1.clone(false);
- if (!deleteWorked(1, r1)) {
- fail("deleting from the original should have worked");
- }
- r1.close();
- r2.close();
- dir1.close();
- }
-
- // open non-readOnly reader1, clone to non-readOnly
- // reader2, make sure we can change reader2
- public void testCloneWriteToClone() throws Exception {
- final Directory dir1 = newDirectory();
-
- TestIndexReaderReopen.createIndex(random, dir1, true);
- IndexReader r1 = IndexReader.open(dir1, false);
- IndexReader r2 = r1.clone(false);
- if (!deleteWorked(1, r2)) {
- fail("deleting from the original should have worked");
- }
- // should fail because reader1 holds the write lock
- assertTrue("first reader should not be able to delete", !deleteWorked(1, r1));
- r2.close();
- // should fail because we are now stale (reader1
- // committed changes)
- assertTrue("first reader should not be able to delete", !deleteWorked(1, r1));
- r1.close();
-
- dir1.close();
- }
-
- // create single-segment index, open non-readOnly
- // SegmentReader, add docs, reopen to multireader, then do
- // delete
- public void testReopenSegmentReaderToMultiReader() throws Exception {
- final Directory dir1 = newDirectory();
-
- TestIndexReaderReopen.createIndex(random, dir1, false);
- IndexReader reader1 = IndexReader.open(dir1, false);
-
- TestIndexReaderReopen.modifyIndex(5, dir1);
-
- IndexReader reader2 = IndexReader.openIfChanged(reader1);
- assertNotNull(reader2);
- assertTrue(reader1 != reader2);
-
- assertTrue(deleteWorked(1, reader2));
- reader1.close();
- reader2.close();
- dir1.close();
- }
-
- // open non-readOnly reader1, clone to readOnly reader2
- public void testCloneWriteableToReadOnly() throws Exception {
- final Directory dir1 = newDirectory();
-
- TestIndexReaderReopen.createIndex(random, dir1, true);
- IndexReader reader = IndexReader.open(dir1, false);
- IndexReader readOnlyReader = reader.clone(true);
- if (!isReadOnly(readOnlyReader)) {
- fail("reader isn't read only");
- }
- if (deleteWorked(1, readOnlyReader)) {
- fail("deleting from the original should not have worked");
- }
- // this readonly reader shouldn't have a write lock
- if (readOnlyReader.hasChanges) {
- fail("readOnlyReader has a write lock");
- }
- reader.close();
- readOnlyReader.close();
- dir1.close();
- }
-
- // open non-readOnly reader1, reopen to readOnly reader2
- public void testReopenWriteableToReadOnly() throws Exception {
- final Directory dir1 = newDirectory();
-
- TestIndexReaderReopen.createIndex(random, dir1, true);
- IndexReader reader = IndexReader.open(dir1, false);
- final int docCount = reader.numDocs();
- assertTrue(deleteWorked(1, reader));
- assertEquals(docCount-1, reader.numDocs());
-
- IndexReader readOnlyReader = IndexReader.openIfChanged(reader, true);
- assertNotNull(readOnlyReader);
- if (!isReadOnly(readOnlyReader)) {
- fail("reader isn't read only");
- }
- assertFalse(deleteWorked(1, readOnlyReader));
- assertEquals(docCount-1, readOnlyReader.numDocs());
- reader.close();
- readOnlyReader.close();
- dir1.close();
- }
-
- // open readOnly reader1, clone to non-readOnly reader2
- public void testCloneReadOnlyToWriteable() throws Exception {
- final Directory dir1 = newDirectory();
-
- TestIndexReaderReopen.createIndex(random, dir1, true);
- IndexReader reader1 = IndexReader.open(dir1, true);
-
- IndexReader reader2 = reader1.clone(false);
- if (isReadOnly(reader2)) {
- fail("reader should not be read only");
- }
- assertFalse("deleting from the original reader should not have worked", deleteWorked(1, reader1));
- // this readonly reader shouldn't yet have a write lock
- if (reader2.hasChanges) {
- fail("cloned reader should not have write lock");
- }
- assertTrue("deleting from the cloned reader should have worked", deleteWorked(1, reader2));
- reader1.close();
- reader2.close();
- dir1.close();
- }
-
- // open non-readOnly reader1 on multi-segment index, then
- // fully merge the index, then clone to readOnly reader2
- public void testReadOnlyCloneAfterFullMerge() throws Exception {
- final Directory dir1 = newDirectory();
-
- TestIndexReaderReopen.createIndex(random, dir1, true);
- IndexReader reader1 = IndexReader.open(dir1, false);
- IndexWriter w = new IndexWriter(dir1, newIndexWriterConfig(
- TEST_VERSION_CURRENT, new MockAnalyzer(random)));
- w.forceMerge(1);
- w.close();
- IndexReader reader2 = reader1.clone(true);
- assertTrue(isReadOnly(reader2));
- reader1.close();
- reader2.close();
- dir1.close();
- }
-
- private static boolean deleteWorked(int doc, IndexReader r) {
- boolean exception = false;
- try {
- // trying to delete from the original reader should throw an exception
- r.deleteDocument(doc);
- } catch (Exception ex) {
- exception = true;
- }
- return !exception;
- }
-
- public void testCloneReadOnlyDirectoryReader() throws Exception {
- final Directory dir1 = newDirectory();
-
- TestIndexReaderReopen.createIndex(random, dir1, true);
- IndexReader reader = IndexReader.open(dir1, false);
- IndexReader readOnlyReader = reader.clone(true);
- if (!isReadOnly(readOnlyReader)) {
- fail("reader isn't read only");
- }
- reader.close();
- readOnlyReader.close();
- dir1.close();
- }
-
- public static boolean isReadOnly(IndexReader r) {
- if (r instanceof SegmentReader) {
- return ((SegmentReader) r).readOnly;
- } else if (r instanceof DirectoryReader) {
- return ((DirectoryReader) r).readOnly;
- } else {
- return false;
- }
- }
-
- public void testParallelReader() throws Exception {
- final Directory dir1 = newDirectory();
- TestIndexReaderReopen.createIndex(random, dir1, true);
- final Directory dir2 = newDirectory();
- TestIndexReaderReopen.createIndex(random, dir2, true);
- IndexReader r1 = IndexReader.open(dir1, false);
- IndexReader r2 = IndexReader.open(dir2, false);
-
- ParallelReader pr1 = new ParallelReader();
- pr1.add(r1);
- pr1.add(r2);
-
- performDefaultTests(pr1);
- pr1.close();
- dir1.close();
- dir2.close();
- }
-
- /**
- * 1. Get a norm from the original reader 2. Clone the original reader 3.
- * Delete a document and set the norm of the cloned reader 4. Verify the norms
- * are not the same on each reader 5. Verify the doc deleted is only in the
- * cloned reader 6. Try to delete a document in the original reader, an
- * exception should be thrown
- *
- * @param r1 IndexReader to perform tests on
- * @throws Exception
- */
- private void performDefaultTests(IndexReader r1) throws Exception {
- DefaultSimilarity sim = new DefaultSimilarity();
- float norm1 = sim.decodeNormValue(MultiNorms.norms(r1, "field1")[4]);
-
- IndexReader pr1Clone = (IndexReader) r1.clone();
- pr1Clone.deleteDocument(10);
- pr1Clone.setNorm(4, "field1", sim.encodeNormValue(0.5f));
- assertTrue(sim.decodeNormValue(MultiNorms.norms(r1, "field1")[4]) == norm1);
- assertTrue(sim.decodeNormValue(MultiNorms.norms(pr1Clone, "field1")[4]) != norm1);
-
- final Bits liveDocs = MultiFields.getLiveDocs(r1);
- assertTrue(liveDocs == null || liveDocs.get(10));
- assertFalse(MultiFields.getLiveDocs(pr1Clone).get(10));
-
- // try to update the original reader, which should throw an exception
- try {
- r1.deleteDocument(11);
- fail("Tried to delete doc 11 and an exception should have been thrown");
- } catch (Exception exception) {
- // expectted
- }
- pr1Clone.close();
- }
-
- public void testMixedReaders() throws Exception {
- final Directory dir1 = newDirectory();
- TestIndexReaderReopen.createIndex(random, dir1, true);
- final Directory dir2 = newDirectory();
- TestIndexReaderReopen.createIndex(random, dir2, true);
- IndexReader r1 = IndexReader.open(dir1, false);
- IndexReader r2 = IndexReader.open(dir2, false);
-
- MultiReader multiReader = new MultiReader(r1, r2);
- performDefaultTests(multiReader);
- multiReader.close();
- dir1.close();
- dir2.close();
- }
-
- public void testSegmentReaderUndeleteall() throws Exception {
- final Directory dir1 = newDirectory();
- TestIndexReaderReopen.createIndex(random, dir1, false);
- SegmentReader origSegmentReader = getOnlySegmentReader(IndexReader.open(dir1, false));
- origSegmentReader.deleteDocument(10);
- assertDelDocsRefCountEquals(1, origSegmentReader);
- origSegmentReader.undeleteAll();
- assertNull(origSegmentReader.liveDocsRef);
- origSegmentReader.close();
- // need to test norms?
- dir1.close();
- }
-
- public void testSegmentReaderCloseReferencing() throws Exception {
- final Directory dir1 = newDirectory();
- TestIndexReaderReopen.createIndex(random, dir1, false);
- SegmentReader origSegmentReader = getOnlySegmentReader(IndexReader.open(dir1, false));
- origSegmentReader.deleteDocument(1);
- DefaultSimilarity sim = new DefaultSimilarity();
- origSegmentReader.setNorm(4, "field1", sim.encodeNormValue(0.5f));
-
- SegmentReader clonedSegmentReader = (SegmentReader) origSegmentReader
- .clone();
- assertDelDocsRefCountEquals(2, origSegmentReader);
- origSegmentReader.close();
- assertDelDocsRefCountEquals(1, origSegmentReader);
- // check the norm refs
- SegmentNorms norm = clonedSegmentReader.norms.get("field1");
- assertEquals(1, norm.bytesRef().get());
- clonedSegmentReader.close();
- dir1.close();
- }
-
- public void testSegmentReaderDelDocsReferenceCounting() throws Exception {
- final Directory dir1 = newDirectory();
- TestIndexReaderReopen.createIndex(random, dir1, false);
-
- IndexReader origReader = IndexReader.open(dir1, false);
- SegmentReader origSegmentReader = getOnlySegmentReader(origReader);
- // liveDocsRef should be null because nothing has updated yet
- assertNull(origSegmentReader.liveDocsRef);
-
- // we deleted a document, so there is now a liveDocs bitvector and a
- // reference to it
- origReader.deleteDocument(1);
- assertDelDocsRefCountEquals(1, origSegmentReader);
-
- // the cloned segmentreader should have 2 references, 1 to itself, and 1 to
- // the original segmentreader
- IndexReader clonedReader = (IndexReader) origReader.clone();
- SegmentReader clonedSegmentReader = getOnlySegmentReader(clonedReader);
- assertDelDocsRefCountEquals(2, origSegmentReader);
- // deleting a document creates a new liveDocs bitvector, the refs goes to
- // 1
- clonedReader.deleteDocument(2);
- assertDelDocsRefCountEquals(1, origSegmentReader);
- assertDelDocsRefCountEquals(1, clonedSegmentReader);
-
- // make sure the deletedocs objects are different (copy
- // on write)
- assertTrue(origSegmentReader.liveDocs != clonedSegmentReader.liveDocs);
-
- assertDocDeleted(origSegmentReader, clonedSegmentReader, 1);
- final Bits liveDocs = origSegmentReader.getLiveDocs();
- assertTrue(liveDocs == null || liveDocs.get(2)); // doc 2 should not be deleted
- // in original segmentreader
- assertFalse(clonedSegmentReader.getLiveDocs().get(2)); // doc 2 should be deleted in
- // cloned segmentreader
-
- // deleting a doc from the original segmentreader should throw an exception
- try {
- origReader.deleteDocument(4);
- fail("expected exception");
- } catch (LockObtainFailedException lbfe) {
- // expected
- }
-
- origReader.close();
- // try closing the original segment reader to see if it affects the
- // clonedSegmentReader
- clonedReader.deleteDocument(3);
- clonedReader.flush();
- assertDelDocsRefCountEquals(1, clonedSegmentReader);
-
- // test a reopened reader
- IndexReader reopenedReader = IndexReader.openIfChanged(clonedReader);
- if (reopenedReader == null) {
- reopenedReader = clonedReader;
- }
- IndexReader cloneReader2 = (IndexReader) reopenedReader.clone();
- SegmentReader cloneSegmentReader2 = getOnlySegmentReader(cloneReader2);
- assertDelDocsRefCountEquals(2, cloneSegmentReader2);
- clonedReader.close();
- reopenedReader.close();
- cloneReader2.close();
-
- dir1.close();
- }
-
- // LUCENE-1648
- public void testCloneWithDeletes() throws Throwable {
- final Directory dir1 = newDirectory();
- TestIndexReaderReopen.createIndex(random, dir1, false);
- IndexReader origReader = IndexReader.open(dir1, false);
- origReader.deleteDocument(1);
-
- IndexReader clonedReader = (IndexReader) origReader.clone();
- origReader.close();
- clonedReader.close();
-
- IndexReader r = IndexReader.open(dir1, false);
- assertFalse(MultiFields.getLiveDocs(r).get(1));
- r.close();
- dir1.close();
- }
-
- // LUCENE-1648
- public void testCloneWithSetNorm() throws Throwable {
- final Directory dir1 = newDirectory();
- TestIndexReaderReopen.createIndex(random, dir1, false);
- IndexReader orig = IndexReader.open(dir1, false);
- DefaultSimilarity sim = new DefaultSimilarity();
- orig.setNorm(1, "field1", sim.encodeNormValue(17.0f));
- final byte encoded = sim.encodeNormValue(17.0f);
- assertEquals(encoded, MultiNorms.norms(orig, "field1")[1]);
-
- // the cloned segmentreader should have 2 references, 1 to itself, and 1 to
- // the original segmentreader
- IndexReader clonedReader = (IndexReader) orig.clone();
- orig.close();
- clonedReader.close();
-
- IndexReader r = IndexReader.open(dir1, false);
- assertEquals(encoded, MultiNorms.norms(r, "field1")[1]);
- r.close();
- dir1.close();
- }
-
- private void assertDocDeleted(SegmentReader reader, SegmentReader reader2,
- int doc) {
- assertEquals(reader.getLiveDocs().get(doc), reader2.getLiveDocs().get(doc));
- }
private void assertDelDocsRefCountEquals(int refCount, SegmentReader reader) {
assertEquals(refCount, reader.liveDocsRef.get());
}
-
- public void testCloneSubreaders() throws Exception {
- final Directory dir1 = newDirectory();
-
- TestIndexReaderReopen.createIndex(random, dir1, true);
- IndexReader reader = IndexReader.open(dir1, false);
- reader.deleteDocument(1); // acquire write lock
- IndexReader[] subs = reader.getSequentialSubReaders();
- assert subs.length > 1;
-
- IndexReader[] clones = new IndexReader[subs.length];
- for (int x=0; x < subs.length; x++) {
- clones[x] = (IndexReader) subs[x].clone();
- }
- reader.close();
- for (int x=0; x < subs.length; x++) {
- clones[x].close();
- }
- dir1.close();
- }
-
- public void testLucene1516Bug() throws Exception {
- final Directory dir1 = newDirectory();
- TestIndexReaderReopen.createIndex(random, dir1, false);
- IndexReader r1 = IndexReader.open(dir1, false);
- r1.incRef();
- IndexReader r2 = r1.clone(false);
- r1.deleteDocument(5);
- r1.decRef();
-
- r1.incRef();
-
- r2.close();
- r1.decRef();
- r1.close();
- dir1.close();
- }
public void testCloseStoredFields() throws Exception {
final Directory dir = newDirectory();
@@ -506,8 +45,8 @@ public class TestIndexReaderClone extend
doc.add(newField("field", "yes it's stored", TextField.TYPE_STORED));
w.addDocument(doc);
w.close();
- IndexReader r1 = IndexReader.open(dir, false);
- IndexReader r2 = r1.clone(false);
+ IndexReader r1 = IndexReader.open(dir);
+ IndexReader r2 = (IndexReader) r1.clone();
r1.close();
r2.close();
dir.close();
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReaderReopen.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReaderReopen.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReaderReopen.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReaderReopen.java Fri Dec 9 09:13:39 2011
@@ -62,7 +62,7 @@ public class TestIndexReaderReopen exten
@Override
protected IndexReader openReader() throws IOException {
- return IndexReader.open(dir1, false);
+ return IndexReader.open(dir1);
}
});
@@ -80,7 +80,7 @@ public class TestIndexReaderReopen exten
@Override
protected IndexReader openReader() throws IOException {
- return IndexReader.open(dir2, false);
+ return IndexReader.open(dir2);
}
});
@@ -104,8 +104,8 @@ public class TestIndexReaderReopen exten
@Override
protected IndexReader openReader() throws IOException {
ParallelReader pr = new ParallelReader();
- pr.add(IndexReader.open(dir1, false));
- pr.add(IndexReader.open(dir2, false));
+ pr.add(IndexReader.open(dir1));
+ pr.add(IndexReader.open(dir2));
return pr;
}
@@ -129,11 +129,11 @@ public class TestIndexReaderReopen exten
@Override
protected IndexReader openReader() throws IOException {
ParallelReader pr = new ParallelReader();
- pr.add(IndexReader.open(dir3, false));
- pr.add(IndexReader.open(dir4, false));
+ pr.add(IndexReader.open(dir3));
+ pr.add(IndexReader.open(dir4));
// Does not implement reopen, so
// hits exception:
- pr.add(new FilterIndexReader(IndexReader.open(dir3, false)));
+ pr.add(new FilterIndexReader(IndexReader.open(dir3)));
return pr;
}
@@ -163,7 +163,7 @@ public class TestIndexReaderReopen exten
TEST_VERSION_CURRENT, new MockAnalyzer(random)).setOpenMode(
OpenMode.CREATE).setMergeScheduler(new SerialMergeScheduler()).setMergePolicy(newLogMergePolicy()));
iwriter.commit();
- IndexReader reader = IndexReader.open(dir, false);
+ IndexReader reader = IndexReader.open(dir);
try {
int M = 3;
FieldType customType = new FieldType(TextField.TYPE_STORED);
@@ -200,7 +200,7 @@ public class TestIndexReaderReopen exten
} else {
// recreate
reader.close();
- reader = IndexReader.open(dir, false);
+ reader = IndexReader.open(dir);
}
}
} finally {
@@ -226,8 +226,8 @@ public class TestIndexReaderReopen exten
@Override
protected IndexReader openReader() throws IOException {
- return new MultiReader(IndexReader.open(dir1, false),
- IndexReader.open(dir2, false));
+ return new MultiReader(IndexReader.open(dir1),
+ IndexReader.open(dir2));
}
});
@@ -251,11 +251,11 @@ public class TestIndexReaderReopen exten
@Override
protected IndexReader openReader() throws IOException {
- return new MultiReader(IndexReader.open(dir3, false),
- IndexReader.open(dir4, false),
+ return new MultiReader(IndexReader.open(dir3),
+ IndexReader.open(dir4),
// Does not implement reopen, so
// hits exception:
- new FilterIndexReader(IndexReader.open(dir3, false)));
+ new FilterIndexReader(IndexReader.open(dir3)));
}
});
@@ -279,20 +279,15 @@ public class TestIndexReaderReopen exten
@Override
protected void modifyIndex(int i) throws IOException {
- // only change norms in this index to maintain the same number of docs for each of ParallelReader's subreaders
- if (i == 1) TestIndexReaderReopen.modifyIndex(i, dir1);
-
TestIndexReaderReopen.modifyIndex(i, dir4);
TestIndexReaderReopen.modifyIndex(i, dir5);
}
@Override
protected IndexReader openReader() throws IOException {
- ParallelReader pr = new ParallelReader();
- pr.add(IndexReader.open(dir1, false));
- pr.add(IndexReader.open(dir2, false));
- MultiReader mr = new MultiReader(IndexReader.open(dir3, false), IndexReader.open(dir4, false));
- return new MultiReader(pr, mr, IndexReader.open(dir5, false));
+ MultiReader mr1 = new MultiReader(IndexReader.open(dir1), IndexReader.open(dir2));
+ MultiReader mr2 = new MultiReader(IndexReader.open(dir3), IndexReader.open(dir4));
+ return new MultiReader(mr1, mr2, IndexReader.open(dir5));
}
});
dir1.close();
@@ -347,111 +342,6 @@ public class TestIndexReaderReopen exten
assertReaderClosed(index1, true, true);
assertReaderClosed(index2, true, true);
}
-
- public void testReferenceCounting() throws IOException {
- for (int mode = 0; mode < 4; mode++) {
- Directory dir1 = newDirectory();
- createIndex(random, dir1, true);
-
- IndexReader reader0 = IndexReader.open(dir1, false);
- assertRefCountEquals(1, reader0);
-
- assertTrue(reader0 instanceof DirectoryReader);
- IndexReader[] subReaders0 = reader0.getSequentialSubReaders();
- for (int i = 0; i < subReaders0.length; i++) {
- assertRefCountEquals(1, subReaders0[i]);
- }
-
- // delete first document, so that only one of the subReaders have to be re-opened
- IndexReader modifier = IndexReader.open(dir1, false);
- modifier.deleteDocument(0);
- modifier.close();
-
- IndexReader reader1 = refreshReader(reader0, true).refreshedReader;
- assertTrue(reader1 instanceof DirectoryReader);
- IndexReader[] subReaders1 = reader1.getSequentialSubReaders();
- assertEquals(subReaders0.length, subReaders1.length);
-
- for (int i = 0; i < subReaders0.length; i++) {
- if (subReaders0[i] != subReaders1[i]) {
- assertRefCountEquals(1, subReaders0[i]);
- assertRefCountEquals(1, subReaders1[i]);
- } else {
- assertRefCountEquals(2, subReaders0[i]);
- }
- }
-
- // delete first document, so that only one of the subReaders have to be re-opened
- modifier = IndexReader.open(dir1, false);
- modifier.deleteDocument(1);
- modifier.close();
-
- IndexReader reader2 = refreshReader(reader1, true).refreshedReader;
- assertTrue(reader2 instanceof DirectoryReader);
- IndexReader[] subReaders2 = reader2.getSequentialSubReaders();
- assertEquals(subReaders1.length, subReaders2.length);
-
- for (int i = 0; i < subReaders2.length; i++) {
- if (subReaders2[i] == subReaders1[i]) {
- if (subReaders1[i] == subReaders0[i]) {
- assertRefCountEquals(3, subReaders2[i]);
- } else {
- assertRefCountEquals(2, subReaders2[i]);
- }
- } else {
- assertRefCountEquals(1, subReaders2[i]);
- if (subReaders0[i] == subReaders1[i]) {
- assertRefCountEquals(2, subReaders2[i]);
- assertRefCountEquals(2, subReaders0[i]);
- } else {
- assertRefCountEquals(1, subReaders0[i]);
- assertRefCountEquals(1, subReaders1[i]);
- }
- }
- }
-
- IndexReader reader3 = refreshReader(reader0, true).refreshedReader;
- assertTrue(reader3 instanceof DirectoryReader);
- IndexReader[] subReaders3 = reader3.getSequentialSubReaders();
- assertEquals(subReaders3.length, subReaders0.length);
-
- // try some permutations
- switch (mode) {
- case 0:
- reader0.close();
- reader1.close();
- reader2.close();
- reader3.close();
- break;
- case 1:
- reader3.close();
- reader2.close();
- reader1.close();
- reader0.close();
- break;
- case 2:
- reader2.close();
- reader3.close();
- reader0.close();
- reader1.close();
- break;
- case 3:
- reader1.close();
- reader3.close();
- reader2.close();
- reader0.close();
- break;
- }
-
- assertReaderClosed(reader0, true, true);
- assertReaderClosed(reader1, true, true);
- assertReaderClosed(reader2, true, true);
- assertReaderClosed(reader3, true, true);
-
- dir1.close();
- }
- }
-
public void testReferenceCountingMultiReader() throws IOException {
for (int mode = 0; mode <=1; mode++) {
@@ -460,10 +350,10 @@ public class TestIndexReaderReopen exten
Directory dir2 = newDirectory();
createIndex(random, dir2, true);
- IndexReader reader1 = IndexReader.open(dir1, false);
+ IndexReader reader1 = IndexReader.open(dir1);
assertRefCountEquals(1, reader1);
- IndexReader initReader2 = IndexReader.open(dir2, false);
+ IndexReader initReader2 = IndexReader.open(dir2);
IndexReader multiReader1 = new MultiReader(new IndexReader[] {reader1, initReader2}, (mode == 0));
modifyIndex(0, dir2);
assertRefCountEquals(1 + mode, reader1);
@@ -527,160 +417,6 @@ public class TestIndexReaderReopen exten
}
}
-
- public void testReferenceCountingParallelReader() throws IOException {
- for (int mode = 0; mode <=1; mode++) {
- Directory dir1 = newDirectory();
- createIndex(random, dir1, false);
- Directory dir2 = newDirectory();
- createIndex(random, dir2, true);
-
- IndexReader reader1 = IndexReader.open(dir1, false);
- assertRefCountEquals(1, reader1);
-
- ParallelReader parallelReader1 = new ParallelReader(mode == 0);
- parallelReader1.add(reader1);
- IndexReader initReader2 = IndexReader.open(dir2, false);
- parallelReader1.add(initReader2);
- modifyIndex(1, dir2);
- assertRefCountEquals(1 + mode, reader1);
-
- IndexReader parallelReader2 = IndexReader.openIfChanged(parallelReader1);
- assertNotNull(parallelReader2);
- assertNull(IndexReader.openIfChanged(parallelReader2));
- // index1 hasn't changed, so parallelReader2 should share reader1 now with multiReader1
- assertRefCountEquals(2 + mode, reader1);
-
- modifyIndex(0, dir1);
- modifyIndex(0, dir2);
- IndexReader reader2 = IndexReader.openIfChanged(reader1);
- assertNotNull(reader2);
- assertRefCountEquals(2 + mode, reader1);
-
- if (mode == 1) {
- initReader2.close();
- }
-
- modifyIndex(4, dir1);
- IndexReader reader3 = IndexReader.openIfChanged(reader2);
- assertNotNull(reader3);
- assertRefCountEquals(2 + mode, reader1);
- assertRefCountEquals(1, reader2);
-
- parallelReader1.close();
- assertRefCountEquals(1 + mode, reader1);
-
- parallelReader1.close();
- assertRefCountEquals(1 + mode, reader1);
-
- if (mode == 1) {
- initReader2.close();
- }
-
- reader1.close();
- assertRefCountEquals(1, reader1);
-
- parallelReader2.close();
- assertRefCountEquals(0, reader1);
-
- parallelReader2.close();
- assertRefCountEquals(0, reader1);
-
- reader3.close();
- assertRefCountEquals(0, reader1);
- assertReaderClosed(reader1, true, false);
-
- reader2.close();
- assertRefCountEquals(0, reader1);
- assertReaderClosed(reader1, true, false);
-
- reader2.close();
- assertRefCountEquals(0, reader1);
-
- reader3.close();
- assertRefCountEquals(0, reader1);
- assertReaderClosed(reader1, true, true);
-
- dir1.close();
- dir2.close();
- }
-
- }
-
- public void testNormsRefCounting() throws IOException {
- Directory dir1 = newDirectory();
- createIndex(random, dir1, false);
-
- IndexReader reader1 = IndexReader.open(dir1, false);
- SegmentReader segmentReader1 = getOnlySegmentReader(reader1);
- IndexReader modifier = IndexReader.open(dir1, false);
- modifier.deleteDocument(0);
- modifier.close();
-
- IndexReader reader2 = IndexReader.openIfChanged(reader1);
- assertNotNull(reader2);
- modifier = IndexReader.open(dir1, false);
- DefaultSimilarity sim = new DefaultSimilarity();
- modifier.setNorm(1, "field1", sim.encodeNormValue(50f));
- modifier.setNorm(1, "field2", sim.encodeNormValue(50f));
- modifier.close();
-
- IndexReader reader3 = IndexReader.openIfChanged(reader2);
- assertNotNull(reader3);
- SegmentReader segmentReader3 = getOnlySegmentReader(reader3);
- modifier = IndexReader.open(dir1, false);
- modifier.deleteDocument(2);
- modifier.close();
-
- IndexReader reader4 = IndexReader.openIfChanged(reader3);
- assertNotNull(reader4);
- modifier = IndexReader.open(dir1, false);
- modifier.deleteDocument(3);
- modifier.close();
-
- IndexReader reader5 = IndexReader.openIfChanged(reader3);
- assertNotNull(reader5);
-
- // Now reader2-reader5 references reader1. reader1 and reader2
- // share the same norms. reader3, reader4, reader5 also share norms.
- assertRefCountEquals(1, reader1);
- assertFalse(segmentReader1.normsClosed());
-
- reader1.close();
-
- assertRefCountEquals(0, reader1);
- assertFalse(segmentReader1.normsClosed());
-
- reader2.close();
- assertRefCountEquals(0, reader1);
-
- // now the norms for field1 and field2 should be closed
- assertTrue(segmentReader1.normsClosed("field1"));
- assertTrue(segmentReader1.normsClosed("field2"));
-
- // but the norms for field3 and field4 should still be open
- assertFalse(segmentReader1.normsClosed("field3"));
- assertFalse(segmentReader1.normsClosed("field4"));
-
- reader3.close();
- assertRefCountEquals(0, reader1);
- assertFalse(segmentReader3.normsClosed());
- reader5.close();
- assertRefCountEquals(0, reader1);
- assertFalse(segmentReader3.normsClosed());
- reader4.close();
- assertRefCountEquals(0, reader1);
-
- // and now all norms that reader1 used should be closed
- assertTrue(segmentReader1.normsClosed());
-
- // now that reader3, reader4 and reader5 are closed,
- // the norms that those three readers shared should be
- // closed as well
- assertTrue(segmentReader3.normsClosed());
-
- dir1.close();
- }
private void performTestsWithExceptionInReopen(TestReopen test) throws Exception {
IndexReader index1 = test.openReader();
@@ -717,31 +453,20 @@ public class TestIndexReaderReopen exten
final TestReopen test = new TestReopen() {
@Override
protected void modifyIndex(int i) throws IOException {
- if (i % 3 == 0) {
- IndexReader modifier = IndexReader.open(dir, false);
- DefaultSimilarity sim = new DefaultSimilarity();
- modifier.setNorm(i, "field1", sim.encodeNormValue(50f));
- modifier.close();
- } else if (i % 3 == 1) {
- IndexReader modifier = IndexReader.open(dir, false);
- modifier.deleteDocument(i % modifier.maxDoc());
- modifier.close();
- } else {
- IndexWriter modifier = new IndexWriter(dir, new IndexWriterConfig(
- TEST_VERSION_CURRENT, new MockAnalyzer(random)));
- modifier.addDocument(createDocument(n + i, 6));
- modifier.close();
- }
+ IndexWriter modifier = new IndexWriter(dir, new IndexWriterConfig(
+ TEST_VERSION_CURRENT, new MockAnalyzer(random)));
+ modifier.addDocument(createDocument(n + i, 6));
+ modifier.close();
}
@Override
protected IndexReader openReader() throws IOException {
- return IndexReader.open(dir, false);
+ return IndexReader.open(dir);
}
};
final List<ReaderCouple> readers = Collections.synchronizedList(new ArrayList<ReaderCouple>());
- IndexReader firstReader = IndexReader.open(dir, false);
+ IndexReader firstReader = IndexReader.open(dir);
IndexReader reader = firstReader;
final Random rnd = random;
@@ -966,7 +691,7 @@ public class TestIndexReaderReopen exten
w.close();
- IndexReader r = IndexReader.open(dir, false);
+ IndexReader r = IndexReader.open(dir);
if (multiSegment) {
assertTrue(r.getSequentialSubReaders().length > 1);
} else {
@@ -1009,21 +734,12 @@ public class TestIndexReaderReopen exten
break;
}
case 1: {
- IndexReader reader = IndexReader.open(dir, false);
- DefaultSimilarity sim = new DefaultSimilarity();
- reader.setNorm(4, "field1", sim.encodeNormValue(123f));
- reader.setNorm(44, "field2", sim.encodeNormValue(222f));
- reader.setNorm(44, "field4", sim.encodeNormValue(22f));
- reader.close();
- break;
- }
- case 2: {
IndexWriter w = new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)));
w.forceMerge(1);
w.close();
break;
}
- case 3: {
+ case 2: {
IndexWriter w = new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)));
w.addDocument(createDocument(101, 4));
w.forceMerge(1);
@@ -1032,15 +748,7 @@ public class TestIndexReaderReopen exten
w.close();
break;
}
- case 4: {
- IndexReader reader = IndexReader.open(dir, false);
- DefaultSimilarity sim = new DefaultSimilarity();
- reader.setNorm(5, "field1", sim.encodeNormValue(123f));
- reader.setNorm(55, "field2", sim.encodeNormValue(222f));
- reader.close();
- break;
- }
- case 5: {
+ case 3: {
IndexWriter w = new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)));
w.addDocument(createDocument(101, 4));
w.close();
@@ -1053,7 +761,8 @@ public class TestIndexReaderReopen exten
assertEquals(0, reader.getRefCount());
if (checkNormsClosed && reader instanceof SegmentReader) {
- assertTrue(((SegmentReader) reader).normsClosed());
+ // TODO: should we really assert something here? we check for open files and this is obselete...
+ // assertTrue(((SegmentReader) reader).normsClosed());
}
if (checkSubReaders) {
@@ -1103,94 +812,6 @@ public class TestIndexReaderReopen exten
protected abstract void modifyIndex(int i) throws IOException;
}
- public void testCloseOrig() throws Throwable {
- Directory dir = newDirectory();
- createIndex(random, dir, false);
- IndexReader r1 = IndexReader.open(dir, false);
- IndexReader r2 = IndexReader.open(dir, false);
- r2.deleteDocument(0);
- r2.close();
-
- IndexReader r3 = IndexReader.openIfChanged(r1);
- assertNotNull(r3);
- assertTrue(r1 != r3);
- r1.close();
- try {
- r1.document(2);
- fail("did not hit exception");
- } catch (AlreadyClosedException ace) {
- // expected
- }
- r3.close();
- dir.close();
- }
-
- public void testDeletes() throws Throwable {
- Directory dir = newDirectory();
- createIndex(random, dir, false); // Create an index with a bunch of docs (1 segment)
-
- modifyIndex(0, dir); // Get delete bitVector on 1st segment
- modifyIndex(5, dir); // Add a doc (2 segments)
-
- IndexReader r1 = IndexReader.open(dir, false); // MSR
-
- modifyIndex(5, dir); // Add another doc (3 segments)
-
- IndexReader r2 = IndexReader.openIfChanged(r1); // MSR
- assertNotNull(r2);
- assertNull(IndexReader.openIfChanged(r2));
- assertTrue(r1 != r2);
-
- SegmentReader sr1 = (SegmentReader) r1.getSequentialSubReaders()[0]; // Get SRs for the first segment from original
- SegmentReader sr2 = (SegmentReader) r2.getSequentialSubReaders()[0]; // and reopened IRs
-
- // At this point they share the same BitVector
- assertTrue(sr1.liveDocs==sr2.liveDocs);
-
- r2.deleteDocument(0);
-
- // r1 should not see the delete
- final Bits r1LiveDocs = MultiFields.getLiveDocs(r1);
- assertFalse(r1LiveDocs != null && !r1LiveDocs.get(0));
-
- // Now r2 should have made a private copy of deleted docs:
- assertTrue(sr1.liveDocs!=sr2.liveDocs);
-
- r1.close();
- r2.close();
- dir.close();
- }
-
- public void testDeletes2() throws Throwable {
- Directory dir = newDirectory();
- createIndex(random, dir, false);
- // Get delete bitVector
- modifyIndex(0, dir);
- IndexReader r1 = IndexReader.open(dir, false);
-
- // Add doc:
- modifyIndex(5, dir);
-
- IndexReader r2 = IndexReader.openIfChanged(r1);
- assertNotNull(r2);
- assertTrue(r1 != r2);
-
- IndexReader[] rs2 = r2.getSequentialSubReaders();
-
- SegmentReader sr1 = getOnlySegmentReader(r1);
- SegmentReader sr2 = (SegmentReader) rs2[0];
-
- // At this point they share the same BitVector
- assertTrue(sr1.liveDocs==sr2.liveDocs);
- final BitVector liveDocs = sr1.liveDocs;
- r1.close();
-
- r2.deleteDocument(0);
- assertTrue(liveDocs==sr2.liveDocs);
- r2.close();
- dir.close();
- }
-
private static class KeepAllCommits implements IndexDeletionPolicy {
public void onInit(List<? extends IndexCommit> commits) {
}
@@ -1223,7 +844,7 @@ public class TestIndexReaderReopen exten
}
writer.close();
- IndexReader r = IndexReader.open(dir, false);
+ IndexReader r = IndexReader.open(dir);
assertEquals(0, r.numDocs());
Collection<IndexCommit> commits = IndexReader.listCommits(dir);
@@ -1232,14 +853,6 @@ public class TestIndexReaderReopen exten
assertNotNull(r2);
assertTrue(r2 != r);
- // Reader should be readOnly
- try {
- r2.deleteDocument(0);
- fail("no exception hit");
- } catch (UnsupportedOperationException uoe) {
- // expected
- }
-
final Map<String,String> s = commit.getUserData();
final int v;
if (s.size() == 0) {
@@ -1259,54 +872,4 @@ public class TestIndexReaderReopen exten
r.close();
dir.close();
}
-
- // LUCENE-1579: Make sure all SegmentReaders are new when
- // reopen switches readOnly
- public void testReopenChangeReadonly() throws Exception {
- Directory dir = newDirectory();
- IndexWriter writer = new IndexWriter(
- dir,
- newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).
- setMaxBufferedDocs(-1).
- setMergePolicy(newLogMergePolicy(10))
- );
- Document doc = new Document();
- doc.add(newField("number", "17", StringField.TYPE_UNSTORED));
- writer.addDocument(doc);
- writer.commit();
-
- // Open reader1
- IndexReader r = IndexReader.open(dir, false);
- assertTrue(r instanceof DirectoryReader);
- IndexReader r1 = getOnlySegmentReader(r);
- final int[] ints = FieldCache.DEFAULT.getInts(r1, "number", false);
- assertEquals(1, ints.length);
- assertEquals(17, ints[0]);
-
- // Reopen to readonly w/ no chnages
- IndexReader r3 = IndexReader.openIfChanged(r, true);
- assertNotNull(r3);
- assertTrue(((DirectoryReader) r3).readOnly);
- r3.close();
-
- // Add new segment
- writer.addDocument(doc);
- writer.commit();
-
- // Reopen reader1 --> reader2
- IndexReader r2 = IndexReader.openIfChanged(r, true);
- assertNotNull(r2);
- r.close();
- assertTrue(((DirectoryReader) r2).readOnly);
- IndexReader[] subs = r2.getSequentialSubReaders();
- final int[] ints2 = FieldCache.DEFAULT.getInts(subs[0], "number", false);
- r2.close();
-
- assertTrue(((SegmentReader) subs[0]).readOnly);
- assertTrue(((SegmentReader) subs[1]).readOnly);
- assertTrue(ints == ints2);
-
- writer.close();
- dir.close();
- }
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java Fri Dec 9 09:13:39 2011
@@ -90,19 +90,19 @@ public class TestIndexWriter extends Luc
// add 100 documents
for (i = 0; i < 100; i++) {
- addDoc(writer);
+ addDocWithIndex(writer,i);
}
assertEquals(100, writer.maxDoc());
writer.close();
// delete 40 documents
- reader = IndexReader.open(dir, false);
+ writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setMergePolicy(NoMergePolicy.NO_COMPOUND_FILES));
for (i = 0; i < 40; i++) {
- reader.deleteDocument(i);
+ writer.deleteDocuments(new Term("id", ""+i));
}
- reader.close();
+ writer.close();
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
assertEquals(60, reader.numDocs());
reader.close();
@@ -115,7 +115,7 @@ public class TestIndexWriter extends Luc
writer.close();
// check that the index reader gives the same numbers.
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
assertEquals(60, reader.maxDoc());
assertEquals(60, reader.numDocs());
reader.close();
@@ -182,7 +182,7 @@ public class TestIndexWriter extends Luc
writer.close();
// now open reader:
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
assertEquals("should be one document", reader.numDocs(), 1);
// now open index for create:
@@ -192,7 +192,7 @@ public class TestIndexWriter extends Luc
writer.close();
assertEquals("should be one document", reader.numDocs(), 1);
- IndexReader reader2 = IndexReader.open(dir, true);
+ IndexReader reader2 = IndexReader.open(dir);
assertEquals("should be one document", reader2.numDocs(), 1);
reader.close();
reader2.close();
@@ -227,7 +227,7 @@ public class TestIndexWriter extends Luc
writer.commit();
writer.close();
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
assertEquals(0, reader.maxDoc());
assertEquals(0, reader.numDocs());
reader.close();
@@ -236,7 +236,7 @@ public class TestIndexWriter extends Luc
writer.commit();
writer.close();
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
assertEquals(0, reader.maxDoc());
assertEquals(0, reader.numDocs());
reader.close();
@@ -258,7 +258,7 @@ public class TestIndexWriter extends Luc
}
writer.close();
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
assertEquals(100, reader.maxDoc());
assertEquals(100, reader.numDocs());
for(int j=0;j<100;j++) {
@@ -452,7 +452,7 @@ public class TestIndexWriter extends Luc
}
writer.close();
- IndexReader reader = IndexReader.open(dir, false);
+ IndexReader reader = IndexReader.open(dir);
IndexSearcher searcher = new IndexSearcher(reader);
ScoreDoc[] hits = searcher.search(new TermQuery(new Term("field", "aaa")), null, 1000).scoreDocs;
assertEquals(300, hits.length);
@@ -484,7 +484,7 @@ public class TestIndexWriter extends Luc
Term searchTerm = new Term("field", "aaa");
- IndexReader reader = IndexReader.open(dir, false);
+ IndexReader reader = IndexReader.open(dir);
IndexSearcher searcher = new IndexSearcher(reader);
ScoreDoc[] hits = searcher.search(new TermQuery(searchTerm), null, 1000).scoreDocs;
assertEquals(10, hits.length);
@@ -507,14 +507,14 @@ public class TestIndexWriter extends Luc
writer.addDocument(doc);
}
writer.close();
- reader = IndexReader.open(dir, false);
+ reader = IndexReader.open(dir);
searcher = new IndexSearcher(reader);
hits = searcher.search(new TermQuery(searchTerm), null, 1000).scoreDocs;
assertEquals(27, hits.length);
searcher.close();
reader.close();
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
reader.close();
dir.close();
@@ -541,7 +541,7 @@ public class TestIndexWriter extends Luc
writer.addDocument(doc);
writer.close();
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
assertEquals(1, reader.maxDoc());
assertEquals(1, reader.numDocs());
Term t = new Term("field", "a");
@@ -586,7 +586,7 @@ public class TestIndexWriter extends Luc
}
writer.close();
Term searchTerm = new Term("content", "aaa");
- IndexReader reader = IndexReader.open(dir, false);
+ IndexReader reader = IndexReader.open(dir);
IndexSearcher searcher = new IndexSearcher(reader);
ScoreDoc[] hits = searcher.search(new TermQuery(searchTerm), null, 1000).scoreDocs;
assertEquals("did not get right number of hits", 100, hits.length);
@@ -643,7 +643,7 @@ public class TestIndexWriter extends Luc
}
writer.addDocument(new Document());
writer.close();
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
assertEquals(2, reader.numDocs());
reader.close();
dir.close();
@@ -698,7 +698,6 @@ public class TestIndexWriter extends Luc
public void testVariableSchema() throws Exception {
Directory dir = newDirectory();
- int delID = 0;
for(int i=0;i<20;i++) {
if (VERBOSE) {
System.out.println("TEST: iter=" + i);
@@ -730,9 +729,6 @@ public class TestIndexWriter extends Luc
writer.addDocument(doc);
writer.close();
- IndexReader reader = IndexReader.open(dir, false);
- reader.deleteDocument(delID++);
- reader.close();
if (0 == i % 4) {
writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random)));
@@ -830,7 +826,7 @@ public class TestIndexWriter extends Luc
t1.join();
// Make sure reader can read
- IndexReader reader = IndexReader.open(directory, true);
+ IndexReader reader = IndexReader.open(directory);
reader.close();
// Reopen
@@ -858,7 +854,7 @@ public class TestIndexWriter extends Luc
writer.addDocument(doc);
writer.close();
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
Term t = new Term("field", "x");
assertEquals(1, reader.docFreq(t));
reader.close();
@@ -885,7 +881,7 @@ public class TestIndexWriter extends Luc
doc.add(newField("", "a b c", TextField.TYPE_UNSTORED));
writer.addDocument(doc);
writer.close();
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
IndexReader subreader = getOnlySegmentReader(reader);
TermsEnum te = subreader.fields().terms("").iterator(null);
assertEquals(new BytesRef("a"), te.next());
@@ -906,7 +902,7 @@ public class TestIndexWriter extends Luc
doc.add(newField("", "c", StringField.TYPE_UNSTORED));
writer.addDocument(doc);
writer.close();
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
IndexReader subreader = getOnlySegmentReader(reader);
TermsEnum te = subreader.fields().terms("").iterator(null);
assertEquals(new BytesRef(""), te.next());
@@ -960,7 +956,7 @@ public class TestIndexWriter extends Luc
assertTrue(w.afterWasCalled);
w.close();
- IndexReader ir = IndexReader.open(dir, true);
+ IndexReader ir = IndexReader.open(dir);
assertEquals(0, ir.numDocs());
ir.close();
@@ -994,7 +990,7 @@ public class TestIndexWriter extends Luc
w.addDocument(doc);
w.commit();
- IndexReader r = IndexReader.open(dir, false);
+ IndexReader r = IndexReader.open(dir);
IndexSearcher s = new IndexSearcher(r);
PhraseQuery pq = new PhraseQuery();
pq.add(new Term("field", "a"));
@@ -1043,7 +1039,7 @@ public class TestIndexWriter extends Luc
w.addDocument(doc);
w.close();
- IndexReader ir = IndexReader.open(dir, true);
+ IndexReader ir = IndexReader.open(dir);
Document doc2 = ir.document(0);
IndexableField f2 = doc2.getField("binary");
b = f2.binaryValue().bytes;
@@ -1072,7 +1068,7 @@ public class TestIndexWriter extends Luc
w.addDocument(doc);
w.close();
- IndexReader r = IndexReader.open(dir, true);
+ IndexReader r = IndexReader.open(dir);
Terms tpv = r.getTermVectors(0).terms("field");
TermsEnum termsEnum = tpv.iterator(null);
assertNotNull(termsEnum.next());
@@ -1136,12 +1132,12 @@ public class TestIndexWriter extends Luc
writer2.addDocument(doc);
writer2.close();
- IndexReader r1 = IndexReader.open(dir2, true);
+ IndexReader r1 = IndexReader.open(dir2);
IndexReader r2 = (IndexReader) r1.clone();
writer.addIndexes(r1, r2);
writer.close();
- IndexReader r3 = IndexReader.open(dir, true);
+ IndexReader r3 = IndexReader.open(dir);
assertEquals(5, r3.numDocs());
r3.close();
@@ -1186,7 +1182,7 @@ public class TestIndexWriter extends Luc
w.close();
w = null;
_TestUtil.checkIndex(dir);
- IndexReader.open(dir, true).close();
+ IndexReader.open(dir).close();
// Strangely, if we interrupt a thread before
// all classes are loaded, the class loader
@@ -1236,7 +1232,7 @@ public class TestIndexWriter extends Luc
e.printStackTrace(System.out);
}
try {
- IndexReader r = IndexReader.open(dir, true);
+ IndexReader r = IndexReader.open(dir);
//System.out.println("doc count=" + r.numDocs());
r.close();
} catch (Exception e) {
@@ -1322,7 +1318,7 @@ public class TestIndexWriter extends Luc
w.forceMerge(1); // force segment merge.
w.close();
- IndexReader ir = IndexReader.open(dir, true);
+ IndexReader ir = IndexReader.open(dir);
Document doc2 = ir.document(0);
IndexableField f3 = doc2.getField("binary");
b = f3.binaryValue().bytes;
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterCommit.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterCommit.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterCommit.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterCommit.java Fri Dec 9 09:13:39 2011
@@ -51,21 +51,21 @@ public class TestIndexWriterCommit exten
writer.close();
Term searchTerm = new Term("content", "aaa");
- IndexReader reader = IndexReader.open(dir, false);
+ IndexReader reader = IndexReader.open(dir);
IndexSearcher searcher = new IndexSearcher(reader);
ScoreDoc[] hits = searcher.search(new TermQuery(searchTerm), null, 1000).scoreDocs;
assertEquals("first number of hits", 14, hits.length);
searcher.close();
reader.close();
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random)));
for(int i=0;i<3;i++) {
for(int j=0;j<11;j++) {
TestIndexWriter.addDoc(writer);
}
- IndexReader r = IndexReader.open(dir, false);
+ IndexReader r = IndexReader.open(dir);
searcher = new IndexSearcher(r);
hits = searcher.search(new TermQuery(searchTerm), null, 1000).scoreDocs;
assertEquals("reader incorrectly sees changes from writer", 14, hits.length);
@@ -78,7 +78,7 @@ public class TestIndexWriterCommit exten
writer.close();
assertFalse("reader should not be current now", reader.isCurrent());
- IndexReader r = IndexReader.open(dir, false);
+ IndexReader r = IndexReader.open(dir);
searcher = new IndexSearcher(r);
hits = searcher.search(new TermQuery(searchTerm), null, 1000).scoreDocs;
assertEquals("reader did not see changes after writer was closed", 47, hits.length);
@@ -105,7 +105,7 @@ public class TestIndexWriterCommit exten
writer.close();
Term searchTerm = new Term("content", "aaa");
- IndexReader reader = IndexReader.open(dir, false);
+ IndexReader reader = IndexReader.open(dir);
IndexSearcher searcher = new IndexSearcher(reader);
ScoreDoc[] hits = searcher.search(new TermQuery(searchTerm), null, 1000).scoreDocs;
assertEquals("first number of hits", 14, hits.length);
@@ -120,7 +120,7 @@ public class TestIndexWriterCommit exten
// Delete all docs:
writer.deleteDocuments(searchTerm);
- reader = IndexReader.open(dir, false);
+ reader = IndexReader.open(dir);
searcher = new IndexSearcher(reader);
hits = searcher.search(new TermQuery(searchTerm), null, 1000).scoreDocs;
assertEquals("reader incorrectly sees changes from writer", 14, hits.length);
@@ -132,7 +132,7 @@ public class TestIndexWriterCommit exten
TestIndexWriter.assertNoUnreferencedFiles(dir, "unreferenced files remain after rollback()");
- reader = IndexReader.open(dir, false);
+ reader = IndexReader.open(dir);
searcher = new IndexSearcher(reader);
hits = searcher.search(new TermQuery(searchTerm), null, 1000).scoreDocs;
assertEquals("saw changes after writer.abort", 14, hits.length);
@@ -152,7 +152,7 @@ public class TestIndexWriterCommit exten
for(int j=0;j<17;j++) {
TestIndexWriter.addDoc(writer);
}
- IndexReader r = IndexReader.open(dir, false);
+ IndexReader r = IndexReader.open(dir);
searcher = new IndexSearcher(r);
hits = searcher.search(new TermQuery(searchTerm), null, 1000).scoreDocs;
assertEquals("reader incorrectly sees changes from writer", 14, hits.length);
@@ -161,7 +161,7 @@ public class TestIndexWriterCommit exten
}
writer.close();
- IndexReader r = IndexReader.open(dir, false);
+ IndexReader r = IndexReader.open(dir);
searcher = new IndexSearcher(r);
hits = searcher.search(new TermQuery(searchTerm), null, 1000).scoreDocs;
assertEquals("didn't see changes after close", 218, hits.length);
@@ -243,7 +243,7 @@ public class TestIndexWriterCommit exten
writer.forceMerge(1);
writer.close();
- IndexReader.open(dir, true).close();
+ IndexReader.open(dir).close();
long endDiskUsage = dir.getMaxUsedSizeInBytes();
@@ -287,7 +287,7 @@ public class TestIndexWriterCommit exten
writer.forceMerge(1);
// Open a reader before closing (commiting) the writer:
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
// Reader should see index as multi-seg at this
// point:
@@ -299,7 +299,7 @@ public class TestIndexWriterCommit exten
TestIndexWriter.assertNoUnreferencedFiles(dir, "aborted writer after forceMerge");
// Open a reader after aborting writer:
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
// Reader should still see index as multi-segment
assertTrue("Reader incorrectly sees one segment", reader.getSequentialSubReaders().length > 1);
@@ -318,7 +318,7 @@ public class TestIndexWriterCommit exten
TestIndexWriter.assertNoUnreferencedFiles(dir, "aborted writer after forceMerge");
// Open a reader after aborting writer:
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
// Reader should see index as one segment
assertEquals("Reader incorrectly sees more than one segment", 1, reader.getSequentialSubReaders().length);
@@ -398,7 +398,7 @@ public class TestIndexWriterCommit exten
for (int i = 0; i < 23; i++)
TestIndexWriter.addDoc(writer);
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
assertEquals(0, reader.numDocs());
writer.commit();
IndexReader reader2 = IndexReader.openIfChanged(reader);
@@ -411,12 +411,12 @@ public class TestIndexWriterCommit exten
TestIndexWriter.addDoc(writer);
assertEquals(23, reader2.numDocs());
reader2.close();
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
assertEquals(23, reader.numDocs());
reader.close();
writer.commit();
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
assertEquals(40, reader.numDocs());
reader.close();
writer.close();
@@ -473,33 +473,10 @@ public class TestIndexWriterCommit exten
assertNotNull(commit);
- IndexReader r = IndexReader.open(commit, true);
- assertEquals(2, r.numDocs());
- r.close();
-
- // open "second", w/ writeable IndexReader & commit
- r = IndexReader.open(commit, NoDeletionPolicy.INSTANCE, false);
- assertEquals(2, r.numDocs());
- r.deleteDocument(0);
- r.deleteDocument(1);
- commitData.put("tag", "fourth");
- r.commit(commitData);
- r.close();
-
- // make sure "third" commit is still there
- commit = null;
- for(IndexCommit c : IndexReader.listCommits(dir)) {
- if (c.getUserData().get("tag").equals("third")) {
- commit = c;
- break;
- }
- }
- assertNotNull(commit);
-
dir.close();
}
- public void testNoCommits() throws Exception {
+ public void testZeroCommits() throws Exception {
// Tests that if we don't call commit(), the directory has 0 commits. This has
// changed since LUCENE-2386, where before IW would always commit on a fresh
// new index.
@@ -532,12 +509,12 @@ public class TestIndexWriterCommit exten
for (int i = 0; i < 23; i++)
TestIndexWriter.addDoc(writer);
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
assertEquals(0, reader.numDocs());
writer.prepareCommit();
- IndexReader reader2 = IndexReader.open(dir, true);
+ IndexReader reader2 = IndexReader.open(dir);
assertEquals(0, reader2.numDocs());
writer.commit();
@@ -555,18 +532,18 @@ public class TestIndexWriterCommit exten
assertEquals(23, reader3.numDocs());
reader3.close();
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
assertEquals(23, reader.numDocs());
reader.close();
writer.prepareCommit();
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
assertEquals(23, reader.numDocs());
reader.close();
writer.commit();
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
assertEquals(40, reader.numDocs());
reader.close();
writer.close();
@@ -589,12 +566,12 @@ public class TestIndexWriterCommit exten
for (int i = 0; i < 23; i++)
TestIndexWriter.addDoc(writer);
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
assertEquals(0, reader.numDocs());
writer.prepareCommit();
- IndexReader reader2 = IndexReader.open(dir, true);
+ IndexReader reader2 = IndexReader.open(dir);
assertEquals(0, reader2.numDocs());
writer.rollback();
@@ -610,18 +587,18 @@ public class TestIndexWriterCommit exten
for (int i = 0; i < 17; i++)
TestIndexWriter.addDoc(writer);
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
assertEquals(0, reader.numDocs());
reader.close();
writer.prepareCommit();
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
assertEquals(0, reader.numDocs());
reader.close();
writer.commit();
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
assertEquals(17, reader.numDocs());
reader.close();
writer.close();
@@ -637,7 +614,7 @@ public class TestIndexWriterCommit exten
writer.commit();
writer.close();
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
assertEquals(0, reader.numDocs());
reader.close();
dir.close();
@@ -653,7 +630,7 @@ public class TestIndexWriterCommit exten
assertEquals(0, IndexReader.getCommitUserData(dir).size());
- IndexReader r = IndexReader.open(dir, true);
+ IndexReader r = IndexReader.open(dir);
// commit(Map) never called for this index
assertEquals(0, r.getCommitUserData().size());
r.close();
@@ -668,7 +645,7 @@ public class TestIndexWriterCommit exten
assertEquals("test1", IndexReader.getCommitUserData(dir).get("label"));
- r = IndexReader.open(dir, true);
+ r = IndexReader.open(dir);
assertEquals("test1", r.getCommitUserData().get("label"));
r.close();
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterDelete.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterDelete.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterDelete.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterDelete.java Fri Dec 9 09:13:39 2011
@@ -106,7 +106,7 @@ public class TestIndexWriterDelete exten
modifier.commit();
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
assertEquals(7, reader.numDocs());
reader.close();
@@ -114,7 +114,7 @@ public class TestIndexWriterDelete exten
modifier.commit();
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
assertEquals(0, reader.numDocs());
reader.close();
modifier.close();
@@ -166,7 +166,7 @@ public class TestIndexWriterDelete exten
assertEquals(0, modifier.getSegmentCount());
modifier.commit();
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
assertEquals(1, reader.numDocs());
int hitCount = getHitCount(dir, new Term("id", String.valueOf(id)));
@@ -204,7 +204,7 @@ public class TestIndexWriterDelete exten
modifier.commit();
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
assertEquals(5, reader.numDocs());
modifier.close();
reader.close();
@@ -226,7 +226,7 @@ public class TestIndexWriterDelete exten
}
modifier.commit();
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
assertEquals(7, reader.numDocs());
reader.close();
@@ -236,7 +236,7 @@ public class TestIndexWriterDelete exten
modifier.commit();
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
assertEquals(5, reader.numDocs());
reader.close();
@@ -246,7 +246,7 @@ public class TestIndexWriterDelete exten
}
modifier.deleteDocuments(terms);
modifier.commit();
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
assertEquals(2, reader.numDocs());
reader.close();
@@ -269,7 +269,7 @@ public class TestIndexWriterDelete exten
}
modifier.commit();
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
assertEquals(7, reader.numDocs());
reader.close();
@@ -280,7 +280,7 @@ public class TestIndexWriterDelete exten
modifier.deleteAll();
// Delete all shouldn't be on disk yet
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
assertEquals(7, reader.numDocs());
reader.close();
@@ -292,7 +292,7 @@ public class TestIndexWriterDelete exten
modifier.commit();
// Validate there are no docs left
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
assertEquals(2, reader.numDocs());
reader.close();
@@ -317,7 +317,7 @@ public class TestIndexWriterDelete exten
addDoc(modifier, ++id, value);
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
assertEquals(7, reader.numDocs());
reader.close();
@@ -329,7 +329,7 @@ public class TestIndexWriterDelete exten
modifier.close();
// Validate that the docs are still there
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
assertEquals(7, reader.numDocs());
reader.close();
@@ -372,7 +372,7 @@ public class TestIndexWriterDelete exten
modifier.close();
// Validate that the docs are still there
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
assertEquals(7, reader.numDocs());
reader.close();
@@ -567,7 +567,7 @@ public class TestIndexWriterDelete exten
// changed (transactional semantics):
IndexReader newReader = null;
try {
- newReader = IndexReader.open(dir, true);
+ newReader = IndexReader.open(dir);
}
catch (IOException e) {
e.printStackTrace();
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java Fri Dec 9 09:13:39 2011
@@ -254,7 +254,7 @@ public class TestIndexWriterExceptions e
}
// Confirm that when doc hits exception partway through tokenization, it's deleted:
- IndexReader r2 = IndexReader.open(dir, true);
+ IndexReader r2 = IndexReader.open(dir);
final int count = r2.docFreq(new Term("content4", "aaa"));
final int count2 = r2.docFreq(new Term("content4", "ddd"));
assertEquals(count, count2);
@@ -300,7 +300,7 @@ public class TestIndexWriterExceptions e
}
// Confirm that when doc hits exception partway through tokenization, it's deleted:
- IndexReader r2 = IndexReader.open(dir, true);
+ IndexReader r2 = IndexReader.open(dir);
final int count = r2.docFreq(new Term("content4", "aaa"));
final int count2 = r2.docFreq(new Term("content4", "ddd"));
assertEquals(count, count2);
@@ -494,7 +494,7 @@ public class TestIndexWriterExceptions e
writer.addDocument(doc);
writer.close();
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
final Term t = new Term("content", "aa");
assertEquals(3, reader.docFreq(t));
@@ -576,7 +576,7 @@ public class TestIndexWriterExceptions e
}
assertTrue(hitError);
writer.close();
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
assertEquals(198, reader.docFreq(new Term("content", "aa")));
reader.close();
dir.close();
@@ -631,7 +631,7 @@ public class TestIndexWriterExceptions e
if (VERBOSE) {
System.out.println("TEST: open reader");
}
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
if (i == 0) {
int expected = 5;
assertEquals(expected, reader.docFreq(new Term("contents", "here")));
@@ -660,7 +660,7 @@ public class TestIndexWriterExceptions e
writer.forceMerge(1);
writer.close();
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
int expected = 19+(1-i)*2;
assertEquals(expected, reader.docFreq(new Term("contents", "here")));
assertEquals(expected, reader.maxDoc());
@@ -746,7 +746,7 @@ public class TestIndexWriterExceptions e
writer.close();
}
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
int expected = (3+(1-i)*2)*NUM_THREAD*NUM_ITER;
assertEquals("i=" + i, expected, reader.docFreq(new Term("contents", "here")));
assertEquals(expected, reader.maxDoc());
@@ -774,7 +774,7 @@ public class TestIndexWriterExceptions e
writer.forceMerge(1);
writer.close();
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
expected += 17-NUM_THREAD*NUM_ITER;
assertEquals(expected, reader.docFreq(new Term("contents", "here")));
assertEquals(expected, reader.maxDoc());
@@ -845,7 +845,7 @@ public class TestIndexWriterExceptions e
failure.clearDoFail();
writer.close();
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
assertEquals(23, reader.numDocs());
reader.close();
dir.close();
@@ -1058,7 +1058,7 @@ public class TestIndexWriterExceptions e
IndexReader reader = null;
try {
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
} catch (IOException e) {
e.printStackTrace(System.out);
fail("segmentInfos failed to retry fallback to correct segments_N file");
@@ -1105,7 +1105,7 @@ public class TestIndexWriterExceptions e
IndexReader reader = null;
try {
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
fail("reader did not hit IOException on opening a corrupt index");
} catch (Exception e) {
}
@@ -1154,7 +1154,7 @@ public class TestIndexWriterExceptions e
IndexReader reader = null;
try {
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
fail("reader did not hit IOException on opening a corrupt index");
} catch (Exception e) {
}
@@ -1205,7 +1205,7 @@ public class TestIndexWriterExceptions e
IndexReader reader = null;
try {
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
} catch (Exception e) {
fail("reader failed to open on a crashed index");
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java Fri Dec 9 09:13:39 2011
@@ -186,7 +186,7 @@ public class TestIndexWriterForceMerge e
if (0 == pass) {
writer.close();
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
assertEquals(1, reader.getSequentialSubReaders().length);
reader.close();
} else {
@@ -196,7 +196,7 @@ public class TestIndexWriterForceMerge e
writer.addDocument(doc);
writer.close();
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
assertTrue(reader.getSequentialSubReaders().length > 1);
reader.close();
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterMergePolicy.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterMergePolicy.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterMergePolicy.java Fri Dec 9 09:13:39 2011
@@ -192,9 +192,14 @@ public class TestIndexWriterMergePolicy
}
writer.close();
- IndexReader reader = IndexReader.open(dir, false);
- reader.deleteDocuments(new Term("content", "aaa"));
- reader.close();
+ // delete some docs without merging
+ writer = new IndexWriter(
+ dir,
+ newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).
+ setMergePolicy(NoMergePolicy.NO_COMPOUND_FILES)
+ );
+ writer.deleteDocuments(new Term("content", "aaa"));
+ writer.close();
ldmp = new LogDocMergePolicy();
ldmp.setMergeFactor(5);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterMerging.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterMerging.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterMerging.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterMerging.java Fri Dec 9 09:13:39 2011
@@ -78,7 +78,7 @@ public class TestIndexWriterMerging exte
private boolean verifyIndex(Directory directory, int startAt) throws IOException
{
boolean fail = false;
- IndexReader reader = IndexReader.open(directory, true);
+ IndexReader reader = IndexReader.open(directory);
int max = reader.maxDoc();
for (int i = 0; i < max; i++)
@@ -126,8 +126,6 @@ public class TestIndexWriterMerging exte
IndexWriterConfig.DISABLE_AUTO_FLUSH));
Document document = new Document();
- document = new Document();
-
FieldType customType = new FieldType();
customType.setStored(true);
@@ -137,19 +135,31 @@ public class TestIndexWriterMerging exte
customType1.setStoreTermVectorPositions(true);
customType1.setStoreTermVectorOffsets(true);
+ Field idField = newField("id", "", StringField.TYPE_UNSTORED);
+ document.add(idField);
Field storedField = newField("stored", "stored", customType);
document.add(storedField);
Field termVectorField = newField("termVector", "termVector", customType1);
document.add(termVectorField);
- for(int i=0;i<10;i++)
+ for(int i=0;i<10;i++) {
+ idField.setValue("" + i);
writer.addDocument(document);
+ }
writer.close();
- IndexReader ir = IndexReader.open(dir, false);
+ IndexReader ir = IndexReader.open(dir);
assertEquals(10, ir.maxDoc());
assertEquals(10, ir.numDocs());
- ir.deleteDocument(0);
- ir.deleteDocument(7);
+ ir.close();
+
+ IndexWriterConfig dontMergeConfig = new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random))
+ .setMergePolicy(NoMergePolicy.COMPOUND_FILES);
+ writer = new IndexWriter(dir, dontMergeConfig);
+ writer.deleteDocuments(new Term("id", "0"));
+ writer.deleteDocuments(new Term("id", "7"));
+ writer.close();
+
+ ir = IndexReader.open(dir);
assertEquals(8, ir.numDocs());
ir.close();
@@ -159,7 +169,7 @@ public class TestIndexWriterMerging exte
writer.forceMergeDeletes();
assertEquals(8, writer.numDocs());
writer.close();
- ir = IndexReader.open(dir, true);
+ ir = IndexReader.open(dir);
assertEquals(8, ir.maxDoc());
assertEquals(8, ir.numDocs());
ir.close();
@@ -192,15 +202,28 @@ public class TestIndexWriterMerging exte
document.add(storedField);
Field termVectorField = newField("termVector", "termVector", customType1);
document.add(termVectorField);
- for(int i=0;i<98;i++)
+ Field idField = newField("id", "", StringField.TYPE_UNSTORED);
+ document.add(idField);
+ for(int i=0;i<98;i++) {
+ idField.setValue("" + i);
writer.addDocument(document);
+ }
writer.close();
- IndexReader ir = IndexReader.open(dir, false);
+ IndexReader ir = IndexReader.open(dir);
assertEquals(98, ir.maxDoc());
assertEquals(98, ir.numDocs());
- for(int i=0;i<98;i+=2)
- ir.deleteDocument(i);
+ ir.close();
+
+ IndexWriterConfig dontMergeConfig = new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random))
+ .setMergePolicy(NoMergePolicy.COMPOUND_FILES);
+ writer = new IndexWriter(dir, dontMergeConfig);
+ for(int i=0;i<98;i+=2) {
+ writer.deleteDocuments(new Term("id", "" + i));
+ }
+ writer.close();
+
+ ir = IndexReader.open(dir);
assertEquals(49, ir.numDocs());
ir.close();
@@ -212,7 +235,7 @@ public class TestIndexWriterMerging exte
assertEquals(49, writer.numDocs());
writer.forceMergeDeletes();
writer.close();
- ir = IndexReader.open(dir, true);
+ ir = IndexReader.open(dir);
assertEquals(49, ir.maxDoc());
assertEquals(49, ir.numDocs());
ir.close();
@@ -245,15 +268,27 @@ public class TestIndexWriterMerging exte
document.add(storedField);
Field termVectorField = newField("termVector", "termVector", customType1);
document.add(termVectorField);
- for(int i=0;i<98;i++)
+ Field idField = newField("id", "", StringField.TYPE_UNSTORED);
+ document.add(idField);
+ for(int i=0;i<98;i++) {
+ idField.setValue("" + i);
writer.addDocument(document);
+ }
writer.close();
- IndexReader ir = IndexReader.open(dir, false);
+ IndexReader ir = IndexReader.open(dir);
assertEquals(98, ir.maxDoc());
assertEquals(98, ir.numDocs());
- for(int i=0;i<98;i+=2)
- ir.deleteDocument(i);
+ ir.close();
+
+ IndexWriterConfig dontMergeConfig = new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random))
+ .setMergePolicy(NoMergePolicy.COMPOUND_FILES);
+ writer = new IndexWriter(dir, dontMergeConfig);
+ for(int i=0;i<98;i+=2) {
+ writer.deleteDocuments(new Term("id", "" + i));
+ }
+ writer.close();
+ ir = IndexReader.open(dir);
assertEquals(49, ir.numDocs());
ir.close();
@@ -264,7 +299,7 @@ public class TestIndexWriterMerging exte
);
writer.forceMergeDeletes(false);
writer.close();
- ir = IndexReader.open(dir, true);
+ ir = IndexReader.open(dir);
assertEquals(49, ir.maxDoc());
assertEquals(49, ir.numDocs());
ir.close();
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java Fri Dec 9 09:13:39 2011
@@ -113,7 +113,7 @@ public class TestIndexWriterOnDiskFull e
assertNoUnreferencedFiles(dir, "after disk full during addDocument");
// Make sure reader can open the index:
- IndexReader.open(dir, true).close();
+ IndexReader.open(dir).close();
}
dir.close();
@@ -189,7 +189,7 @@ public class TestIndexWriterOnDiskFull e
// Make sure starting index seems to be working properly:
Term searchTerm = new Term("content", "aaa");
- IndexReader reader = IndexReader.open(startDir, true);
+ IndexReader reader = IndexReader.open(startDir);
assertEquals("first docFreq", 57, reader.docFreq(searchTerm));
IndexSearcher searcher = newSearcher(reader);
@@ -306,7 +306,7 @@ public class TestIndexWriterOnDiskFull e
} else if (1 == method) {
IndexReader readers[] = new IndexReader[dirs.length];
for(int i=0;i<dirs.length;i++) {
- readers[i] = IndexReader.open(dirs[i], true);
+ readers[i] = IndexReader.open(dirs[i]);
}
try {
writer.addIndexes(readers);
@@ -355,7 +355,7 @@ public class TestIndexWriterOnDiskFull e
// failed, we see either all docs or no docs added
// (transactional semantics):
try {
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
} catch (IOException e) {
e.printStackTrace(System.out);
fail(testName + ": exception when creating IndexReader: " + e);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java Fri Dec 9 09:13:39 2011
@@ -159,7 +159,7 @@ public class TestIndexWriterReader exten
writer.close();
assertTrue(r2.isCurrent());
- IndexReader r3 = IndexReader.open(dir1, true);
+ IndexReader r3 = IndexReader.open(dir1);
assertTrue(r3.isCurrent());
assertTrue(r2.isCurrent());
assertEquals(0, count(new Term("id", id10), r3));
@@ -384,7 +384,7 @@ public class TestIndexWriterReader exten
_TestUtil.checkIndex(mainDir);
- IndexReader reader = IndexReader.open(mainDir, true);
+ IndexReader reader = IndexReader.open(mainDir);
assertEquals(addDirThreads.count.intValue(), reader.numDocs());
//assertEquals(100 + numDirs * (3 * numIter / 4) * addDirThreads.numThreads
// * addDirThreads.NUM_INIT_DOCS, reader.numDocs());
@@ -420,7 +420,7 @@ public class TestIndexWriterReader exten
readers = new IndexReader[numDirs];
for (int i = 0; i < numDirs; i++)
- readers[i] = IndexReader.open(addDir, false);
+ readers[i] = IndexReader.open(addDir);
}
void joinThreads() {
@@ -892,7 +892,7 @@ public class TestIndexWriterReader exten
w.forceMergeDeletes();
w.close();
r.close();
- r = IndexReader.open(dir, true);
+ r = IndexReader.open(dir);
assertEquals(1, r.numDocs());
assertFalse(r.hasDeletions());
r.close();
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterUnicode.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterUnicode.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterUnicode.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterUnicode.java Fri Dec 9 09:13:39 2011
@@ -260,7 +260,7 @@ public class TestIndexWriterUnicode exte
w.addDocument(doc);
w.close();
- IndexReader ir = IndexReader.open(dir, true);
+ IndexReader ir = IndexReader.open(dir);
Document doc2 = ir.document(0);
for(int i=0;i<count;i++) {
assertEquals("field " + i + " was not indexed correctly", 1, ir.docFreq(new Term("f"+i, utf8Data[2*i+1])));
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java?rev=1212292&r1=1212291&r2=1212292&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java Fri Dec 9 09:13:39 2011
@@ -209,7 +209,7 @@ public class TestIndexWriterWithThreads
}
// Quick test to make sure index is not corrupt:
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
DocsEnum tdocs = _TestUtil.docs(random, reader,
"field",
new BytesRef("aaa"),
@@ -276,7 +276,7 @@ public class TestIndexWriterWithThreads
}
if (success) {
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
final Bits delDocs = MultiFields.getLiveDocs(reader);
for(int j=0;j<reader.maxDoc();j++) {
if (delDocs == null || !delDocs.get(j)) {
@@ -447,7 +447,7 @@ public class TestIndexWriterWithThreads
assertFalse("Failed due to: " + thread1.failure, thread1.failed);
assertFalse("Failed due to: " + thread2.failure, thread2.failed);
// now verify that we have two documents in the index
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = IndexReader.open(dir);
assertEquals("IndexReader should have one document per thread running", 2,
reader.numDocs());