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)

Reply via email to