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

codope pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hudi.git


The following commit(s) were added to refs/heads/master by this push:
     new f308aa2b7b0 [HUDI-7491] Fixing handling null values of extra metadata 
in clean commit metadata (#10837)
f308aa2b7b0 is described below

commit f308aa2b7b0a7f3ed64cb3b973f36004522e945f
Author: Sivabalan Narayanan <[email protected]>
AuthorDate: Fri Mar 8 01:27:06 2024 -0800

    [HUDI-7491] Fixing handling null values of extra metadata in clean commit 
metadata (#10837)
    
    * Fixing handling null values of extra metadata in clean commit metadata
    
    * fixing tests
---
 .../main/java/org/apache/hudi/table/action/clean/CleanPlanner.java    | 4 ++--
 .../src/test/java/org/apache/hudi/table/action/TestCleanPlanner.java  | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git 
a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/clean/CleanPlanner.java
 
b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/clean/CleanPlanner.java
index 19cbe0f91a7..21d12333d87 100644
--- 
a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/clean/CleanPlanner.java
+++ 
b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/clean/CleanPlanner.java
@@ -234,8 +234,8 @@ public class CleanPlanner<T, I, K, O> implements 
Serializable {
   }
 
   private List<String> getPartitionsFromDeletedSavepoint(HoodieCleanMetadata 
cleanMetadata) {
-    List<String> savepointedTimestampsFromLastClean = 
Arrays.stream(cleanMetadata.getExtraMetadata()
-            .getOrDefault(SAVEPOINTED_TIMESTAMPS, 
StringUtils.EMPTY_STRING).split(","))
+    List<String> savepointedTimestampsFromLastClean = 
cleanMetadata.getExtraMetadata() == null ? Collections.emptyList()
+        : 
Arrays.stream(cleanMetadata.getExtraMetadata().getOrDefault(SAVEPOINTED_TIMESTAMPS,
 StringUtils.EMPTY_STRING).split(","))
         .filter(partition -> 
!StringUtils.isNullOrEmpty(partition)).collect(Collectors.toList());
     if (savepointedTimestampsFromLastClean.isEmpty()) {
       return Collections.emptyList();
diff --git 
a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/table/action/TestCleanPlanner.java
 
b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/table/action/TestCleanPlanner.java
index 4268cc36d47..8052572fcea 100644
--- 
a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/table/action/TestCleanPlanner.java
+++ 
b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/table/action/TestCleanPlanner.java
@@ -507,7 +507,7 @@ public class TestCleanPlanner {
         extraMetadata.put(SAVEPOINTED_TIMESTAMPS, 
savepointsToTrack.stream().collect(Collectors.joining(",")));
       }
       HoodieCleanMetadata cleanMetadata = new HoodieCleanMetadata(instantTime, 
100L, 10, earliestCommitToRetain, lastCompletedTime, partitionMetadata,
-          CLEAN_METADATA_VERSION_2, Collections.EMPTY_MAP, extraMetadata);
+          CLEAN_METADATA_VERSION_2, Collections.EMPTY_MAP, 
extraMetadata.isEmpty() ?  null : extraMetadata);
       return Pair.of(cleanMetadata, 
TimelineMetadataUtils.serializeCleanMetadata(cleanMetadata));
     } catch (IOException ex) {
       throw new UncheckedIOException(ex);

Reply via email to