You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2010/06/16 17:17:36 UTC

svn commit: r955257 [3/4] - in /lucene/dev/trunk: lucene/ lucene/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/ lucene/contrib/benchmark/src/java/org/apache/lucene/benchmark/quality/utils/ lucene/contrib/demo/src/java/org/apache/l...

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReader.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReader.java Wed Jun 16 15:17:32 2010
@@ -55,6 +55,8 @@ import org.apache.lucene.store.NoSuchDir
 import org.apache.lucene.store.RAMDirectory;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
+import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.Bits;
 
 public class TestIndexReader extends LuceneTestCase
 {
@@ -287,22 +289,17 @@ public class TestIndexReader extends Luc
                                      int expected)
     throws IOException
     {
-        TermDocs tdocs = null;
-
-        try {
-            tdocs = reader.termDocs(term);
-            assertNotNull(msg + ", null TermDocs", tdocs);
-            int count = 0;
-            while(tdocs.next()) {
-                count++;
-            }
-            assertEquals(msg + ", count mismatch", expected, count);
-
-        } finally {
-            if (tdocs != null)
-                tdocs.close();
+        DocsEnum tdocs = MultiFields.getTermDocsEnum(reader,
+                                                     MultiFields.getDeletedDocs(reader),
+                                                     term.field(),
+                                                     new BytesRef(term.text()));
+        int count = 0;
+        if (tdocs != null) {
+          while(tdocs.nextDoc()!= tdocs.NO_MORE_DOCS) {
+            count++;
+          }
         }
-
+        assertEquals(msg + ", count mismatch", expected, count);
     }
 
     public void testBasicDelete() throws IOException {
@@ -1348,21 +1345,26 @@ public class TestIndexReader extends Luc
       }
       
       // check dictionary and posting lists
-      TermEnum enum1 = index1.terms();
-      TermEnum enum2 = index2.terms();
-      TermPositions tp1 = index1.termPositions();
-      TermPositions tp2 = index2.termPositions();
-      while(enum1.next()) {
-        assertTrue(enum2.next());
-        assertEquals("Different term in dictionary.", enum1.term(), enum2.term());
-        tp1.seek(enum1.term());
-        tp2.seek(enum1.term());
-        while(tp1.next()) {
-          assertTrue(tp2.next());
-          assertEquals("Different doc id in postinglist of term " + enum1.term() + ".", tp1.doc(), tp2.doc());
-          assertEquals("Different term frequence in postinglist of term " + enum1.term() + ".", tp1.freq(), tp2.freq());
-          for (int i = 0; i < tp1.freq(); i++) {
-            assertEquals("Different positions in postinglist of term " + enum1.term() + ".", tp1.nextPosition(), tp2.nextPosition());
+      FieldsEnum fenum1 = MultiFields.getFields(index1).iterator();
+      FieldsEnum fenum2 = MultiFields.getFields(index1).iterator();
+      String field1 = null;
+      Bits delDocs = MultiFields.getDeletedDocs(index1);
+      while((field1=fenum1.next()) != null) {
+        assertEquals("Different fields", field1, fenum2.next());
+        TermsEnum enum1 = fenum1.terms();
+        TermsEnum enum2 = fenum2.terms();
+        while(enum1.next() != null) {
+          assertEquals("Different terms", enum1.term(), enum2.next());
+          DocsAndPositionsEnum tp1 = enum1.docsAndPositions(delDocs, null);
+          DocsAndPositionsEnum tp2 = enum2.docsAndPositions(delDocs, null);
+
+          while(tp1.nextDoc() != DocsEnum.NO_MORE_DOCS) {
+            assertTrue(tp2.nextDoc() != DocsEnum.NO_MORE_DOCS);
+            assertEquals("Different doc id in postinglist of term " + enum1.term() + ".", tp1.docID(), tp2.docID());
+            assertEquals("Different term frequence in postinglist of term " + enum1.term() + ".", tp1.freq(), tp2.freq());
+            for (int i = 0; i < tp1.freq(); i++) {
+              assertEquals("Different positions in postinglist of term " + enum1.term() + ".", tp1.nextPosition(), tp2.nextPosition());
+            }
           }
         }
       }

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=955257&r1=955256&r2=955257&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 Wed Jun 16 15:17:32 2010
@@ -863,8 +863,6 @@ public class TestIndexReaderReopen exten
     assertReaderClosed(reader, true, true);
     assertReaderClosed(firstReader, true, true);
 
-    FlexTestUtil.verifyFlexVsPreFlex(rnd, dir);
-
     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=955257&r1=955256&r2=955257&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 Wed Jun 16 15:17:32 2010
@@ -1379,8 +1379,11 @@ public class TestIndexWriter extends Luc
       assertEquals(1, reader.numDocs());
       Term t = new Term("field", "a");
       assertEquals(1, reader.docFreq(t));
-      TermDocs td = reader.termDocs(t);
-      td.next();
+      DocsEnum td = MultiFields.getTermDocsEnum(reader,
+                                                MultiFields.getDeletedDocs(reader),
+                                                "field",
+                                                new BytesRef("a"));
+      td.nextDoc();
       assertEquals(128*1024, td.freq());
       reader.close();
       dir.close();
@@ -1701,9 +1704,13 @@ public class TestIndexWriter extends Luc
 
     // Make sure the doc that hit the exception was marked
     // as deleted:
-    TermDocs tdocs = reader.termDocs(t);
+    DocsEnum tdocs = MultiFields.getTermDocsEnum(reader,
+                                              MultiFields.getDeletedDocs(reader),
+                                              t.field(),
+                                              new BytesRef(t.text()));
+
     int count = 0;
-    while(tdocs.next()) {
+    while(tdocs.nextDoc() != DocsEnum.NO_MORE_DOCS) {
       count++;
     }
     assertEquals(2, count);
@@ -2244,9 +2251,12 @@ public class TestIndexWriter extends Luc
 
       // Quick test to make sure index is not corrupt:
       IndexReader reader = IndexReader.open(dir, true);
-      TermDocs tdocs = reader.termDocs(new Term("field", "aaa"));
+      DocsEnum tdocs = MultiFields.getTermDocsEnum(reader,
+                                                  MultiFields.getDeletedDocs(reader),
+                                                  "field",
+                                                  new BytesRef("aaa"));
       int count = 0;
-      while(tdocs.next()) {
+      while(tdocs.nextDoc() != DocsEnum.NO_MORE_DOCS) {
         count++;
       }
       assertTrue(count > 0);
@@ -3454,8 +3464,13 @@ public class TestIndexWriter extends Luc
     Query q = new SpanTermQuery(new Term("field", "a"));
     hits = s.search(q, null, 1000).scoreDocs;
     assertEquals(1, hits.length);
-    TermPositions tps = s.getIndexReader().termPositions(new Term("field", "a"));
-    assertTrue(tps.next());
+
+    DocsAndPositionsEnum tps = MultiFields.getTermPositionsEnum(s.getIndexReader(),
+                                                                MultiFields.getDeletedDocs(s.getIndexReader()),
+                                                                "field",
+                                                                new BytesRef("a"));
+
+    assertTrue(tps.nextDoc() != DocsEnum.NO_MORE_DOCS);
     assertEquals(1, tps.freq());
     assertEquals(0, tps.nextPosition());
     w.close();
@@ -4465,12 +4480,12 @@ public class TestIndexWriter extends Luc
 
 
     // test that the terms were indexed.
-    assertTrue(ir.termDocs(new Term("binary","doc1field1")).next());
-    assertTrue(ir.termDocs(new Term("binary","doc2field1")).next());
-    assertTrue(ir.termDocs(new Term("binary","doc3field1")).next());
-    assertTrue(ir.termDocs(new Term("string","doc1field2")).next());
-    assertTrue(ir.termDocs(new Term("string","doc2field2")).next());
-    assertTrue(ir.termDocs(new Term("string","doc3field2")).next());
+    assertTrue(MultiFields.getTermDocsEnum(ir, null, "binary", new BytesRef("doc1field1")).nextDoc() != DocsEnum.NO_MORE_DOCS);
+    assertTrue(MultiFields.getTermDocsEnum(ir, null, "binary", new BytesRef("doc2field1")).nextDoc() != DocsEnum.NO_MORE_DOCS);
+    assertTrue(MultiFields.getTermDocsEnum(ir, null, "binary", new BytesRef("doc3field1")).nextDoc() != DocsEnum.NO_MORE_DOCS);
+    assertTrue(MultiFields.getTermDocsEnum(ir, null, "string", new BytesRef("doc1field2")).nextDoc() != DocsEnum.NO_MORE_DOCS);
+    assertTrue(MultiFields.getTermDocsEnum(ir, null, "string", new BytesRef("doc2field2")).nextDoc() != DocsEnum.NO_MORE_DOCS);
+    assertTrue(MultiFields.getTermDocsEnum(ir, null, "string", new BytesRef("doc3field2")).nextDoc() != DocsEnum.NO_MORE_DOCS);
 
     ir.close();
     dir.close();

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=955257&r1=955256&r2=955257&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 Wed Jun 16 15:17:32 2010
@@ -38,6 +38,7 @@ import org.apache.lucene.store.MockRAMDi
 import org.apache.lucene.store.AlreadyClosedException;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.ThreadInterruptedException;
 
 public class TestIndexWriterReader extends LuceneTestCase {
@@ -63,12 +64,16 @@ public class TestIndexWriterReader exten
   
   public static int count(Term t, IndexReader r) throws IOException {
     int count = 0;
-    TermDocs td = r.termDocs(t);
-    while (td.next()) {
-      td.doc();
-      count++;
+    DocsEnum td = MultiFields.getTermDocsEnum(r,
+                                              MultiFields.getDeletedDocs(r),
+                                              t.field(), new BytesRef(t.text()));
+
+    if (td != null) {
+      while (td.nextDoc() != DocsEnum.NO_MORE_DOCS) {
+        td.docID();
+        count++;
+      }
     }
-    td.close();
     return count;
   }
 

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLazyProxSkipping.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLazyProxSkipping.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLazyProxSkipping.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLazyProxSkipping.java Wed Jun 16 15:17:32 2010
@@ -30,6 +30,7 @@ import org.apache.lucene.store.Directory
 import org.apache.lucene.store.IndexInput;
 import org.apache.lucene.store.RAMDirectory;
 import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.BytesRef;
 
 /**
  * Tests lazy skipping on the proximity file.
@@ -127,17 +128,26 @@ public class TestLazyProxSkipping extend
         
         writer.close();
         IndexReader reader = IndexReader.open(directory, true);
-        TermPositions tp = reader.termPositions();
-        tp.seek(new Term(this.field, "b"));
+
+        DocsAndPositionsEnum tp = MultiFields.getTermPositionsEnum(reader,
+                                                                   MultiFields.getDeletedDocs(reader),
+                                                                   this.field,
+                                                                   new BytesRef("b"));
+
         for (int i = 0; i < 10; i++) {
-            tp.next();
-            assertEquals(tp.doc(), i);
+            tp.nextDoc();
+            assertEquals(tp.docID(), i);
             assertEquals(tp.nextPosition(), 1);
         }
-        tp.seek(new Term(this.field, "a"));
+
+        tp = MultiFields.getTermPositionsEnum(reader,
+                                              MultiFields.getDeletedDocs(reader),
+                                              this.field,
+                                              new BytesRef("a"));
+
         for (int i = 0; i < 10; i++) {
-            tp.next();
-            assertEquals(tp.doc(), i);
+            tp.nextDoc();
+            assertEquals(tp.docID(), i);
             assertEquals(tp.nextPosition(), 0);
         }
         

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java Wed Jun 16 15:17:32 2010
@@ -21,7 +21,6 @@ import java.io.IOException;
 import java.io.Reader;
 
 import org.apache.lucene.analysis.Analyzer;
-import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.analysis.TokenFilter;
 import org.apache.lucene.analysis.TokenStream;
@@ -34,6 +33,7 @@ import org.apache.lucene.store.Directory
 import org.apache.lucene.store.IndexInput;
 import org.apache.lucene.store.MockRAMDirectory;
 import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.BytesRef;
 
 /**
  * This testcase tests whether multi-level skipping is being used
@@ -68,11 +68,12 @@ public class TestMultiLevelSkipList exte
     writer.close();
 
     IndexReader reader = SegmentReader.getOnlySegmentReader(dir);
-    TermPositions tp = reader.termPositions();
     
     for (int i = 0; i < 2; i++) {
       counter = 0;
-      tp.seek(term);
+      DocsAndPositionsEnum tp = reader.termPositionsEnum(reader.getDeletedDocs(),
+                                                         term.field(),
+                                                         new BytesRef(term.text()));
 
       checkSkipTo(tp, 14, 185); // no skips
       checkSkipTo(tp, 17, 190); // one skip on level 0
@@ -84,18 +85,18 @@ public class TestMultiLevelSkipList exte
     }
   }
 
-  public void checkSkipTo(TermPositions tp, int target, int maxCounter) throws IOException {
-    tp.skipTo(target);
+  public void checkSkipTo(DocsAndPositionsEnum tp, int target, int maxCounter) throws IOException {
+    tp.advance(target);
     if (maxCounter < counter) {
       fail("Too many bytes read: " + counter);
     }
 
-    assertEquals("Wrong document " + tp.doc() + " after skipTo target " + target, target, tp.doc());
+    assertEquals("Wrong document " + tp.docID() + " after skipTo target " + target, target, tp.docID());
     assertEquals("Frequency is not 1: " + tp.freq(), 1,tp.freq());
     tp.nextPosition();
-    byte[] b = new byte[1];
-    tp.getPayload(b, 0);
-    assertEquals("Wrong payload for the target " + target + ": " + b[0], (byte) target, b[0]);
+    BytesRef b = tp.getPayload();
+    assertEquals(1, b.length);
+    assertEquals("Wrong payload for the target " + target + ": " + b.bytes[b.offset], (byte) target, b.bytes[b.offset]);
   }
 
   private static class PayloadAnalyzer extends Analyzer {

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestOmitTf.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestOmitTf.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestOmitTf.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestOmitTf.java Wed Jun 16 15:17:32 2010
@@ -19,7 +19,6 @@ package org.apache.lucene.index;
 
 import java.io.IOException;
 import java.util.Collection;
-import java.util.Random;
 
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
@@ -87,10 +86,7 @@ public class TestOmitTf extends LuceneTe
     f2.setOmitTermFreqAndPositions(false);        
     d.add(f2);
         
-    Random rnd = newRandom();
-
     writer.addDocument(d);
-    FlexTestUtil.verifyFlexVsPreFlex(rnd, writer);
 
     // force merge
     writer.optimize();
@@ -98,8 +94,6 @@ public class TestOmitTf extends LuceneTe
     writer.close();
     _TestUtil.checkIndex(ram);
 
-    FlexTestUtil.verifyFlexVsPreFlex(rnd, ram);
-
     SegmentReader reader = SegmentReader.getOnlySegmentReader(ram);
     FieldInfos fi = reader.fieldInfos();
     assertTrue("OmitTermFreqAndPositions field bit should be set.", fi.fieldInfo("f1").omitTermFreqAndPositions);
@@ -145,12 +139,8 @@ public class TestOmitTf extends LuceneTe
     for(int i=0;i<30;i++)
       writer.addDocument(d);
         
-    Random rnd = newRandom();
-    FlexTestUtil.verifyFlexVsPreFlex(rnd, writer);
-
     // force merge
     writer.optimize();
-    FlexTestUtil.verifyFlexVsPreFlex(rnd, writer);
     // flush
     writer.close();
 

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelReader.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelReader.java Wed Jun 16 15:17:32 2010
@@ -195,26 +195,6 @@ public class TestParallelReader extends 
 
   }
 
-  public void testAllTermDocs() throws IOException {
-    Directory dir1 = getDir1();
-    Directory dir2 = getDir2();
-    ParallelReader pr = new ParallelReader();
-    pr.add(IndexReader.open(dir1, false));
-    pr.add(IndexReader.open(dir2, false));
-    int NUM_DOCS = 2;
-    TermDocs td = pr.termDocs(null);
-    for(int i=0;i<NUM_DOCS;i++) {
-      assertTrue(td.next());
-      assertEquals(i, td.doc());
-      assertEquals(1, td.freq());
-    }
-    td.close();
-    pr.close();
-    dir1.close();
-    dir2.close();
-  }
-    
-  
   private void queryTest(Query query) throws IOException {
     ScoreDoc[] parallelHits = parallel.search(query, null, 1000).scoreDocs;
     ScoreDoc[] singleHits = single.search(query, null, 1000).scoreDocs;

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelTermEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelTermEnum.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelTermEnum.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelTermEnum.java Wed Jun 16 15:17:32 2010
@@ -26,6 +26,7 @@ import org.apache.lucene.document.Field;
 import org.apache.lucene.document.Field.Index;
 import org.apache.lucene.document.Field.Store;
 import org.apache.lucene.store.RAMDirectory;
+import org.apache.lucene.util.Bits;
 
 public class TestParallelTermEnum extends LuceneTestCase {
     private IndexReader ir1;
@@ -77,105 +78,123 @@ public class TestParallelTermEnum extend
         pr.add(ir1);
         pr.add(ir2);
 
-        TermDocs td = pr.termDocs();
+        Bits delDocs = pr.getDeletedDocs();
 
-        TermEnum te = pr.terms();
-        assertTrue(te.next());
-        assertEquals("field1:brown", te.term().toString());
-        td.seek(te.term());
-        assertTrue(td.next());
-        assertEquals(0, td.doc());
-        assertFalse(td.next());
-        assertTrue(te.next());
-        assertEquals("field1:fox", te.term().toString());
-        td.seek(te.term());
-        assertTrue(td.next());
-        assertEquals(0, td.doc());
-        assertFalse(td.next());
-        assertTrue(te.next());
-        assertEquals("field1:jumps", te.term().toString());
-        td.seek(te.term());
-        assertTrue(td.next());
-        assertEquals(0, td.doc());
-        assertFalse(td.next());
-        assertTrue(te.next());
-        assertEquals("field1:quick", te.term().toString());
-        td.seek(te.term());
-        assertTrue(td.next());
-        assertEquals(0, td.doc());
-        assertFalse(td.next());
-        assertTrue(te.next());
-        assertEquals("field1:the", te.term().toString());
-        td.seek(te.term());
-        assertTrue(td.next());
-        assertEquals(0, td.doc());
-        assertFalse(td.next());
-        assertTrue(te.next());
-        assertEquals("field2:brown", te.term().toString());
-        td.seek(te.term());
-        assertTrue(td.next());
-        assertEquals(0, td.doc());
-        assertFalse(td.next());
-        assertTrue(te.next());
-        assertEquals("field2:fox", te.term().toString());
-        td.seek(te.term());
-        assertTrue(td.next());
-        assertEquals(0, td.doc());
-        assertFalse(td.next());
-        assertTrue(te.next());
-        assertEquals("field2:jumps", te.term().toString());
-        td.seek(te.term());
-        assertTrue(td.next());
-        assertEquals(0, td.doc());
-        assertFalse(td.next());
-        assertTrue(te.next());
-        assertEquals("field2:quick", te.term().toString());
-        td.seek(te.term());
-        assertTrue(td.next());
-        assertEquals(0, td.doc());
-        assertFalse(td.next());
-        assertTrue(te.next());
-        assertEquals("field2:the", te.term().toString());
-        td.seek(te.term());
-        assertTrue(td.next());
-        assertEquals(0, td.doc());
-        assertFalse(td.next());
-        assertTrue(te.next());
-        assertEquals("field3:dog", te.term().toString());
-        td.seek(te.term());
-        assertTrue(td.next());
-        assertEquals(0, td.doc());
-        assertFalse(td.next());
-        assertTrue(te.next());
-        assertEquals("field3:fox", te.term().toString());
-        td.seek(te.term());
-        assertTrue(td.next());
-        assertEquals(0, td.doc());
-        assertFalse(td.next());
-        assertTrue(te.next());
-        assertEquals("field3:jumps", te.term().toString());
-        td.seek(te.term());
-        assertTrue(td.next());
-        assertEquals(0, td.doc());
-        assertFalse(td.next());
-        assertTrue(te.next());
-        assertEquals("field3:lazy", te.term().toString());
-        td.seek(te.term());
-        assertTrue(td.next());
-        assertEquals(0, td.doc());
-        assertFalse(td.next());
-        assertTrue(te.next());
-        assertEquals("field3:over", te.term().toString());
-        td.seek(te.term());
-        assertTrue(td.next());
-        assertEquals(0, td.doc());
-        assertFalse(td.next());
-        assertTrue(te.next());
-        assertEquals("field3:the", te.term().toString());
-        td.seek(te.term());
-        assertTrue(td.next());
-        assertEquals(0, td.doc());
-        assertFalse(td.next());
-        assertFalse(te.next());
+        FieldsEnum fe = pr.fields().iterator();
+
+        String f = fe.next();
+        assertEquals("field0", f);
+        f = fe.next();
+        assertEquals("field1", f);
+
+        TermsEnum te = fe.terms();
+
+        assertEquals("brown", te.next().utf8ToString());
+        DocsEnum td = te.docs(delDocs, null);
+        assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
+        assertEquals(0, td.docID());
+        assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
+
+        assertEquals("fox", te.next().utf8ToString());
+        td = te.docs(delDocs, td);
+        assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
+        assertEquals(0, td.docID());
+        assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
+
+        assertEquals("jumps", te.next().utf8ToString());
+        td = te.docs(delDocs, td);
+        assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
+        assertEquals(0, td.docID());
+        assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
+
+        assertEquals("quick", te.next().utf8ToString());
+        td = te.docs(delDocs, td);
+        assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
+        assertEquals(0, td.docID());
+        assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
+
+        assertEquals("the", te.next().utf8ToString());
+        td = te.docs(delDocs, td);
+        assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
+        assertEquals(0, td.docID());
+        assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
+
+        assertNull(te.next());
+        f = fe.next();
+        assertEquals("field2", f);
+        te = fe.terms();
+
+        assertEquals("brown", te.next().utf8ToString());
+        td = te.docs(delDocs, td);
+        assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
+        assertEquals(0, td.docID());
+        assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
+
+        assertEquals("fox", te.next().utf8ToString());
+        td = te.docs(delDocs, td);
+        assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
+        assertEquals(0, td.docID());
+        assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
+
+        assertEquals("jumps", te.next().utf8ToString());
+        td = te.docs(delDocs, td);
+        assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
+        assertEquals(0, td.docID());
+        assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
+
+        assertEquals("quick", te.next().utf8ToString());
+        td = te.docs(delDocs, td);
+        assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
+        assertEquals(0, td.docID());
+        assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
+
+        assertEquals("the", te.next().utf8ToString());
+        td = te.docs(delDocs, td);
+        assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
+        assertEquals(0, td.docID());
+        assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
+
+        assertNull(te.next());
+        f = fe.next();
+        assertEquals("field3", f);
+        te = fe.terms();
+
+        assertEquals("dog", te.next().utf8ToString());
+        td = te.docs(delDocs, td);
+        assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
+        assertEquals(0, td.docID());
+        assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
+
+        assertEquals("fox", te.next().utf8ToString());
+        td = te.docs(delDocs, td);
+        assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
+        assertEquals(0, td.docID());
+        assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
+
+        assertEquals("jumps", te.next().utf8ToString());
+        td = te.docs(delDocs, td);
+        assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
+        assertEquals(0, td.docID());
+        assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
+
+        assertEquals("lazy", te.next().utf8ToString());
+        td = te.docs(delDocs, td);
+        assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
+        assertEquals(0, td.docID());
+        assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
+
+        assertEquals("over", te.next().utf8ToString());
+        td = te.docs(delDocs, td);
+        assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
+        assertEquals(0, td.docID());
+        assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
+
+        assertEquals("the", te.next().utf8ToString());
+        td = te.docs(delDocs, td);
+        assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
+        assertEquals(0, td.docID());
+        assertEquals(td.nextDoc(), DocsEnum.NO_MORE_DOCS);
+
+        assertNull(te.next());
     }
 }

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestPayloads.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestPayloads.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestPayloads.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestPayloads.java Wed Jun 16 15:17:32 2010
@@ -41,6 +41,7 @@ import org.apache.lucene.store.Directory
 import org.apache.lucene.store.FSDirectory;
 import org.apache.lucene.store.MockRAMDirectory;
 import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.UnicodeUtil;
 import org.apache.lucene.util._TestUtil;
@@ -141,8 +142,6 @@ public class TestPayloads extends Lucene
         analyzer.setPayloadData("f3", "somedata".getBytes(), 0, 3);
         writer.addDocument(d);
 
-        FlexTestUtil.verifyFlexVsPreFlex(rnd, writer);
-
         // force merge
         writer.optimize();
         // flush
@@ -154,7 +153,6 @@ public class TestPayloads extends Lucene
         assertTrue("Payload field bit should be set.", fi.fieldInfo("f2").storePayloads);
         assertTrue("Payload field bit should be set.", fi.fieldInfo("f3").storePayloads);
         reader.close();
-        FlexTestUtil.verifyFlexVsPreFlex(rnd, ram);
     }
 
     // Tests if payloads are correctly stored and loaded using both RamDirectory and FSDirectory
@@ -220,9 +218,7 @@ public class TestPayloads extends Lucene
             writer.addDocument(d);
         }
         
-        FlexTestUtil.verifyFlexVsPreFlex(rnd, writer);
         writer.optimize();
-        FlexTestUtil.verifyFlexVsPreFlex(rnd, writer);
         // flush
         writer.close();
         
@@ -232,83 +228,87 @@ public class TestPayloads extends Lucene
          * first we test if all payloads are stored correctly
          */        
         IndexReader reader = IndexReader.open(dir, true);
-        
+
         byte[] verifyPayloadData = new byte[payloadDataLength];
         offset = 0;
-        TermPositions[] tps = new TermPositions[numTerms];
+        DocsAndPositionsEnum[] tps = new DocsAndPositionsEnum[numTerms];
         for (int i = 0; i < numTerms; i++) {
-            tps[i] = reader.termPositions(terms[i]);
+          tps[i] = MultiFields.getTermPositionsEnum(reader,
+                                                    MultiFields.getDeletedDocs(reader),
+                                                    terms[i].field(),
+                                                    new BytesRef(terms[i].text()));
         }
         
-        while (tps[0].next()) {
+        while (tps[0].nextDoc() != DocsEnum.NO_MORE_DOCS) {
             for (int i = 1; i < numTerms; i++) {
-                tps[i].next();
+                tps[i].nextDoc();
             }
             int freq = tps[0].freq();
 
             for (int i = 0; i < freq; i++) {
                 for (int j = 0; j < numTerms; j++) {
                     tps[j].nextPosition();
-                    tps[j].getPayload(verifyPayloadData, offset);
-                    offset += tps[j].getPayloadLength();
+                    BytesRef br = tps[j].getPayload();
+                    System.arraycopy(br.bytes, br.offset, verifyPayloadData, offset, br.length);
+                    offset += br.length;
                 }
             }
         }
         
-        for (int i = 0; i < numTerms; i++) {
-            tps[i].close();
-        }
-        
         assertByteArrayEquals(payloadData, verifyPayloadData);
         
         /*
          *  test lazy skipping
          */        
-        TermPositions tp = reader.termPositions(terms[0]);
-        tp.next();
+        DocsAndPositionsEnum tp = MultiFields.getTermPositionsEnum(reader,
+                                                                   MultiFields.getDeletedDocs(reader),
+                                                                   terms[0].field(),
+                                                                   new BytesRef(terms[0].text()));
+        tp.nextDoc();
         tp.nextPosition();
         // NOTE: prior rev of this test was failing to first
         // call next here:
-        tp.next();
+        tp.nextDoc();
         // now we don't read this payload
         tp.nextPosition();
-        assertEquals("Wrong payload length.", 1, tp.getPayloadLength());
-        byte[] payload = tp.getPayload(null, 0);
-        assertEquals(payload[0], payloadData[numTerms]);
-        // NOTE: prior rev of this test was failing to first
-        // call next here:
-        tp.next();
+        BytesRef payload = tp.getPayload();
+        assertEquals("Wrong payload length.", 1, payload.length);
+        assertEquals(payload.bytes[payload.offset], payloadData[numTerms]);
+        tp.nextDoc();
         tp.nextPosition();
         
         // we don't read this payload and skip to a different document
-        tp.skipTo(5);
+        tp.advance(5);
         tp.nextPosition();
-        assertEquals("Wrong payload length.", 1, tp.getPayloadLength());
-        payload = tp.getPayload(null, 0);
-        assertEquals(payload[0], payloadData[5 * numTerms]);
+        payload = tp.getPayload();
+        assertEquals("Wrong payload length.", 1, payload.length);
+        assertEquals(payload.bytes[payload.offset], payloadData[5 * numTerms]);
                 
         
         /*
          * Test different lengths at skip points
          */
-        tp.seek(terms[1]);
-        tp.next();
+        tp = MultiFields.getTermPositionsEnum(reader,
+                                              MultiFields.getDeletedDocs(reader),
+                                              terms[1].field(),
+                                              new BytesRef(terms[1].text()));
+        tp.nextDoc();
         tp.nextPosition();
-        assertEquals("Wrong payload length.", 1, tp.getPayloadLength());
-        tp.skipTo(skipInterval - 1);
+        assertEquals("Wrong payload length.", 1, tp.getPayload().length);
+        tp.advance(skipInterval - 1);
         tp.nextPosition();
-        assertEquals("Wrong payload length.", 1, tp.getPayloadLength());
-        tp.skipTo(2 * skipInterval - 1);
+        assertEquals("Wrong payload length.", 1, tp.getPayload().length);
+        tp.advance(2 * skipInterval - 1);
         tp.nextPosition();
-        assertEquals("Wrong payload length.", 1, tp.getPayloadLength());
-        tp.skipTo(3 * skipInterval - 1);
+        assertEquals("Wrong payload length.", 1, tp.getPayload().length);
+        tp.advance(3 * skipInterval - 1);
         tp.nextPosition();
-        assertEquals("Wrong payload length.", 3 * skipInterval - 2 * numDocs - 1, tp.getPayloadLength());
+        assertEquals("Wrong payload length.", 3 * skipInterval - 2 * numDocs - 1, tp.getPayload().length);
         
         /*
          * Test multiple call of getPayload()
          */
-        tp.getPayload(null, 0);
+        assertFalse(tp.hasPayload());
         
         reader.close();
         
@@ -326,23 +326,24 @@ public class TestPayloads extends Lucene
         writer.addDocument(d);
 
         
-        FlexTestUtil.verifyFlexVsPreFlex(rnd, writer);
         writer.optimize();
-        FlexTestUtil.verifyFlexVsPreFlex(rnd, writer);
         // flush
         writer.close();
         
         reader = IndexReader.open(dir, true);
-        tp = reader.termPositions(new Term(fieldName, singleTerm));
-        tp.next();
+        tp = MultiFields.getTermPositionsEnum(reader,
+                                              MultiFields.getDeletedDocs(reader),
+                                              fieldName,
+                                              new BytesRef(singleTerm));
+        tp.nextDoc();
         tp.nextPosition();
-
-        verifyPayloadData = new byte[tp.getPayloadLength()];
-        tp.getPayload(verifyPayloadData, 0);
+        
+        BytesRef br = tp.getPayload();
+        verifyPayloadData = new byte[br.length];
         byte[] portion = new byte[1500];
         System.arraycopy(payloadData, 100, portion, 0, 1500);
         
-        assertByteArrayEquals(portion, verifyPayloadData);
+        assertByteArrayEquals(portion, br.bytes, br.offset, br.length);
         reader.close();
         
     }
@@ -389,6 +390,18 @@ public class TestPayloads extends Lucene
         }
       }    
     
+  void assertByteArrayEquals(byte[] b1, byte[] b2, int b2offset, int b2length) {
+        if (b1.length != b2length) {
+          fail("Byte arrays have different lengths: " + b1.length + ", " + b2length);
+        }
+        
+        for (int i = 0; i < b1.length; i++) {
+          if (b1[i] != b2[b2offset+i]) {
+            fail("Byte arrays different at index " + i + ": " + b1[i] + ", " + b2[b2offset+i]);
+          }
+        }
+      }    
+    
     
     /**
      * This Analyzer uses an WhitespaceTokenizer and PayloadFilter.
@@ -506,19 +519,20 @@ public class TestPayloads extends Lucene
         }
         writer.close();
         IndexReader reader = IndexReader.open(dir, true);
-        TermEnum terms = reader.terms();
-        while (terms.next()) {
-            TermPositions tp = reader.termPositions(terms.term());
-            while(tp.next()) {
-                int freq = tp.freq();
-                for (int i = 0; i < freq; i++) {
-                    tp.nextPosition();
-                    assertEquals(pool.bytesToString(tp.getPayload(new byte[5], 0)), terms.term().text);
-                }
+        TermsEnum terms = MultiFields.getFields(reader).terms(field).iterator();
+        Bits delDocs = MultiFields.getDeletedDocs(reader);
+        DocsAndPositionsEnum tp = null;
+        while (terms.next() != null) {
+          String termText = terms.term().utf8ToString();
+          tp = terms.docsAndPositions(delDocs, tp);
+          while(tp.nextDoc() != DocsEnum.NO_MORE_DOCS) {
+            int freq = tp.freq();
+            for (int i = 0; i < freq; i++) {
+              tp.nextPosition();
+              assertEquals(tp.getPayload().utf8ToString(), termText);
             }
-            tp.close();
+          }
         }
-        terms.close();
         reader.close();
         
         assertEquals(pool.size(), numThreads);

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentMerger.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentMerger.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentMerger.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentMerger.java Wed Jun 16 15:17:32 2010
@@ -23,6 +23,7 @@ import org.apache.lucene.store.Directory
 import org.apache.lucene.store.RAMDirectory;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.util.BytesRef;
 
 import java.io.IOException;
 import java.util.Collection;
@@ -85,9 +86,12 @@ public class TestSegmentMerger extends L
     assertTrue(newDoc2 != null);
     assertTrue(DocHelper.numFields(newDoc2) == DocHelper.numFields(doc2) - DocHelper.unstored.size());
     
-    TermDocs termDocs = mergedReader.termDocs(new Term(DocHelper.TEXT_FIELD_2_KEY, "field"));
+    DocsEnum termDocs = MultiFields.getTermDocsEnum(mergedReader,
+                                                    MultiFields.getDeletedDocs(mergedReader),
+                                                    DocHelper.TEXT_FIELD_2_KEY,
+                                                    new BytesRef("field"));
     assertTrue(termDocs != null);
-    assertTrue(termDocs.next() == true);
+    assertTrue(termDocs.nextDoc() != DocsEnum.NO_MORE_DOCS);
     
     Collection<String> stored = mergedReader.getFieldNames(IndexReader.FieldOption.INDEXED_WITH_TERMVECTOR);
     assertTrue(stored != null);

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentReader.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentReader.java Wed Jun 16 15:17:32 2010
@@ -23,6 +23,7 @@ import java.util.Iterator;
 import java.util.List;
 
 import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.BytesRef;
 
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Fieldable;
@@ -113,33 +114,40 @@ public class TestSegmentReader extends L
   } 
   
   public void testTerms() throws IOException {
-    TermEnum terms = reader.terms();
-    assertTrue(terms != null);
-    while (terms.next() == true)
-    {
-      Term term = terms.term();
-      assertTrue(term != null);
-      //System.out.println("Term: " + term);
-      String fieldValue = (String)DocHelper.nameValues.get(term.field());
-      assertTrue(fieldValue.indexOf(term.text()) != -1);
+    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();
+        assertTrue(term != null);
+        String fieldValue = (String) DocHelper.nameValues.get(field);
+        assertTrue(fieldValue.indexOf(term.utf8ToString()) != -1);
+      }
     }
     
-    TermDocs termDocs = reader.termDocs();
-    assertTrue(termDocs != null);
-    termDocs.seek(new Term(DocHelper.TEXT_FIELD_1_KEY, "field"));
-    assertTrue(termDocs.next() == true);
+    DocsEnum termDocs = MultiFields.getTermDocsEnum(reader,
+                                                    MultiFields.getDeletedDocs(reader),
+                                                    DocHelper.TEXT_FIELD_1_KEY,
+                                                    new BytesRef("field"));
+    assertTrue(termDocs.nextDoc() != DocsEnum.NO_MORE_DOCS);
+
+    termDocs = MultiFields.getTermDocsEnum(reader,
+                                           MultiFields.getDeletedDocs(reader),
+                                           DocHelper.NO_NORMS_KEY,
+                                           new BytesRef(DocHelper.NO_NORMS_TEXT));
 
-    termDocs.seek(new Term(DocHelper.NO_NORMS_KEY,  DocHelper.NO_NORMS_TEXT));
-    assertTrue(termDocs.next() == true);
+    assertTrue(termDocs.nextDoc() != DocsEnum.NO_MORE_DOCS);
 
     
-    TermPositions positions = reader.termPositions();
-    assertTrue(positions != null);
-    positions.seek(new Term(DocHelper.TEXT_FIELD_1_KEY, "field"));
+    DocsAndPositionsEnum positions = MultiFields.getTermPositionsEnum(reader,
+                                                                      MultiFields.getDeletedDocs(reader),
+                                                                      DocHelper.TEXT_FIELD_1_KEY,
+                                                                      new BytesRef("field"));
     // NOTE: prior rev of this test was failing to first
     // call next here:
-    assertTrue(positions.next());
-    assertTrue(positions.doc() == 0);
+    assertTrue(positions.nextDoc() != DocsEnum.NO_MORE_DOCS);
+    assertTrue(positions.docID() == 0);
     assertTrue(positions.nextPosition() >= 0);
   }    
   

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentTermDocs.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentTermDocs.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentTermDocs.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentTermDocs.java Wed Jun 16 15:17:32 2010
@@ -24,6 +24,7 @@ import org.apache.lucene.store.Directory
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.util.BytesRef;
 
 import java.io.IOException;
 
@@ -56,11 +57,12 @@ public class TestSegmentTermDocs extends
     SegmentReader reader = SegmentReader.get(true, info, indexDivisor);
     assertTrue(reader != null);
     assertEquals(indexDivisor, reader.getTermInfosIndexDivisor());
-    TermDocs termDocs = reader.termDocs();
-    assertTrue(termDocs != null);
-    termDocs.seek(new Term(DocHelper.TEXT_FIELD_2_KEY, "field"));
-    if (termDocs.next() == true)    {
-      int docId = termDocs.doc();
+
+    TermsEnum terms = reader.fields().terms(DocHelper.TEXT_FIELD_2_KEY).iterator();
+    terms.seek(new BytesRef("field"));
+    DocsEnum termDocs = terms.docs(reader.getDeletedDocs(), null);
+    if (termDocs.nextDoc() != DocsEnum.NO_MORE_DOCS)    {
+      int docId = termDocs.docID();
       assertTrue(docId == 0);
       int freq = termDocs.freq();
       assertTrue(freq == 3);  
@@ -77,20 +79,21 @@ public class TestSegmentTermDocs extends
       //After adding the document, we should be able to read it back in
       SegmentReader reader = SegmentReader.get(true, info, indexDivisor);
       assertTrue(reader != null);
-      TermDocs termDocs = reader.termDocs();
-      assertTrue(termDocs != null);
-      termDocs.seek(new Term("textField2", "bad"));
-      assertTrue(termDocs.next() == false);
+      DocsEnum termDocs = reader.termDocsEnum(reader.getDeletedDocs(),
+                                              "textField2",
+                                              new BytesRef("bad"));
+
+      assertNull(termDocs);
       reader.close();
     }
     {
       //After adding the document, we should be able to read it back in
       SegmentReader reader = SegmentReader.get(true, info, indexDivisor);
       assertTrue(reader != null);
-      TermDocs termDocs = reader.termDocs();
-      assertTrue(termDocs != null);
-      termDocs.seek(new Term("junk", "bad"));
-      assertTrue(termDocs.next() == false);
+      DocsEnum termDocs = reader.termDocsEnum(reader.getDeletedDocs(),
+                                              "junk",
+                                              new BytesRef("bad"));
+      assertNull(termDocs);
       reader.close();
     }
   }
@@ -121,105 +124,125 @@ public class TestSegmentTermDocs extends
     
     IndexReader reader = IndexReader.open(dir, null, true, indexDivisor);
 
-    TermDocs tdocs = reader.termDocs();
+    DocsEnum tdocs = MultiFields.getTermDocsEnum(reader,
+                                                 MultiFields.getDeletedDocs(reader),
+                                                 ta.field(),
+                                                 new BytesRef(ta.text()));
     
     // without optimization (assumption skipInterval == 16)
     
     // with next
-    tdocs.seek(ta);
-    assertTrue(tdocs.next());
-    assertEquals(0, tdocs.doc());
-    assertEquals(4, tdocs.freq());
-    assertTrue(tdocs.next());
-    assertEquals(1, tdocs.doc());
-    assertEquals(4, tdocs.freq());
-    assertTrue(tdocs.skipTo(0));
-    assertEquals(2, tdocs.doc());
-    assertTrue(tdocs.skipTo(4));
-    assertEquals(4, tdocs.doc());
-    assertTrue(tdocs.skipTo(9));
-    assertEquals(9, tdocs.doc());
-    assertFalse(tdocs.skipTo(10));
+    assertTrue(tdocs.nextDoc() != DocsEnum.NO_MORE_DOCS);
+    assertEquals(0, tdocs.docID());
+    assertEquals(4, tdocs.freq());
+    assertTrue(tdocs.nextDoc() != DocsEnum.NO_MORE_DOCS);
+    assertEquals(1, tdocs.docID());
+    assertEquals(4, tdocs.freq());
+    assertTrue(tdocs.advance(0) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(2, tdocs.docID());
+    assertTrue(tdocs.advance(4) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(4, tdocs.docID());
+    assertTrue(tdocs.advance(9) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(9, tdocs.docID());
+    assertFalse(tdocs.advance(10) != DocsEnum.NO_MORE_DOCS);
     
     // without next
-    tdocs.seek(ta);
-    assertTrue(tdocs.skipTo(0));
-    assertEquals(0, tdocs.doc());
-    assertTrue(tdocs.skipTo(4));
-    assertEquals(4, tdocs.doc());
-    assertTrue(tdocs.skipTo(9));
-    assertEquals(9, tdocs.doc());
-    assertFalse(tdocs.skipTo(10));
+    tdocs = MultiFields.getTermDocsEnum(reader,
+                                        MultiFields.getDeletedDocs(reader),
+                                        ta.field(),
+                                        new BytesRef(ta.text()));
+    
+    assertTrue(tdocs.advance(0) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(0, tdocs.docID());
+    assertTrue(tdocs.advance(4) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(4, tdocs.docID());
+    assertTrue(tdocs.advance(9) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(9, tdocs.docID());
+    assertFalse(tdocs.advance(10) != DocsEnum.NO_MORE_DOCS);
     
     // exactly skipInterval documents and therefore with optimization
     
     // with next
-    tdocs.seek(tb);
-    assertTrue(tdocs.next());
-    assertEquals(10, tdocs.doc());
-    assertEquals(4, tdocs.freq());
-    assertTrue(tdocs.next());
-    assertEquals(11, tdocs.doc());
-    assertEquals(4, tdocs.freq());
-    assertTrue(tdocs.skipTo(5));
-    assertEquals(12, tdocs.doc());
-    assertTrue(tdocs.skipTo(15));
-    assertEquals(15, tdocs.doc());
-    assertTrue(tdocs.skipTo(24));
-    assertEquals(24, tdocs.doc());
-    assertTrue(tdocs.skipTo(25));
-    assertEquals(25, tdocs.doc());
-    assertFalse(tdocs.skipTo(26));
+    tdocs = MultiFields.getTermDocsEnum(reader,
+                                        MultiFields.getDeletedDocs(reader),
+                                        tb.field(),
+                                        new BytesRef(tb.text()));
+
+    assertTrue(tdocs.nextDoc() != DocsEnum.NO_MORE_DOCS);
+    assertEquals(10, tdocs.docID());
+    assertEquals(4, tdocs.freq());
+    assertTrue(tdocs.nextDoc() != DocsEnum.NO_MORE_DOCS);
+    assertEquals(11, tdocs.docID());
+    assertEquals(4, tdocs.freq());
+    assertTrue(tdocs.advance(5) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(12, tdocs.docID());
+    assertTrue(tdocs.advance(15) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(15, tdocs.docID());
+    assertTrue(tdocs.advance(24) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(24, tdocs.docID());
+    assertTrue(tdocs.advance(25) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(25, tdocs.docID());
+    assertFalse(tdocs.advance(26) != DocsEnum.NO_MORE_DOCS);
     
     // without next
-    tdocs.seek(tb);
-    assertTrue(tdocs.skipTo(5));
-    assertEquals(10, tdocs.doc());
-    assertTrue(tdocs.skipTo(15));
-    assertEquals(15, tdocs.doc());
-    assertTrue(tdocs.skipTo(24));
-    assertEquals(24, tdocs.doc());
-    assertTrue(tdocs.skipTo(25));
-    assertEquals(25, tdocs.doc());
-    assertFalse(tdocs.skipTo(26));
+    tdocs = MultiFields.getTermDocsEnum(reader,
+                                        MultiFields.getDeletedDocs(reader),
+                                        tb.field(),
+                                        new BytesRef(tb.text()));
+    
+    assertTrue(tdocs.advance(5) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(10, tdocs.docID());
+    assertTrue(tdocs.advance(15) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(15, tdocs.docID());
+    assertTrue(tdocs.advance(24) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(24, tdocs.docID());
+    assertTrue(tdocs.advance(25) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(25, tdocs.docID());
+    assertFalse(tdocs.advance(26) != DocsEnum.NO_MORE_DOCS);
     
     // much more than skipInterval documents and therefore with optimization
     
     // with next
-    tdocs.seek(tc);
-    assertTrue(tdocs.next());
-    assertEquals(26, tdocs.doc());
-    assertEquals(4, tdocs.freq());
-    assertTrue(tdocs.next());
-    assertEquals(27, tdocs.doc());
-    assertEquals(4, tdocs.freq());
-    assertTrue(tdocs.skipTo(5));
-    assertEquals(28, tdocs.doc());
-    assertTrue(tdocs.skipTo(40));
-    assertEquals(40, tdocs.doc());
-    assertTrue(tdocs.skipTo(57));
-    assertEquals(57, tdocs.doc());
-    assertTrue(tdocs.skipTo(74));
-    assertEquals(74, tdocs.doc());
-    assertTrue(tdocs.skipTo(75));
-    assertEquals(75, tdocs.doc());
-    assertFalse(tdocs.skipTo(76));
+    tdocs = MultiFields.getTermDocsEnum(reader,
+                                        MultiFields.getDeletedDocs(reader),
+                                        tc.field(),
+                                        new BytesRef(tc.text()));
+
+    assertTrue(tdocs.nextDoc() != DocsEnum.NO_MORE_DOCS);
+    assertEquals(26, tdocs.docID());
+    assertEquals(4, tdocs.freq());
+    assertTrue(tdocs.nextDoc() != DocsEnum.NO_MORE_DOCS);
+    assertEquals(27, tdocs.docID());
+    assertEquals(4, tdocs.freq());
+    assertTrue(tdocs.advance(5) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(28, tdocs.docID());
+    assertTrue(tdocs.advance(40) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(40, tdocs.docID());
+    assertTrue(tdocs.advance(57) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(57, tdocs.docID());
+    assertTrue(tdocs.advance(74) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(74, tdocs.docID());
+    assertTrue(tdocs.advance(75) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(75, tdocs.docID());
+    assertFalse(tdocs.advance(76) != DocsEnum.NO_MORE_DOCS);
     
     //without next
-    tdocs.seek(tc);
-    assertTrue(tdocs.skipTo(5));
-    assertEquals(26, tdocs.doc());
-    assertTrue(tdocs.skipTo(40));
-    assertEquals(40, tdocs.doc());
-    assertTrue(tdocs.skipTo(57));
-    assertEquals(57, tdocs.doc());
-    assertTrue(tdocs.skipTo(74));
-    assertEquals(74, tdocs.doc());
-    assertTrue(tdocs.skipTo(75));
-    assertEquals(75, tdocs.doc());
-    assertFalse(tdocs.skipTo(76));
+    tdocs = MultiFields.getTermDocsEnum(reader,
+                                        MultiFields.getDeletedDocs(reader),
+                                        tc.field(),
+                                        new BytesRef(tc.text()));
+    assertTrue(tdocs.advance(5) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(26, tdocs.docID());
+    assertTrue(tdocs.advance(40) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(40, tdocs.docID());
+    assertTrue(tdocs.advance(57) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(57, tdocs.docID());
+    assertTrue(tdocs.advance(74) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(74, tdocs.docID());
+    assertTrue(tdocs.advance(75) != DocsEnum.NO_MORE_DOCS);
+    assertEquals(75, tdocs.docID());
+    assertFalse(tdocs.advance(76) != DocsEnum.NO_MORE_DOCS);
     
-    tdocs.close();
     reader.close();
     dir.close();
   }

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentTermEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentTermEnum.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentTermEnum.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentTermEnum.java Wed Jun 16 15:17:32 2010
@@ -20,6 +20,7 @@ package org.apache.lucene.index;
 import java.io.IOException;
 
 import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
@@ -83,36 +84,32 @@ public class TestSegmentTermEnum extends
       throws IOException
   {
       IndexReader reader = IndexReader.open(dir, true);
-      TermEnum termEnum = null;
+      TermsEnum termEnum = MultiFields.getTerms(reader, "content").iterator();
 
     // create enumeration of all terms
-    termEnum = reader.terms();
     // go to the first term (aaa)
     termEnum.next();
     // assert that term is 'aaa'
-    assertEquals("aaa", termEnum.term().text());
+    assertEquals("aaa", termEnum.term().utf8ToString());
     assertEquals(200, termEnum.docFreq());
     // go to the second term (bbb)
     termEnum.next();
     // assert that term is 'bbb'
-    assertEquals("bbb", termEnum.term().text());
+    assertEquals("bbb", termEnum.term().utf8ToString());
     assertEquals(100, termEnum.docFreq());
 
-    termEnum.close();
 
-
-    // create enumeration of terms after term 'aaa', including 'aaa'
-    termEnum = reader.terms(new Term("content", "aaa"));
+    // create enumeration of terms after term 'aaa',
+    // including 'aaa'
+    termEnum.seek(new BytesRef("aaa"));
     // assert that term is 'aaa'
-    assertEquals("aaa", termEnum.term().text());
+    assertEquals("aaa", termEnum.term().utf8ToString());
     assertEquals(200, termEnum.docFreq());
     // go to term 'bbb'
     termEnum.next();
     // assert that term is 'bbb'
-    assertEquals("bbb", termEnum.term().text());
+    assertEquals("bbb", termEnum.term().utf8ToString());
     assertEquals(100, termEnum.docFreq());
-
-    termEnum.close();
   }
 
   private void addDoc(IndexWriter writer, String value) throws IOException

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestStressIndexing.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestStressIndexing.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestStressIndexing.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestStressIndexing.java Wed Jun 16 15:17:32 2010
@@ -153,8 +153,6 @@ public class TestStressIndexing extends 
 
     modifier.close();
 
-    FlexTestUtil.verifyFlexVsPreFlex(RANDOM, directory);
-
     for(int i=0;i<numThread;i++)
       assertTrue(! threads[i].failed);
 

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestStressIndexing2.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestStressIndexing2.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestStressIndexing2.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestStressIndexing2.java Wed Jun 16 15:17:32 2010
@@ -71,8 +71,6 @@ public class TestStressIndexing2 extends
     IndexReader r = dw.writer.getReader();
     dw.writer.commit();
     verifyEquals(r, dir, "id");
-    FlexTestUtil.verifyFlexVsPreFlex(this.r, r);
-    FlexTestUtil.verifyFlexVsPreFlex(this.r, dir);
     r.close();
     dw.writer.close();
     dir.close();
@@ -94,8 +92,6 @@ public class TestStressIndexing2 extends
     // verifyEquals(dir2, dir2, "id");
 
     verifyEquals(dir1, dir2, "id");
-    FlexTestUtil.verifyFlexVsPreFlex(r, dir1);
-    FlexTestUtil.verifyFlexVsPreFlex(r, dir2);
   }
 
   public void testMultiConfig() throws Throwable {
@@ -121,9 +117,6 @@ public class TestStressIndexing2 extends
       indexSerial(docs, dir2);
       //System.out.println("TEST: verify");
       verifyEquals(dir1, dir2, "id");
-
-      FlexTestUtil.verifyFlexVsPreFlex(r, dir1);
-      FlexTestUtil.verifyFlexVsPreFlex(r, dir2);
     }
   }
 

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermdocPerf.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermdocPerf.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermdocPerf.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermdocPerf.java Wed Jun 16 15:17:32 2010
@@ -30,6 +30,7 @@ import org.apache.lucene.index.IndexWrit
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.RAMDirectory;
 import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.BytesRef;
 
 class RepeatingTokenStream extends TokenStream {
   public int num;
@@ -94,16 +95,18 @@ public class TestTermdocPerf extends Luc
     if (VERBOSE) System.out.println("milliseconds for creation of " + ndocs + " docs = " + (end-start));
 
     IndexReader reader = IndexReader.open(dir, true);
-    TermEnum tenum = reader.terms(new Term("foo","val"));
-    TermDocs tdocs = reader.termDocs();
+
+    TermsEnum tenum = MultiFields.getTerms(reader, "foo").iterator();
 
     start = System.currentTimeMillis();
 
     int ret=0;
+    DocsEnum tdocs = null;
     for (int i=0; i<iter; i++) {
-      tdocs.seek(tenum);
-      while (tdocs.next()) {
-        ret += tdocs.doc();
+      tenum.seek(new BytesRef("val"));
+      tdocs = tenum.docs(MultiFields.getDeletedDocs(reader), tdocs);
+      while (tdocs.nextDoc() != DocsEnum.NO_MORE_DOCS) {
+        ret += tdocs.docID();
       }
     }
 

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/JustCompileSearch.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/JustCompileSearch.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/JustCompileSearch.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/JustCompileSearch.java Wed Jun 16 15:17:32 2010
@@ -298,25 +298,6 @@ final class JustCompileSearch {
     
   }
 
-  static final class JustCompileFilteredTermEnum extends FilteredTermEnum {
-
-    @Override
-    public float difference() {
-      throw new UnsupportedOperationException(UNSUPPORTED_MSG);
-    }
-
-    @Override
-    protected boolean endEnum() {
-      throw new UnsupportedOperationException(UNSUPPORTED_MSG);
-    }
-
-    @Override
-    protected boolean termCompare(Term term) {
-      throw new UnsupportedOperationException(UNSUPPORTED_MSG);
-    }
-    
-  }
-
   static final class JustCompilePhraseScorer extends PhraseScorer {
 
     JustCompilePhraseScorer(Weight weight, DocsAndPositionsEnum[] docs, int[] offsets,

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestAutomatonQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestAutomatonQuery.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestAutomatonQuery.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestAutomatonQuery.java Wed Jun 16 15:17:32 2010
@@ -196,10 +196,4 @@ public class TestAutomatonQuery extends 
     assertSame(TermsEnum.EMPTY, aq.getTermsEnum(searcher.getIndexReader()));
     assertEquals(0, automatonQueryNrHits(aq));
   }
-  
-  @Deprecated
-  public void testBackwardsLayer() {
-    assertTrue(new AutomatonQuery(newTerm("bogus"), BasicAutomata
-        .makeString("piece")).hasNewAPI);
-  }
 }

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestFuzzyQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestFuzzyQuery.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestFuzzyQuery.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestFuzzyQuery.java Wed Jun 16 15:17:32 2010
@@ -377,10 +377,4 @@ public class TestFuzzyQuery extends Luce
     doc.add(new Field("field", text, Field.Store.YES, Field.Index.ANALYZED));
     writer.addDocument(doc);
   }
-  
-  @Deprecated
-  public void testBackwardsLayer() {
-    assertTrue(new FuzzyQuery(new Term("dummy", "dummy")).hasNewAPI);
-  }
-
 }

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestMultiPhraseQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestMultiPhraseQuery.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestMultiPhraseQuery.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestMultiPhraseQuery.java Wed Jun 16 15:17:32 2010
@@ -19,21 +19,20 @@ package org.apache.lucene.search;
 
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.TermEnum;
+import org.apache.lucene.index.TermsEnum;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.MultiFields;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.store.MockRAMDirectory;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.Version;
 
 import java.io.IOException;
-import java.util.HashSet;
 import java.util.LinkedList;
-import java.util.Collections;
 
 /**
  * This class tests the MultiPhraseQuery class.
@@ -73,13 +72,16 @@ public class TestMultiPhraseQuery extend
 
         // this TermEnum gives "piccadilly", "pie" and "pizza".
         String prefix = "pi";
-        TermEnum te = ir.terms(new Term("body", prefix));
+        TermsEnum te = MultiFields.getFields(ir).terms("body").iterator();
+        te.seek(new BytesRef(prefix));
         do {
-            if (te.term().text().startsWith(prefix))
-            {
-                termsWithPrefix.add(te.term());
+            String s = te.term().utf8ToString();
+            if (s.startsWith(prefix)) {
+              termsWithPrefix.add(new Term("body", s));
+            } else {
+              break;
             }
-        } while (te.next());
+        } while (te.next() != null);
 
         query1.add(termsWithPrefix.toArray(new Term[0]));
         assertEquals("body:\"blueberry (piccadilly pie pizza)\"", query1.toString());
@@ -96,13 +98,14 @@ public class TestMultiPhraseQuery extend
         MultiPhraseQuery query3 = new MultiPhraseQuery();
         termsWithPrefix.clear();
         prefix = "blue";
-        te = ir.terms(new Term("body", prefix));
+        te.seek(new BytesRef(prefix));
+
         do {
-            if (te.term().text().startsWith(prefix))
+            if (te.term().utf8ToString().startsWith(prefix))
             {
-                termsWithPrefix.add(te.term());
+              termsWithPrefix.add(new Term("body", te.term().utf8ToString()));
             }
-        } while (te.next());
+        } while (te.next() != null);
         ir.close();
         query3.add(termsWithPrefix.toArray(new Term[0]));
         query3.add(new Term("body", "pizza"));

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestNumericRangeQuery64.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestNumericRangeQuery64.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestNumericRangeQuery64.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestNumericRangeQuery64.java Wed Jun 16 15:17:32 2010
@@ -590,10 +590,4 @@ public class TestNumericRangeQuery64 ext
     );
      // difference to int range is tested in TestNumericRangeQuery32
   }
-  
-  @Test @Deprecated
-  public void testBackwardsLayer() {
-    assertTrue(NumericRangeQuery.newLongRange("dummy", null, null, true, true).hasNewAPI);
-  }
-  
 }

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestPhrasePrefixQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestPhrasePrefixQuery.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestPhrasePrefixQuery.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestPhrasePrefixQuery.java Wed Jun 16 15:17:32 2010
@@ -21,11 +21,13 @@ import org.apache.lucene.util.LuceneTest
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.index.TermsEnum;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.TermEnum;
+import org.apache.lucene.index.MultiFields;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.store.RAMDirectory;
 
 import java.io.IOException;
@@ -79,13 +81,16 @@ public class TestPhrasePrefixQuery exten
 
         // this TermEnum gives "piccadilly", "pie" and "pizza".
         String prefix = "pi";
-        TermEnum te = ir.terms(new Term("body", prefix + "*"));
+        TermsEnum te = MultiFields.getFields(ir).terms("body").iterator();
+        te.seek(new BytesRef(prefix));
         do {
-            if (te.term().text().startsWith(prefix))
-            {
-                termsWithPrefix.add(te.term());
+            String s = te.term().utf8ToString();
+            if (s.startsWith(prefix)) {
+              termsWithPrefix.add(new Term("body", s));
+            } else {
+              break;
             }
-        } while (te.next());
+        } while (te.next() != null);
 
         query1.add(termsWithPrefix.toArray(new Term[0]));
         query2.add(termsWithPrefix.toArray(new Term[0]));

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestPositionIncrement.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestPositionIncrement.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestPositionIncrement.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestPositionIncrement.java Wed Jun 16 15:17:32 2010
@@ -32,11 +32,12 @@ import org.apache.lucene.analysis.tokena
 import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.index.MultiFields;
+import org.apache.lucene.index.DocsAndPositionsEnum;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.TermPositions;
 import org.apache.lucene.queryParser.QueryParser;
 import org.apache.lucene.store.MockRAMDirectory;
 import org.apache.lucene.store.Directory;
@@ -50,6 +51,7 @@ import org.apache.lucene.search.spans.Sp
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.automaton.CharacterRunAutomaton;
 import org.apache.lucene.util.automaton.RegExp;
+import org.apache.lucene.util.BytesRef;
 
 /**
  * Term position unit test.
@@ -99,13 +101,19 @@ public class TestPositionIncrement exten
 
     IndexSearcher searcher = new IndexSearcher(store, true);
     
-    TermPositions pos = searcher.getIndexReader().termPositions(new Term("field", "1"));
-    pos.next();
+    DocsAndPositionsEnum pos = MultiFields.getTermPositionsEnum(searcher.getIndexReader(),
+                                                                MultiFields.getDeletedDocs(searcher.getIndexReader()),
+                                                                "field",
+                                                                new BytesRef("1"));
+    pos.nextDoc();
     // first token should be at position 0
     assertEquals(0, pos.nextPosition());
     
-    pos = searcher.getIndexReader().termPositions(new Term("field", "2"));
-    pos.next();
+    pos = MultiFields.getTermPositionsEnum(searcher.getIndexReader(),
+                                           MultiFields.getDeletedDocs(searcher.getIndexReader()),
+                                           "field",
+                                           new BytesRef("2"));
+    pos.nextDoc();
     // second token should be at position 2
     assertEquals(2, pos.nextPosition());
     
@@ -238,9 +246,13 @@ public class TestPositionIncrement exten
 
     IndexReader r = writer.getReader();
 
-    TermPositions tp = r.termPositions(new Term("content", "a"));
+    DocsAndPositionsEnum tp = MultiFields.getTermPositionsEnum(r,
+                                                               MultiFields.getDeletedDocs(r),
+                                                               "content",
+                                                               new BytesRef("a"));
+    
     int count = 0;
-    assertTrue(tp.next());
+    assertTrue(tp.nextDoc() != tp.NO_MORE_DOCS);
     // "a" occurs 4 times
     assertEquals(4, tp.freq());
     int expected = 0;
@@ -250,7 +262,7 @@ public class TestPositionIncrement exten
     assertEquals(6, tp.nextPosition());
 
     // only one doc has "a"
-    assertFalse(tp.next());
+    assertEquals(tp.NO_MORE_DOCS, tp.nextDoc());
 
     IndexSearcher is = new IndexSearcher(r);
   

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestPrefixQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestPrefixQuery.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestPrefixQuery.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestPrefixQuery.java Wed Jun 16 15:17:32 2010
@@ -59,9 +59,4 @@ public class TestPrefixQuery extends Luc
     hits = searcher.search(query, null, 1000).scoreDocs;
     assertEquals("everything", 3, hits.length);
   }
-  
-  @Deprecated
-  public void testBackwardsLayer() {
-    assertTrue(new PrefixQuery(new Term("dummy", "dummy")).hasNewAPI);
-  }
 }

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestRegexpQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestRegexpQuery.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestRegexpQuery.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestRegexpQuery.java Wed Jun 16 15:17:32 2010
@@ -25,7 +25,6 @@ import org.apache.lucene.document.Docume
 import org.apache.lucene.document.Field;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.store.RAMDirectory;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.automaton.Automaton;
@@ -120,9 +119,4 @@ public class TestRegexpQuery extends Luc
   public void testBacktracking() throws IOException {
     assertEquals(1, regexQueryNrHits("4934[314]"));
   }
-  
-  @Deprecated
-  public void testBackwardsLayer() {
-    assertTrue(new RegexpQuery(newTerm(".*")).hasNewAPI);
-  }
 }

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestTermRangeQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestTermRangeQuery.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestTermRangeQuery.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestTermRangeQuery.java Wed Jun 16 15:17:32 2010
@@ -420,9 +420,4 @@ public class TestTermRangeQuery extends 
     //assertEquals("C added => A,B,<empty string>,C in range", 3, hits.length());
      searcher.close();
   }
-  
-  @Deprecated
-  public void testBackwardsLayer() {
-    assertTrue(new TermRangeQuery("dummy", null, null, true, true).hasNewAPI);
-  }
 }

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestTermVectors.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestTermVectors.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestTermVectors.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestTermVectors.java Wed Jun 16 15:17:32 2010
@@ -244,40 +244,38 @@ public class TestTermVectors extends Luc
       writer.addDocument(testDoc4);
       writer.close();
       IndexSearcher knownSearcher = new IndexSearcher(dir, true);
-      TermEnum termEnum = knownSearcher.reader.terms();
-      TermDocs termDocs = knownSearcher.reader.termDocs();
-      //System.out.println("Terms: " + termEnum.size() + " Orig Len: " + termArray.length);
-      
-      //Similarity sim = knownSearcher.getSimilarity();
-      while (termEnum.next() == true)
-      {
-        Term term = termEnum.term();
-        //System.out.println("Term: " + term);
-        termDocs.seek(term);
-        while (termDocs.next())
-        {
-          int docId = termDocs.doc();
-          int freq = termDocs.freq();
-          //System.out.println("Doc Id: " + docId + " freq " + freq);
-          TermFreqVector vector = knownSearcher.reader.getTermFreqVector(docId, "field");
-          //float tf = sim.tf(freq);
-          //float idf = sim.idf(knownSearcher.docFreq(term), knownSearcher.maxDoc());
-          //float qNorm = sim.queryNorm()
-          //This is fine since we don't have stop words
-          //float lNorm = sim.lengthNorm("field", vector.getTerms().length);
-          //float coord = sim.coord()
-          //System.out.println("TF: " + tf + " IDF: " + idf + " LenNorm: " + lNorm);
-          assertTrue(vector != null);
-          String[] vTerms = vector.getTerms();
-          int [] freqs = vector.getTermFrequencies();
-          for (int i = 0; i < vTerms.length; i++)
-          {
-            if (term.text().equals(vTerms[i]))
-            {
-              assertTrue(freqs[i] == freq);
-            }
+      FieldsEnum fields = MultiFields.getFields(knownSearcher.reader).iterator();
+
+      DocsEnum docs = null;
+      while(fields.next() != null) {
+        TermsEnum terms = fields.terms();
+        while(terms.next() != null) {
+          String text = terms.term().utf8ToString();
+          docs = terms.docs(MultiFields.getDeletedDocs(knownSearcher.reader), docs);
+
+          while (docs.nextDoc() != DocsEnum.NO_MORE_DOCS) {
+            int docId = docs.docID();
+            int freq = docs.freq();
+            //System.out.println("Doc Id: " + docId + " freq " + freq);
+            TermFreqVector vector = knownSearcher.reader.getTermFreqVector(docId, "field");
+            //float tf = sim.tf(freq);
+            //float idf = sim.idf(knownSearcher.docFreq(term), knownSearcher.maxDoc());
+            //float qNorm = sim.queryNorm()
+            //This is fine since we don't have stop words
+            //float lNorm = sim.lengthNorm("field", vector.getTerms().length);
+            //float coord = sim.coord()
+            //System.out.println("TF: " + tf + " IDF: " + idf + " LenNorm: " + lNorm);
+            assertTrue(vector != null);
+            String[] vTerms = vector.getTerms();
+            int [] freqs = vector.getTermFrequencies();
+            for (int i = 0; i < vTerms.length; i++)
+              {
+                if (text.equals(vTerms[i]))
+                  {
+                    assertTrue(freqs[i] == freq);
+                  }
+              }
           }
-          
         }
         //System.out.println("--------");
       }

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestWildcard.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestWildcard.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestWildcard.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestWildcard.java Wed Jun 16 15:17:32 2010
@@ -19,12 +19,10 @@ package org.apache.lucene.search;
 
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.analysis.MockAnalyzer;
-import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.Field.Store;
 import org.apache.lucene.document.Field.Index;
-import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.Term;
@@ -309,62 +307,4 @@ public class TestWildcard
 
     searcher.close();
   }
-  @Deprecated
-  private static final class OldWildcardQuery extends MultiTermQuery {
-    final Term term;
-  
-    OldWildcardQuery(Term term) {
-      this.term = term;
-    }
-      
-    @Override
-    protected FilteredTermEnum getEnum(IndexReader reader) throws IOException {
-      return new WildcardTermEnum(reader, term);
-    }
-    
-    @Override
-    public String toString(String field) {
-      return "OldWildcard(" + term.toString()+ ")";
-    }
-  }
-  
-  @Deprecated
-  public void testDeprecatedTermEnum() throws Exception {
-    RAMDirectory indexStore = getIndexStore("body", new String[]
-    {"metal", "metals"});
-    IndexSearcher searcher = new IndexSearcher(indexStore, true);
-    Query query1 = new TermQuery(new Term("body", "metal"));
-    Query query2 = new OldWildcardQuery(new Term("body", "metal*"));
-    Query query3 = new OldWildcardQuery(new Term("body", "m*tal"));
-    Query query4 = new OldWildcardQuery(new Term("body", "m*tal*"));
-    Query query5 = new OldWildcardQuery(new Term("body", "m*tals"));
-
-    BooleanQuery query6 = new BooleanQuery();
-    query6.add(query5, BooleanClause.Occur.SHOULD);
-
-    BooleanQuery query7 = new BooleanQuery();
-    query7.add(query3, BooleanClause.Occur.SHOULD);
-    query7.add(query5, BooleanClause.Occur.SHOULD);
-
-    // Queries do not automatically lower-case search terms:
-    Query query8 = new OldWildcardQuery(new Term("body", "M*tal*"));
-
-    assertMatches(searcher, query1, 1);
-    assertMatches(searcher, query2, 2);
-    assertMatches(searcher, query3, 1);
-    assertMatches(searcher, query4, 2);
-    assertMatches(searcher, query5, 1);
-    assertMatches(searcher, query6, 1);
-    assertMatches(searcher, query7, 2);
-    assertMatches(searcher, query8, 0);
-    assertMatches(searcher, new OldWildcardQuery(new Term("body", "*tall")), 0);
-    assertMatches(searcher, new OldWildcardQuery(new Term("body", "*tal")), 1);
-    assertMatches(searcher, new OldWildcardQuery(new Term("body", "*tal*")), 2);
-  }
-  
-  @Deprecated
-  public void testBackwardsLayer() {
-    assertTrue(new WildcardQuery(new Term("body", "metal*")).hasNewAPI);
-    assertFalse(new OldWildcardQuery(new Term("body", "metal*")).hasNewAPI);
-  }
 }

Modified: lucene/dev/trunk/modules/analysis/common/src/java/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/analysis/common/src/java/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzer.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/modules/analysis/common/src/java/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzer.java (original)
+++ lucene/dev/trunk/modules/analysis/common/src/java/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzer.java Wed Jun 16 15:17:32 2010
@@ -18,12 +18,14 @@ package org.apache.lucene.analysis.query
 
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.TermEnum;
+import org.apache.lucene.index.TermsEnum;
+import org.apache.lucene.index.Terms;
+import org.apache.lucene.index.MultiFields;
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.analysis.core.StopFilter;
-import org.apache.lucene.util.StringHelper;
 import org.apache.lucene.util.Version;
+import org.apache.lucene.util.BytesRef;
 
 import java.io.IOException;
 import java.io.Reader;
@@ -141,20 +143,15 @@ public final class QueryAutoStopWordAnal
    */
   public int addStopWords(IndexReader reader, String fieldName, int maxDocFreq) throws IOException {
     HashSet<String> stopWords = new HashSet<String>();
-    String internedFieldName = StringHelper.intern(fieldName);
-    TermEnum te = reader.terms(new Term(fieldName));
-    Term term = te.term();
-    while (term != null) {
-      if (term.field() != internedFieldName) {
-        break;
+    Terms terms = MultiFields.getTerms(reader, fieldName);
+    if (terms != null) {
+      TermsEnum te = terms.iterator();
+      BytesRef text;
+      while ((text = te.next()) != null) {
+        if (te.docFreq() > maxDocFreq) {
+          stopWords.add(text.utf8ToString());
+        }
       }
-      if (te.docFreq() > maxDocFreq) {
-        stopWords.add(term.text());
-      }
-      if (!te.next()) {
-        break;
-      }
-      term = te.term();
     }
     stopWordsPerField.put(fieldName, stopWords);
     

Modified: lucene/dev/trunk/modules/analysis/common/src/test/org/apache/lucene/analysis/core/TestKeywordAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/analysis/common/src/test/org/apache/lucene/analysis/core/TestKeywordAnalyzer.java?rev=955257&r1=955256&r2=955257&view=diff
==============================================================================
--- lucene/dev/trunk/modules/analysis/common/src/test/org/apache/lucene/analysis/core/TestKeywordAnalyzer.java (original)
+++ lucene/dev/trunk/modules/analysis/common/src/test/org/apache/lucene/analysis/core/TestKeywordAnalyzer.java Wed Jun 16 15:17:32 2010
@@ -21,17 +21,17 @@ import java.io.StringReader;
 
 import org.apache.lucene.analysis.BaseTokenStreamTestCase;
 import org.apache.lucene.analysis.TokenStream;
-import org.apache.lucene.analysis.core.KeywordAnalyzer;
 import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.Term;
-import org.apache.lucene.index.TermDocs;
+import org.apache.lucene.index.DocsEnum;
+import org.apache.lucene.index.MultiFields;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.store.RAMDirectory;
+import org.apache.lucene.util.BytesRef;
 
 public class TestKeywordAnalyzer extends BaseTokenStreamTestCase {
   
@@ -82,10 +82,16 @@ public class TestKeywordAnalyzer extends
     writer.close();
 
     IndexReader reader = IndexReader.open(dir, true);
-    TermDocs td = reader.termDocs(new Term("partnum", "Q36"));
-    assertTrue(td.next());
-    td = reader.termDocs(new Term("partnum", "Q37"));
-    assertTrue(td.next());
+    DocsEnum td = MultiFields.getTermDocsEnum(reader,
+                                              MultiFields.getDeletedDocs(reader),
+                                              "partnum",
+                                              new BytesRef("Q36"));
+    assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
+    td = MultiFields.getTermDocsEnum(reader,
+                                     MultiFields.getDeletedDocs(reader),
+                                     "partnum",
+                                     new BytesRef("Q37"));
+    assertTrue(td.nextDoc() != DocsEnum.NO_MORE_DOCS);
   }
 
   // LUCENE-1441