JBIterable<E> () { // iterate through the previous result fully before proceeding while (it != null && it.advance()) /* no-op */ ; it = null; return orig.hasNext() ? once((it = JBIterator.wrap(orig)).take(size)) : stop(); }