This is an automated email from the ASF dual-hosted git repository. forwardxu pushed a commit to branch release-0.12.1 in repository https://gitbox.apache.org/repos/asf/hudi.git
commit 0f056e52e583828a7fbbb21454e60d1a9b74d48d Author: Danny Chan <yuzhao....@gmail.com> AuthorDate: Tue Nov 29 10:20:41 2022 +0800 [HUDI-5286] UnsupportedOperationException throws when enabling filesystem retry (#7313) (cherry picked from commit e88b4748127c45f287e45a11dda9183e29ad87d5) --- .../hudi/common/fs/HoodieRetryWrapperFileSystem.java | 5 +++++ .../hudi/common/fs/TestFSUtilsWithRetryWrapperEnable.java | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/hudi-common/src/main/java/org/apache/hudi/common/fs/HoodieRetryWrapperFileSystem.java b/hudi-common/src/main/java/org/apache/hudi/common/fs/HoodieRetryWrapperFileSystem.java index 075f811a42e..051cece84fe 100644 --- a/hudi-common/src/main/java/org/apache/hudi/common/fs/HoodieRetryWrapperFileSystem.java +++ b/hudi-common/src/main/java/org/apache/hudi/common/fs/HoodieRetryWrapperFileSystem.java @@ -254,4 +254,9 @@ public class HoodieRetryWrapperFileSystem extends FileSystem { public Configuration getConf() { return fileSystem.getConf(); } + + @Override + public String getScheme() { + return fileSystem.getScheme(); + } } diff --git a/hudi-common/src/test/java/org/apache/hudi/common/fs/TestFSUtilsWithRetryWrapperEnable.java b/hudi-common/src/test/java/org/apache/hudi/common/fs/TestFSUtilsWithRetryWrapperEnable.java index 0b849ebec81..1c5447751f7 100644 --- a/hudi-common/src/test/java/org/apache/hudi/common/fs/TestFSUtilsWithRetryWrapperEnable.java +++ b/hudi-common/src/test/java/org/apache/hudi/common/fs/TestFSUtilsWithRetryWrapperEnable.java @@ -38,6 +38,7 @@ import java.net.URI; import java.util.Arrays; import java.util.List; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertThrows; /** @@ -80,6 +81,14 @@ public class TestFSUtilsWithRetryWrapperEnable extends TestFSUtils { folders.forEach(f -> assertThrows(RuntimeException.class, () -> metaClient.getFs().mkdirs(new Path(new Path(basePath), f)))); } + @Test + public void testGetSchema() { + FakeRemoteFileSystem fakeFs = new FakeRemoteFileSystem(FSUtils.getFs(metaClient.getMetaPath(), metaClient.getHadoopConf()), 100); + FileSystem fileSystem = new HoodieRetryWrapperFileSystem(fakeFs, maxRetryIntervalMs, maxRetryNumbers, initialRetryIntervalMs, ""); + HoodieWrapperFileSystem fs = new HoodieWrapperFileSystem(fileSystem, new NoOpConsistencyGuard()); + assertDoesNotThrow(fs::getScheme, "Method #getSchema does not implement correctly"); + } + /** * Fake remote FileSystem which will throw RuntimeException something like AmazonS3Exception 503. */ @@ -206,5 +215,10 @@ public class TestFSUtilsWithRetryWrapperEnable extends TestFSUtils { public Configuration getConf() { return fs.getConf(); } + + @Override + public String getScheme() { + return fs.getScheme(); + } } }