Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Repeated null in "anyOf" selector throws exception #18732

Closed
brent-statsig opened this issue May 22, 2024 · 5 comments
Closed

Repeated null in "anyOf" selector throws exception #18732

brent-statsig opened this issue May 22, 2024 · 5 comments

Comments

@brent-statsig
Copy link

Description
java.util.NoSuchElementException
	at java.base/java.util.LinkedHashMap$LinkedHashIterator.nextNode(LinkedHashMap.java:721)
	at java.base/java.util.LinkedHashMap$LinkedKeyIterator.next(LinkedHashMap.java:741)
	at org.openapitools.codegen.utils.ModelUtils.getType(ModelUtils.java:2142)
	at org.openapitools.codegen.OpenAPINormalizer.processSimplifyAnyOf(OpenAPINormalizer.java:1071)
	at org.openapitools.codegen.OpenAPINormalizer.normalizeAnyOf(OpenAPINormalizer.java:663)
	at org.openapitools.codegen.OpenAPINormalizer.normalizeSchema(OpenAPINormalizer.java:522)
	at org.openapitools.codegen.OpenAPINormalizer.normalizeProperties(OpenAPINormalizer.java:599)
	at org.openapitools.codegen.OpenAPINormalizer.normalizeSchema(OpenAPINormalizer.java:555)
	at org.openapitools.codegen.OpenAPINormalizer.processNormalize31Spec(OpenAPINormalizer.java:1254)
	at org.openapitools.codegen.OpenAPINormalizer.normalizeArraySchema(OpenAPINormalizer.java:570)
	at org.openapitools.codegen.OpenAPINormalizer.normalizeSchema(OpenAPINormalizer.java:513)
	at org.openapitools.codegen.OpenAPINormalizer.normalizeProperties(OpenAPINormalizer.java:599)
	at org.openapitools.codegen.OpenAPINormalizer.normalizeSchema(OpenAPINormalizer.java:555)
	at org.openapitools.codegen.OpenAPINormalizer.normalizeComponentsSchemas(OpenAPINormalizer.java:484)
	at org.openapitools.codegen.OpenAPINormalizer.normalize(OpenAPINormalizer.java:287)
	at org.openapitools.codegen.DefaultGenerator.configureGeneratorProperties(DefaultGenerator.java:274)
	at org.openapitools.codegen.DefaultGenerator.generate(DefaultGenerator.java:1214)
	at org.openapitools.codegen.cmd.Generate.execute(Generate.java:535)
	at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32)
	at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:66)
openapi-generator version

openapi-generator-cli 7.5.0
commit : cce4139

OpenAPI declaration file content or url

Caused by this field with repeated types:

"targetValue": {
  "anyOf": [
    { "type": "array", "items": { "type": "string" } },
    { "type": "array", "items": { "type": "number" } },
    { "type": "string" },
    { "type": "number" },
    { "type": "null" },
    { "type": "null" }
  ]
},
@brent-statsig
Copy link
Author

The broken API definition is being generated by https://github.com/asteasolutions/zod-to-openapi, which I'm creating an issue for as well - just figured I would flag since this seems like an unexpected behavior!

@wing328
Copy link
Member

wing328 commented May 22, 2024

agreed with you that shouldn't throw an exception. i'll take a look later this week

as a workaround, please manually remove the duplicated type: null for the time being

@wing328
Copy link
Member

wing328 commented May 26, 2024

i tried to repeat the issue using the latest master but couldn't

can you please give it another try with the latest master or v7.6.0?

@newsgrep
Copy link

newsgrep commented Jun 24, 2024

I was able to reproduce smth similar on 7.6.0 and 7.7.0-20240520.095624-1.jar.
See line 42 in myapi_2.json

[main] ERROR o.o.codegen.DefaultGenerator - An exception occurred in OpenAPI Normalizer. Please report the issue via https://github.com/openapitools/openapi-generator/issues/new/: 
[main] ERROR o.o.codegen.DefaultGenerator - An exception occurred in OpenAPI Normalizer. Please report the issue via https://github.com/openapitools/openapi-generator/issues/new/: 
java.util.NoSuchElementException
	at java.base/java.util.LinkedHashMap$LinkedHashIterator.nextNode(LinkedHashMap.java:758)
	at java.base/java.util.LinkedHashMap$LinkedKeyIterator.next(LinkedHashMap.java:778)
	at org.openapitools.codegen.utils.ModelUtils.getType(ModelUtils.java:2141)
	at org.openapitools.codegen.utils.ModelUtils.isArraySchema(ModelUtils.java:594)
	at org.openapitools.codegen.OpenAPINormalizer.normalizeSchema(OpenAPINormalizer.java:512)
	at org.openapitools.codegen.OpenAPINormalizer.normalizeAnyOf(OpenAPINormalizer.java:659)
	at org.openapitools.codegen.OpenAPINormalizer.normalizeSchema(OpenAPINormalizer.java:522)
	at org.openapitools.codegen.OpenAPINormalizer.normalizeContent(OpenAPINormalizer.java:367)
	at org.openapitools.codegen.OpenAPINormalizer.normalizeResponses(OpenAPINormalizer.java:438)
	at org.openapitools.codegen.OpenAPINormalizer.normalizePaths(OpenAPINormalizer.java:330)
	at org.openapitools.codegen.OpenAPINormalizer.normalize(OpenAPINormalizer.java:286)
	at org.openapitools.codegen.DefaultGenerator.configureGeneratorProperties(DefaultGenerator.java:279)
	at org.openapitools.codegen.DefaultGenerator.generate(DefaultGenerator.java:1289)
	at org.openapitools.codegen.cmd.Generate.execute(Generate.java:535)
	at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32)
	at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:66)
Exception in thread "main" java.util.NoSuchElementException
	at java.base/java.util.LinkedHashMap$LinkedHashIterator.nextNode(LinkedHashMap.java:758)
	at java.base/java.util.LinkedHashMap$LinkedKeyIterator.next(LinkedHashMap.java:778)
	at org.openapitools.codegen.utils.ModelUtils.getType(ModelUtils.java:2141)
	at org.openapitools.codegen.utils.ModelUtils.isArraySchema(ModelUtils.java:594)
	at org.openapitools.codegen.InlineModelResolver.gatherInlineModels(InlineModelResolver.java:341)
	at org.openapitools.codegen.InlineModelResolver.gatherInlineModels(InlineModelResolver.java:407)
	at org.openapitools.codegen.InlineModelResolver.flattenContent(InlineModelResolver.java:471)
	at org.openapitools.codegen.InlineModelResolver.flattenResponses(InlineModelResolver.java:555)
	at org.openapitools.codegen.InlineModelResolver.flattenPaths(InlineModelResolver.java:149)
	at org.openapitools.codegen.InlineModelResolver.flatten(InlineModelResolver.java:108)
	at org.openapitools.codegen.DefaultGenerator.configureGeneratorProperties(DefaultGenerator.java:292)
	at org.openapitools.codegen.DefaultGenerator.generate(DefaultGenerator.java:1289)
	at org.openapitools.codegen.cmd.Generate.execute(Generate.java:535)
	at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32)
	at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:66)

@wing328
Copy link
Member

wing328 commented Jun 25, 2024

should be fixed via #19014

please give it a try with the latest master (snapshot version mentioned in the project's readme will be published later as part of the travis ci workflow)

@wing328 wing328 closed this as completed Jun 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants