[
https://issues.apache.org/jira/browse/AVRO-1815?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16065543#comment-16065543
]
Gavin DeSchutter commented on AVRO-1815:
----------------------------------------
We are encountering similar issues when using `full transitive` compatibility.
Here is an example schema:
{code:json}
{
"type": "record",
"name": "Foo",
"namespace": "events",
"fields": [
{
"name": "bar",
"type": {
"type": "record",
"name": "Bar",
"fields": [
{
"name": "baz",
"type":
[
"string",
{
"type": "record",
"name": "Baz",
"fields": [
{
"name": "customer",
"type": "boolean"
}
]
}
]
}
]
}
}
]
}
{code}
Altering the field of `customer` to `["int", "string"]` does not return an
incompatibility error.
> Incompatible schema change not detected when wrapped in a UNION
> ---------------------------------------------------------------
>
> Key: AVRO-1815
> URL: https://issues.apache.org/jira/browse/AVRO-1815
> Project: Avro
> Issue Type: Bug
> Components: java
> Affects Versions: 1.7.7
> Reporter: Martin Boyle
> Attachments: AVRO-1815.patch
>
>
> An incompatible schema change is not detected when it is in a UNION and the
> change is to the value type of a map e.g.
> field
> { "name": "segmentEkv", "type": ["null", {"type": "map", "values": {"type":
> "map", "values": "string"}}], "default": null},
> changes to
> { "name": "segmentEkv", "type": ["null", {"type": "map", "values": {"type":
> "array", "items": "int"}}], "default": null},
> The SchemaValidatorBuilder() will pass this as being compatible. Whereas
> SchemaCompatibility.check_reader_writer_compatibility will return an
> incompatible result. The problem for me is that the Confluent Schema
> Registry uses SchemaValidatorBuilder.
> Problem appears to be that while the ResolvingGrammerGenerator correctly
> marks the field as being an incompatible change, the check for errors on the
> Symbol object does not descend into the UnionAdjustActionField
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)