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

[BUG][CLOJURE] Clojure fails with java.lang.ClassCastException #18199

Closed
5 tasks done
njerig opened this issue Mar 22, 2024 · 1 comment · Fixed by #18201
Closed
5 tasks done

[BUG][CLOJURE] Clojure fails with java.lang.ClassCastException #18199

njerig opened this issue Mar 22, 2024 · 1 comment · Fixed by #18201

Comments

@njerig
Copy link
Contributor

njerig commented Mar 22, 2024

Bug Report Checklist

  • Have you provided a full/minimal spec to reproduce the issue?

  • Have you validated the input using an OpenAPI validator (example)?

  • Have you tested with the latest master to confirm the issue still exists?

  • Have you searched for related issues/PRs?

  • What's the actual output vs expected output?
    Expected: a Plaid client is produced

    Actual output:

Exception in thread "main" java.lang.RuntimeException: Could not process model 'ProfileGetResponse'.Please make sure that your schema is correct!
        at org.openapitools.codegen.DefaultGenerator.generateModels(DefaultGenerator.java:540)
        at org.openapitools.codegen.DefaultGenerator.generate(DefaultGenerator.java:1226)
        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)
Caused by: java.lang.ClassCastException: class java.lang.Boolean cannot be cast to class io.swagger.v3.oas.models.media.Schema (java.lang.Boolean is in module java.base of loader 'bootstrap'; io.swagger.v3.oas.models.media.Schema is in unnamed module of loader 'app')
        at org.openapitools.codegen.languages.ClojureClientCodegen.getTypeDeclaration(ClojureClientCodegen.java:174)
        at org.openapitools.codegen.DefaultCodegen.fromProperty(DefaultCodegen.java:4130)
        at org.openapitools.codegen.DefaultCodegen.fromProperty(DefaultCodegen.java:3931)
        at org.openapitools.codegen.DefaultCodegen.addParentContainer(DefaultCodegen.java:5838)
        at org.openapitools.codegen.DefaultCodegen.addAdditionPropertiesToCodeGenModel(DefaultCodegen.java:3722)
        at org.openapitools.codegen.DefaultCodegen.updateModelForObject(DefaultCodegen.java:2966)
        at org.openapitools.codegen.DefaultCodegen.fromModel(DefaultCodegen.java:3188)
        at org.openapitools.codegen.languages.ClojureClientCodegen.fromModel(ClojureClientCodegen.java:205)
        at org.openapitools.codegen.DefaultGenerator.processModels(DefaultGenerator.java:1681)
        at org.openapitools.codegen.DefaultGenerator.generateModels(DefaultGenerator.java:535)
        ... 4 more
Description

The output is above and command to generate the output is below.

openapi-generator version

v7.4.0

OpenAPI declaration file content or url

https://github.com/plaid/plaid-openapi/raw/master/2020-09-14.yml

Generation Details

openapi-generator-cli generate -g clojure -i 2020-09-14.yml -o build/generated-clojure

Steps to reproduce
  1. Clone plaid-openapi
  2. Install OpenAPI Generator CLI v7.4.0
  3. Run the above command (in "Generation Details")
Suggest a fix

from ClojureClientCodegen.java#L174:

Schema inner = (Schema) p.getAdditionalProperties();

This always suggests that getAdditionalProperties always returns a Schema object when it can also return a Boolean. Extra handling for the types might be needed.

@wing328
Copy link
Member

wing328 commented Mar 22, 2024

can you please file a PR with the suggested fix?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants