You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2011/11/21 00:45:35 UTC

svn commit: r1204297 [6/10] - in /lucene/dev/branches/solrcloud: ./ dev-tools/eclipse/ dev-tools/idea/lucene/contrib/ dev-tools/idea/lucene/contrib/instantiated/ dev-tools/maven/lucene/contrib/ dev-tools/maven/lucene/contrib/instantiated/ lucene/ lucen...

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestCodecs.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestCodecs.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestCodecs.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestCodecs.java Sun Nov 20 23:45:25 2011
@@ -249,7 +249,7 @@ public class TestCodecs extends LuceneTe
       terms[i] = new TermData(text, docs, null);
     }
 
-    final FieldInfos fieldInfos = new FieldInfos();
+    final FieldInfos fieldInfos = new FieldInfos(new FieldInfos.FieldNumberBiMap());
 
     final FieldData field = new FieldData("field", fieldInfos, terms, true, false);
     final FieldData[] fields = new FieldData[] {field};
@@ -264,7 +264,10 @@ public class TestCodecs extends LuceneTe
 
     final FieldsEnum fieldsEnum = reader.iterator();
     assertNotNull(fieldsEnum.next());
-    final TermsEnum termsEnum = fieldsEnum.terms();
+    final Terms terms2 = fieldsEnum.terms();
+    assertNotNull(terms2);
+
+    final TermsEnum termsEnum = terms2.iterator(null);
 
     DocsEnum docsEnum = null;
     for(int i=0;i<NUM_TERMS;i++) {
@@ -293,7 +296,7 @@ public class TestCodecs extends LuceneTe
   }
 
   public void testRandomPostings() throws Throwable {
-    final FieldInfos fieldInfos = new FieldInfos();
+    final FieldInfos fieldInfos = new FieldInfos(new FieldInfos.FieldNumberBiMap());
 
     final FieldData[] fields = new FieldData[NUM_FIELDS];
     for(int i=0;i<NUM_FIELDS;i++) {
@@ -452,7 +455,7 @@ public class TestCodecs extends LuceneTe
 
       for(int iter=0;iter<NUM_TEST_ITER;iter++) {
         final FieldData field = fields[TestCodecs.random.nextInt(fields.length)];
-        final TermsEnum termsEnum = termsDict.terms(field.fieldInfo.name).iterator();
+        final TermsEnum termsEnum = termsDict.terms(field.fieldInfo.name).iterator(null);
         if (si.getCodec() instanceof Lucene3xCodec) {
           // code below expects unicode sort order
           continue;

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestConsistentFieldNumbers.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestConsistentFieldNumbers.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestConsistentFieldNumbers.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestConsistentFieldNumbers.java Sun Nov 20 23:45:25 2011
@@ -245,7 +245,7 @@ public class TestConsistentFieldNumbers 
         writer.deleteDocuments(new Term("f1", "d1"));
         // nuke the first segment entirely so that the segment with gaps is
         // loaded first!
-        writer.expungeDeletes();
+        writer.forceMergeDeletes();
         writer.close();
       }
 

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDeletionPolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDeletionPolicy.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDeletionPolicy.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDeletionPolicy.java Sun Nov 20 23:45:25 2011
@@ -683,7 +683,8 @@ public class TestDeletionPolicy extends 
       assertEquals(2*(N+1)+1, policy.numOnInit);
       assertEquals(2*(N+2) - (wasFullyMerged ? 1:0), policy.numOnCommit);
 
-      IndexSearcher searcher = new IndexSearcher(dir, false);
+      IndexReader rwReader = IndexReader.open(dir, false);
+      IndexSearcher searcher = new IndexSearcher(rwReader);
       ScoreDoc[] hits = searcher.search(query, null, 1000).scoreDocs;
       assertEquals(176, hits.length);
 
@@ -694,6 +695,7 @@ public class TestDeletionPolicy extends 
       dir.deleteFile(IndexFileNames.SEGMENTS_GEN);
       int expectedCount = 176;
       searcher.close();
+      rwReader.close();
       for(int i=0;i<N+1;i++) {
         if (VERBOSE) {
           System.out.println("TEST: i=" + i);
@@ -801,7 +803,8 @@ public class TestDeletionPolicy extends 
       assertEquals(3*(N+1), policy.numOnInit);
       assertEquals(3*(N+1)+1, policy.numOnCommit);
 
-      IndexSearcher searcher = new IndexSearcher(dir, false);
+      IndexReader rwReader = IndexReader.open(dir, false);
+      IndexSearcher searcher = new IndexSearcher(rwReader);
       ScoreDoc[] hits = searcher.search(query, null, 1000).scoreDocs;
       assertEquals(0, hits.length);
 
@@ -811,6 +814,9 @@ public class TestDeletionPolicy extends 
 
       dir.deleteFile(IndexFileNames.SEGMENTS_GEN);
       int expectedCount = 0;
+      
+      searcher.close();
+      rwReader.close();
 
       for(int i=0;i<N+1;i++) {
         try {

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDirectoryReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDirectoryReader.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDirectoryReader.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDirectoryReader.java Sun Nov 20 23:45:25 2011
@@ -85,8 +85,8 @@ public class TestDirectoryReader extends
     Document newDoc2 = reader.document(1);
     assertTrue(newDoc2 != null);
     assertTrue(DocHelper.numFields(newDoc2) == DocHelper.numFields(doc2) - DocHelper.unstored.size());
-    TermFreqVector vector = reader.getTermFreqVector(0, DocHelper.TEXT_FIELD_2_KEY);
-    assertTrue(vector != null);
+    Terms vector = reader.getTermVectors(0).terms(DocHelper.TEXT_FIELD_2_KEY);
+    assertNotNull(vector);
     TestSegmentReader.checkNorms(reader);
     reader.close();
   }
@@ -165,14 +165,14 @@ public class TestDirectoryReader extends
     MultiReader mr3 = new MultiReader(readers2);
 
     // test mixing up TermDocs and TermEnums from different readers.
-    TermsEnum te2 = MultiFields.getTerms(mr2, "body").iterator();
+    TermsEnum te2 = MultiFields.getTerms(mr2, "body").iterator(null);
     te2.seekCeil(new BytesRef("wow"));
     DocsEnum td = MultiFields.getTermDocsEnum(mr2,
                                               MultiFields.getLiveDocs(mr2),
                                               "body",
                                               te2.term());
 
-    TermsEnum te3 = MultiFields.getTerms(mr3, "body").iterator();
+    TermsEnum te3 = MultiFields.getTerms(mr3, "body").iterator(null);
     te3.seekCeil(new BytesRef("wow"));
     td = te3.docs(MultiFields.getLiveDocs(mr3),
                   td);

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDoc.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDoc.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDoc.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDoc.java Sun Nov 20 23:45:25 2011
@@ -130,13 +130,13 @@ public class TestDoc extends LuceneTestC
       printSegment(out, si2);
       writer.close();
 
-      SegmentInfo siMerge = merge(si1, si2, "merge", false);
+      SegmentInfo siMerge = merge(directory, si1, si2, "merge", false);
       printSegment(out, siMerge);
 
-      SegmentInfo siMerge2 = merge(si1, si2, "merge2", false);
+      SegmentInfo siMerge2 = merge(directory, si1, si2, "merge2", false);
       printSegment(out, siMerge2);
 
-      SegmentInfo siMerge3 = merge(siMerge, siMerge2, "merge3", false);
+      SegmentInfo siMerge3 = merge(directory, siMerge, siMerge2, "merge3", false);
       printSegment(out, siMerge3);
       
       directory.close();
@@ -164,13 +164,13 @@ public class TestDoc extends LuceneTestC
       printSegment(out, si2);
       writer.close();
 
-      siMerge = merge(si1, si2, "merge", true);
+      siMerge = merge(directory, si1, si2, "merge", true);
       printSegment(out, siMerge);
 
-      siMerge2 = merge(si1, si2, "merge2", true);
+      siMerge2 = merge(directory, si1, si2, "merge2", true);
       printSegment(out, siMerge2);
 
-      siMerge3 = merge(siMerge, siMerge2, "merge3", true);
+      siMerge3 = merge(directory, siMerge, siMerge2, "merge3", true);
       printSegment(out, siMerge3);
       
       directory.close();
@@ -193,14 +193,14 @@ public class TestDoc extends LuceneTestC
    }
 
 
-   private SegmentInfo merge(SegmentInfo si1, SegmentInfo si2, String merged, boolean useCompoundFile)
+   private SegmentInfo merge(Directory dir, SegmentInfo si1, SegmentInfo si2, String merged, boolean useCompoundFile)
    throws Exception {
       IOContext context = newIOContext(random);
       SegmentReader r1 = SegmentReader.get(true, si1, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, context);
       SegmentReader r2 = SegmentReader.get(true, si2, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, context);
 
       final Codec codec = Codec.getDefault();
-      SegmentMerger merger = new SegmentMerger(InfoStream.getDefault(), si1.dir, IndexWriterConfig.DEFAULT_TERM_INDEX_INTERVAL, merged, MergeState.CheckAbort.NONE, null, new FieldInfos(), codec, context);
+      SegmentMerger merger = new SegmentMerger(InfoStream.getDefault(), si1.dir, IndexWriterConfig.DEFAULT_TERM_INDEX_INTERVAL, merged, MergeState.CheckAbort.NONE, null, new FieldInfos(new FieldInfos.FieldNumberBiMap()), codec, context);
 
       merger.add(r1);
       merger.add(r2);
@@ -212,7 +212,7 @@ public class TestDoc extends LuceneTestC
                                                false, codec, fieldInfos);
       
       if (useCompoundFile) {
-        Collection<String> filesToDelete = merger.createCompoundFile(merged + ".cfs", info, newIOContext(random));
+        Collection<String> filesToDelete = IndexWriter.createCompoundFile(dir, merged + ".cfs", MergeState.CheckAbort.NONE, info, newIOContext(random));
         info.setUseCompoundFile(true);
         for (final String fileToDelete : filesToDelete) 
           si1.dir.deleteFile(fileToDelete);
@@ -232,7 +232,9 @@ public class TestDoc extends LuceneTestC
       FieldsEnum fis = reader.fields().iterator();
       String field = fis.next();
       while(field != null)  {
-        TermsEnum tis = fis.terms();
+        Terms terms = fis.terms();
+        assertNotNull(terms);
+        TermsEnum tis = terms.iterator(null);
         while(tis.next() != null) {
 
           out.print("  term=" + field + ":" + tis.term());

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDocCount.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDocCount.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDocCount.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDocCount.java Sun Nov 20 23:45:25 2011
@@ -70,7 +70,7 @@ public class TestDocCount extends Lucene
       Terms terms = fields.terms(field);
       int docCount = terms.getDocCount();
       FixedBitSet visited = new FixedBitSet(ir.maxDoc());
-      TermsEnum te = terms.iterator();
+      TermsEnum te = terms.iterator(null);
       while (te.next() != null) {
         DocsEnum de = te.docs(null, null);
         while (de.nextDoc() != DocIdSetIterator.NO_MORE_DOCS) {

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDocTermOrds.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDocTermOrds.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDocTermOrds.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDocTermOrds.java Sun Nov 20 23:45:25 2011
@@ -314,7 +314,7 @@ public class TestDocTermOrds extends Luc
     if (VERBOSE) {
       System.out.println("TEST: verify prefix=" + (prefixRef==null ? "null" : prefixRef.utf8ToString()));
       System.out.println("TEST: all TERMS:");
-      TermsEnum allTE = MultiFields.getTerms(r, "field").iterator();
+      TermsEnum allTE = MultiFields.getTerms(r, "field").iterator(null);
       int ord = 0;
       while(allTE.next() != null) {
         System.out.println("  ord=" + (ord++) + " term=" + allTE.term().utf8ToString());
@@ -329,7 +329,7 @@ public class TestDocTermOrds extends Luc
       } else {
         Terms terms = MultiFields.getTerms(r, "field");
         if (terms != null) {
-          TermsEnum termsEnum = terms.iterator();
+          TermsEnum termsEnum = terms.iterator(null);
           TermsEnum.SeekStatus result = termsEnum.seekCeil(prefixRef, false);
           if (result != TermsEnum.SeekStatus.END) {
             assertFalse("term=" + termsEnum.term().utf8ToString() + " matches prefix=" + prefixRef.utf8ToString(), termsEnum.term().startsWith(prefixRef));

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDocsAndPositions.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDocsAndPositions.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDocsAndPositions.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDocsAndPositions.java Sun Nov 20 23:45:25 2011
@@ -22,10 +22,13 @@ import java.util.Arrays;
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexReader.AtomicReaderContext;
 import org.apache.lucene.index.IndexReader.ReaderContext;
+import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.BytesRef;
@@ -331,5 +334,54 @@ public class TestDocsAndPositions extend
     reader.close();
     dir.close();
   }
-
+  
+  public void testDocsEnumStart() throws Exception {
+    Directory dir = newDirectory();
+    RandomIndexWriter writer = new RandomIndexWriter(random, dir);
+    Document doc = new Document();
+    doc.add(newField("foo", "bar", StringField.TYPE_UNSTORED));
+    writer.addDocument(doc);
+    IndexReader reader = writer.getReader();
+    IndexReader r = getOnlySegmentReader(reader);
+    DocsEnum disi = r.termDocsEnum(null, "foo", new BytesRef("bar"));
+    int docid = disi.docID();
+    assertTrue(docid == -1 || docid == DocIdSetIterator.NO_MORE_DOCS);
+    assertTrue(disi.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
+    
+    // now reuse and check again
+    TermsEnum te = r.terms("foo").iterator(null);
+    assertTrue(te.seekExact(new BytesRef("bar"), true));
+    disi = te.docs(null, disi);
+    docid = disi.docID();
+    assertTrue(docid == -1 || docid == DocIdSetIterator.NO_MORE_DOCS);
+    assertTrue(disi.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
+    writer.close();
+    r.close();
+    dir.close();
+  }
+  
+  public void testDocsAndPositionsEnumStart() throws Exception {
+    Directory dir = newDirectory();
+    RandomIndexWriter writer = new RandomIndexWriter(random, dir);
+    Document doc = new Document();
+    doc.add(newField("foo", "bar", TextField.TYPE_UNSTORED));
+    writer.addDocument(doc);
+    IndexReader reader = writer.getReader();
+    IndexReader r = getOnlySegmentReader(reader);
+    DocsAndPositionsEnum disi = r.termPositionsEnum(null, "foo", new BytesRef("bar"));
+    int docid = disi.docID();
+    assertTrue(docid == -1 || docid == DocIdSetIterator.NO_MORE_DOCS);
+    assertTrue(disi.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
+    
+    // now reuse and check again
+    TermsEnum te = r.terms("foo").iterator(null);
+    assertTrue(te.seekExact(new BytesRef("bar"), true));
+    disi = te.docsAndPositions(null, disi);
+    docid = disi.docID();
+    assertTrue(docid == -1 || docid == DocIdSetIterator.NO_MORE_DOCS);
+    assertTrue(disi.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
+    writer.close();
+    r.close();
+    dir.close();
+  }
 }

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDocumentWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDocumentWriter.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDocumentWriter.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestDocumentWriter.java Sun Nov 20 23:45:25 2011
@@ -199,7 +199,7 @@ public class TestDocumentWriter extends 
     writer.close();
     SegmentReader reader = SegmentReader.get(true, info, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, newIOContext(random));
 
-    DocsAndPositionsEnum termPositions = reader.fields().terms("f1").docsAndPositions(reader.getLiveDocs(), new BytesRef("a"), null);
+    DocsAndPositionsEnum termPositions = MultiFields.getTermPositionsEnum(reader, reader.getLiveDocs(), "f1", new BytesRef("a"));
     assertTrue(termPositions.nextDoc() != termPositions.NO_MORE_DOCS);
     int freq = termPositions.freq();
     assertEquals(3, freq);
@@ -243,18 +243,18 @@ public class TestDocumentWriter extends 
     writer.close();
     SegmentReader reader = SegmentReader.get(true, info, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, newIOContext(random));
 
-    DocsAndPositionsEnum termPositions = reader.fields().terms("preanalyzed").docsAndPositions(reader.getLiveDocs(), new BytesRef("term1"), null);
+    DocsAndPositionsEnum termPositions = reader.termPositionsEnum(reader.getLiveDocs(), "preanalyzed", new BytesRef("term1"));
     assertTrue(termPositions.nextDoc() != termPositions.NO_MORE_DOCS);
     assertEquals(1, termPositions.freq());
     assertEquals(0, termPositions.nextPosition());
 
-    termPositions = reader.fields().terms("preanalyzed").docsAndPositions(reader.getLiveDocs(), new BytesRef("term2"), null);
+    termPositions = reader.termPositionsEnum(reader.getLiveDocs(), "preanalyzed", new BytesRef("term2"));
     assertTrue(termPositions.nextDoc() != termPositions.NO_MORE_DOCS);
     assertEquals(2, termPositions.freq());
     assertEquals(1, termPositions.nextPosition());
     assertEquals(3, termPositions.nextPosition());
     
-    termPositions = reader.fields().terms("preanalyzed").docsAndPositions(reader.getLiveDocs(), new BytesRef("term3"), null);
+    termPositions = reader.termPositionsEnum(reader.getLiveDocs(), "preanalyzed", new BytesRef("term3"));
     assertTrue(termPositions.nextDoc() != termPositions.NO_MORE_DOCS);
     assertEquals(1, termPositions.freq());
     assertEquals(2, termPositions.nextPosition());
@@ -287,13 +287,13 @@ public class TestDocumentWriter extends 
 
     IndexReader reader = IndexReader.open(dir, true);
     // f1
-    TermFreqVector tfv1 = reader.getTermFreqVector(0, "f1");
+    Terms tfv1 = reader.getTermVectors(0).terms("f1");
     assertNotNull(tfv1);
-    assertEquals("the 'with_tv' setting should rule!",2,tfv1.getTerms().length);
+    assertEquals("the 'with_tv' setting should rule!",2,tfv1.getUniqueTermCount());
     // f2
-    TermFreqVector tfv2 = reader.getTermFreqVector(0, "f2");
+    Terms tfv2 = reader.getTermVectors(0).terms("f2");
     assertNotNull(tfv2);
-    assertEquals("the 'with_tv' setting should rule!",2,tfv2.getTerms().length);
+    assertEquals("the 'with_tv' setting should rule!",2,tfv2.getUniqueTermCount());
     reader.close();
   }
 

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestFieldInfos.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestFieldInfos.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestFieldInfos.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestFieldInfos.java Sun Nov 20 23:45:25 2011
@@ -21,8 +21,13 @@ import org.apache.lucene.util.LuceneTest
 import org.apache.lucene.util._TestUtil;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.index.FieldInfo.IndexOptions;
+import org.apache.lucene.index.codecs.Codec;
+import org.apache.lucene.index.codecs.FieldInfosReader;
+import org.apache.lucene.index.codecs.FieldInfosWriter;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.IOContext;
 import org.apache.lucene.store.IndexOutput;
+import org.junit.Ignore;
 
 import java.io.IOException;
 import java.util.Arrays;
@@ -42,7 +47,7 @@ public class TestFieldInfos extends Luce
   public FieldInfos createAndWriteFieldInfos(Directory dir, String filename) throws IOException{
   //Positive test of FieldInfos
     assertTrue(testDoc != null);
-    FieldInfos fieldInfos = new FieldInfos();
+    FieldInfos fieldInfos = new FieldInfos(new FieldInfos.FieldNumberBiMap());
     _TestUtil.add(testDoc, fieldInfos);
     //Since the complement is stored as well in the fields map
     assertTrue(fieldInfos.size() == DocHelper.all.size()); //this is all b/c we are using the no-arg constructor
@@ -52,16 +57,23 @@ public class TestFieldInfos extends Luce
     assertTrue(output != null);
     //Use a RAMOutputStream
   
-    fieldInfos.write(output);
+    FieldInfosWriter writer = Codec.getDefault().fieldInfosFormat().getFieldInfosWriter();
+    writer.write(dir, filename, fieldInfos, IOContext.DEFAULT);
     output.close();
     return fieldInfos;
   }
+  
+  public FieldInfos readFieldInfos(Directory dir, String filename) throws IOException {
+    FieldInfosReader reader = Codec.getDefault().fieldInfosFormat().getFieldInfosReader();
+    return reader.read(dir, filename, IOContext.DEFAULT);
+  }
+  
   public void test() throws IOException {
     String name = "testFile";
     Directory dir = newDirectory();
     FieldInfos fieldInfos = createAndWriteFieldInfos(dir, name);
-    assertTrue(dir.fileLength(name) > 0);
-    FieldInfos readIn = new FieldInfos(dir, name);
+
+    FieldInfos readIn = readFieldInfos(dir, name);
     assertTrue(fieldInfos.size() == readIn.size());
     FieldInfo info = readIn.fieldInfo("textField1");
     assertTrue(info != null);
@@ -90,7 +102,7 @@ public class TestFieldInfos extends Luce
     String name = "testFile";
     Directory dir = newDirectory();
     FieldInfos fieldInfos = createAndWriteFieldInfos(dir, name);
-    FieldInfos readOnly = new FieldInfos(dir, name);
+    FieldInfos readOnly = readFieldInfos(dir, name);
     assertReadOnly(readOnly, fieldInfos);
     FieldInfos readOnlyClone = (FieldInfos)readOnly.clone();
     assertNotSame(readOnly, readOnlyClone);

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestFieldsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestFieldsReader.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestFieldsReader.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestFieldsReader.java Sun Nov 20 23:45:25 2011
@@ -48,7 +48,7 @@ public class TestFieldsReader extends Lu
 
   @BeforeClass
   public static void beforeClass() throws Exception {
-    fieldInfos = new FieldInfos();
+    fieldInfos = new FieldInfos(new FieldInfos.FieldNumberBiMap());
     DocHelper.setupDoc(testDoc);
     _TestUtil.add(testDoc, fieldInfos);
     dir = newDirectory();

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestFilterIndexReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestFilterIndexReader.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestFilterIndexReader.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestFilterIndexReader.java Sun Nov 20 23:45:25 2011
@@ -54,8 +54,8 @@ public class TestFilterIndexReader exten
       }
 
       @Override
-      public TermsEnum iterator() throws IOException {
-        return new TestTermsEnum(super.iterator());
+      public TermsEnum iterator(TermsEnum reuse) throws IOException {
+        return new TestTermsEnum(super.iterator(reuse));
       }
     }
 
@@ -65,8 +65,8 @@ public class TestFilterIndexReader exten
       }
 
       @Override
-      public TermsEnum terms() throws IOException {
-        return new TestTermsEnum(super.terms());
+      public Terms terms() throws IOException {
+        return new TestTerms(super.terms());
       }
     }
 
@@ -150,7 +150,7 @@ public class TestFilterIndexReader exten
     reader.close();
     reader = IndexReader.open(target, true);
     
-    TermsEnum terms = MultiFields.getTerms(reader, "default").iterator();
+    TermsEnum terms = MultiFields.getTerms(reader, "default").iterator(null);
     while (terms.next() != null) {
       assertTrue(terms.term().utf8ToString().indexOf('e') != -1);
     }

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestFlex.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestFlex.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestFlex.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestFlex.java Sun Nov 20 23:45:25 2011
@@ -53,7 +53,7 @@ public class TestFlex extends LuceneTest
 
       IndexReader r = w.getReader();
       
-      TermsEnum terms = MultiFields.getTerms(r, "field3").iterator();
+      TermsEnum terms = MultiFields.getTerms(r, "field3").iterator(null);
       assertEquals(TermsEnum.SeekStatus.END, terms.seekCeil(new BytesRef("abc")));
       r.close();
     }
@@ -70,7 +70,7 @@ public class TestFlex extends LuceneTest
     doc.add(newField("f", "a b c", TextField.TYPE_UNSTORED));
     w.addDocument(doc);
     IndexReader r = w.getReader();
-    TermsEnum terms = r.getSequentialSubReaders()[0].fields().terms("f").iterator();
+    TermsEnum terms = r.getSequentialSubReaders()[0].fields().terms("f").iterator(null);
     assertTrue(terms.next() != null);
     try {
       assertEquals(0, terms.ord());

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexFileDeleter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexFileDeleter.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexFileDeleter.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexFileDeleter.java Sun Nov 20 23:45:25 2011
@@ -25,9 +25,12 @@ import org.apache.lucene.document.Docume
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.index.codecs.Codec;
+import org.apache.lucene.index.codecs.FieldInfosReader;
 import org.apache.lucene.search.similarities.DefaultSimilarity;
 import org.apache.lucene.store.CompoundFileDirectory;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.IOContext;
 import org.apache.lucene.store.IndexInput;
 import org.apache.lucene.store.IndexOutput;
 import org.apache.lucene.store.MockDirectoryWrapper;
@@ -91,7 +94,8 @@ public class TestIndexFileDeleter extend
     // "content", and then set our expected file names below
     // accordingly:
     CompoundFileDirectory cfsReader = new CompoundFileDirectory(dir, "_2.cfs", newIOContext(random), false);
-    FieldInfos fieldInfos = new FieldInfos(cfsReader, "_2.fnm");
+    FieldInfosReader infosReader = Codec.getDefault().fieldInfosFormat().getFieldInfosReader();
+    FieldInfos fieldInfos = infosReader.read(cfsReader, "2", IOContext.READONCE);
     int contentFieldIndex = -1;
     for (FieldInfo fi : fieldInfos) {
       if (fi.name.equals("content")) {

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexReader.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexReader.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexReader.java Sun Nov 20 23:45:25 2011
@@ -28,8 +28,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.HashMap;
 import java.util.Random;
-import java.util.Set;
-import java.util.SortedSet;
 import org.junit.Assume;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.BinaryField;
@@ -314,19 +312,6 @@ public class TestIndexReader extends Luc
         writer.addDocument(doc);
     }
     writer.close();
-    IndexReader reader = IndexReader.open(d, false);
-    FieldSortedTermVectorMapper mapper = new FieldSortedTermVectorMapper(new TermVectorEntryFreqSortedComparator());
-    reader.getTermFreqVector(0, mapper);
-    Map<String,SortedSet<TermVectorEntry>> map = mapper.getFieldToTerms();
-    assertTrue("map is null and it shouldn't be", map != null);
-    assertTrue("map Size: " + map.size() + " is not: " + 4, map.size() == 4);
-    Set<TermVectorEntry> set = map.get("termvector");
-    for (Iterator<TermVectorEntry> iterator = set.iterator(); iterator.hasNext();) {
-      TermVectorEntry entry =  iterator.next();
-      assertTrue("entry is null and it shouldn't be", entry != null);
-      if (VERBOSE) System.out.println("Entry: " + entry);
-    }
-    reader.close();
     d.close();
   }
 
@@ -914,8 +899,17 @@ public class TestIndexReader extends Luc
       Bits liveDocs = MultiFields.getLiveDocs(index1);
       while((field1=fenum1.next()) != null) {
         assertEquals("Different fields", field1, fenum2.next());
-        TermsEnum enum1 = fenum1.terms();
-        TermsEnum enum2 = fenum2.terms();
+        Terms terms1 = fenum1.terms();
+        if (terms1 == null) {
+          assertNull(fenum2.terms());
+          continue;
+        }
+        TermsEnum enum1 = terms1.iterator(null);
+
+        Terms terms2 = fenum2.terms();
+        assertNotNull(terms2);
+        TermsEnum enum2 = terms2.iterator(null);
+
         while(enum1.next() != null) {
           assertEquals("Different terms", enum1.term(), enum2.next());
           DocsAndPositionsEnum tp1 = enum1.docsAndPositions(liveDocs, null);
@@ -1346,13 +1340,12 @@ public class TestIndexReader extends Luc
     writer.addDocument(d);
     IndexReader r = writer.getReader();
     writer.close();
-    Terms terms = MultiFields.getTerms(r, "f");
     try {
       // Make sure codec impls totalTermFreq (eg PreFlex doesn't)
-      Assume.assumeTrue(terms.totalTermFreq(new BytesRef("b")) != -1);
-      assertEquals(1, terms.totalTermFreq(new BytesRef("b")));
-      assertEquals(2, terms.totalTermFreq(new BytesRef("a")));
-      assertEquals(1, terms.totalTermFreq(new BytesRef("b")));
+      Assume.assumeTrue(MultiFields.totalTermFreq(r, "f", new BytesRef("b")) != -1);
+      assertEquals(1, MultiFields.totalTermFreq(r, "f", new BytesRef("b")));
+      assertEquals(2, MultiFields.totalTermFreq(r, "f", new BytesRef("a")));
+      assertEquals(1, MultiFields.totalTermFreq(r, "f", new BytesRef("b")));
     } finally {
       r.close();
       dir.close();

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java Sun Nov 20 23:45:25 2011
@@ -25,10 +25,12 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Random;
+import java.util.Set;
 
 import org.apache.lucene.analysis.*;
 import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
@@ -41,6 +43,7 @@ import org.apache.lucene.document.String
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.codecs.Codec;
+import org.apache.lucene.index.codecs.DefaultTermVectorsReader;
 import org.apache.lucene.index.codecs.simpletext.SimpleTextCodec;
 import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.search.FieldCache;
@@ -452,10 +455,12 @@ public class TestIndexWriter extends Luc
       }
       writer.close();
 
-      IndexSearcher searcher = new IndexSearcher(dir, false);
+      IndexReader reader = IndexReader.open(dir, false);
+      IndexSearcher searcher = new IndexSearcher(reader);
       ScoreDoc[] hits = searcher.search(new TermQuery(new Term("field", "aaa")), null, 1000).scoreDocs;
       assertEquals(300, hits.length);
       searcher.close();
+      reader.close();
 
       dir.close();
     }
@@ -482,10 +487,12 @@ public class TestIndexWriter extends Luc
 
       Term searchTerm = new Term("field", "aaa");
 
-      IndexSearcher searcher = new IndexSearcher(dir, false);
+      IndexReader reader = IndexReader.open(dir, false);
+      IndexSearcher searcher = new IndexSearcher(reader);
       ScoreDoc[] hits = searcher.search(new TermQuery(searchTerm), null, 1000).scoreDocs;
       assertEquals(10, hits.length);
       searcher.close();
+      reader.close();
 
       writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random))
         .setOpenMode(OpenMode.CREATE).setMaxBufferedDocs(10));
@@ -503,12 +510,14 @@ public class TestIndexWriter extends Luc
         writer.addDocument(doc);
       }
       writer.close();
-      searcher = new IndexSearcher(dir, false);
+      reader = IndexReader.open(dir, false);
+      searcher = new IndexSearcher(reader);
       hits = searcher.search(new TermQuery(searchTerm), null, 1000).scoreDocs;
       assertEquals(27, hits.length);
       searcher.close();
+      reader.close();
 
-      IndexReader reader = IndexReader.open(dir, true);
+      reader = IndexReader.open(dir, true);
       reader.close();
 
       dir.close();
@@ -578,15 +587,16 @@ public class TestIndexWriter extends Luc
       }
       writer.close();
       Term searchTerm = new Term("content", "aaa");
-      IndexSearcher searcher = new IndexSearcher(dir, false);
+      IndexReader reader = IndexReader.open(dir, false);
+      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);
       searcher.close();
+      reader.close();
 
       writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random))
         .setOpenMode(OpenMode.CREATE));
       writer.close();
-      searcher.close();
       dir.close();
     }
 
@@ -878,7 +888,7 @@ public class TestIndexWriter extends Luc
     writer.close();
     IndexReader reader = IndexReader.open(dir, true);
     IndexReader subreader = getOnlySegmentReader(reader);
-    TermsEnum te = subreader.fields().terms("").iterator();
+    TermsEnum te = subreader.fields().terms("").iterator(null);
     assertEquals(new BytesRef("a"), te.next());
     assertEquals(new BytesRef("b"), te.next());
     assertEquals(new BytesRef("c"), te.next());
@@ -899,7 +909,7 @@ public class TestIndexWriter extends Luc
     writer.close();
     IndexReader reader = IndexReader.open(dir, true);
     IndexReader subreader = getOnlySegmentReader(reader);
-    TermsEnum te = subreader.fields().terms("").iterator();
+    TermsEnum te = subreader.fields().terms("").iterator(null);
     assertEquals(new BytesRef(""), te.next());
     assertEquals(new BytesRef("a"), te.next());
     assertEquals(new BytesRef("b"), te.next());
@@ -985,7 +995,8 @@ public class TestIndexWriter extends Luc
     w.addDocument(doc);
     w.commit();
 
-    IndexSearcher s = new IndexSearcher(dir, false);
+    IndexReader r = IndexReader.open(dir, false);
+    IndexSearcher s = new IndexSearcher(r);
     PhraseQuery pq = new PhraseQuery();
     pq.add(new Term("field", "a"));
     pq.add(new Term("field", "b"));
@@ -1008,6 +1019,7 @@ public class TestIndexWriter extends Luc
     w.close();
 
     s.close();
+    r.close();
     dir.close();
   }
 
@@ -1062,13 +1074,23 @@ public class TestIndexWriter extends Luc
     w.close();
 
     IndexReader r = IndexReader.open(dir, true);
-    TermPositionVector tpv = ((TermPositionVector) r.getTermFreqVector(0, "field"));
-    int[] poss = tpv.getTermPositions(0);
-    assertEquals(1, poss.length);
-    assertEquals(100, poss[0]);
-    poss = tpv.getTermPositions(1);
-    assertEquals(1, poss.length);
-    assertEquals(101, poss[0]);
+    Terms tpv = r.getTermVectors(0).terms("field");
+    TermsEnum termsEnum = tpv.iterator(null);
+    assertNotNull(termsEnum.next());
+    DocsAndPositionsEnum dpEnum = termsEnum.docsAndPositions(null, null);
+    assertNotNull(dpEnum);
+    assertTrue(dpEnum.nextDoc() != DocsEnum.NO_MORE_DOCS);
+    assertEquals(1, dpEnum.freq());
+    assertEquals(100, dpEnum.nextPosition());
+
+    assertNotNull(termsEnum.next());
+    dpEnum = termsEnum.docsAndPositions(null, dpEnum);
+    assertNotNull(dpEnum);
+    assertTrue(dpEnum.nextDoc() != DocsEnum.NO_MORE_DOCS);
+    assertEquals(1, dpEnum.freq());
+    assertEquals(101, dpEnum.nextPosition());
+    assertNull(termsEnum.next());
+
     r.close();
     dir.close();
   }
@@ -1393,7 +1415,7 @@ public class TestIndexWriter extends Luc
     w.addDocument(d);
 
     IndexReader r = w.getReader().getSequentialSubReaders()[0];
-    TermsEnum t = r.fields().terms("field").iterator();
+    TermsEnum t = r.fields().terms("field").iterator(null);
     int count = 0;
     while(t.next() != null) {
       final DocsEnum docs = t.docs(null, null);
@@ -1731,13 +1753,16 @@ public class TestIndexWriter extends Luc
     _TestUtil.checkIndex(dir);
 
     assertNoUnreferencedFiles(dir, "no tv files");
-    String[] files = dir.listAll();
-    for(String file : files) {
-      assertTrue(!file.endsWith(IndexFileNames.VECTORS_FIELDS_EXTENSION));
-      assertTrue(!file.endsWith(IndexFileNames.VECTORS_INDEX_EXTENSION));
-      assertTrue(!file.endsWith(IndexFileNames.VECTORS_DOCUMENTS_EXTENSION));
+    IndexReader r0 = IndexReader.open(dir);
+    for (IndexReader r : r0.getSequentialSubReaders()) {
+      SegmentInfo s = ((SegmentReader) r).getSegmentInfo();
+      assertFalse(s.getHasVectors());
+      Set<String> files = new HashSet<String>();
+      s.getCodec().termVectorsFormat().files(dir, s, files);
+      assertTrue(files.isEmpty());
     }
-
+    
+    r0.close();
     dir.close();
   }
 

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterCommit.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterCommit.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterCommit.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterCommit.java Sun Nov 20 23:45:25 2011
@@ -51,22 +51,26 @@ public class TestIndexWriterCommit exten
       writer.close();
 
       Term searchTerm = new Term("content", "aaa");
-      IndexSearcher searcher = new IndexSearcher(dir, false);
+      IndexReader reader = IndexReader.open(dir, false);
+      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();
 
-      IndexReader reader = IndexReader.open(dir, true);
+      reader = IndexReader.open(dir, true);
 
       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);
         }
-        searcher = new IndexSearcher(dir, false);
+        IndexReader r = IndexReader.open(dir, false);
+        searcher = new IndexSearcher(r);
         hits = searcher.search(new TermQuery(searchTerm), null, 1000).scoreDocs;
         assertEquals("reader incorrectly sees changes from writer", 14, hits.length);
         searcher.close();
+        r.close();
         assertTrue("reader should have still been current", reader.isCurrent());
       }
 
@@ -74,10 +78,12 @@ public class TestIndexWriterCommit exten
       writer.close();
       assertFalse("reader should not be current now", reader.isCurrent());
 
-      searcher = new IndexSearcher(dir, false);
+      IndexReader r = IndexReader.open(dir, false);
+      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);
       searcher.close();
+      r.close();
       reader.close();
       dir.close();
   }
@@ -99,10 +105,12 @@ public class TestIndexWriterCommit exten
     writer.close();
 
     Term searchTerm = new Term("content", "aaa");
-    IndexSearcher searcher = new IndexSearcher(dir, false);
+    IndexReader reader = IndexReader.open(dir, false);
+    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();
 
     writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random))
       .setOpenMode(OpenMode.APPEND).setMaxBufferedDocs(10));
@@ -112,20 +120,24 @@ public class TestIndexWriterCommit exten
     // Delete all docs:
     writer.deleteDocuments(searchTerm);
 
-    searcher = new IndexSearcher(dir, false);
+    reader = IndexReader.open(dir, false);
+    searcher = new IndexSearcher(reader);
     hits = searcher.search(new TermQuery(searchTerm), null, 1000).scoreDocs;
     assertEquals("reader incorrectly sees changes from writer", 14, hits.length);
     searcher.close();
+    reader.close();
 
     // Now, close the writer:
     writer.rollback();
 
     TestIndexWriter.assertNoUnreferencedFiles(dir, "unreferenced files remain after rollback()");
 
-    searcher = new IndexSearcher(dir, false);
+    reader = IndexReader.open(dir, false);
+    searcher = new IndexSearcher(reader);
     hits = searcher.search(new TermQuery(searchTerm), null, 1000).scoreDocs;
     assertEquals("saw changes after writer.abort", 14, hits.length);
     searcher.close();
