This is an automated email from the ASF dual-hosted git repository.

github-merge-queue[bot] pushed a commit to branch 
gh-readonly-queue/dev/pr-12369-f286584718b60795f480945d83e6a924ef44a9bf
in repository https://gitbox.apache.org/repos/asf/seatunnel.git

commit 3fe9dc74e9aa24097e7c728d131ff10a5491bf09
Author: Ricky Makhija <[email protected]>
AuthorDate: Fri Sep 18 14:51:29 2026 +0000

    [Fix][Connector-File] Clear fileSystem reference on HadoopFileSystemProxy 
close (#12369)
---
 .../seatunnel/file/hadoop/HadoopFileSystemProxy.java       |  8 +++++++-
 .../seatunnel/file/hadoop/HadoopFileSystemProxyTest.java   | 14 ++++++++++++++
 2 files changed, 21 insertions(+), 1 deletion(-)

diff --git 
a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/hadoop/HadoopFileSystemProxy.java
 
b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/hadoop/HadoopFileSystemProxy.java
index 69eaf478b4..b443d4749a 100644
--- 
a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/hadoop/HadoopFileSystemProxy.java
+++ 
b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/hadoop/HadoopFileSystemProxy.java
@@ -370,7 +370,13 @@ public class HadoopFileSystemProxy implements 
Serializable, Closeable {
             }
         } finally {
             if (fileSystem != null) {
-                fileSystem.close();
+                try {
+                    fileSystem.close();
+                } finally {
+                    // Drop the reference so a later getFileSystem() 
re-initializes instead of
+                    // handing back a closed FileSystem.
+                    fileSystem = null;
+                }
             }
         }
     }
diff --git 
a/seatunnel-connectors-v2/connector-file/connector-file-base/src/test/java/org/apache/seatunnel/connectors/seatunnel/file/hadoop/HadoopFileSystemProxyTest.java
 
b/seatunnel-connectors-v2/connector-file/connector-file-base/src/test/java/org/apache/seatunnel/connectors/seatunnel/file/hadoop/HadoopFileSystemProxyTest.java
index 833bc2e6de..3730be5b6f 100644
--- 
a/seatunnel-connectors-v2/connector-file/connector-file-base/src/test/java/org/apache/seatunnel/connectors/seatunnel/file/hadoop/HadoopFileSystemProxyTest.java
+++ 
b/seatunnel-connectors-v2/connector-file/connector-file-base/src/test/java/org/apache/seatunnel/connectors/seatunnel/file/hadoop/HadoopFileSystemProxyTest.java
@@ -145,6 +145,20 @@ class HadoopFileSystemProxyTest {
         }
     }
 
+    @Test
+    void testCloseClearsFileSystemSoProxyCanBeReused() throws Exception {
+        HadoopFileSystemProxy proxy = new HadoopFileSystemProxy(new 
HadoopConf("file:///"));
+        try {
+            FileSystem first = proxy.getFileSystem();
+
+            proxy.close();
+
+            Assertions.assertNotSame(first, proxy.getFileSystem());
+        } finally {
+            proxy.close();
+        }
+    }
+
     private static HadoopFileSystemProxy newProxy(FileSystem fileSystem) {
         HadoopFileSystemProxy proxy =
                 Mockito.mock(HadoopFileSystemProxy.class, 
Mockito.CALLS_REAL_METHODS);

Reply via email to