EXCLUSIVE_JOIN task: missing builder class; defaultExclusiveJoinTask unreachable
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 74/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Tranquilo
- Stack tecnológico
- java
- Área
- backend-api-design
Línea de trabajo
Comienza con TaskType.EXCLUSIVE_JOIN y WorkflowTask.defaultExclusiveJoinTask y, a continuación, compara la API ExclusiveJoin propuesta con las convenciones del constructor de Task del SDK. Se considera completado cuando los llamadores pueden configurar joinOn y defaultExclusiveJoinTask mediante ExclusiveJoin y la tarea de workflow resultante puede registrarse y ejecutarse sin construir una WorkflowTask sin procesar.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
TaskType.EXCLUSIVE_JOIN exists in the SDK enum but there is no ExclusiveJoin builder
class. There is no way to set the defaultExclusiveJoinTask field through the SDK API.
Users must construct raw WorkflowTask objects manually.
Server baseline
Conductor 3.32.0-rc.9
Evidence
Static: TaskType.EXCLUSIVE_JOIN is in the enum; no builder class exists.
WorkflowTask.defaultExclusiveJoinTask (type: List<String>) is unreachable from the SDK.
Live (2026-07-16): A raw EXCLUSIVE_JOIN task (joinOn, defaultExclusiveJoinTask)
inside a SWITCH workflow was registered and executed against Conductor OSS 3.32.0-rc.9.
Workflow completed successfully — server supports EXCLUSIVE_JOIN fully, gap is SDK-only.
Expected behaviour
new ExclusiveJoin("excl_join_ref")
.joinOn("branch_a_task", "branch_b_task")
.defaultExclusiveJoinTask("branch_b_task")
Proposed fix
public class ExclusiveJoin extends Task<ExclusiveJoin> {
private String[] joinOn;
private List<String> defaultExclusiveJoinTask = new ArrayList<>();
public ExclusiveJoin(String taskReferenceName, String... joinOn) {
super(taskReferenceName, TaskType.EXCLUSIVE_JOIN);
this.joinOn = joinOn;
}
public ExclusiveJoin defaultExclusiveJoinTask(String... tasks) {
this.defaultExclusiveJoinTask = Arrays.asList(tasks);
return this;
}
@Override
protected void updateWorkflowTask(WorkflowTask task) {
task.setJoinOn(Arrays.asList(joinOn));
task.setDefaultExclusiveJoinTask(defaultExclusiveJoinTask);
}
}
Related
Discovered during systematic SDK audit against Conductor OSS 3.32.0-rc.9.
Same gap exists in the Python SDK (conductor-oss/python-sdk#429).
- Lenguaje dominante
- Java
- Estrellas
- 12
- Forks
- 10
- Merge medio
- 1 d 10 h
- PR fusionados (30 d)
- 2
Guía de contribución
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.
Más de conductor-oss/java-sdk
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
conductor-oss/java-sdk#135 ·
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
conductor-oss/java-sdk#132 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
conductor-oss/java-sdk#131 ·
-
NOOP task: missing builder class Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
conductor-oss/java-sdk#130 ·
-
bug
conductor-oss/java-sdk#134 · 1 comentario · 2 asignados ·
Todos los issues de conductor-oss/java-sdk
Issues similares
-
executions.Query — startDate and timeRange filters are sent with inverted comparison operators Abiertoarea/plugin
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
kestra-io/plugin-kestra#190 ·
-
litertlm-android AAR ships no consumer ProGuard rules → "mid == null" SIGABRT in minified apps Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
google-ai-edge/LiteRT-LM#3739 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Add canonical URLs and a sitemap Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
integra-team-red/meet-map#249 ·
-
[Studio][Bug] Cancelled create-user dialog keeps the password and admin switch for the next attempt Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
apache/rocketmq-dashboard#5064 ·