+    reader.close();
 
     // Now make sure we can re-open the index, add docs,
     // and all is good:
@@ -140,17 +152,21 @@ public class TestIndexWriterCommit exten
       for(int j=0;j<17;j++) {
         TestIndexWriter.addDoc(writer);
       }
-      searcher = new IndexSearcher(dir, false);
+      IndexReader r = IndexReader.open(dir, false);
+      searcher = new IndexSearcher(r);
       hits = searcher.search(new TermQuery(searchTerm), null, 1000).scoreDocs;
       assertEquals("reader incorrectly sees changes from writer", 14, hits.length);
       searcher.close();
+      r.close();
     }
 
     writer.close();
-    searcher = new IndexSearcher(dir, false);
+    IndexReader r = IndexReader.open(dir, false);
+    searcher = new IndexSearcher(r);
     hits = searcher.search(new TermQuery(searchTerm), null, 1000).scoreDocs;
     assertEquals("didn't see changes after close", 218, hits.length);
     searcher.close();
+    r.close();
 
     dir.close();
   }

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterDelete.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterDelete.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterDelete.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterDelete.java Sun Nov 20 23:45:25 2011
@@ -400,9 +400,11 @@ public class TestIndexWriterDelete exten
   }
 
   private int getHitCount(Directory dir, Term term) throws IOException {
-    IndexSearcher searcher = new IndexSearcher(dir, true);
+    IndexReader reader = IndexReader.open(dir);
+    IndexSearcher searcher = new IndexSearcher(reader);
     int hitCount = searcher.search(new TermQuery(term), null, 1000).totalHits;
     searcher.close();
+    reader.close();
     return hitCount;
   }
 

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java Sun Nov 20 23:45:25 2011
@@ -535,7 +535,7 @@ public class TestIndexWriterExceptions e
         boolean sawAppend = false;
         boolean sawFlush = false;
         for (int i = 0; i < trace.length; i++) {
-          if ("org.apache.lucene.index.FreqProxTermsWriterPerField".equals(trace[i].getClassName()) && "flush".equals(trace[i].getMethodName()))
+          if (FreqProxTermsWriterPerField.class.getName().equals(trace[i].getClassName()) && "flush".equals(trace[i].getMethodName()))
             sawAppend = true;
           if ("flush".equals(trace[i].getMethodName()))
             sawFlush = true;
@@ -641,7 +641,7 @@ public class TestIndexWriterExceptions e
             numDel++;
           else {
             reader.document(j);
-            reader.getTermFreqVectors(j);
+            reader.getTermVectors(j);
           }
         }
         assertEquals(1, numDel);
