Skip to content

Commit b95f3e8

Browse files
committed
chore(PR): implement PR comments and resolve conflicts
1 parent 32631ed commit b95f3e8

File tree

3 files changed

+67
-21
lines changed

3 files changed

+67
-21
lines changed

data-migrator/core/src/main/java/io/camunda/migration/data/impl/history/migrator/IncidentMigrator.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,15 +156,16 @@ protected Long findFlowNodeInstanceKey(String activityId, String processInstance
156156
}
157157

158158
/**
159-
* Generates a tree path for incidents in the format: processInstanceKey/elementInstanceKey (if exists)
159+
* Generates a tree path for incidents in the format: PI_processInstanceKey/FNI_elementInstanceKey (if the
160+
* elementInstanceKey exists, otherwise PI_processInstanceKey)
160161
*
161162
* @param processInstanceKey the process instance key
162163
* @param elementInstanceKey the flow node instance key
163164
* @return the tree path string
164165
*/
165166
public static String generateTreePath(Long processInstanceKey, Long elementInstanceKey) {
166167
return elementInstanceKey == null ?
167-
"PI_" + processInstanceKey.toString() :
168+
"PI_" + processInstanceKey :
168169
"PI_" + processInstanceKey + "/FNI_" + elementInstanceKey;
169170
}
170171
}

data-migrator/qa/integration-tests/src/test/java/io/camunda/migration/data/qa/history/HistoryMigrationAbstractTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,6 @@ public List<IncidentEntity> searchHistoricIncidents(String processDefinitionId)
239239
.items();
240240
}
241241

