You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mv...@apache.org on 2011/07/11 15:48:08 UTC

svn commit: r1145176 - in /lucene/dev/branches/branch_3x/solr/src: java/org/apache/solr/search/Grouping.java test/org/apache/solr/TestGroupingSearch.java

Author: mvg
Date: Mon Jul 11 13:48:08 2011
New Revision: 1145176

URL: http://svn.apache.org/viewvc?rev=1145176&view=rev
Log:
SOLR-2564: Fixed ArrayIndexOutOfBoundsException when using simple format (3x branch)

Modified:
    lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/Grouping.java
    lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/TestGroupingSearch.java

Modified: lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/Grouping.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/Grouping.java?rev=1145176&r1=1145175&r2=1145176&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/Grouping.java (original)
+++ lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/Grouping.java Mon Jul 11 13:48:08 2011
@@ -540,7 +540,7 @@ public class Grouping {
         }
       }
 
-      int len = Math.min(numGroups, docsGathered);
+      int len = docsGathered - offset;
       if (offset > len) {
         len = 0;
       }

Modified: lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/TestGroupingSearch.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/TestGroupingSearch.java?rev=1145176&r1=1145175&r2=1145176&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/TestGroupingSearch.java (original)
+++ lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/TestGroupingSearch.java Mon Jul 11 13:48:08 2011
@@ -210,7 +210,22 @@ public class TestGroupingSearch extends 
             );
   }
 
+  @Test
+  public void testGroupingSimpleFormatArrayIndexOutOfBoundsException() throws Exception {
+    assertU(add(doc("id", "1")));
+    assertU(add(doc("id", "2")));
+    assertU(add(doc("id", "3")));
+    assertU(commit());
 
+    assertJQ(
+        req("q", "*:*", "start", "1", "group", "true", "group.field", "id", "group.main", "true"),
+        "/response=={'numFound':3,'start':1,'docs':[{'id':'2'},{'id':'3'}]}"
+    );
+    assertJQ(
+        req("q", "*:*", "start", "1", "rows", "1", "group", "true", "group.field", "id", "group.main", "true"),
+        "/response=={'numFound':3,'start':1,'docs':[{'id':'2'}]}"
+    );
+  }
 
   static String f = "foo_s1";
   static String f2 = "foo2_i";