@@ -665,7 +665,7 @@ public class TestIndexWriterExceptions e
       assertNull(MultiFields.getLiveDocs(reader));
       for(int j=0;j<reader.maxDoc();j++) {
         reader.document(j);
-        reader.getTermFreqVectors(j);
+        reader.getTermVectors(j);
       }
       reader.close();
       assertEquals(0, numDel);
@@ -755,7 +755,7 @@ public class TestIndexWriterExceptions e
           numDel++;
         else {
           reader.document(j);
-          reader.getTermFreqVectors(j);
+          reader.getTermVectors(j);
         }
       }
       reader.close();
@@ -778,7 +778,7 @@ public class TestIndexWriterExceptions e
       assertNull(MultiFields.getLiveDocs(reader));
       for(int j=0;j<reader.maxDoc();j++) {
         reader.document(j);
-        reader.getTermFreqVectors(j);
+        reader.getTermVectors(j);
       }
       reader.close();
 
@@ -794,7 +794,7 @@ public class TestIndexWriterExceptions e
       if (doFail) {
         StackTraceElement[] trace = new Exception().getStackTrace();
         for (int i = 0; i < trace.length; i++) {
-          if (doFail && "org.apache.lucene.store.MockDirectoryWrapper".equals(trace[i].getClassName()) && "sync".equals(trace[i].getMethodName())) {
+          if (doFail && MockDirectoryWrapper.class.getName().equals(trace[i].getClassName()) && "sync".equals(trace[i].getMethodName())) {
             didFail = true;
             throw new IOException("now failing on purpose during sync");
           }
@@ -868,11 +868,11 @@ public class TestIndexWriterExceptions e
       boolean isDelete = false;
       boolean isInGlobalFieldMap = false;
       for (int i = 0; i < trace.length; i++) {
-        if ("org.apache.lucene.index.SegmentInfos".equals(trace[i].getClassName()) && stage.equals(trace[i].getMethodName()))
+        if (SegmentInfos.class.getName().equals(trace[i].getClassName()) && stage.equals(trace[i].getMethodName()))
           isCommit = true;
-        if ("org.apache.lucene.store.MockDirectoryWrapper".equals(trace[i].getClassName()) && "deleteFile".equals(trace[i].getMethodName()))
+        if (MockDirectoryWrapper.class.getName().equals(trace[i].getClassName()) && "deleteFile".equals(trace[i].getMethodName()))
           isDelete = true;
-        if ("org.apache.lucene.index.SegmentInfos".equals(trace[i].getClassName()) && "writeGlobalFieldMap".equals(trace[i].getMethodName()))
+        if (SegmentInfos.class.getName().equals(trace[i].getClassName()) && "writeGlobalFieldMap".equals(trace[i].getMethodName()))
           isInGlobalFieldMap = true;
           
       }
@@ -901,6 +901,7 @@ public class TestIndexWriterExceptions e
     
     for (FailOnlyInCommit failure : failures) {
       MockDirectoryWrapper dir = newDirectory();
+      dir.setFailOnCreateOutput(false);
       IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(
           TEST_VERSION_CURRENT, new MockAnalyzer(random)));
       Document doc = new Document();
@@ -1302,20 +1303,17 @@ public class TestIndexWriterExceptions e
 
     @Override
     public void eval(MockDirectoryWrapper dir)  throws IOException {
+
       StackTraceElement[] trace = new Exception().getStackTrace();
-      boolean failOnInit = false;
-      boolean failOnfinish = false;
+      boolean fail = false;
       for (int i = 0; i < trace.length; i++) {
-        if ("org.apache.lucene.index.TermVectorsTermsWriter".equals(trace[i].getClassName()) && stage.equals(trace[i].getMethodName()))
-          failOnInit = true;
-        if ("org.apache.lucene.index.TermVectorsTermsWriter".equals(trace[i].getClassName()) && stage.equals(trace[i].getMethodName()))
-          failOnfinish = true;
+        if (TermVectorsConsumer.class.getName().equals(trace[i].getClassName()) && stage.equals(trace[i].getMethodName())) {
+          fail = true;
+        }
       }
       
-      if (failOnInit) {
-        throw new RuntimeException(EXC_MSG + " fail on init");
-      } else if (failOnfinish) {
-        throw new RuntimeException(EXC_MSG + " fail on finishDoc");
+      if (fail) {
+        throw new RuntimeException(EXC_MSG);
       }
     }
   }

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterMerging.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterMerging.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterMerging.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterMerging.java Sun Nov 20 23:45:25 2011
@@ -116,9 +116,9 @@ public class TestIndexWriterMerging exte
     writer.close();
   }
   
-  // LUCENE-325: test expungeDeletes, when 2 singular merges
+  // LUCENE-325: test forceMergeDeletes, when 2 singular merges
   // are required
-  public void testExpungeDeletes() throws IOException {
+  public void testForceMergeDeletes() throws IOException {
     Directory dir = newDirectory();
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(
         TEST_VERSION_CURRENT, new MockAnalyzer(random))
@@ -156,7 +156,7 @@ public class TestIndexWriterMerging exte
     writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random)).setMergePolicy(newLogMergePolicy()));
     assertEquals(8, writer.numDocs());
     assertEquals(10, writer.maxDoc());
-    writer.expungeDeletes();
+    writer.forceMergeDeletes();
     assertEquals(8, writer.numDocs());
     writer.close();
     ir = IndexReader.open(dir, true);
@@ -166,8 +166,8 @@ public class TestIndexWriterMerging exte
     dir.close();
   }
 
