Revised stopOnError implementation to separate hasNext() and next()
source failure handling (revisit)