rmahindra123 commented on code in PR #9385:
URL: https://github.com/apache/hudi/pull/9385#discussion_r1286586525
##########
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/BaseActionExecutor.java:
##########
@@ -58,30 +61,74 @@ public BaseActionExecutor(HoodieEngineContext context,
HoodieWriteConfig config,
* @param metadata commit metadata of interest.
*/
protected final void writeTableMetadata(HoodieCommitMetadata metadata,
HoodieData<WriteStatus> writeStatus, String actionType) {
- table.getMetadataWriter(instantTime).ifPresent(w -> w.update(metadata,
writeStatus, instantTime));
+ Option<HoodieTableMetadataWriter> metadataWriterOpt =
table.getMetadataWriter(instantTime);
+ if (metadataWriterOpt.isPresent()) {
+ try (HoodieTableMetadataWriter metadataWriter = metadataWriterOpt.get())
{
+ metadataWriter.update(metadata, writeStatus, instantTime);
+ } catch (Exception e) {
+ if (e instanceof HoodieException) {
+ throw (HoodieException) e;
+ } else {
+ throw new HoodieException("Failed to update metadata", e);
+ }
+ }
+ }
}
/**
* Writes clean metadata to table metadata.
* @param metadata clean metadata of interest.
*/
protected final void writeTableMetadata(HoodieCleanMetadata metadata, String
instantTime) {
- table.getMetadataWriter(instantTime).ifPresent(w -> w.update(metadata,
instantTime));
+ Option<HoodieTableMetadataWriter> metadataWriterOpt =
table.getMetadataWriter(instantTime);
+ if (metadataWriterOpt.isPresent()) {
+ try (HoodieTableMetadataWriter metadataWriter = metadataWriterOpt.get())
{
+ metadataWriter.update(metadata, instantTime);
+ } catch (Exception e) {
+ if (e instanceof HoodieException) {
+ throw (HoodieException) e;
+ } else {
+ throw new HoodieException("Failed to apply clean commit to
metadata", e);
+ }
+ }
+ }
}
/**
* Writes rollback metadata to table metadata.
* @param metadata rollback metadata of interest.
*/
protected final void writeTableMetadata(HoodieRollbackMetadata metadata) {
- table.getMetadataWriter(instantTime).ifPresent(w -> w.update(metadata,
instantTime));
+ Option<HoodieTableMetadataWriter> metadataWriterOpt =
table.getMetadataWriter(instantTime);
+ if (metadataWriterOpt.isPresent()) {
+ try (HoodieTableMetadataWriter metadataWriter = metadataWriterOpt.get())
{
+ metadataWriter.update(metadata, instantTime);
+ } catch (Exception e) {
+ if (e instanceof HoodieException) {
+ throw (HoodieException) e;
+ } else {
+ throw new HoodieException("Failed to apply rollbacks in metadata",
e);
+ }
+ }
+ }
}
/**
* Writes restore metadata to table metadata.
* @param metadata restore metadata of interest.
*/
protected final void writeTableMetadata(HoodieRestoreMetadata metadata) {
- table.getMetadataWriter(instantTime).ifPresent(w -> w.update(metadata,
instantTime));
+ Option<HoodieTableMetadataWriter> metadataWriterOpt =
table.getMetadataWriter(instantTime);
+ if (metadataWriterOpt.isPresent()) {
+ try (HoodieTableMetadataWriter metadataWriter = metadataWriterOpt.get())
{
Review Comment:
+1
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]