Java Heap Space Error

Hi everyone
I have an issue in my process, I have a Process with a call activity which has a boundary conditional event. when the i try to submit the user task in the child process, i get java heap memory space error and the camunda engine will be crached ! does anyone know why this would happen?

childRepeat.bpmn (3.0 KB)
mainProcess.bpmn (4.3 KB)

Welcome back!

If I had to guess, I would expect that it’s because there’s no variable event controlling the interruption… So it interrupts the activity, which it then immediately creates a new one, which is immediately interrupted, and then … boom.

Try it with “update” (without the quotes) in the “Variable Event” box of the Boundary Conditional Event.

1 Like

Thanks for your reply,
I set update in variable event in the conditional boundary, but the same story has happend and i got java heap error.

Hello my friends!

Welcome to the world of infinite looping! HAHAHAHAHA

What is probably happening is that in your Boundary event, you defined that while the variable “repeat” == “on”, you will repeat the call activity, however you need to define the validation condition and the “variable events”.

A conditional boundary event when the Variable events field is not set, it validates and executes at each step… that is, your event is validating and executing continuously and infinitely, because when it calls the call activity, it sets “repeat” as “on”, and validates again, and setta repeat as on, and so on infinitely.

I believe that if you put “create” in the “variable events” field of your condition, it will solve it! So its validation will only happen when the Repeat variable is created.

Below is a part of Camunda’s official documentation and oficial camunda docs webpage link, perhaps explaining it in better words than mine.
Conditional Events | docs.camunda.org.

I hope this helps!
:smiley:

William Robert Alves

I don’t know the need for this modeling of yours, but I would do it differently…

Main process:
image

ChildProcess:
image

That way you don’t run the risk of bursting the heap.
Because the variable will be created only after the call activity exits and validation will only occur after its instance leaves the subprocess and passes through the gateway.

Remembering that if you leave it like this, your “repeat” will always be ON… so I suggest creating some logic for it to work properly.

William Robert Alves

Hi Hope You are doing well
as you know there is not any loop in the process model because we have a wait state (user task) in the child process. by the way, i set create in variable event section of conditional event the same story had been occured.

Indeed this is just a sample and is not a real production project. I want to know why camunda engine does not handle this situation and why this strange behaviour has happend!

Hello my friend!

In your process model, the first activity you have in the child process is a script task, and this script task is the one that sets the “Repeat” variable to “on”.

When this happens, it automatically activates your “Boundary event”.

If you want, you can try to do a test by putting a user task just to lock your process between the boundary event and the call activity, so when your boundary event is activated, you can be sure of it and you will lock your process with this user task and you can better understand the behavior, looking at the current state in the parent process, and in the child process, like my example below:

image

William Robert Alves

1 Like

Thanks @WilliamR.Alves
The bpmn model you provided helped me to get whats going on. Every time i completed verify boundary loop user task, again this task was in my task list :slight_smile:

1 Like

Thats great my friend!!

Im happy to be able to help you :grin:
Have a nice weekend bro!

See ya!

William Robert Alves

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.