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?
From master, pulled yesterday. (Less than 24 hours ago)
{
"usePromises": false
}
@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.
Most helpful comment
@khorolets @frol I've fixed the issue via #4974. Please pull the latest master to give it a try.