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-a20ac96ef2b97e5f05c438be3c49435dc574940a in repository https://gitbox.apache.org/repos/asf/seatunnel.git
commit febe1f947a37dfee43064a5c49b34bd4ff7cf6ff 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);
