Skip to content

Commit f90c57b

Browse files
Block using conflict policy UseExisting for Nexus WorkflowRunOperation (#2428)
Disable use existing conflict policy
1 parent 49bd366 commit f90c57b

File tree

3 files changed

+18
-8
lines changed

3 files changed

+18
-8
lines changed

temporal-sdk/src/main/java/io/temporal/internal/common/InternalUtils.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,11 @@
2222

2323
import com.google.common.base.Defaults;
2424
import io.nexusrpc.Header;
25+
import io.nexusrpc.handler.HandlerException;
2526
import io.nexusrpc.handler.ServiceImplInstance;
2627
import io.temporal.api.common.v1.Callback;
2728
import io.temporal.api.enums.v1.TaskQueueKind;
29+
import io.temporal.api.enums.v1.WorkflowIdConflictPolicy;
2830
import io.temporal.api.taskqueue.v1.TaskQueue;
2931
import io.temporal.client.OnConflictOptions;
3032
import io.temporal.client.WorkflowOptions;
@@ -35,6 +37,7 @@
3537
import io.temporal.internal.client.NexusStartWorkflowRequest;
3638
import java.util.Arrays;
3739
import java.util.Map;
40+
import java.util.Objects;
3841
import java.util.TreeMap;
3942
import java.util.stream.Collectors;
4043
import org.slf4j.Logger;
@@ -151,6 +154,17 @@ public static WorkflowStub createNexusBoundStub(
151154
.setAttachLinks(true)
152155
.setAttachCompletionCallbacks(true)
153156
.build());
157+
158+
// TODO(klassenq) temporarily blocking conflict policy USE_EXISTING.
159+
if (Objects.equals(
160+
WorkflowIdConflictPolicy.WORKFLOW_ID_CONFLICT_POLICY_USE_EXISTING,
161+
options.getWorkflowIdConflictPolicy())) {
162+
throw new HandlerException(
163+
HandlerException.ErrorType.INTERNAL,
164+
new IllegalArgumentException(
165+
"Workflow ID conflict policy UseExisting is not supported for Nexus WorkflowRunOperation."),
166+
HandlerException.RetryBehavior.NON_RETRYABLE);
167+
}
154168
return stub.newInstance(nexusWorkflowOptions.build());
155169
}
156170

temporal-sdk/src/test/java/io/temporal/workflow/nexus/WorkflowHandleUseExistingOnConflictCancelTest.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,9 @@
3838
import java.util.ArrayList;
3939
import java.util.List;
4040
import java.util.UUID;
41-
import org.junit.Assert;
42-
import org.junit.Before;
43-
import org.junit.Rule;
44-
import org.junit.Test;
41+
import org.junit.*;
4542

43+
@Ignore("Skipping until we can support USE_EXISTING")
4644
public class WorkflowHandleUseExistingOnConflictCancelTest {
4745
@Rule
4846
public SDKTestWorkflowRule testWorkflowRule =

temporal-sdk/src/test/java/io/temporal/workflow/nexus/WorkflowHandleUseExistingOnConflictTest.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,9 @@
3636
import java.util.ArrayList;
3737
import java.util.List;
3838
import java.util.UUID;
39-
import org.junit.Assert;
40-
import org.junit.Before;
41-
import org.junit.Rule;
42-
import org.junit.Test;
39+
import org.junit.*;
4340

41+
@Ignore("Skipping until we can support USE_EXISTING")
4442
public class WorkflowHandleUseExistingOnConflictTest {
4543
@Rule
4644
public SDKTestWorkflowRule testWorkflowRule =

0 commit comments

Comments
 (0)