diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/agenda/ExecuteInactiveBehaviorsOperation.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/agenda/ExecuteInactiveBehaviorsOperation.java index 00af4eca30aafbd7e1c70fd8f72bc29273738463..ceb5f22a84e37c6d330d201de5aa3e31179f616e 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/agenda/ExecuteInactiveBehaviorsOperation.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/agenda/ExecuteInactiveBehaviorsOperation.java @@ -51,7 +51,7 @@ public class ExecuteInactiveBehaviorsOperation extends AbstractOperation { Collection inactiveExecutions = commandContext.getExecutionEntityManager().findInactiveExecutionsByProcessInstanceId(executionEntity.getProcessInstanceId()); for (ExecutionEntity inactiveExecution : inactiveExecutions) { if (!inactiveExecution.isActive() && flowNodeIdsWithInactivatedBehavior.contains(inactiveExecution.getActivityId()) - && !commandContext.getDbSqlSession().isEntityToBeDeleted(inactiveExecution)) { + && !inactiveExecution.isDeleted()) { FlowNode flowNode = (FlowNode) process.getFlowElement(inactiveExecution.getActivityId(), true); InactiveActivityBehavior inactiveActivityBehavior = ((InactiveActivityBehavior) flowNode.getBehavior()); diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ExecutionEntityManagerImpl.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ExecutionEntityManagerImpl.java index 7d2381f2dac3cc96ff4841fef80991ca7090f2cb..01800435bab94a3736e02a862c2b8a97cad20bf4 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ExecutionEntityManagerImpl.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ExecutionEntityManagerImpl.java @@ -59,6 +59,20 @@ public class ExecutionEntityManagerImpl extends AbstractEntityManager getDataManager() { return executionDataManager; } + + // Overriding the default delete methods to set the 'isDeleted' flag + + @Override + public void delete(ExecutionEntity entity) { + super.delete(entity); + entity.setDeleted(true); + } + + @Override + public void delete(ExecutionEntity entity, boolean fireDeleteEvent) { + super.delete(entity, fireDeleteEvent); + entity.setDeleted(true); + } // FIND METHODS