Skip to content

Commit 449e557

Browse files
authored
Merge pull request #907 from Project-MONAI/nds-fix-externalAppOutputs
fixing overwriting of workflowInstance
2 parents 0aaaf5e + c4cea6b commit 449e557

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

src/WorkflowManager/WorkflowExecuter/Services/WorkflowExecuterService.cs

100644100755
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,10 @@ private async Task ProcessArtifactReceivedOutputs(ArtifactsReceivedEvent message
270270
}
271271
}
272272

273+
var currentTask = workflowInstance.Tasks?.Find(t => t.TaskId == taskId);
274+
275+
currentTask!.OutputArtifacts = validArtifacts; // added here are the parent function saves the object !
276+
273277
_logger.LogDebug($"adding files to workflowInstance {workflowInstance.Id} :Task {taskId} : {JsonConvert.SerializeObject(validArtifacts)}");
274278
await _workflowInstanceRepository.UpdateTaskOutputArtifactsAsync(workflowInstance.Id, taskId, validArtifacts);
275279
}
@@ -682,7 +686,7 @@ private async Task<bool> HandleOutputArtifacts(WorkflowInstance workflowInstance
682686
return false;
683687
}
684688

685-
var currentTask = workflowInstance.Tasks?.FirstOrDefault(t => t.TaskId == task.TaskId);
689+
var currentTask = workflowInstance.Tasks?.Find(t => t.TaskId == task.TaskId);
686690

687691
if (currentTask is not null)
688692
{

tests/UnitTests/WorkflowExecuter.Tests/Services/WorkflowExecuterServiceTests.cs

100644100755
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3161,6 +3161,7 @@ public async Task ArtifactReceveid_Valid_ReturnesTrue()
31613161

31623162
Assert.True(result);
31633163
}
3164+
31643165
[Fact]
31653166
public async Task ProcessArtifactReceived_Calls_WorkflowInstanceRepository_UpdateTaskOutputArtifactsAsync()
31663167
{
@@ -3174,7 +3175,7 @@ public async Task ProcessArtifactReceived_Calls_WorkflowInstanceRepository_Updat
31743175
var workflowInstance = new WorkflowInstance
31753176
{
31763177
WorkflowId = "789", Tasks = new List<TaskExecution>()
3177-
{ new TaskExecution() { TaskId = "not456" } }
3178+
{ new TaskExecution() { TaskId = "456" } }
31783179
};
31793180
_workflowInstanceRepository.Setup(w => w.GetByWorkflowInstanceIdAsync(message.WorkflowInstanceId))!
31803181
.ReturnsAsync(workflowInstance);

0 commit comments

Comments
 (0)