diff --git a/source/net/yacy/kelondro/order/MergeIterator.java b/source/net/yacy/kelondro/order/MergeIterator.java index f4071c73b..8d0efdb44 100644 --- a/source/net/yacy/kelondro/order/MergeIterator.java +++ b/source/net/yacy/kelondro/order/MergeIterator.java @@ -143,14 +143,44 @@ public class MergeIterator implements CloneableIterator { public static CloneableIterator cascade(final Collection> iterators, final Order c, final Method merger, final boolean up) { // this extends the ability to combine two iterators // to the ability of combining a set of iterators - if (iterators == null) return null; - if (iterators.isEmpty()) return null; + if (iterators == null || iterators.isEmpty()) return new CloneableIterator(){ + @Override + public boolean hasNext() { + return false; + } + @Override + public A next() { + return null; + } + @Override + public void remove() { + } + @Override + public CloneableIterator clone(Object modifier) { + return this; + } + }; return cascade(iterators.iterator(), c, merger, up); } private static CloneableIterator cascade(final Iterator> iiterators, final Order c, final Method merger, final boolean up) { - if (iiterators == null) return null; - if (!(iiterators.hasNext())) return null; + if (iiterators == null || !(iiterators.hasNext())) return new CloneableIterator(){ + @Override + public boolean hasNext() { + return false; + } + @Override + public A next() { + return null; + } + @Override + public void remove() { + } + @Override + public CloneableIterator clone(Object modifier) { + return this; + } + }; final CloneableIterator one = iiterators.next(); if (!(iiterators.hasNext())) return one; assert merger != null;