This is an automated email from the ASF dual-hosted git repository. yihua pushed a commit to branch branch-0.x in repository https://gitbox.apache.org/repos/asf/hudi.git
commit 8e6eff945bf09803e42eb2a1e33cb515befaad05 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 882e56b3270..b83e3ab74ea 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 61bff2312b1..2bc1564927b 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 @@ -508,7 +508,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);
