Index: src/test/org/apache/lucene/index/TestIndexWriterExceptions.java =================================================================== --- src/test/org/apache/lucene/index/TestIndexWriterExceptions.java (revision 1028760) +++ src/test/org/apache/lucene/index/TestIndexWriterExceptions.java (working copy) @@ -28,11 +28,21 @@ import org.apache.lucene.analysis.WhitespaceAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; +import org.apache.lucene.document.Field.TermVector; public class TestIndexWriterExceptions extends LuceneTestCase { - + Random random; final private static boolean DEBUG = false; - + + static final TermVector tvSettings[] = { + TermVector.NO, TermVector.YES, TermVector.WITH_OFFSETS, + TermVector.WITH_POSITIONS, TermVector.WITH_POSITIONS_OFFSETS + }; + + private TermVector randomTVSetting(Random random) { + return tvSettings[random.nextInt(tvSettings.length)]; + } + private class IndexerThread extends Thread { IndexWriter writer; @@ -50,17 +60,17 @@ final Document doc = new Document(); - doc.add(new Field("content1", "aaa bbb ccc ddd", Field.Store.YES, Field.Index.ANALYZED)); - doc.add(new Field("content6", "aaa bbb ccc ddd", Field.Store.NO, Field.Index.ANALYZED, Field.TermVector.WITH_POSITIONS_OFFSETS)); - doc.add(new Field("content2", "aaa bbb ccc ddd", Field.Store.YES, Field.Index.NOT_ANALYZED)); + doc.add(new Field("content1", "aaa bbb ccc ddd", Field.Store.YES, Field.Index.ANALYZED, randomTVSetting(random))); + doc.add(new Field("content6", "aaa bbb ccc ddd", Field.Store.NO, Field.Index.ANALYZED, randomTVSetting(random))); + doc.add(new Field("content2", "aaa bbb ccc ddd", Field.Store.YES, Field.Index.NOT_ANALYZED, randomTVSetting(random))); doc.add(new Field("content3", "aaa bbb ccc ddd", Field.Store.YES, Field.Index.NO)); - doc.add(new Field("content4", "aaa bbb ccc ddd", Field.Store.NO, Field.Index.ANALYZED)); - doc.add(new Field("content5", "aaa bbb ccc ddd", Field.Store.NO, Field.Index.NOT_ANALYZED)); + doc.add(new Field("content4", "aaa bbb ccc ddd", Field.Store.NO, Field.Index.ANALYZED, randomTVSetting(random))); + doc.add(new Field("content5", "aaa bbb ccc ddd", Field.Store.NO, Field.Index.NOT_ANALYZED, randomTVSetting(random))); - doc.add(new Field("content7", "aaa bbb ccc ddd", Field.Store.NO, Field.Index.NOT_ANALYZED, Field.TermVector.WITH_POSITIONS_OFFSETS)); + doc.add(new Field("content7", "aaa bbb ccc ddd", Field.Store.NO, Field.Index.NOT_ANALYZED, randomTVSetting(random))); - final Field idField = new Field("id", "", Field.Store.YES, Field.Index.NOT_ANALYZED); + final Field idField = new Field("id", "", Field.Store.YES, Field.Index.NOT_ANALYZED, randomTVSetting(random)); doc.add(idField); final long stopTime = System.currentTimeMillis() + 3000; @@ -134,6 +144,7 @@ public void testRandomExceptions() throws Throwable { MockRAMDirectory dir = new MockRAMDirectory(); + random = newRandom(); MockIndexWriter writer = new MockIndexWriter(dir, new WhitespaceAnalyzer(), true, IndexWriter.MaxFieldLength.LIMITED); ((ConcurrentMergeScheduler) writer.getMergeScheduler()).setSuppressExceptions(); //writer.setMaxBufferedDocs(10); @@ -170,7 +181,8 @@ } public void testRandomExceptionsThreads() throws Throwable { - + // nocommit: seed + random = newRandom(-4900259819059100336L); MockRAMDirectory dir = new MockRAMDirectory(); MockIndexWriter writer = new MockIndexWriter(dir, new WhitespaceAnalyzer(), true, IndexWriter.MaxFieldLength.LIMITED); ((ConcurrentMergeScheduler) writer.getMergeScheduler()).setSuppressExceptions();