Swagger-codegen: [Javascript] Config option "usePromises" fails the generation if boolean is passed

Created on 7 Mar 2017  路  10Comments  路  Source: swagger-api/swagger-codegen

Description

Hello!

I have config like so:

{
  "usePromises": false
}

And when I try to generate JavaScript client I get this

Exception in thread "main" java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String
        at io.swagger.codegen.languages.JavascriptClientCodegen.processOpts(JavascriptClientCodegen.java:231)
        at io.swagger.codegen.DefaultGenerator.configureGeneratorProperties(DefaultGenerator.java:127)
        at io.swagger.codegen.DefaultGenerator.generate(DefaultGenerator.java:653)
        at io.swagger.codegen.cmd.Generate.run(Generate.java:234)
        at io.swagger.codegen.SwaggerCodegen.main(SwaggerCodegen.java:41)

And if I change that boolean to string "false" everything works fine. I think boolean is more essential there.

Is this a bug?

Swagger-codegen version

From master, pulled yesterday. (Less than 24 hours ago)

Swagger declaration file content or url
{
  "usePromises": false
}
JavaScripNode.js Bug

Most helpful comment

@khorolets @frol I've fixed the issue via #4974. Please pull the latest master to give it a try.

All 10 comments

@khorolets thanks for reporting the issue. I think I know which file to apply the fix. May I know if you've time to work on the fix? If yes, I can show you some good starting points.

@wing328 I'd like to help, but I don't code on Java, sorry :)

@khorolets @frol I've fixed the issue via #4974. Please pull the latest master to give it a try.

+1
@wing328 I think this issue will happen with all the code generators.
Need to change every Boolean.parseBoolean((String)additionalProperties.get(???)) to convertPropertyToBooleanAndWriteBack(???)

@yohanakh Yup, I've already reviewed and filed https://github.com/swagger-api/swagger-codegen/pull/4975.

@wing328 Thank you. I confirm the fix helps. You're awesome :)

@khorolets no problem. Let us know if you've any other feedback/question.

(If your company is using Swagger Codegen, please consider adding your company name to this list)

@yohanakh https://github.com/swagger-api/swagger-codegen/pull/4975 merged into master. If you still find any generator using Boolean.parseBoolean((String) ..., please let me know.

@wing328 - I am using swagger-codegen-maven-plugin version 3.0.0-rc1 and running into this issue.
Is the fix in the right branch for the plugin to work?
Thanks

Caused by: java.lang.ClassCastException: java.lang.Boolean cannot be cast to io.swagger.v3.oas.models.media.Schema
at io.swagger.codegen.languages.java.AbstractJavaCodegen.getTypeDeclaration (AbstractJavaCodegen.java:650)
at io.swagger.codegen.languages.DefaultCodegenConfig.fromProperty (DefaultCodegenConfig.java:1577)
at io.swagger.codegen.languages.DefaultCodegenConfig.addParentContainer (DefaultCodegenConfig.java:2704)
at io.swagger.codegen.languages.DefaultCodegenConfig.addAdditionPropertiesToCodeGenModel (DefaultCodegenConfig.java:1347)
at io.swagger.codegen.languages.DefaultCodegenConfig.fromModel (DefaultCodegenConfig.java:1311)
at io.swagger.codegen.languages.java.AbstractJavaCodegen.fromModel (AbstractJavaCodegen.java:855)
at io.swagger.codegen.DefaultGenerator.processModels (DefaultGenerator.java:961)
at io.swagger.codegen.DefaultGenerator.generateModels (DefaultGenerator.java:358)
at io.swagger.codegen.DefaultGenerator.generate (DefaultGenerator.java:728)

@murthy5 Thanks for tagging me but I'm no longer involved in this project. I hope others will be able to help you out. Good luck.

Was this page helpful?
0 / 5 - 0 ratings