diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/acl/project/ListProjectRolesCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/acl/project/ListProjectRolesCmd.java index dedbb410ea56..6ab7075cb751 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/admin/acl/project/ListProjectRolesCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/acl/project/ListProjectRolesCmd.java @@ -21,6 +21,7 @@ import java.util.Collections; import java.util.List; +import com.cloud.exception.InvalidParameterValueException; import org.apache.cloudstack.acl.ProjectRole; import org.apache.cloudstack.acl.RoleType; import org.apache.cloudstack.api.APICommand; @@ -55,7 +56,6 @@ public class ListProjectRolesCmd extends BaseListCmd { /////////////////// Accessors /////////////////////// ///////////////////////////////////////////////////// - public Long getProjectRoleId() { return projectRoleId; } public Long getProjectId() { @@ -72,7 +72,10 @@ public String getRoleName() { @Override public void execute() { - List projectRoles = new ArrayList<>(); + if (getProjectId() != null && _projectService.getProject(getProjectId()) == null) { + throw new InvalidParameterValueException("Failed to find project by ID."); + } + List projectRoles; if (getProjectId() != null && getProjectRoleId() != null) { projectRoles = Collections.singletonList(projRoleService.findProjectRole(getProjectRoleId(), getProjectId())); } else if (StringUtils.isNotBlank(getRoleName())) { diff --git a/server/src/main/java/org/apache/cloudstack/acl/ProjectRoleManagerImpl.java b/server/src/main/java/org/apache/cloudstack/acl/ProjectRoleManagerImpl.java index 91bbb349a07e..6c8b952ddf86 100644 --- a/server/src/main/java/org/apache/cloudstack/acl/ProjectRoleManagerImpl.java +++ b/server/src/main/java/org/apache/cloudstack/acl/ProjectRoleManagerImpl.java @@ -168,9 +168,9 @@ public ProjectRole findProjectRole(Long roleId, Long projectId) { @Override public List findProjectRoles(Long projectId, String keyword) { - if (projectId == null || projectId < 1L || projectDao.findById(projectId) == null) { - logger.warn("Invalid project ID provided"); - return null; + if (projectId == null) { + logger.warn("Invalid project ID provided; thus, an empty list is being returned."); + return Collections.emptyList(); } return ListUtils.toListOfInterface(projRoleDao.findAllRoles(projectId, keyword)); }