From d2f360f5dd80ff7f85a18225d68d684f071cc734 Mon Sep 17 00:00:00 2001 From: Prashant Wason Date: Tue, 23 Feb 2021 08:05:59 -0800 Subject: [PATCH] [MINOR] Ensure directory exists before listing all marker files. (#2594) --- .../main/java/org/apache/hudi/table/MarkerFiles.java | 10 ++++++---- .../java/org/apache/hudi/table/TestMarkerFiles.java | 1 + 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/MarkerFiles.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/MarkerFiles.java index 36112456f..40be74102 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/MarkerFiles.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/MarkerFiles.java @@ -166,10 +166,12 @@ public class MarkerFiles implements Serializable { public List allMarkerFilePaths() throws IOException { List markerFiles = new ArrayList<>(); - FSUtils.processFiles(fs, markerDirPath.toString(), fileStatus -> { - markerFiles.add(stripMarkerFolderPrefix(fileStatus.getPath().toString())); - return true; - }, false); + if (doesMarkerDirExist()) { + FSUtils.processFiles(fs, markerDirPath.toString(), fileStatus -> { + markerFiles.add(stripMarkerFolderPrefix(fileStatus.getPath().toString())); + return true; + }, false); + } return markerFiles; } diff --git a/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/table/TestMarkerFiles.java b/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/table/TestMarkerFiles.java index b25427baf..b854abc78 100644 --- a/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/table/TestMarkerFiles.java +++ b/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/table/TestMarkerFiles.java @@ -119,6 +119,7 @@ public class TestMarkerFiles extends HoodieCommonTestHarness { public void testDeletionWhenMarkerDirNotExists() throws IOException { // then assertFalse(markerFiles.doesMarkerDirExist()); + assertTrue(markerFiles.allMarkerFilePaths().isEmpty()); assertFalse(markerFiles.deleteMarkerDir(context, 2)); }