Activiti
Activiti copied to clipboard
TransientVariableInstance cannot be cast to VariableInstanceEntity
Activiti6
I have a workflow that only contains the servicetask node. I set a transient variable at the start node. After the workflow is all executed. A type conversion exception was thrown inside activiti.
public class TestDispatcher implements JavaDelegate {
@Override
public void execute(DelegateExecution execution) {
execution.setTransientVariable("test", "123");
}
}
This file reports an error。
ExecutionEntityManagerImpl line569 // Get variables related to execution and delete them
if (!enableExecutionRelationshipCounts ||
(enableExecutionRelationshipCounts && ((CountingExecutionEntity) executionEntity).getVariableCount() > 0)) {
Collection<VariableInstance> executionVariables = executionEntity.getVariableInstancesLocal().values();
for (VariableInstance variableInstance : executionVariables) {
VariableInstanceEntity variableInstanceEntity = (VariableInstanceEntity) variableInstance;
VariableInstanceEntityManager variableInstanceEntityManager = getVariableInstanceEntityManager();
variableInstanceEntityManager.delete(variableInstanceEntity);
if (variableInstanceEntity.getByteArrayRef() != null && variableInstanceEntity.getByteArrayRef().getId() != null) {
getByteArrayEntityManager().deleteByteArrayById(variableInstanceEntity.getByteArrayRef().getId());
}
}
}
The following error occurred java.lang.ClassCastException: org.activiti.engine.impl.persistence.entity.TransientVariableInstance cannot be cast to org.activiti.engine.impl.persistence.entity.VariableInstanceEntity
Is it necessary to have a waiting node to disable the transient variable before the end of the process?