From ae08d49350570213c0452c50fa1886313e955169 Mon Sep 17 00:00:00 2001 From: "joram.barrez" Date: Fri, 14 Jul 2023 10:44:42 +0200 Subject: [PATCH] Go through the HistoryManager for deleting historic case instances --- .../flowable/cmmn/engine/impl/history/CmmnHistoryHelper.java | 2 +- .../persistence/entity/CaseDefinitionEntityManagerImpl.java | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/history/CmmnHistoryHelper.java b/modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/history/CmmnHistoryHelper.java index 8b12e4d63b9..82a4a0cc236 100644 --- a/modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/history/CmmnHistoryHelper.java +++ b/modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/history/CmmnHistoryHelper.java @@ -70,7 +70,7 @@ public static void deleteHistoricCaseInstance(CmmnEngineConfiguration cmmnEngine // Also delete any sub cases that may be active historicCaseInstanceEntityManager.createHistoricCaseInstanceQuery().caseInstanceParentId(caseInstanceId).list() - .forEach(c -> deleteHistoricCaseInstance(cmmnEngineConfiguration, c.getId())); + .forEach(c -> cmmnEngineConfiguration.getCmmnHistoryManager().recordHistoricCaseInstanceDeleted(c.getId(), c.getTenantId())); } public static void bulkDeleteHistoricCaseInstances(Collection caseInstanceIds, CmmnEngineConfiguration cmmnEngineConfiguration) { diff --git a/modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/persistence/entity/CaseDefinitionEntityManagerImpl.java b/modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/persistence/entity/CaseDefinitionEntityManagerImpl.java index d3217073068..e95f3a348e9 100644 --- a/modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/persistence/entity/CaseDefinitionEntityManagerImpl.java +++ b/modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/persistence/entity/CaseDefinitionEntityManagerImpl.java @@ -28,6 +28,7 @@ import org.flowable.cmmn.engine.impl.repository.CaseDefinitionQueryImpl; import org.flowable.cmmn.engine.impl.runtime.CaseInstanceQueryImpl; import org.flowable.cmmn.engine.impl.task.TaskHelper; +import org.flowable.cmmn.engine.impl.util.CommandContextUtil; import org.flowable.common.engine.api.scope.ScopeTypes; import org.flowable.common.engine.impl.context.Context; import org.flowable.common.engine.impl.interceptor.CommandContext; @@ -131,7 +132,8 @@ public void deleteCaseDefinitionAndRelatedData(String caseDefinitionId, boolean List historicCaseInstanceEntities = historicCaseInstanceEntityManager .findByCriteria(new HistoricCaseInstanceQueryImpl().caseDefinitionId(caseDefinitionId)); for (HistoricCaseInstance historicCaseInstanceEntity : historicCaseInstanceEntities) { - CmmnHistoryHelper.deleteHistoricCaseInstance(engineConfiguration, historicCaseInstanceEntity.getId()); + CommandContextUtil.getCmmnHistoryManager(commandContext).recordHistoricCaseInstanceDeleted(historicCaseInstanceEntity.getId(), + historicCaseInstanceEntity.getTenantId()); } }