swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition.
When generating model types from a swagger.json which includes arrays of undefined item type, the plugin produces a null pointer exception:
java.lang.RuntimeException: Could not process model 'RoleContainerModel'.Please make sure that your schema is correct!
at io.swagger.codegen.DefaultGenerator.generateModels(DefaultGenerator.java:370)
at io.swagger.codegen.DefaultGenerator.generate(DefaultGenerator.java:743)
at io.swagger.codegen.plugin.CodeGenMojo.execute(CodeGenMojo.java:534)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
Caused by: java.lang.NullPointerException
at io.swagger.codegen.languages.KotlinClientCodegen.toModelName(KotlinClientCodegen.java:360)
at io.swagger.codegen.languages.KotlinClientCodegen.getSwaggerType(KotlinClientCodegen.java:398)
at io.swagger.codegen.DefaultCodegen.getTypeDeclaration(DefaultCodegen.java:1209)
at io.swagger.codegen.languages.KotlinClientCodegen.getTypeDeclaration(KotlinClientCodegen.java:420)
at io.swagger.codegen.languages.KotlinClientCodegen.getTypeDeclaration(KotlinClientCodegen.java:412)
at io.swagger.codegen.DefaultCodegen.fromProperty(DefaultCodegen.java:1770)
at io.swagger.codegen.DefaultCodegen.addVars(DefaultCodegen.java:3108)
at io.swagger.codegen.DefaultCodegen.addVars(DefaultCodegen.java:3079)
at io.swagger.codegen.DefaultCodegen.addVars(DefaultCodegen.java:3065)
at io.swagger.codegen.DefaultCodegen.fromModel(DefaultCodegen.java:1451)
at io.swagger.codegen.DefaultGenerator.processModels(DefaultGenerator.java:1011)
at io.swagger.codegen.DefaultGenerator.generateModels(DefaultGenerator.java:365)
... 25 more
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.032 s
[INFO] Finished at: 2018-11-07T16:14:15-05:00
[INFO] Final Memory: 19M/35M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal io.swagger:swagger-codegen-maven-plugin:2.3.1:generate (default) on project olympus-user-management: Code generation failed. See above for the full exception. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
Note the JSON above is just a snip of a huge .json document, where said error occurs multiple times. I can provide the full JSON if needed, but I think this cleanly creates the issue
I've confirmed this addresses the issue by editing the JSON to add "items": { "type": "string" } and it resolves the build-time issue, but will (probably) cause runtime issues.
Description
When generating model types from a swagger.json which includes arrays of undefined item type, the plugin produces a null pointer exception:
Swagger-codegen version
Maven plugin 2.3.1
Swagger declaration file content or url
Note the JSON above is just a snip of a huge .json document, where said error occurs multiple times. I can provide the full JSON if needed, but I think this cleanly creates the issue
Command line used for generation
From POM.xml
Steps to reproduce
mvn clean generate-sources