-  // LUCENE-325: test expungeDeletes, when many adjacent merges are required
-  public void testExpungeDeletes2() throws IOException {
+  // LUCENE-325: test forceMergeDeletes, when many adjacent merges are required
+  public void testForceMergeDeletes2() throws IOException {
     Directory dir = newDirectory();
     IndexWriter writer = new IndexWriter(
         dir,
@@ -210,7 +210,7 @@ public class TestIndexWriterMerging exte
             setMergePolicy(newLogMergePolicy(3))
     );
     assertEquals(49, writer.numDocs());
-    writer.expungeDeletes();
+    writer.forceMergeDeletes();
     writer.close();
     ir = IndexReader.open(dir, true);
     assertEquals(49, ir.maxDoc());
@@ -219,9 +219,9 @@ public class TestIndexWriterMerging exte
     dir.close();
   }
 
-  // LUCENE-325: test expungeDeletes without waiting, when
+  // LUCENE-325: test forceMergeDeletes without waiting, when
   // many adjacent merges are required
-  public void testExpungeDeletes3() throws IOException {
+  public void testForceMergeDeletes3() throws IOException {
     Directory dir = newDirectory();
     IndexWriter writer = new IndexWriter(
         dir,
@@ -262,7 +262,7 @@ public class TestIndexWriterMerging exte
         newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random)).
             setMergePolicy(newLogMergePolicy(3))
     );
-    writer.expungeDeletes(false);
+    writer.forceMergeDeletes(false);
     writer.close();
     ir = IndexReader.open(dir, true);
     assertEquals(49, ir.maxDoc());

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java Sun Nov 20 23:45:25 2011
@@ -873,7 +873,7 @@ public class TestIndexWriterReader exten
     dir1.close();
   }
 
