VersionHistory - Unable to get size directly by getAllVersions.getSize()

snbaem

20-02-2020

Hi All,

 

Recently tried to use VersionHistory API (https://docs.adobe.com/content/docs/en/spec/jsr170/javadocs/jcr-2.0/javax/jcr/version/VersionHistory...) I am able to use getAllVersions() but getAllVersions().getSize() gives me -1. To get the actual size so far I am having to loop the iterator and add the count within the loop. 

 

Is there a better way or I missed something?

Accepted Solutions (1)

Accepted Solutions (1)

aemmarc

Employee

21-02-2020

https://docs.adobe.com/content/docs/en/spec/jsr170/javadocs/jcr-2.0/javax/jcr/RangeIterator.html#get...

 

Returns the total number of of items available through this iterator. For example, for some node NN.getNodes().getSize() returns the number of child nodes of N visible through the current Session. In some implementations precise information about the number of elements may not be available. In such cases this method must return -1. API clients will then be able to use RangeIterator.getNumberRemaining to get an estimate on the number of elements.

 

---

Iterators in Java don't know how many items they contain, hence why you iterate over it and count.  getAllVersions() in the VersionHistory class just returns an Iterator. It can't determine the size therefore gives you a -1. 

Answers (0)