From 0ac43017cbc397bd5e72fe6b5c9804c21808b8bd Mon Sep 17 00:00:00 2001 From: v-zhangjc9 Date: Wed, 13 Apr 2022 09:51:10 +0800 Subject: [PATCH] Fix NPE when offline compaction could not find schema from data file --- .../java/org/apache/hudi/util/CompactionUtil.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/util/CompactionUtil.java b/hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/util/CompactionUtil.java index 3d386cf8c..e08fbe314 100644 --- a/hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/util/CompactionUtil.java +++ b/hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/util/CompactionUtil.java @@ -127,10 +127,14 @@ public class CompactionUtil { * @param conf The configuration */ public static void inferChangelogMode(Configuration conf, HoodieTableMetaClient metaClient) throws Exception { - TableSchemaResolver tableSchemaResolver = new TableSchemaResolver(metaClient); - Schema tableAvroSchema = tableSchemaResolver.getTableAvroSchemaFromDataFile(); - if (tableAvroSchema.getField(HoodieRecord.OPERATION_METADATA_FIELD) != null) { - conf.setBoolean(FlinkOptions.CHANGELOG_ENABLED, true); + try { + TableSchemaResolver tableSchemaResolver = new TableSchemaResolver(metaClient); + Schema tableAvroSchema = tableSchemaResolver.getTableAvroSchemaFromDataFile(); + if (tableAvroSchema.getField(HoodieRecord.OPERATION_METADATA_FIELD) != null) { + conf.setBoolean(FlinkOptions.CHANGELOG_ENABLED, true); + } + } catch (Exception e) { + LOG.warn("Could not get schema from data file, CHANGELOG_ENABLE is set to default", e); } }