You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@avro.apache.org by "Patrick Wolleb (Jira)" <ji...@apache.org> on 2024/03/06 09:07:00 UTC

[jira] [Updated] (AVRO-3940) Failed to generate Java classes from several .avsc files containing same type

     [ https://issues.apache.org/jira/browse/AVRO-3940?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Patrick Wolleb updated AVRO-3940:
---------------------------------
    Priority: Major  (was: Minor)

> Failed to generate Java classes from several .avsc files containing same type
> -----------------------------------------------------------------------------
>
>                 Key: AVRO-3940
>                 URL: https://issues.apache.org/jira/browse/AVRO-3940
>             Project: Apache Avro
>          Issue Type: Bug
>          Components: java
>    Affects Versions: 1.11.3
>            Reporter: Patrick Wolleb
>            Priority: Major
>         Attachments: avsc-java-generator.zip, programmes-key.avsc, programmes-value.avsc
>
>
> I am unable to generate Java classes from two .avsc files that both contain an identical record. I get a SchemaParseException: Can't redefine: com.example.domain.Provenance.
>  * schema 1:  [^programmes-key.avsc]
>  * schema 2: [^programmes-value.avsc]
> I am not sure I understand the generator correctly since the the check to throw the exception in this case was recently added for the code generation via an Open API yaml https://issues.apache.org/jira/browse/AVRO-3805
> Here the commit in question:
> [https://github.com/apache/avro/blame/c60e1a0cbf98412b1c65cb2d9029d32077d85574/lang/java/avro/src/main/java/org/apache/avro/Schema.java#L1753]
> [~clesaec] 
> *Steps to reproduce:*
>  # Download [^avsc-java-generator.zip]
>  # Unzip and change into directory
>  # Run ./gradlew quarkusDev --stacktrace
>  # Observe SchemaParseException in output
> *Expected:*
> The generator should accept the same name and overwrite the output.
> *Result:*
> {code:java}
> Caused by: org.apache.avro.SchemaParseException: Can't redefine: com.example.domain.Provenance     at org.apache.avro.Schema$Names.put(Schema.java:1604)     at org.apache.avro.Schema$Names.add(Schema.java:1598)     at org.apache.avro.Schema.parse(Schema.java:1774)     at org.apache.avro.Schema.parse(Schema.java:1736)     at org.apache.avro.Schema$Parser.parse(Schema.java:1471)     at org.apache.avro.Schema$Parser.parse(Schema.java:1433)  
> {code}
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)