Ard Schrijvers created JCR-3673:
-----------------------------------
Summary: ChildAxisQuery#advance method results in
IllegalArgumentException through #indexIsValid method
Key: JCR-3673
URL: https://issues.apache.org/jira/browse/JCR-3673
Project: Jackrabbit Content Repository
Issue Type: Bug
Reporter: Ard Schrijvers
Assignee: Ard Schrijvers
Priority: Minor
Fix For: 2.6.4
When ChildAxisQuery#advance is invoked, then the following while loop:
while (nextDoc > -1 && !indexIsValid(nextDoc)) {
nextDoc();
}
easily results in stacktrace below. This is because nextDoc returns
NO_MORE_DOCS (Integer.MAX_VALUE) in case there are no hits any more, which
results in IllegalArgumentException in indexIsValid
java.lang.IllegalArgumentException: docID must be >= 0 and < maxDoc=3
(got docID=2147483158)
at org.apache.lucene.index.SegmentReader.document(SegmentReader.java:490)
at org.apache.lucene.index.DirectoryReader.document(DirectoryReader.java:568)
at
org.apache.lucene.index.FilterIndexReader.document(FilterIndexReader.java:186)
at
org.apache.jackrabbit.core.query.lucene.CachingIndexReader.document(CachingIndexReader.java:291)
at
org.apache.lucene.index.FilterIndexReader.document(FilterIndexReader.java:186)
at
org.apache.lucene.index.FilterIndexReader.document(FilterIndexReader.java:186)
at org.apache.lucene.index.MultiReader.document(MultiReader.java:252)
at
org.apache.lucene.index.FilterIndexReader.document(FilterIndexReader.java:186)
at
org.apache.jackrabbit.core.query.lucene.ChildAxisQuery$ChildAxisScorer.indexIsValid(ChildAxisQuery.java:488)
at
org.apache.jackrabbit.core.query.lucene.ChildAxisQuery$ChildAxisScorer.advance(ChildAxisQuery.java:433)
--
This message was sent by Atlassian JIRA
(v6.1#6144)