You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@avro.apache.org by "Oscar Westra van Holthe - Kind (Jira)" <ji...@apache.org> on 2025/06/13 08:33:00 UTC
[jira] [Updated] (AVRO-4071) Can't redefine classes with 1.12.0
[ https://issues.apache.org/jira/browse/AVRO-4071?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Oscar Westra van Holthe - Kind updated AVRO-4071:
-------------------------------------------------
Fix Version/s: 1.13.0
> Can't redefine classes with 1.12.0
> ----------------------------------
>
> Key: AVRO-4071
> URL: https://issues.apache.org/jira/browse/AVRO-4071
> Project: Apache Avro
> Issue Type: Bug
> Affects Versions: 1.12.0
> Reporter: Andrea Bettich
> Priority: Minor
> Labels: pull-request-available
> Fix For: 1.12.1, 1.13.0
>
> Time Spent: 50m
> Remaining Estimate: 0h
>
> Hello,
> We noticed that with the new 1.12.0 version it's not possible to redefine classes, which are identical and are defined in two different avro files.
> As we aren't sure if this is a bug or an unintentional feature in the versions before 1.12.0, we are submitting the issue here but feel free to close it if this not intended to work. But if it's not intended I'm open to contribute a fix to get this resolved.
> I created a reproducer to show the behavior:
> [https://github.com/andreabettich/avro-schema-reproducer]
> Failing job to show the error:
> [https://github.com/andreabettich/avro-schema-reproducer/actions/runs/11141772156/job/30963342027#step:4:1147]
> Based on the error message while generating, it fails at this check:
> [https://github.com/apache/avro/blob/80400781a796bc0e90dd8ea1db42234926db33e9/lang/java/avro/src/main/java/org/apache/avro/ParseContext.java#L219]
> When checking the values when you run the maven task, the values are the following:
> _schema:_
> {code:java}
> {
> "type" : "record",
> "name" : "SharedObject",
> "namespace" : "ch.mobi.oss.avro.external"
> }
> {code}
> _alreadyKnownSchema:_
> {code:java}
> {
> "type" : "record",
> "name" : "SharedObject",
> "namespace" : "ch.mobi.oss.avro.external",
> "fields" : [ {
> "name" : "number",
> "type" : "int"
> }, {
> "name" : "code",
> "type" : "int"
> } ]
> }{code}
> The record schema object is passed from here, which happens before adding the fields. So I assume that this should actually happend after adding the field, then it would work (didn't test it yet) [https://github.com/apache/avro/blob/80400781a796bc0e90dd8ea1db42234926db33e9/lang/java/avro/src/main/java/org/apache/avro/Schema.java#L1865]
> Thanks for your work and hope we find a solution for the issue.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)