flowable / flowable/flowable-engine

The DefaultIdentityLinkIterceptor.java creates duplicate identityLinks on ProcessInstance

Abierto
#3,900 0 comentarios 0 reacciones 0 asignados Ver en GitHub

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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. 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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.