diff --git a/amber/src/main/scala/org/apache/texera/web/resource/dashboard/user/workflow/WorkflowResource.scala b/amber/src/main/scala/org/apache/texera/web/resource/dashboard/user/workflow/WorkflowResource.scala index b8bead4b0ea..cc5cf3d6ec1 100644 --- a/amber/src/main/scala/org/apache/texera/web/resource/dashboard/user/workflow/WorkflowResource.scala +++ b/amber/src/main/scala/org/apache/texera/web/resource/dashboard/user/workflow/WorkflowResource.scala @@ -848,6 +848,9 @@ class WorkflowResource extends LazyLogging { @Path("/type/{wid}") def getWorkflowType(@PathParam("wid") wid: Integer): String = { val workflow: Workflow = workflowDao.fetchOneByWid(wid) + if (workflow == null) { + throw new NotFoundException(s"Workflow with id $wid not found") + } if (workflow.getIsPublic) { "Public" } else { diff --git a/amber/src/test/scala/org/apache/texera/web/resource/dashboard/file/WorkflowResourceSpec.scala b/amber/src/test/scala/org/apache/texera/web/resource/dashboard/file/WorkflowResourceSpec.scala index 1816ce9cd84..1dbe959b428 100644 --- a/amber/src/test/scala/org/apache/texera/web/resource/dashboard/file/WorkflowResourceSpec.scala +++ b/amber/src/test/scala/org/apache/texera/web/resource/dashboard/file/WorkflowResourceSpec.scala @@ -947,6 +947,12 @@ class WorkflowResourceSpec assert(sizes.get(wid) == content.length) } + it should "throw NotFoundException for a missing workflow type" in { + assertThrows[NotFoundException] { + workflowResource.getWorkflowType(Integer.valueOf(2147483647)) + } + } + "WorkflowResource.getSize" should "return an empty map for a null or empty id list" in { assert(workflowResource.getSize(null).isEmpty) assert(workflowResource.getSize(Collections.emptyList()).isEmpty)