-
-
Notifications
You must be signed in to change notification settings - Fork 7.3k
Open
Description
Hello, I have the following problem as of 7.14.0, which is also present on the latest master. The issue is not present in 7.13.0 and earlier.
Here is my snippet:
responses:
'200':
description: "List of all the objects."
content:
application/json:
schema:
type: array
items:
oneOf:
- $ref: '#/components/schemas/TypeA'
- $ref: '#/components/schemas/TypeB'
discriminator:
propertyName: discriminatorProperty
mapping:
ONE: '#/components/schemas/TypeA'
TWO: '#/components/schemas/TypeB'
THREE: '#/components/schemas/TypeB'
FOUR: '#/components/schemas/TypeB'
FIVE: '#/components/schemas/TypeB'
When trying to generate openapi controllers and api objects I get the following error:
java.lang.IllegalStateException: Duplicate key #/components/schemas/TypeB (attempted merging values TWO and THREE)
at java.util.stream.Collectors.duplicateKeyException (Collectors.java:135)
at java.util.stream.Collectors.lambda$uniqKeysMapAccumulator$1 (Collectors.java:182)
at java.util.stream.ReduceOps$3ReducingSink.accept (ReduceOps.java:169)
at java.util.Iterator.forEachRemaining (Iterator.java:133)
at java.util.Spliterators$IteratorSpliterator.forEachRemaining (Spliterators.java:1939)
at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:509)
at java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:499)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential (ReduceOps.java:921)
at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect (ReferencePipeline.java:682)
at io.swagger.v3.parser.processors.ExternalRefProcessor.processSchema (ExternalRefProcessor.java:253)
at io.swagger.v3.parser.processors.ExternalRefProcessor.processSchema (ExternalRefProcessor.java:244)
at io.swagger.v3.parser.processors.ExternalRefProcessor.processRefSchemaObject (ExternalRefProcessor.java:1009)
at io.swagger.v3.parser.processors.ExternalRefProcessor.processPathItem (ExternalRefProcessor.java:350)
at io.swagger.v3.parser.processors.ExternalRefProcessor.processRefToExternalPathItem (ExternalRefProcessor.java:325)
at io.swagger.v3.parser.processors.PathsProcessor.processReferencePath (PathsProcessor.java:346)
at io.swagger.v3.parser.processors.PathsProcessor.processPaths (PathsProcessor.java:68)
at io.swagger.v3.parser.OpenAPIResolver.resolve (OpenAPIResolver.java:72)
at io.swagger.v3.parser.OpenAPIResolver.resolve (OpenAPIResolver.java:59)
at io.swagger.v3.parser.OpenAPIV3Parser.resolve (OpenAPIV3Parser.java:240)
at io.swagger.v3.parser.OpenAPIV3Parser.readContents (OpenAPIV3Parser.java:183)
at io.swagger.v3.parser.OpenAPIV3Parser.readLocation (OpenAPIV3Parser.java:97)
at io.swagger.parser.OpenAPIParser.readLocation (OpenAPIParser.java:16)
at org.openapitools.codegen.config.CodegenConfigurator.toContext (CodegenConfigurator.java:687)
at org.openapitools.codegen.config.CodegenConfigurator.toClientOptInput (CodegenConfigurator.java:745)
at org.openapitools.codegen.plugin.CodeGenMojo.execute (CodeGenMojo.java:972)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
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:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Is this expected? Can I avoid this in some other way, except creating TypeC, TypeD etc?
ivan-mladenovic and stojsavljevic
Metadata
Metadata
Assignees
Labels
No labels