-  public void testExpungeDeletes() throws Throwable {
+  public void testForceMergeDeletes() throws Throwable {
     Directory dir = newDirectory();
     final IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random)).setMergePolicy(newLogMergePolicy()));
     Document doc = new Document();
@@ -887,7 +887,7 @@ public class TestIndexWriterReader exten
     w.deleteDocuments(new Term("id", "0"));
 
     IndexReader r = w.getReader();
-    w.expungeDeletes();
+    w.forceMergeDeletes();
     w.close();
     r.close();
     r = IndexReader.open(dir, true);

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterUnicode.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterUnicode.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterUnicode.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterUnicode.java Sun Nov 20 23:45:25 2011
@@ -135,7 +135,7 @@ public class TestIndexWriterUnicode exte
   }
 
   private void checkTermsOrder(IndexReader r, Set<String> allTerms, boolean isTop) throws IOException {
-    TermsEnum terms = MultiFields.getFields(r).terms("f").iterator();
+    TermsEnum terms = MultiFields.getFields(r).terms("f").iterator(null);
 
     BytesRef last = new BytesRef();
 

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java Sun Nov 20 23:45:25 2011
@@ -278,7 +278,7 @@ public class TestIndexWriterWithThreads 
         for(int j=0;j<reader.maxDoc();j++) {
           if (delDocs == null || !delDocs.get(j)) {
             reader.document(j);
-            reader.getTermFreqVectors(j);
+            reader.getTermVectors(j);
           }
         }
         reader.close();

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexableField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexableField.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexableField.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestIndexableField.java Sun Nov 20 23:45:25 2011
@@ -288,33 +288,31 @@ public class TestIndexableField extends 
         
         if (indexed) {
           final boolean tv = counter % 2 == 1 && fieldID != 9;
-          final TermFreqVector tfv = r.getTermFreqVector(docID, name);
           if (tv) {
+            final Terms tfv = r.getTermVectors(docID).terms(name);
             assertNotNull(tfv);
-            assertTrue(tfv instanceof TermPositionVector);
-            final TermPositionVector tpv = (TermPositionVector) tfv;
-            final BytesRef[] terms = tpv.getTerms();
-            assertEquals(2, terms.length);
-            assertEquals(new BytesRef(""+counter), terms[0]);
-            assertEquals(new BytesRef("text"), terms[1]);
-
-            final int[] freqs = tpv.getTermFrequencies();
-            assertEquals(2, freqs.length);
-            assertEquals(1, freqs[0]);
-            assertEquals(1, freqs[1]);
-
-            int[] positions = tpv.getTermPositions(0);
-            assertEquals(1, positions.length);
-            assertEquals(1, positions[0]);
-
-            positions = tpv.getTermPositions(1);
-            assertEquals(1, positions.length);
-            assertEquals(0, positions[0]);
+            TermsEnum termsEnum = tfv.iterator(null);
+            assertEquals(new BytesRef(""+counter), termsEnum.next());
+            assertEquals(1, termsEnum.totalTermFreq());
+            DocsAndPositionsEnum dpEnum = termsEnum.docsAndPositions(null, null);
+            assertTrue(dpEnum.nextDoc() != DocsEnum.NO_MORE_DOCS);
+            assertEquals(1, dpEnum.freq());
+            assertEquals(1, dpEnum.nextPosition());
+
+            assertEquals(new BytesRef("text"), termsEnum.next());
+            assertEquals(1, termsEnum.totalTermFreq());
+            dpEnum = termsEnum.docsAndPositions(null, dpEnum);
+            assertTrue(dpEnum.nextDoc() != DocsEnum.NO_MORE_DOCS);
+            assertEquals(1, dpEnum.freq());
+            assertEquals(0, dpEnum.nextPosition());
+
+            assertNull(termsEnum.next());
 
             // TODO: offsets
             
           } else {
-            assertNull(tfv);
+            Fields vectors = r.getTermVectors(docID);
+            assertTrue(vectors == null || vectors.terms(name) == null);
           }
 
           if (numeric) {

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestMultiFields.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestMultiFields.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestMultiFields.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestMultiFields.java Sun Nov 20 23:45:25 2011
@@ -113,7 +113,6 @@ public class TestMultiFields extends Luc
       for(int delDoc : deleted) {
         assertFalse(liveDocs.get(delDoc));
       }
-      Terms terms2 = MultiFields.getTerms(reader, "field");
 
       for(int i=0;i<100;i++) {
         BytesRef term = terms.get(random.nextInt(terms.size()));
@@ -121,7 +120,7 @@ public class TestMultiFields extends Luc
           System.out.println("TEST: seek term="+ UnicodeUtil.toHexString(term.utf8ToString()) + " " + term);
         }
         
-        DocsEnum docsEnum = terms2.docs(liveDocs, term, null);
+        DocsEnum docsEnum = MultiFields.getTermDocsEnum(reader, liveDocs, "field", term);
         assertNotNull(docsEnum);
 
         for(int docID : docs.get(term)) {

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestNoMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestNoMergePolicy.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestNoMergePolicy.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestNoMergePolicy.java Sun Nov 20 23:45:25 2011
@@ -32,7 +32,7 @@ public class TestNoMergePolicy extends L
     MergePolicy mp = NoMergePolicy.NO_COMPOUND_FILES;
     assertNull(mp.findMerges(null));
     assertNull(mp.findForcedMerges(null, 0, null));
-    assertNull(mp.findMergesToExpungeDeletes(null));
+    assertNull(mp.findForcedDeletesMerges(null));
     assertFalse(mp.useCompoundFile(null, null));
     mp.close();
   }

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestOmitTf.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestOmitTf.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestOmitTf.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestOmitTf.java Sun Nov 20 23:45:25 2011
@@ -286,7 +286,8 @@ public class TestOmitTf extends LuceneTe
     /*
      * Verify the index
      */         
-    IndexSearcher searcher = new IndexSearcher(dir, true);
+    IndexReader reader = IndexReader.open(dir);
+    IndexSearcher searcher = new IndexSearcher(reader);
     searcher.setSimilarityProvider(new SimpleSimilarityProvider());
         
     Term a = new Term("noTf", term);
@@ -400,7 +401,8 @@ public class TestOmitTf extends LuceneTe
                     });
     assertEquals(15, CountingHitCollector.getCount());
         
-    searcher.close();     
+    searcher.close(); 
+    reader.close();
     dir.close();
   }
      
