flowable / flowable/flowable-engine
The DefaultIdentityLinkIterceptor.java creates duplicate identityLinks on ProcessInstance
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Java
- Estrellas
- 9.5k
- Forks
- 2.9k
- Merge medio
- 7 h 8 min
- PR fusionados (30 d)
- 2
Descripción
Describe the bug
The DefaultIdentityLinkIterceptor.handleCompleteTask method creates a new PARTICIPANT IdentityLink on the ProcessInstance the tasks belongs to every time a task completes.
Expected behavior
There should be a check if such an IdentityLink already exists before creating it. This is done in some of the other methods in the class by calling the addUserIdentityLinkToParent which does such a check.
Noticed that we had a lot of duplicates in the IdentityLink-tables for processes with a lot of tasks.
Code
public void handleCompleteTask(TaskEntity task) {
if (Authentication.getAuthenticatedUserId() != null && task.getProcessInstanceId() != null) {
ExecutionEntity processInstanceEntity = CommandContextUtil.getExecutionEntityManager().findById(task.getProcessInstanceId());
IdentityLinkUtil.createProcessInstanceIdentityLink(processInstanceEntity,
Authentication.getAuthenticatedUserId(), null, IdentityLinkType.PARTICIPANT);
}
}
Additional context
This is present on the main branch.
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza en DefaultIdentityLinkIterceptor.java, en handleCompleteTask, y compara su comportamiento con el de los métodos cercanos que llaman a addUserIdentityLinkToParent. Verifica cómo se detecta un IdentityLink PARTICIPANT existente y confirma después que completar varias tareas para la misma instancia de proceso no crea enlaces duplicados.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java
- Área
- backend
- Tipo de issue
- Error
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Estado de actividad
- Estancado
- Claridad
- Bien especificado
- Aptitud para principiantes
- 55/100