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 <u.kra...@sap.com>
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;
           }

Reply via email to