Expand my Community achievements bar.

July 31st AEM Gems Webinar: Elevate your AEM development to master the integration of private GitHub repositories within AEM Cloud Manager.

RangeIterator getSize() returns -1 for QueryResults getRows.getSize()


Level 1

I am getting -1 on executing getSize() method on rowIterator and nodeIterator object from QueryResult getRows().

In doc it is suggested to use RangeIterator.getNumberRemaining  although no such method exists. I want to get the total number of rows returned by the query. Any inputs are helpful. RangeIterator (Content Repository for Java Technology API Version 2.0)

3 Replies


Level 8

I am able to get the number of rows using the below snippet:

// iterate over results

    QueryResult result = query.execute();

    NodeIterator nodes = result.getNodes();

    RangeIterator itr = result.getRows();


RangeIterator.getNumberRemaining seems to be a new change proposed in JCR2.0 API.

Proposed_JCR_2.0_API_Changes - Jackrabbit Wiki


Level 1

Tried same implementation, getSize() is returning -1 when rows returned are more than 100


Level 8

have u tried using query builder api instead ? using the search result object can help u get the correct number of rows.

Query query = queryBuilder.createQuery(PredicateGroup.create(map), session);

SearchResult result = query.getResult();