242-
// TODO
243242
public List<IncidentDbModel> searchIncidentsByProcessInstanceKeyAndReturnAsDbModel(Long processInstanceKey) {
244243
String sql = "SELECT INCIDENT_KEY, TREE_PATH, PROCESS_INSTANCE_KEY, FLOW_NODE_INSTANCE_KEY " +
245244
"FROM INCIDENT WHERE PROCESS_INSTANCE_KEY = ?";

data-migrator/qa/integration-tests/src/test/java/io/camunda/migration/data/qa/history/entity/HistoryIncidentTest.java

Lines changed: 64 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@
2020
import static io.camunda.search.entities.FlowNodeInstanceEntity.FlowNodeType.START_EVENT;
2121
import static io.camunda.search.entities.FlowNodeInstanceEntity.FlowNodeType.USER_TASK;
2222
import static org.assertj.core.api.Assertions.assertThat;
23+
import static org.camunda.bpm.engine.impl.incident.IncidentHandling.createIncident;
24+
import static org.camunda.bpm.engine.impl.jobexecutor.ExecuteJobHelper.executeJob;
2325

2426
import io.camunda.db.rdbms.write.domain.FlowNodeInstanceDbModel;
2527
import io.camunda.db.rdbms.write.domain.IncidentDbModel;
26-
import io.camunda.migration.data.MigratorMode;
2728
import io.camunda.migration.data.qa.history.HistoryMigrationAbstractTest;
28-
import io.camunda.search.entities.FlowNodeInstanceEntity;
2929
import io.camunda.search.entities.IncidentEntity;
3030
import java.util.Collections;
3131
import io.camunda.search.entities.ProcessInstanceEntity;
@@ -59,7 +59,9 @@ public void shouldMigrateIncidentTenant() {
5959
// then
6060
List<IncidentEntity> incidentsDefaultTenant = searchHistoricIncidents("incidentProcessId");
6161
List<IncidentEntity> incidentsTenant1 = searchHistoricIncidents("incidentProcessId2");
62-
assertThat(incidentsDefaultTenant).singleElement().extracting(IncidentEntity::tenantId).isEqualTo(C8_DEFAULT_TENANT);
62+
assertThat(incidentsDefaultTenant).singleElement()
63+
.extracting(IncidentEntity::tenantId)
64+
.isEqualTo(C8_DEFAULT_TENANT);
6365
assertThat(incidentsTenant1).singleElement().extracting(IncidentEntity::tenantId).isEqualTo("tenant1");
6466
}
6567

@@ -117,13 +119,19 @@ public void shouldMigrateIncidentForNestedProcessInstance() {
117119
deployer.deployCamunda7Process("callActivityProcess.bpmn");
118120
deployer.deployCamunda7Process("calledActivitySubprocess.bpmn");
119121
ProcessInstance parentProcess = runtimeService.startProcessInstanceByKey("callingProcessId");
120-
ProcessInstance childProcess = runtimeService.createProcessInstanceQuery().processDefinitionKey("calledProcessInstanceId").singleResult();
122+
ProcessInstance childProcess = runtimeService.createProcessInstanceQuery()
123+
.processDefinitionKey("calledProcessInstanceId")
124+
.singleResult();
121125
createIncident("userTaskId"); // create incident in child's task
122126

123-
HistoricIncident c7ChildIncident = historyService.createHistoricIncidentQuery().processInstanceId(childProcess.getProcessInstanceId()).singleResult();
127+
HistoricIncident c7ChildIncident = historyService.createHistoricIncidentQuery()
128+
.processInstanceId(childProcess.getProcessInstanceId())
129+
.singleResult();
124130
assertThat(c7ChildIncident).isNotNull();
125131

126-
HistoricIncident c7ParentIncident = historyService.createHistoricIncidentQuery().processInstanceId(parentProcess.getProcessInstanceId()).singleResult();
132+
HistoricIncident c7ParentIncident = historyService.createHistoricIncidentQuery()
133+
.processInstanceId(parentProcess.getProcessInstanceId())
134+
.singleResult();
127135
assertThat(c7ParentIncident).isNotNull();
128136

129137
// when
@@ -134,7 +142,8 @@ public void shouldMigrateIncidentForNestedProcessInstance() {
134142
// child incident is migrated
135143
List<IncidentEntity> childIncidents = searchHistoricIncidents(childProcess.getProcessDefinitionKey());
136144
assertThat(childIncidents).hasSize(1);
137-
assertOnIncidentBasicFields(childIncidents.getFirst(), c7ChildIncident, childProcess, parentProcess, UNKNOWN, false);
145+
assertOnIncidentBasicFields(childIncidents.getFirst(), c7ChildIncident, childProcess, parentProcess, UNKNOWN,
146+
false);
138147

139148
// parent incident is migrated
140149
List<IncidentEntity> parentIncidents = searchHistoricIncidents(parentProcess.getProcessDefinitionKey());
@@ -289,7 +298,8 @@ public void shouldMigrateIncidentWithDecisionEvaluationErrorType() {
289298
// given
290299
deployer.deployCamunda7Process("ruleTaskProcess.bpmn");
291300
deployer.deployCamunda7Decision("mappingFailureDmn.dmn");
292-
ProcessInstance c7ProcessInstance = runtimeService.startProcessInstanceByKey("ruleTaskProcessId", Collections.singletonMap("input", "single entry list"));
301+
ProcessInstance c7ProcessInstance = runtimeService.startProcessInstanceByKey("ruleTaskProcessId",
302+
Collections.singletonMap("input", "single entry list"));
293303
triggerIncident(c7ProcessInstance.getId());
294304

295305
HistoricIncident c7Incident = historyService.createHistoricIncidentQuery()
@@ -376,7 +386,7 @@ public void shouldMigrateIncidentWithNoJobRetriesErrorType() {
376386
}
377387

378388
@Test
379-
public void shouldGenerateTreePathForIncidents() {
389+
public void shouldGenerateTreePathForIncidentsWithFlowNodeInstanceKey() {
380390
// given
381391
deployer.deployCamunda7Process("userTaskProcessAsyncAfter.bpmn");
382392
ProcessInstance c7ProcessInstance = runtimeService.startProcessInstanceByKey("userTaskProcessId");
@@ -408,19 +418,58 @@ public void shouldGenerateTreePathForIncidents() {
408418
.isEqualTo("PI_" + processInstanceKey + "/FNI_" + flownodeInstanceKey);
409419
}
410420

411-
protected void assertOnIncidentBasicFields(IncidentEntity c8Incident, HistoricIncident c7Incident, ProcessInstance c7ChildInstance, ProcessInstance c7ParentInstance) {
421+
@Test
422+
public void shouldGenerateTreePathForIncidentsWithoutFlowNodeInstanceKey() {
423+
// given
424+
deployer.deployCamunda7Process("incidentProcess.bpmn");
425+
ProcessInstance c7ProcessInstance = runtimeService.startProcessInstanceByKey("incidentProcessId");
426+
triggerIncident(c7ProcessInstance.getId());
427+
428+
HistoricIncident c7Incident = historyService.createHistoricIncidentQuery()
429+
.processInstanceId(c7ProcessInstance.getId())
430+
.singleResult();
431+
assertThat(c7Incident).isNotNull();
432+
433+
// when
434+
historyMigrator.migrate();
435+
436+
// then
437+
List<ProcessInstanceEntity> processInstances = searchHistoricProcessInstances("incidentProcessId");
438+
assertThat(processInstances).hasSize(1);
439+
Long processInstanceKey = processInstances.getFirst().processInstanceKey();
440+
441+
List<IncidentDbModel> incidents = searchIncidentsByProcessInstanceKeyAndReturnAsDbModel(processInstanceKey);
442+
assertThat(incidents).singleElement()
443+
.extracting(IncidentDbModel::treePath)
444+
.isNotNull()
445+
.isEqualTo("PI_" + processInstanceKey);
446+
}
447+
448+
protected void assertOnIncidentBasicFields(IncidentEntity c8Incident,
449+
HistoricIncident c7Incident,
450+
ProcessInstance c7ChildInstance,
451+
ProcessInstance c7ParentInstance) {
412452
assertOnIncidentBasicFields(c8Incident, c7Incident, c7ChildInstance, c7ParentInstance, UNKNOWN, false);
413453
}
414454

415-
protected void assertOnIncidentBasicFields(IncidentEntity c8Incident, HistoricIncident c7Incident, ProcessInstance c7ChildInstance, ProcessInstance c7ParentInstance, IncidentEntity.ErrorType errorType, boolean waitingExecution) {
455+
protected void assertOnIncidentBasicFields(IncidentEntity c8Incident,
456+
HistoricIncident c7Incident,
457+
ProcessInstance c7ChildInstance,
458+
ProcessInstance c7ParentInstance,
459+
IncidentEntity.ErrorType errorType,
460+
boolean waitingExecution) {
416461
// specific values
417462
assertThat(c8Incident.tenantId()).isEqualTo(C8_DEFAULT_TENANT);
418-
assertThat(c8Incident.processDefinitionId()).isEqualTo(prefixDefinitionId(c7ChildInstance.getProcessDefinitionKey()));
463+
assertThat(c8Incident.processDefinitionId()).isEqualTo(
464+
prefixDefinitionId(c7ChildInstance.getProcessDefinitionKey()));
419465
assertThat(c8Incident.flowNodeId()).isEqualTo(c7Incident.getActivityId());
420466
assertThat(c8Incident.state()).isEqualTo(IncidentEntity.IncidentState.RESOLVED);
421467
assertThat(c8Incident.errorMessage()).isEqualTo(c7Incident.getIncidentMessage());
422-
assertThat(c8Incident.processInstanceKey()).isEqualTo(findMigratedProcessInstanceKey(c7ChildInstance.getProcessDefinitionKey()));
423-
String expectedRootProcessKey = c7ParentInstance != null ? c7ParentInstance.getProcessDefinitionKey() : c7ChildInstance.getProcessDefinitionKey();
468+
assertThat(c8Incident.processInstanceKey()).isEqualTo(
469+
findMigratedProcessInstanceKey(c7ChildInstance.getProcessDefinitionKey()));
470+
String expectedRootProcessKey = c7ParentInstance != null ?
471+
c7ParentInstance.getProcessDefinitionKey() :
472+
c7ChildInstance.getProcessDefinitionKey();
424473
assertThat(c8Incident.rootProcessInstanceKey()).isEqualTo(findMigratedProcessInstanceKey(expectedRootProcessKey));
425474
assertThat(c8Incident.errorType()).isEqualTo(errorType);
426475

@@ -440,10 +489,7 @@ protected void assertOnIncidentBasicFields(IncidentEntity c8Incident, HistoricIn
440489
}
441490

442491
protected void executeJob(ProcessInstance c7ProcessInstance) {
443-
Job job = managementService
444-
.createJobQuery()
445-
.processInstanceId(c7ProcessInstance.getId())
446-
.singleResult();
492+
Job job = managementService.createJobQuery().processInstanceId(c7ProcessInstance.getId()).singleResult();
447493

448494
if (job != null) {
449495
managementService.executeJob(job.getId());

0 commit comments

Comments
 (0)