The logic behind LineIteraor (and the contracts of the iterators methods) was broken because of a bad management of the cache.
Instead of solving it locally, this PR introduces a simple CacheIterator abstract class with the correct behavior and simplify LineIteraor by using it.
The logic behind LineIteraor (and the contracts of the iterators methods) was broken because of a bad management of the cache.
Instead of solving it locally, this PR introduces a simple CacheIterator abstract class with the correct behavior and simplify LineIteraor by using it.