diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/HoodieMergeHandle.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/HoodieMergeHandle.java index 4d6427880c9e4..a85df2a2307d3 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/HoodieMergeHandle.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/io/HoodieMergeHandle.java @@ -118,14 +118,16 @@ public HoodieMergeHandle(HoodieWriteConfig config, String instantTime, HoodieTab Iterator> recordItr, String partitionPath, String fileId, TaskContextSupplier taskContextSupplier, Option keyGeneratorOpt) { this(config, instantTime, hoodieTable, recordItr, partitionPath, fileId, taskContextSupplier, - getLatestBaseFile(hoodieTable, partitionPath, fileId), keyGeneratorOpt); + getLatestBaseFile(hoodieTable, partitionPath, fileId), keyGeneratorOpt); } public HoodieMergeHandle(HoodieWriteConfig config, String instantTime, HoodieTable hoodieTable, Iterator> recordItr, String partitionPath, String fileId, TaskContextSupplier taskContextSupplier, HoodieBaseFile baseFile, Option keyGeneratorOpt) { super(config, instantTime, partitionPath, fileId, hoodieTable, taskContextSupplier); - init(recordItr, baseFile, keyGeneratorOpt); + init(fileId, recordItr); + init(fileId, partitionPath, baseFile); + validateAndSetAndKeyGenProps(keyGeneratorOpt, config.populateMetaFields()); } /** @@ -138,7 +140,8 @@ public HoodieMergeHandle(HoodieWriteConfig config, String instantTime, HoodieTab this.keyToNewRecords = keyToNewRecords; this.useWriterSchemaForCompaction = true; this.preserveMetadata = config.isPreserveHoodieCommitMetadataForCompaction(); - init(null, dataFileToBeMerged, keyGeneratorOpt); + init(fileId, this.partitionPath, dataFileToBeMerged); + validateAndSetAndKeyGenProps(keyGeneratorOpt, config.populateMetaFields()); } private void validateAndSetAndKeyGenProps(Option keyGeneratorOpt, boolean populateMetaFields) { @@ -146,14 +149,6 @@ private void validateAndSetAndKeyGenProps(Option keyGeneratorO this.keyGeneratorOpt = keyGeneratorOpt; } - private void init(Iterator> recordItr, HoodieBaseFile baseFile, Option keyGeneratorOpt) { - if (recordItr != null) { - init(this.fileId, recordItr); - } - init(this.fileId, this.partitionPath, baseFile); - validateAndSetAndKeyGenProps(keyGeneratorOpt, this.config.populateMetaFields()); - } - public static HoodieBaseFile getLatestBaseFile(HoodieTable hoodieTable, String partitionPath, String fileId) { Option baseFileOp = hoodieTable.getBaseFileOnlyView().getLatestBaseFile(partitionPath, fileId); if (!baseFileOp.isPresent()) {