@Override public boolean hasNext() { return iterator.hasNext(); }
@Override public Void call() { try ( CloseableIterator<Entry<KeyType>> mergedIterator = CloseableIterators.mergeSorted( iterators, keyObjComparator ); // This variable is used to close releaser automatically. @SuppressWarnings("unused") final Releaser releaser = combineBufferHolder.increment() ) { while (mergedIterator.hasNext()) { final Entry<KeyType> next = mergedIterator.next(); settableColumnSelectorFactory.set(next.values); grouper.aggregate(next.key); // grouper always returns ok or throws an exception settableColumnSelectorFactory.set(null); } } catch (IOException e) { throw Throwables.propagate(e); } grouper.finish(); return null; } }
while (iterator.hasNext()) { Assert.assertEquals(new Entry<>(expectedKey, new Object[]{expectedKey++ * leafNum * 10}), iterator.next());
@Test(timeout = 60_000L) public void testEmptyIterator() { final TestColumnSelectorFactory columnSelectorFactory = GrouperTestUtil.newColumnSelectorFactory(); final StreamingMergeSortedGrouper<Integer> grouper = newGrouper(columnSelectorFactory, 1024); grouper.finish(); Assert.assertTrue(!grouper.iterator(true).hasNext()); }
@Override public boolean hasNext() { return iterator.hasNext(); }
@Override public Void call() { try ( CloseableIterator<Entry<KeyType>> mergedIterator = CloseableIterators.mergeSorted( iterators, keyObjComparator ); // This variable is used to close releaser automatically. @SuppressWarnings("unused") final Releaser releaser = combineBufferHolder.increment() ) { while (mergedIterator.hasNext()) { final Entry<KeyType> next = mergedIterator.next(); settableColumnSelectorFactory.set(next.values); grouper.aggregate(next.key); // grouper always returns ok or throws an exception settableColumnSelectorFactory.set(null); } } catch (IOException e) { throw Throwables.propagate(e); } grouper.finish(); return null; } }