From 40b8f970f8990200d17eca46a5d8f26f0bb1c88e Mon Sep 17 00:00:00 2001 From: Venki Korukanti Date: Wed, 8 May 2024 12:38:58 -0700 Subject: [PATCH] [Kernel] Fix the infinite loop in `CloseableIterator.map` (#3071) ## Description `CloseableIterator.map` creates new `CloseableIterator` which has wrong `forEachRemaining` impl (it calls itself). We should remove the impl and fall back on the default impl. This is a day 0 bug, not needed for 3.2 (given 3.2 is so close to release) --- .../main/java/io/delta/kernel/utils/CloseableIterator.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/kernel/kernel-api/src/main/java/io/delta/kernel/utils/CloseableIterator.java b/kernel/kernel-api/src/main/java/io/delta/kernel/utils/CloseableIterator.java index 29a398c70fb..e0414cab0e1 100644 --- a/kernel/kernel-api/src/main/java/io/delta/kernel/utils/CloseableIterator.java +++ b/kernel/kernel-api/src/main/java/io/delta/kernel/utils/CloseableIterator.java @@ -20,7 +20,6 @@ import java.io.IOException; import java.util.Iterator; import java.util.NoSuchElementException; -import java.util.function.Consumer; import java.util.function.Function; import io.delta.kernel.annotation.Evolving; @@ -43,11 +42,6 @@ public void remove() { delegate.remove(); } - @Override - public void forEachRemaining(Consumer action) { - this.forEachRemaining(action); - } - @Override public boolean hasNext() { return delegate.hasNext();