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

Is there a way to configure Java heap size for the docker container? #672

Open
michaelgmiller1 opened this issue Dec 19, 2022 · 1 comment

Comments

@michaelgmiller1
Copy link

michaelgmiller1 commented Dec 19, 2022

When I run openapi-generator-cli on a large OpenAPI file with useDocker, I get the following error when generating Java code:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
	at java.base/java.util.Arrays.copyOf(Unknown Source)
	at java.base/java.lang.AbstractStringBuilder.ensureCapacityInternal(Unknown Source)
	at java.base/java.lang.AbstractStringBuilder.append(Unknown Source)
	at java.base/java.lang.StringBuffer.append(Unknown Source)
	at java.base/java.io.StringWriter.write(Unknown Source)
	at com.samskivert.mustache.Template$Segment.write(Template.java:369)
	at com.samskivert.mustache.Mustache$StringSegment.execute(Mustache.java:718)
	at com.samskivert.mustache.Template.executeSegs(Template.java:157)
	at com.samskivert.mustache.Template.execute(Template.java:134)
	at com.samskivert.mustache.Template.execute(Template.java:125)
	at org.openapitools.codegen.templating.MustacheEngineAdapter.compileTemplate(MustacheEngineAdapter.java:65)
	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.generateSupportingFiles(DefaultGenerator.java:738)
	at org.openapitools.codegen.DefaultGenerator.generate(DefaultGenerator.java:919)
	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)

Other languages work fine, and I suspect I just need to give the Java heap some more memory. However, when I look at

if (this.configService.useDocker) {
return [
`docker run --rm -v "${this.configService.cwd}:/local"`,
this.versionManager.getDockerImageName(),
].join(' ');
}
, it doesn't appear there's any way to pass in JAVA_OPTS="-Xmx4g" or similar.

Am I missing something? Is there any way to set the max Java heap size?

@michaelgmiller1
Copy link
Author

if I hack in -e JAVA_OPTS="-Xms2G -Xmx4G" into the docker run cmd, it works fine! So it would be great if we could add in a way to pass through JAVA _OPTS to a docker container

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

No branches or pull requests

1 participant