conductor-oss / conductor-oss/java-sdk

EXCLUSIVE_JOIN task: missing builder class; defaultExclusiveJoinTask unreachable

Offen Anfängerfreundlich
#133 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug
Vorherrschende Sprache
Java
Sterne
12
Forks
10
Ø Merge
2 T. 8 Std.
Gemergte PRs (30 T.)
4

Beschreibung

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).

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit TaskType.EXCLUSIVE_JOIN und WorkflowTask.defaultExclusiveJoinTask und vergleiche dann die vorgeschlagene ExclusiveJoin API mit den Konventionen des Task-Builders im SDK. Als erledigt gilt die Aufgabe, wenn Aufrufer joinOn und defaultExclusiveJoinTask über ExclusiveJoin konfigurieren können und die resultierende Workflow-Aufgabe registriert und ausgeführt werden kann, ohne eine rohe WorkflowTask zu erstellen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
backend-api-design
Issue-Typ
Feature
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Ruhig
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
74/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.