@@ -445,7 +447,7 @@ public class TestOmitTf extends LuceneTe
     IndexReader ir = iw.getReader();
     iw.close();
     Terms terms = MultiFields.getTerms(ir, "foo");
-    assertEquals(-1, terms.totalTermFreq(new BytesRef("bar")));
+    assertEquals(-1, MultiFields.totalTermFreq(ir, "foo", new BytesRef("bar")));
     assertEquals(-1, terms.getSumTotalTermFreq());
     ir.close();
     dir.close();

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestParallelTermEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestParallelTermEnum.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestParallelTermEnum.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestParallelTermEnum.java Sun Nov 20 23:45:25 2011
@@ -84,7 +84,8 @@ public class TestParallelTermEnum extend
         f = fe.next();
         assertEquals("field1", f);
 
-        TermsEnum te = fe.terms();
+        Terms terms = fe.terms();
+        TermsEnum te = terms.iterator(null);
 
         assertEquals("brown", te.next().utf8ToString());
         DocsEnum td = te.docs(liveDocs, null);
@@ -119,7 +120,9 @@ public class TestParallelTermEnum extend
         assertNull(te.next());
         f = fe.next();
         assertEquals("field2", f);
-        te = fe.terms();
+        terms = fe.terms();
+        assertNotNull(terms);
+        te = terms.iterator(null);
 
         assertEquals("brown", te.next().utf8ToString());
         td = te.docs(liveDocs, td);
@@ -154,7 +157,9 @@ public class TestParallelTermEnum extend
         assertNull(te.next());
         f = fe.next();
         assertEquals("field3", f);
-        te = fe.terms();
+        terms = fe.terms();
+        assertNotNull(terms);
+        te = terms.iterator(null);
 
         assertEquals("dog", te.next().utf8ToString());
         td = te.docs(liveDocs, td);

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestPayloads.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestPayloads.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestPayloads.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestPayloads.java Sun Nov 20 23:45:25 2011
@@ -527,7 +527,7 @@ public class TestPayloads extends Lucene
         }
         writer.close();
         IndexReader reader = IndexReader.open(dir, true);
