diff --git a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/PrefetchIterator.java b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/PrefetchIterator.java index 02c6982e3f..fca8e662f3 100644 --- a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/PrefetchIterator.java +++ b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/PrefetchIterator.java @@ -118,21 +118,23 @@ public class PrefetchIterator implements Iterator { long nanos = System.nanoTime(); end = nanos + timeout * 1000 * 1000; } - while (true) { - if (!it.hasNext()) { - size = position; - break; - } - if (position > maxPrefetch) { - break; - } - if (position > minPrefetch) { - if (end == 0 || System.nanoTime() > end) { + if (end > 0 || minPrefetch > 0) { + while (true) { + if (!it.hasNext()) { + size = position; break; } + if (position > maxPrefetch) { + break; + } + if (position > minPrefetch) { + if (end == 0 || System.nanoTime() > end) { + break; + } + } + position++; + list.add(it.next()); } - position++; - list.add(it.next()); } if (list.size() > 0) { prefetchIterator = list.iterator();