This is an automated email from the ASF dual-hosted git repository.
rubenql pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/calcite.git
The following commit(s) were added to refs/heads/main by this push:
new abf462a7dd [CALCITE-6251] InnerEnumerator in
EnumerableDefaults::correlateBatchJoin is not closed
abf462a7dd is described below
commit abf462a7ddab11a44610827b0cd69510c099d9b6
Author: Ulrich Kramer <[email protected]>
AuthorDate: Wed Feb 7 14:10:26 2024 +0100
[CALCITE-6251] InnerEnumerator in EnumerableDefaults::correlateBatchJoin is
not closed
---
.../java/org/apache/calcite/linq4j/EnumerableDefaults.java | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git
a/linq4j/src/main/java/org/apache/calcite/linq4j/EnumerableDefaults.java
b/linq4j/src/main/java/org/apache/calcite/linq4j/EnumerableDefaults.java
index 3d2c141574..34819551d8 100644
--- a/linq4j/src/main/java/org/apache/calcite/linq4j/EnumerableDefaults.java
+++ b/linq4j/src/main/java/org/apache/calcite/linq4j/EnumerableDefaults.java
@@ -1717,6 +1717,8 @@ public abstract class EnumerableDefaults {
if (innerEnumerable == null) {
innerEnumerable = Linq4j.emptyEnumerable();
}
+ closeInner();
+ Enumerable<TInner> innerEnumerable =
requireNonNull(this.innerEnumerable);
innerEnumerator = innerEnumerable.enumerator();
innerEnumHasNext = innerEnumerator.moveNext();
@@ -1799,11 +1801,16 @@ public abstract class EnumerableDefaults {
i = -1;
}
- @Override public void close() {
- outerEnumerator.close();
+ private void closeInner() {
if (innerEnumerator != null) {
innerEnumerator.close();
+ innerEnumerator = null;
}
+ }
+
+ @Override public void close() {
+ outerEnumerator.close();
+ closeInner();
outerValue = null;
innerValue = null;
}