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/07/30 20:23:13 UTC

svn commit: r980909 - in /lucene/dev/trunk/lucene: CHANGES.txt src/test/org/apache/lucene/search/TestMultiPhraseQuery.java

Author: mikemccand
Date: Fri Jul 30 18:23:13 2010
New Revision: 980909

URL: http://svn.apache.org/viewvc?rev=980909&view=rev
Log:
LUCENE-2580: fix AIOOBE in MultiPhraseQuery

Modified:
    lucene/dev/trunk/lucene/CHANGES.txt
    lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestMultiPhraseQuery.java

Modified: lucene/dev/trunk/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/CHANGES.txt?rev=980909&r1=980908&r2=980909&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/CHANGES.txt (original)
+++ lucene/dev/trunk/lucene/CHANGES.txt Fri Jul 30 18:23:13 2010
@@ -457,6 +457,9 @@ Bug fixes
 * LUCENE-2537: FSDirectory.copy() implementation was unsafe and could result in 
   OOM if a large file was copied. (Shai Erera)
 
+* LUCENE-2580: MultiPhraseQuery throws AIOOBE if number of positions
+  exceeds number of terms at one position (Jayendra Patil via Mike McCandless)
+
 New features
 
 * LUCENE-2128: Parallelized fetching document frequencies during weight

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=980909&r1=980908&r2=980909&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 Fri Jul 30 18:23:13 2010
@@ -132,7 +132,25 @@ public class TestMultiPhraseQuery extend
     searcher.close();
     reader.close();
     indexStore.close();
-    
+  }
+
+  // LUCENE-2580
+  public void testTall() throws IOException {
+    MockRAMDirectory indexStore = new MockRAMDirectory();
+    RandomIndexWriter writer = new RandomIndexWriter(newRandom(), indexStore);
+    add("blueberry chocolate pie", writer);
+    add("blueberry chocolate tart", writer);
+    IndexReader r = writer.getReader();
+    writer.close();
+
+    IndexSearcher searcher = new IndexSearcher(r);
+    MultiPhraseQuery q = new MultiPhraseQuery();
+    q.add(new Term("body", "blueberry"));
+    q.add(new Term("body", "chocolate"));
+    q.add(new Term[] {new Term("body", "pie"), new Term("body", "tart")});
+    assertEquals(2, searcher.search(q, 1).totalHits);
+    r.close();
+    indexStore.close();
   }
   
   private void add(String s, RandomIndexWriter writer) throws IOException {