Heap Space Error when deploying BPMNs to

Getting the error below when deploying my BPMN files using a custom config with Spring Autdeploy… Is there any way to stop the engine from generating raster graphics on startup (ideally in the config)?

 Message: Error while generating process diagram, image will not be stored in repository 
java.lang.OutOfMemoryError: Java heap space
	at java.awt.image.DataBufferInt.<init>(DataBufferInt.java:75) ~[?:1.8.0_191]
	at java.awt.image.Raster.createPackedRaster(Raster.java:467) ~[?:1.8.0_191]
	at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1032) ~[?:1.8.0_191]
	at java.awt.image.BufferedImage.<init>(BufferedImage.java:333) ~[?:1.8.0_191]
	at org.flowable.image.impl.DefaultProcessDiagramCanvas.initialize(DefaultProcessDiagramCanvas.java:203) ~[flowable-image-generator-6.4.2.jar:6.4.2]
	at org.flowable.image.impl.DefaultProcessDiagramCanvas.<init>(DefaultProcessDiagramCanvas.java:178) ~[flowable-image-generator-6.4.2.jar:6.4.2]
	at org.flowable.image.impl.DefaultProcessDiagramGenerator.initProcessDiagramCanvas(DefaultProcessDiagramGenerator.java:1041) ~[flowable-image-generator-6.4.2.jar:6.4.2]
	at org.flowable.image.impl.DefaultProcessDiagramGenerator.generateProcessDiagram(DefaultProcessDiagramGenerator.java:574) ~[flowable-image-generator-6.4.2.jar:6.4.2]
	at org.flowable.image.impl.DefaultProcessDiagramGenerator.generateDiagram(DefaultProcessDiagramGenerator.java:489) ~[flowable-image-generator-6.4.2.jar:6.4.2]
	at org.flowable.image.impl.DefaultProcessDiagramGenerator.generateDiagram(DefaultProcessDiagramGenerator.java:518) ~[flowable-image-generator-6.4.2.jar:6.4.2]
	at org.flowable.engine.impl.bpmn.deployer.ProcessDefinitionDiagramHelper.createDiagramForProcessDefinition(ProcessDefinitionDiagramHelper.java:49) ~[flowable-engine-6.4.2.jar:6.4.2]
	at org.flowable.engine.impl.bpmn.deployer.BpmnDeployer.createAndPersistNewDiagramsIfNeeded(BpmnDeployer.java:133) ~[flowable-engine-6.4.2.jar:6.4.2]
	at org.flowable.engine.impl.bpmn.deployer.BpmnDeployer.deploy(BpmnDeployer.java:86) ~[flowable-engine-6.4.2.jar:6.4.2]
	at org.flowable.engine.impl.persistence.deploy.DeploymentManager.deploy(DeploymentManager.java:62) ~[flowable-engine-6.4.2.jar:6.4.2]
	at org.flowable.engine.impl.cmd.DeployCmd.executeDeploy(DeployCmd.java:126) ~[flowable-engine-6.4.2.jar:6.4.2]
	at org.flowable.engine.impl.cmd.DeployCmd.execute(DeployCmd.java:69) ~[flowable-engine-6.4.2.jar:6.4.2]
	at org.flowable.engine.impl.cmd.DeployCmd.execute(DeployCmd.java:44) ~[flowable-engine-6.4.2.jar:6.4.2]
	at org.flowable.engine.impl.interceptor.CommandInvoker$1.run(CommandInvoker.java:51) ~[flowable-engine-6.4.2.jar:6.4.2]
	at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:93) ~[flowable-engine-6.4.2.jar:6.4.2]
	at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:72) ~[flowable-engine-6.4.2.jar:6.4.2]
	at org.flowable.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:56) ~[flowable-engine-6.4.2.jar:6.4.2]
	at org.flowable.engine.impl.interceptor.BpmnOverrideContextInterceptor.execute(BpmnOverrideContextInterceptor.java:25) ~[flowable-engine-6.4.2.jar:6.4.2]
	at org.flowable.common.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:53) ~[flowable-engine-common-6.4.2.jar:6.4.2]
	at org.flowable.common.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:72) ~[flowable-engine-common-6.4.2.jar:6.4.2]
	at org.flowable.common.spring.SpringTransactionInterceptor.lambda$execute$0(SpringTransactionInterceptor.java:56) ~[flowable-spring-common-6.4.2.jar:6.4.2]
	at org.flowable.common.spring.SpringTransactionInterceptor$$Lambda$25/1831456934.doInTransaction(Unknown Source) ~[?:?]
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133) ~[spring-tx-4.3.22.RELEASE.jar:4.3.22.RELEASE]
	at org.flowable.common.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:56) ~[flowable-spring-common-6.4.2.jar:6.4.2]
	at org.flowable.common.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30) ~[flowable-engine-common-6.4.2.jar:6.4.2]
	at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:56) ~[flowable-engine-common-6.4.2.jar:6.4.2]
	at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:51) ~[flowable-engine-common-6.4.2.jar:6.4.2]
	at org.flowable.engine.impl.RepositoryServiceImpl.deploy(RepositoryServiceImpl.java:97) ~[flowable-engine-6.4.2.jar:6.4.2]

My guess is that processEngineConfiguration.setCreateDiagramOnDeploy(false) would do it but I’ve never actually used this setting.

1 Like

Thanks so much, that seemed to work…
I wish I knew more about these flags, going to take a look through them and see what each one does to make sure I’m not turning on something I don’t need/will consume many resources.