[BUG] InaccessibleObjectException: Unable to make field transient #13684
Open
Description
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?
- [Optional] Sponsorship to speed up the bug fix or feature request (example)
Description
When I try to generate a python client for the current petstore api, the generator runs into an issue. It seems that this problem is platform dependent. The error occurs on Windows with Java 17, but on Linux with Java 8 everything works fine.
npx @openapitools/openapi-generator-cli generate -i petstore.yaml -g python -o python
[main] INFO o.o.codegen.DefaultGenerator - Generating with dryRun=false
[main] INFO o.o.c.ignore.CodegenIgnoreProcessor - No .openapi-generator-ignore file found.
[main] INFO o.o.codegen.DefaultGenerator - OpenAPI Generator: python (client)
[main] INFO o.o.codegen.DefaultGenerator - Generator 'python' is considered stable.
[main] INFO o.o.c.l.AbstractPythonCodegen - Environment variable PYTHON_POST_PROCESS_FILE not defined so the Python code may not be properly formatted. To define it, try 'export PYTHON_POST_PROCESS_FILE="/usr/local/bin/yapf -i"' (Linux/Mac)
[main] INFO o.o.c.l.AbstractPythonCodegen - NOTE: To enable file post-processing, 'enablePostProcessFile' must be set to `true` (--enable-post-process-file for CLI).
[main] INFO o.o.c.ignore.CodegenIgnoreProcessor - No .openapi-generator-ignore file found.
[main] INFO o.o.c.languages.PythonClientCodegen - Environment variable PYTHON_POST_PROCESS_FILE not defined so the Python code may not be properly formatted. To define it, try 'export PYTHON_POST_PROCESS_FILE="/usr/local/bin/yapf -i"' (Linux/Mac)
[main] INFO o.o.c.languages.PythonClientCodegen - NOTE: To enable file post-processing, 'enablePostProcessFile' must be set to `true` (--enable-post-process-file for CLI).
[main] INFO o.o.c.languages.PythonClientCodegen - generateAliasAsModel is hard coded to true in this generator. Alias models will only be generated if they contain validations or enums
Exception in thread "main" java.lang.RuntimeException: Could not generate model 'Address'
at org.openapitools.codegen.DefaultGenerator.generateModels(DefaultGenerator.java:563)
at org.openapitools.codegen.DefaultGenerator.generate(DefaultGenerator.java:912)
at org.openapitools.codegen.cmd.Generate.execute(Generate.java:465)
at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32)
at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:66)
Caused by: com.github.jknack.handlebars.HandlebarsException: model.handlebars:3:3: java.lang.reflect.InaccessibleObjectException: Unable to make field transient java.util.HashMap$Node[] java.util.HashMap.table accessible: module java.base does not "opens java.util" to unnamed module @3fa77460
model.handlebars:3:3
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178)
at java.base/java.lang.reflect.Field.setAccessible(Field.java:172)
at com.github.jknack.handlebars.context.FieldValueResolver$FieldMember.setAccessible(FieldValueResolver.java:150)
at com.github.jknack.handlebars.context.MemberValueResolver.cache(MemberValueResolver.java:82)
at com.github.jknack.handlebars.context.MemberValueResolver.resolve(MemberValueResolver.java:54)
at com.github.jknack.handlebars.Context$CompositeValueResolver.resolve(Context.java:199)
at com.github.jknack.handlebars.internal.path.PropertyPath.eval(PropertyPath.java:52)
at com.github.jknack.handlebars.Context$PathExpressionChain.next(Context.java:361)
at com.github.jknack.handlebars.Context$PathExpressionChain.eval(Context.java:381)
at com.github.jknack.handlebars.Context.get(Context.java:618)
at com.github.jknack.handlebars.internal.Partial.override(Partial.java:253)
at com.github.jknack.handlebars.internal.Partial.merge(Partial.java:226)
at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:125)
at com.github.jknack.handlebars.internal.TemplateList.merge(TemplateList.java:95)
at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:125)
at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:113)
at org.openapitools.codegen.templating.HandlebarsEngineAdapter.compileTemplate(HandlebarsEngineAdapter.java:92)
at org.openapitools.codegen.TemplateManager.write(TemplateManager.java:163)
at org.openapitools.codegen.DefaultGenerator.processTemplateToFile(DefaultGenerator.java:1058)
at org.openapitools.codegen.DefaultGenerator.processTemplateToFile(DefaultGenerator.java:1045)
at org.openapitools.codegen.DefaultGenerator.generateModel(DefaultGenerator.java:402)
at org.openapitools.codegen.DefaultGenerator.generateModels(DefaultGenerator.java:554)
... 4 more
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field transient java.util.HashMap$Node[] java.util.HashMap.table accessible: module java.base does not "opens java.util" to unnamed module @3fa77460
... 28 more
openapi-generator version
6.2.0
OpenAPI declaration file content or url
See https://editor.swagger.io/
Generation Details
npx @openapitools/openapi-generator-cli generate -i petstore.yaml -g python -o python