jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Cédric Damioli (JIRA) <j...@apache.org>
Subject [jira] [Created] (JCR-3401) Wrong results when querying with a DescendantSelfAxisQuery
Date Tue, 31 Jul 2012 17:12:34 GMT
Cédric Damioli created JCR-3401:

             Summary: Wrong results when querying with a DescendantSelfAxisQuery
                 Key: JCR-3401
                 URL: https://issues.apache.org/jira/browse/JCR-3401
             Project: Jackrabbit Content Repository
          Issue Type: Bug
          Components: jackrabbit-core, query
    Affects Versions: 2.5, 2.4.2
            Reporter: Cédric Damioli
             Fix For: 2.4.3, 2.5.1, 2.6

It seems to be caused by the DescendantSelfAxisScorer in the method advance(int target) :

        public int advance(int target) throws IOException {
            if (currentDoc == NO_MORE_DOCS) {
                return currentDoc;

            // optimize in the case of an advance to finish.
            // see https://issues.apache.org/jira/browse/JCR-3082
            if (target == NO_MORE_DOCS) {
                currentDoc = NO_MORE_DOCS;
                return currentDoc;

            currentDoc = subScorer.nextDoc();
            if (currentDoc == NO_MORE_DOCS) {
                return NO_MORE_DOCS;
            } else {
                return isValid(currentDoc) ? currentDoc : nextDoc();

It seems to me that we should have: 
currentDoc = subScorer.advance(target) 
instead of: 
currentDoc = subScorer.nextDoc();

I could provide a patch but I don't know if this is necessary for a single line of code.
Moreover, I don't know if my fix is ok, as I'm not sure to fully understand the whole picture.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message