You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2012/08/09 18:19:08 UTC

svn commit: r1371291 - in /lucene/dev/trunk/lucene: CHANGES.txt core/src/java/org/apache/lucene/index/MultiFields.java core/src/test/org/apache/lucene/index/TestMultiFields.java

Author: rmuir
Date: Thu Aug  9 16:19:08 2012
New Revision: 1371291

URL: http://svn.apache.org/viewvc?rev=1371291&view=rev
Log:
LUCENE-4298: MultiFields.getTermDocsEnum(Reader,Bits,String,BytesRef) did not work at all

Modified:
    lucene/dev/trunk/lucene/CHANGES.txt
    lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/MultiFields.java
    lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestMultiFields.java

Modified: lucene/dev/trunk/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/CHANGES.txt?rev=1371291&r1=1371290&r2=1371291&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/CHANGES.txt (original)
+++ lucene/dev/trunk/lucene/CHANGES.txt Thu Aug  9 16:19:08 2012
@@ -16,6 +16,10 @@ Bug Fixes
   than 1 when overlap == maxOverlap (always the case for conjunctions),
   then the score would be incorrect.  (Pascal Chollet, Robert Muir)
 
+* LUCENE-4298: MultiFields.getTermDocsEnum(IndexReader, Bits, String, BytesRef)
+  did not work at all, it would infinitely recurse.
+  (Alberto Paro via Robert Muir)
+
 ======================= Lucene 4.0.0-BETA =======================
 
 New features

Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/MultiFields.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/MultiFields.java?rev=1371291&r1=1371290&r2=1371291&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/MultiFields.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/MultiFields.java Thu Aug  9 16:19:08 2012
@@ -125,7 +125,7 @@ public final class MultiFields extends F
    *  term.  This will return null if the field or term does
    *  not exist. */
   public static DocsEnum getTermDocsEnum(IndexReader r, Bits liveDocs, String field, BytesRef term) throws IOException {
-    return getTermDocsEnum(r, liveDocs, field, term);
+    return getTermDocsEnum(r, liveDocs, field, term, DocsEnum.FLAG_FREQS);
   }
   
   /** Returns {@link DocsEnum} for the specified field &

Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestMultiFields.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestMultiFields.java?rev=1371291&r1=1371290&r2=1371291&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestMultiFields.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestMultiFields.java Thu Aug  9 16:19:08 2012
@@ -169,4 +169,22 @@ public class TestMultiFields extends Luc
     r.close();
     dir.close();
   }
+  
+  public void testTermDocsEnum() throws Exception {
+    Directory dir = newDirectory();
+    IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
+    Document d = new Document();
+    d.add(newStringField("f", "j", Field.Store.NO));
+    w.addDocument(d);
+    w.commit();
+    w.addDocument(d);
+    IndexReader r = w.getReader();
+    w.close();
+    DocsEnum de = MultiFields.getTermDocsEnum(r, null, "f", new BytesRef("j"));
+    assertEquals(0, de.nextDoc());
+    assertEquals(1, de.nextDoc());
+    assertEquals(DocIdSetIterator.NO_MORE_DOCS, de.nextDoc());
+    r.close();
+    dir.close();
+  }
 }