diff --git a/temporal-sdk/src/test/java/io/temporal/workflow/ContinueAsNewTest.java b/temporal-sdk/src/test/java/io/temporal/workflow/ContinueAsNewTest.java index defc616ea..83bf8838d 100644 --- a/temporal-sdk/src/test/java/io/temporal/workflow/ContinueAsNewTest.java +++ b/temporal-sdk/src/test/java/io/temporal/workflow/ContinueAsNewTest.java @@ -77,6 +77,13 @@ public int execute(int count, String continueAsNewTaskQueue) { assertEquals(5, Workflow.getInfo().getRetryOptions().getMaximumAttempts()); assertEquals("foo1", Workflow.getTypedSearchAttributes().get(CUSTOM_KEYWORD_SA)); } + // The memo is set on every continue-as-new below, so every run after the + // first one should observe it once the test server propagates it. + if (count <= INITIAL_COUNT - 2) { + assertEquals("MyValue", Workflow.getMemo("myKey", String.class)); + } else { + Assert.assertNull(Workflow.getMemo("myKey", String.class)); + } if (count == 0) { assertEquals(continueAsNewTaskQueue, taskQueue); return 111; diff --git a/temporal-test-server/src/main/java/io/temporal/internal/testservice/StateMachines.java b/temporal-test-server/src/main/java/io/temporal/internal/testservice/StateMachines.java index c62d6f84a..fce9d3ae0 100644 --- a/temporal-test-server/src/main/java/io/temporal/internal/testservice/StateMachines.java +++ b/temporal-test-server/src/main/java/io/temporal/internal/testservice/StateMachines.java @@ -1467,6 +1467,9 @@ private static void continueAsNewWorkflow( if (d.hasSearchAttributes()) { a.setSearchAttributes(d.getSearchAttributes()); } + if (d.hasMemo()) { + a.setMemo(d.getMemo()); + } a.setNewExecutionRunId(UUID.randomUUID().toString()); HistoryEvent event = HistoryEvent.newBuilder() diff --git a/temporal-test-server/src/main/java/io/temporal/internal/testservice/TestWorkflowService.java b/temporal-test-server/src/main/java/io/temporal/internal/testservice/TestWorkflowService.java index d85220177..b62f021a3 100644 --- a/temporal-test-server/src/main/java/io/temporal/internal/testservice/TestWorkflowService.java +++ b/temporal-test-server/src/main/java/io/temporal/internal/testservice/TestWorkflowService.java @@ -1757,6 +1757,9 @@ public String continueAsNew( if (ea.hasSearchAttributes()) { startRequestBuilder.setSearchAttributes(ea.getSearchAttributes()); } + if (ea.hasMemo()) { + startRequestBuilder.setMemo(ea.getMemo()); + } StartWorkflowExecutionRequest startRequest = startRequestBuilder.build(); lock.lock(); Optional lastFail =