ZF-4151: Iterator with zero items throws OutOfBoundsException


I've been playing around with Zend_Paginator using the Zend_Paginator_Adapter_Iterator. All went pretty good, until I passed Zend_Paginator 0 items/pages. I get the following exception:

{quote} exception 'OutOfBoundsException' with message 'Seek position 0 is out of range'

0 [internal function]: ArrayIterator->seek(0)


Now this exception is not a suprise, after's seeking 0. The question I have is how to handle this exception? I use a foreach loop in my view to iterate over each item in the paginator and that's what's causing the exception:

foreach ($this->paginator as $item){}

Should I always check if there are 0 pages/items in the view and not start the foreach loop? Doing so would require a check in each view to see if there's 0 or more items/pages. I don't like that solution.

Are there better ways to handle this exception?


Fixed in revision 11222.

Issue appears to exist still in the null paginator.

Attached patch includes - unit tests for Null, Array and Iterator Paginator - fix for Null Paginator if item count == 0

Patch applied in trunk and 1.10 release branch.