-        TermsEnum terms = MultiFields.getFields(reader).terms(field).iterator();
+        TermsEnum terms = MultiFields.getFields(reader).terms(field).iterator(null);
         Bits liveDocs = MultiFields.getLiveDocs(reader);
         DocsAndPositionsEnum tp = null;
         while (terms.next() != null) {

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestPerSegmentDeletes.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestPerSegmentDeletes.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestPerSegmentDeletes.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestPerSegmentDeletes.java Sun Nov 20 23:45:25 2011
@@ -222,7 +222,7 @@ public class TestPerSegmentDeletes exten
       throws IOException {
     Fields fields = MultiFields.getFields(reader);
     Terms cterms = fields.terms(term.field);
-    TermsEnum ctermsEnum = cterms.iterator();
+    TermsEnum ctermsEnum = cterms.iterator(null);
     if (ctermsEnum.seekExact(new BytesRef(term.text()), false)) {
       DocsEnum docsEnum = ctermsEnum.docs(bits, null);
       return toArray(docsEnum);
@@ -274,7 +274,7 @@ public class TestPerSegmentDeletes exten
     }
 
     @Override
-    public MergeSpecification findMergesToExpungeDeletes(
+    public MergeSpecification findForcedDeletesMerges(
         SegmentInfos segmentInfos) throws CorruptIndexException, IOException {
       return null;
     }

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestSegmentMerger.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestSegmentMerger.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestSegmentMerger.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestSegmentMerger.java Sun Nov 20 23:45:25 2011
@@ -77,7 +77,7 @@ public class TestSegmentMerger extends L
 
   public void testMerge() throws IOException {
     final Codec codec = Codec.getDefault();
-    SegmentMerger merger = new SegmentMerger(InfoStream.getDefault(), mergedDir, IndexWriterConfig.DEFAULT_TERM_INDEX_INTERVAL, mergedSegment, MergeState.CheckAbort.NONE, null, new FieldInfos(), codec, newIOContext(random));
+    SegmentMerger merger = new SegmentMerger(InfoStream.getDefault(), mergedDir, IndexWriterConfig.DEFAULT_TERM_INDEX_INTERVAL, mergedSegment, MergeState.CheckAbort.NONE, null, new FieldInfos(new FieldInfos.FieldNumberBiMap()), codec, newIOContext(random));
     merger.add(reader1);
     merger.add(reader2);
     MergeState mergeState = merger.merge();
@@ -110,23 +110,19 @@ public class TestSegmentMerger extends L
     //System.out.println("stored size: " + stored.size());
     assertTrue("We do not have 3 fields that were indexed with term vector",stored.size() == 3);
 
-    TermFreqVector vector = mergedReader.getTermFreqVector(0, DocHelper.TEXT_FIELD_2_KEY);
-    assertTrue(vector != null);
-    BytesRef [] terms = vector.getTerms();
-    assertTrue(terms != null);
-    //System.out.println("Terms size: " + terms.length);
-    assertTrue(terms.length == 3);
-    int [] freqs = vector.getTermFrequencies();
-    assertTrue(freqs != null);
-    //System.out.println("Freqs size: " + freqs.length);
-    assertTrue(vector instanceof TermPositionVector == true);
-
-    for (int i = 0; i < terms.length; i++) {
-      String term = terms[i].utf8ToString();
-      int freq = freqs[i];
+    Terms vector = mergedReader.getTermVectors(0).terms(DocHelper.TEXT_FIELD_2_KEY);
+    assertNotNull(vector);
+    assertEquals(3, vector.getUniqueTermCount());
+    TermsEnum termsEnum = vector.iterator(null);
+
+    int i = 0;
+    while (termsEnum.next() != null) {
+      String term = termsEnum.term().utf8ToString();
+      int freq = (int) termsEnum.totalTermFreq();
       //System.out.println("Term: " + term + " Freq: " + freq);
       assertTrue(DocHelper.FIELD_2_TEXT.indexOf(term) != -1);
       assertTrue(DocHelper.FIELD_2_FREQS[i] == freq);
+      i++;
     }
 
     TestSegmentReader.checkNorms(mergedReader);
@@ -152,7 +148,7 @@ public class TestSegmentMerger extends L
     SegmentMerger sm = new SegmentMerger(InfoStream.getDefault(), dir, 1, "a", MergeState.CheckAbort.NONE, null, null, Codec.getDefault(), newIOContext(random));
     boolean doFail = false;
     try {
-      sm.createCompoundFile("b1", w.segmentInfos.info(0), newIOContext(random));
+      IndexWriter.createCompoundFile(dir, "b1", MergeState.CheckAbort.NONE, w.segmentInfos.info(0), newIOContext(random));
       doFail = true; // should never get here
     } catch (AssertionError e) {
       // expected
@@ -173,7 +169,7 @@ public class TestSegmentMerger extends L
     SegmentInfos sis = new SegmentInfos();
     sis.read(dir);
     try {
-      sm.createCompoundFile("b2", sis.info(0), newIOContext(random));
+      IndexWriter.createCompoundFile(dir, "b2", MergeState.CheckAbort.NONE, sis.info(0), newIOContext(random));
       doFail = true; // should never get here
     } catch (AssertionError e) {
       // expected

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestSegmentReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestSegmentReader.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestSegmentReader.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestSegmentReader.java Sun Nov 20 23:45:25 2011
@@ -121,9 +121,11 @@ public class TestSegmentReader extends L
     FieldsEnum fields = MultiFields.getFields(reader).iterator();
     String field;
     while((field = fields.next()) != null) {
-      TermsEnum terms = fields.terms();
-      while(terms.next() != null) {
-        BytesRef term = terms.term();
+      Terms terms = fields.terms();
+      assertNotNull(terms);
+      TermsEnum termsEnum = terms.iterator(null);
+      while(termsEnum.next() != null) {
+        BytesRef term = termsEnum.term();
         assertTrue(term != null);
         String fieldValue = (String) DocHelper.nameValues.get(field);
         assertTrue(fieldValue.indexOf(term.utf8ToString()) != -1);
@@ -188,20 +190,19 @@ public class TestSegmentReader extends L
   }
   
   public void testTermVectors() throws IOException {
-    TermFreqVector result = reader.getTermFreqVector(0, DocHelper.TEXT_FIELD_2_KEY);
-    assertTrue(result != null);
-    BytesRef [] terms = result.getTerms();
-    int [] freqs = result.getTermFrequencies();
-    assertTrue(terms != null && terms.length == 3 && freqs != null && freqs.length == 3);
-    for (int i = 0; i < terms.length; i++) {
-      String term = terms[i].utf8ToString();
-      int freq = freqs[i];
+    Terms result = reader.getTermVectors(0).terms(DocHelper.TEXT_FIELD_2_KEY);
+    assertNotNull(result);
+    assertEquals(3, result.getUniqueTermCount());
+    TermsEnum termsEnum = result.iterator(null);
+    while(termsEnum.next() != null) {
+      String term = termsEnum.term().utf8ToString();
+      int freq = (int) termsEnum.totalTermFreq();
       assertTrue(DocHelper.FIELD_2_TEXT.indexOf(term) != -1);
       assertTrue(freq > 0);
     }
 
-    TermFreqVector [] results = reader.getTermFreqVectors(0);
+    Fields results = reader.getTermVectors(0);
     assertTrue(results != null);
-    assertTrue("We do not have 3 term freq vectors, we have: " + results.length, results.length == 3);      
+    assertEquals("We do not have 3 term freq vectors", 3, results.getUniqueFieldCount());      
   }    
 }

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestSegmentTermDocs.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestSegmentTermDocs.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestSegmentTermDocs.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestSegmentTermDocs.java Sun Nov 20 23:45:25 2011
@@ -59,7 +59,7 @@ public class TestSegmentTermDocs extends
     assertTrue(reader != null);
     assertEquals(indexDivisor, reader.getTermInfosIndexDivisor());
 
-    TermsEnum terms = reader.fields().terms(DocHelper.TEXT_FIELD_2_KEY).iterator();
+    TermsEnum terms = reader.fields().terms(DocHelper.TEXT_FIELD_2_KEY).iterator(null);
     terms.seekCeil(new BytesRef("field"));
     DocsEnum termDocs = terms.docs(reader.getLiveDocs(), null);
     if (termDocs.nextDoc() != DocsEnum.NO_MORE_DOCS)    {

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestSegmentTermEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestSegmentTermEnum.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestSegmentTermEnum.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestSegmentTermEnum.java Sun Nov 20 23:45:25 2011
@@ -79,7 +79,7 @@ public class TestSegmentTermEnum extends
     addDoc(writer, "aaa bbb");
     writer.close();
     SegmentReader reader = getOnlySegmentReader(IndexReader.open(dir, false));
-    TermsEnum terms = reader.fields().terms("content").iterator();
+    TermsEnum terms = reader.fields().terms("content").iterator(null);
     assertNotNull(terms.next());
     assertEquals("aaa", terms.term().utf8ToString());
     assertNotNull(terms.next());
@@ -103,7 +103,7 @@ public class TestSegmentTermEnum extends
       throws IOException
   {
       IndexReader reader = IndexReader.open(dir, true);
-      TermsEnum termEnum = MultiFields.getTerms(reader, "content").iterator();
+      TermsEnum termEnum = MultiFields.getTerms(reader, "content").iterator(null);
 
     // create enumeration of all terms
     // go to the first term (aaa)

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestSizeBoundedForceMerge.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestSizeBoundedForceMerge.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestSizeBoundedForceMerge.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestSizeBoundedForceMerge.java Sun Nov 20 23:45:25 2011
@@ -59,7 +59,7 @@ public class TestSizeBoundedForceMerge e
 
     SegmentInfos sis = new SegmentInfos();
     sis.read(dir);
-    double min = sis.info(0).sizeInBytes(true);
+    double min = sis.info(0).sizeInBytes();
 
     conf = newWriterConfig();
     LogByteSizeMergePolicy lmp = new LogByteSizeMergePolicy();

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestStressAdvance.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestStressAdvance.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestStressAdvance.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestStressAdvance.java Sun Nov 20 23:45:25 2011
@@ -67,7 +67,7 @@ public class TestStressAdvance extends L
           bDocIDs.add(docID);
         }
       }
-      final TermsEnum te = r.getSequentialSubReaders()[0].fields().terms("field").iterator();
+      final TermsEnum te = r.getSequentialSubReaders()[0].fields().terms("field").iterator(null);
       
       DocsEnum de = null;
       for(int iter2=0;iter2<10;iter2++) {

Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestStressIndexing.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestStressIndexing.java?rev=1204297&r1=1204296&r2=1204297&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestStressIndexing.java (original)
+++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/index/TestStressIndexing.java Sun Nov 20 23:45:25 2011
@@ -102,8 +102,12 @@ public class TestStressIndexing extends 
 
     @Override
     public void doWork() throws Throwable {
-      for (int i=0; i<100; i++)
-        (new IndexSearcher(directory, true)).close();
+      for (int i=0; i<100; i++) {
+        IndexReader ir = IndexReader.open(directory, true);
+        IndexSearcher is = new IndexSearcher(ir);
+        is.close();
+        ir.close();
+      }
       count += 100;
     }
   }