Value in variables of Service Tasks getting carried forward

I have a workflow comprising of service tasks and user tasks but mostly my question is related to member variables in java code of corresponding service tasks.

I’ve implemented java logic for corresponding service tasks.
So, for “TaskOne” service task, I have configured variables in execution listener like this:

Now there is a java code which will be used for the event “emailNotificationDelegate”, I will have 2 member variables like this:

FixedValue toAddress;
FixedValue ccAddress;

So, all the service tasks where this event is configured will execute the same java code.

My question is, for first service task, I have configured values: toAddress and ccAddress.
Are those values are saved throughout the process instance ?
Because if I configure only “toAddress” in remaining service tasks (which are executed at later stage), the value of ccAddress which is configured in first service task( is also used, event though i do not configure ccAddress key.
I was expecting ccAddress field to be empty or having null value but the value just gets carried forward for all the remaining service tasks

Is there any way I can make sure only values which are configured in listener are available in java code?

You’re using a delegate expression, so I assume you’re using a Spring bean here?

If so, then there’s no new instance created when you delegate to this bean.
This means that when the value is set once, the next invocation will also have the same value.

More details can be found here: BPMN 2.0 Constructs · Flowable Open Source Documentation

Thanks Joram for the reply,
Yes I’m using Spring-boot, I saw the xml configuration in the link you mentioned, where we could change bean type to be simpleton or prototype.
But is there any way to avoid the above behaviour and get the values that are configured in each service task separately?
One thing I was trying is to get the taskId and use that in method getVariableLocal of runtimeService, but I was not able to get taskId for service task which I was currently on. After looking into documentation, I think even if I do singleResult in the end by creating a task query, I will get the user task,(where the flow is in wait state).
So, currently still looking for options