Index: oak-core/src/main/java/org/apache/jackrabbit/oak/spi/query/Cursors.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/spi/query/Cursors.java (revision 1626745) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/spi/query/Cursors.java (working copy) @@ -452,7 +452,7 @@ init = true; } IndexRow result = current; - fetchNext(); + init = false; return result; } Index: oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexAggregationTest.java =================================================================== --- oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexAggregationTest.java (revision 1626745) +++ oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexAggregationTest.java (working copy) @@ -394,6 +394,10 @@ "//element(*, nt:file)[jcr:contains(., 'dog') and jcr:contains(., 'title')]", "xpath", ImmutableList.of("/myFolder/myFile")); + // double aggregation dupes + assertQuery( + "//*[(jcr:contains(., 'dog') or jcr:contains(jcr:content, 'dog') )]", + "xpath", ImmutableList.of("/myFolder", "/myFolder/myFile", "/myFolder/myFile/jcr:content")); } }