[ https://issues.apache.org/jira/browse/OAK-2794?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14504987#comment-14504987 ]
Alex Parvulescu commented on OAK-2794: -------------------------------------- duplicate of OAK-2569? > Lucene index: after.doc exceeds the number of documents in the reader > --------------------------------------------------------------------- > > Key: OAK-2794 > URL: https://issues.apache.org/jira/browse/OAK-2794 > Project: Jackrabbit Oak > Issue Type: Bug > Components: lucene, query > Reporter: Thomas Mueller > > The following exception can occur: > {noformat} > java.lang.IllegalArgumentException: after.doc exceeds the number of documents > in the reader: after.doc=2027462 limit=2027455 > at > org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:442) > at > org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:243) > at > org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndex$1.loadDocs(LuceneIndex.java:352) > at > org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndex$1.computeNext(LuceneIndex.java:292) > at > org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndex$1.computeNext(LuceneIndex.java:283) > at > com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) > at > com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) > at > org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndex$LucenePathCursor$1.hasNext(LuceneIndex.java:1062) > at > com.google.common.collect.Iterators$7.computeNext(Iterators.java:645) > at > com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) > at > com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) > at > org.apache.jackrabbit.oak.spi.query.Cursors$PathCursor.hasNext(Cursors.java:198) > at > org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndex$LucenePathCursor.hasNext(LuceneIndex.java:1083) > at > org.apache.jackrabbit.oak.plugins.index.aggregate.AggregationCursor.fetchNext(AggregationCursor.java:88) > at > org.apache.jackrabbit.oak.plugins.index.aggregate.AggregationCursor.hasNext(AggregationCursor.java:75) > at > org.apache.jackrabbit.oak.spi.query.Cursors$IntersectionCursor.fetchNext(Cursors.java:403) > at > org.apache.jackrabbit.oak.spi.query.Cursors$IntersectionCursor.hasNext(Cursors.java:381) > at > org.apache.jackrabbit.oak.query.ast.SelectorImpl.next(SelectorImpl.java:401) > at > org.apache.jackrabbit.oak.query.QueryImpl$RowIterator.fetchNext(QueryImpl.java:664) > at > org.apache.jackrabbit.oak.query.QueryImpl$RowIterator.hasNext(QueryImpl.java:689) > at > org.apache.jackrabbit.oak.query.FilterIterators$SortIterator.init(FilterIterators.java:203) > at > org.apache.jackrabbit.oak.query.FilterIterators$SortIterator.hasNext(FilterIterators.java:237) > at > org.apache.jackrabbit.oak.jcr.query.QueryResultImpl$1.fetch(QueryResultImpl.java:108) > at > org.apache.jackrabbit.oak.jcr.query.QueryResultImpl$1.<init>(QueryResultImpl.java:104) > at > org.apache.jackrabbit.oak.jcr.query.QueryResultImpl.getRows(QueryResultImpl.java:91) > at > org.apache.jackrabbit.commons.query.GQL.executeJcrQuery(GQL.java:440) > at org.apache.jackrabbit.commons.query.GQL.execute(GQL.java:434) > at org.apache.jackrabbit.commons.query.GQL.execute(GQL.java:327) > at org.apache.jackrabbit.commons.query.GQL.execute(GQL.java:310) > at org.apache.jackrabbit.commons.query.GQL.execute(GQL.java:296) > {noformat} > I guess the reason is that the "lastDoc" is part of the iterator, but the > "IndexSearcher" is not always the same, so that if there were changes in the > meantime, the "lastDoc" does not correspond to this "IndexSearcher". This > might mean the query result is sometimes wrong (matches are not returned, or > returned twice). -- This message was sent by Atlassian JIRA (v6.3.4#6332)