Skip to content

Commit a2312f9

Browse files
committed
fix(datashare-tasks): fix TaskManagerTemporal.startTask with null user
1 parent be2212d commit a2312f9

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

datashare-tasks/src/main/java/org/icij/datashare/asynctasks/TaskManagerTemporal.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -593,8 +593,9 @@ private static <T> T unknownIfNotFound(Function<String, T> function, String task
593593

594594
static SearchAttributes generateSearchAttributes(Task<?> taskView) {
595595
SearchAttributes.Builder builder = SearchAttributes.newBuilder()
596-
.set(USER_CUSTOM_ATTRIBUTE, taskView.getUser().getId())
597-
.set(PROGRESS_CUSTOM_ATTRIBUTE, 0d).set(MAX_PROGRESS_CUSTOM_ATTRIBUTE, 0d);
596+
.set(PROGRESS_CUSTOM_ATTRIBUTE, 0d)
597+
.set(MAX_PROGRESS_CUSTOM_ATTRIBUTE, 0d);
598+
Optional.ofNullable(taskView.getUser()).ifPresent(u -> builder.set(USER_CUSTOM_ATTRIBUTE, u.getId()));
598599
return builder.build();
599600
}
600601

datashare-tasks/src/test/java/org/icij/datashare/asynctasks/TaskManagerTemporalIntTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,18 @@ public void test_start_task() throws IOException {
116116
assertThat(task.getState()).isEqualTo(RUNNING);
117117
}
118118

119+
@Test
120+
public void test_start_task_with_null_user() throws IOException {
121+
String expectedTaskId = taskManager.startTask("taskName", null, Map.of("key", "value"));
122+
123+
List<String> taskIds = taskManager.getTaskIds().toList();
124+
assertThat(taskIds).hasSize(1);
125+
String taskId = taskIds.get(0);
126+
assertThat(taskId).isEqualTo(expectedTaskId);
127+
Task<?> task = taskManager.getTask(taskId);
128+
assertThat(task.getState()).isEqualTo(RUNNING);
129+
}
130+
119131
@Test(timeout = 5000)
120132
public void test_get_tasks() throws IOException, InterruptedException {
121133
Task<String> foo = new Task<>("foo", User.local(), Map.of());

0 commit comments

Comments
 (0)