diff --git a/utils/patch/src/main/java/org/apache/hudi/common/model/TraceEventTimeAvroPayload.java b/utils/patch/src/main/java/org/apache/hudi/common/model/TraceEventTimeAvroPayload.java index e6819b3..a299731 100644 --- a/utils/patch/src/main/java/org/apache/hudi/common/model/TraceEventTimeAvroPayload.java +++ b/utils/patch/src/main/java/org/apache/hudi/common/model/TraceEventTimeAvroPayload.java @@ -22,36 +22,30 @@ import org.slf4j.LoggerFactory; public class TraceEventTimeAvroPayload extends EventTimeAvroPayload { private static final Logger logger = LoggerFactory.getLogger(TraceEventTimeAvroPayload.class); - private final String latestOpts; + private final Map metadata = new HashMap<>(); public TraceEventTimeAvroPayload(GenericRecord record, Comparable orderingVal) { super(record, orderingVal); - this.latestOpts = updateLatestOpts(Option.ofNullable(record)); + updateLatestOpts(Option.ofNullable(record)); } public TraceEventTimeAvroPayload(Option record) { super(record); - this.latestOpts = updateLatestOpts(record); + updateLatestOpts(record); } - private String updateLatestOpts(Option record) { + private void updateLatestOpts(Option record) { try { - return record + record .map(r -> ((Utf8) r.get(Constants.LATEST_OPERATION_TIMESTAMP_KEY_NAME)).toString()) - .orElse(null); + .ifPresent(latestOpts -> metadata.put(Constants.LATEST_OPERATION_TIMESTAMP_KEY_NAME, latestOpts)); } catch (Throwable throwable) { logger.error("Get latest opts failure", throwable); } - return null; } @Override public Option> getMetadata() { - if (this.latestOpts == null) { - return Option.empty(); - } - Map metadata = super.getMetadata().orElse(new HashMap<>()); - metadata.put(Constants.LATEST_OPERATION_TIMESTAMP_KEY_NAME, this.latestOpts); return Option.of(metadata); } }