Details
Description
In 1.3, the WrappingIterator was pretty much some boilerplate code. In 1.4 on, a package private boolean called seenSeek was added to help enforce the iterator contract.
This causes some issues with iterators written for 1.3 and before, because the seenSeek property can't be set by an iterator outside of the core.iterators package, which is locked down. This means that sub iterators must always delegate up to the WrappingIterator's seek() method, even if implementors want to completely override seek().
I would like to provide more documentation on the WrappingIterator and make the seenSeek property protected so implementors don't need conditional logic to make the call to super.seek().