ArrayHits does not end properly when skipTo doesn't find document
-----------------------------------------------------------------

                 Key: JCR-1302
                 URL: https://issues.apache.org/jira/browse/JCR-1302
             Project: Jackrabbit
          Issue Type: Bug
          Components: query
    Affects Versions: 1.4
            Reporter: Rob Owen
             Fix For: 1.4


If skipTo(target) does not find a document that that has a higher value than 
the target, it falls out of the loop and calls next() possibly returning a 
previously found document. The patch makes sure that -1 is returned in this 
case, otherwise confusing results might occur.

Index: src/main/java/org/apache/jackrabbit/core/query/lucene/hits/ArrayHits.java
===================================================================
--- src/main/java/org/apache/jackrabbit/core/query/lucene/hits/ArrayHits.java   
(revision 608900)
+++ src/main/java/org/apache/jackrabbit/core/query/lucene/hits/ArrayHits.java   
(working copy)
@@ -87,9 +87,9 @@
             int nextDocValue = hits[i];
             if (nextDocValue >= target) {
                 index = i;
-                break;
+                return next();
             }
         }
-        return next();
+        return -1;
     }
 }


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to