[ 
https://issues.apache.org/jira/browse/AVRO-2788?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17074128#comment-17074128
 ] 

ASF subversion and git services commented on AVRO-2788:
-------------------------------------------------------

Commit c81ea58c601a2f600d9d45cf50b9f6434b911d5a in avro's branch 
refs/heads/master from Tianyu Lang
[ https://gitbox.apache.org/repos/asf?p=avro.git;h=c81ea58 ]

AVRO-2788: Default Proto repeated fields to empty arrays (#850)

Currently Avro<->Proto schema conversion could break compatibility
This PR fixes the issue by assigning empty arrays as default value
For more details, see the Jira at 
https://issues.apache.org/jira/browse/AVRO-2788

Co-authored-by: Tianyu Lang <[email protected]>

> Generated Avro schema from Protobuf is missing default values for repeated 
> fields
> ---------------------------------------------------------------------------------
>
>                 Key: AVRO-2788
>                 URL: https://issues.apache.org/jira/browse/AVRO-2788
>             Project: Apache Avro
>          Issue Type: Improvement
>          Components: java
>    Affects Versions: 1.9.2
>            Reporter: Tianyu Lang
>            Assignee: Tianyu Lang
>            Priority: Major
>         Attachments: AVRO-2788.patch
>
>
> Avro schemas generated from Protobuf schemas by *ProtobufData.java* are 
> missing default values for repeated (array) fields.
> This will break compatibility when Avro is used as a transport format between 
> 2 services that use Protobuf internally.
>  
> For example:
> A publisher converts Protobuf to Avro, then sends the message through Kafka 
> to a consumer. The consumer then converts Avro back into Protobuf, then does 
> all the processing with Protobuf.
>  
> A compatibility issue will occur when a new repeated Protobuf field is added 
> to the consumer Protobuf schema. The corresponding Avro schema generated from
> {code:java}
> Schema schema = ProtobufData.get().getSchema(MyProtobufClass.class);
> {code}
>  will not assign default values to the newly added repeated field. Because 
> the publisher is still on the schema without the newly added array field, 
> deserialization on the consumer side will fail since there is no default 
> values to fill in.
>  
>  
>  
> I discussed this with [~cutting] on the mailing list and it makes sense to 
> just add default values for Protobuf repeated fields.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to