diff --git a/core/src/main/java/org/apache/iceberg/avro/BuildAvroProjection.java b/core/src/main/java/org/apache/iceberg/avro/BuildAvroProjection.java index 4ad709d9c3..bafb21af93 100644 --- a/core/src/main/java/org/apache/iceberg/avro/BuildAvroProjection.java +++ b/core/src/main/java/org/apache/iceberg/avro/BuildAvroProjection.java @@ -92,13 +92,13 @@ public Schema record(Schema record, List names, Iterable s if (avroField != null) { // if the expectedField has a defaultValue, but the avroField does not, we need to - // create a newField to copy over the non-null default value + // create a newField to copy over the non-null default value. if (expectedField.hasDefaultValue() && !AvroSchemaUtil.hasNonNullDefaultValue(avroField)) { Schema newFiledSchema = (expectedField.isOptional()) ? - AvroSchemaUtil.toOption(AvroSchemaUtil.convert(expectedField.type()), true) : - AvroSchemaUtil.convert(expectedField.type()); + AvroSchemaUtil.toOption(avroField.schema(), true) : + avroField.schema(); Schema.Field newField = - new Schema.Field(avroField.name(), newFiledSchema, avroField.doc(), expectedField.getDefaultValue()); + new Schema.Field(avroField.name(), newFiledSchema, avroField.doc(), expectedField.getDefaultValue()); newField.addProp(AvroSchemaUtil.FIELD_ID_PROP, expectedField.fieldId()); updatedFields.add(newField); hasChange = true;