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.