Tim van Baarsen created AVRO-4076:
-------------------------------------
Summary: Failed to generate Java classes from multiple .avsc files
containing same record
Key: AVRO-4076
URL: https://issues.apache.org/jira/browse/AVRO-4076
Project: Apache Avro
Issue Type: Bug
Components: java
Affects Versions: 1.12.0
Reporter: Tim van Baarsen
Attachments: Company.avsc, Employee.avsc
*Description*
This issue looks like
[AVRO-3940|https://issues.apache.org/jira/browse/AVRO-3940] (already resolved).
After upgrading from version 1.11.4 to version 1.12.0 of the plugin, I ran into
the same error: _Caused by: org.apache.avro.SchemaParseException: Can't
redefine: com.example.avro.Address_ when generating Java classes from two .avsc
files containing an identical record instead of an enum.
Both Avro schemas define the Address record:
* [^Company.avsc]
* [^Employee.avsc]
*Steps to reproduce*
1. Clone this repository:
[https://github.com/j-tim/apache-avro-maven-plugin-generate-java-code-failure-bug]
2. Build the Maven project:
{code:java}
./mvnw clean package -X {code}
3. Observe the org.apache.avro.SchemaParseException in the output
*Expected*
The code generator should accept the same record.
*Result*
{code:java}
Caused by: org.apache.avro.SchemaParseException: Can't redefine:
com.example.avro.Address
at org.apache.avro.ParseContext.put (ParseContext.java:219)
at org.apache.avro.Schema.parseRecord (Schema.java:1865)
at org.apache.avro.Schema.parse (Schema.java:1835)
at org.apache.avro.Schema.parseField (Schema.java:1891)
at org.apache.avro.Schema.parseRecord (Schema.java:1872)
at org.apache.avro.Schema.parse (Schema.java:1835)
at org.apache.avro.Schema$Parser.parse (Schema.java:1538)
at org.apache.avro.Schema$Parser.parseInternal (Schema.java:1523)
at org.apache.avro.JsonSchemaParser.parse (JsonSchemaParser.java:86)
at org.apache.avro.JsonSchemaParser.parse (JsonSchemaParser.java:77)
at org.apache.avro.SchemaParser.parse (SchemaParser.java:245)
at org.apache.avro.SchemaParser.parse (SchemaParser.java:137)
at org.apache.avro.SchemaParser.parse (SchemaParser.java:103)
at org.apache.avro.SchemaParser.parse (SchemaParser.java:88)
at org.apache.avro.mojo.SchemaMojo.doCompile (SchemaMojo.java:82)
at org.apache.avro.mojo.AbstractAvroMojo.compileFiles
(AbstractAvroMojo.java:327)
at org.apache.avro.mojo.AbstractAvroMojo.execute (AbstractAvroMojo.java:262)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo
(DefaultBuildPluginManager.java:126)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2
(MojoExecutor.java:328)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute
(MojoExecutor.java:316)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000
(MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run
(MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute
(DefaultMojosExecutionStrategy.java:39)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:105)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:73)
at
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
(SingleThreadedBuilder.java:53)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute
(LifecycleStarter.java:118)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke
(DirectMethodHandleAccessor.java:103)
at java.lang.reflect.Method.invoke (Method.java:580)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
(Launcher.java:255)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch
(Launcher.java:201)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
(Launcher.java:361)
at org.codehaus.plexus.classworlds.launcher.Launcher.main
(Launcher.java:314) {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)