diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/WorkflowAdminPaneController.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/WorkflowAdminPaneController.java index 3c3d0d524..4aca1a35c 100644 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/WorkflowAdminPaneController.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/WorkflowAdminPaneController.java @@ -376,7 +376,7 @@ public class WorkflowAdminPaneController { final Role role = roleRepo .findById(Long.parseLong(roleId)) .orElseThrow(() -> new IllegalArgumentException(String.format( - "No Role with ID %d in the database. Where did that ID come from?", + "No Role with ID %s in the database. Where did that ID come from?", roleId))); final CmsTask theTask = (CmsTask) taskRepo diff --git a/ccm-core/src/main/java/org/libreccm/workflow/AssignableTaskManager.java b/ccm-core/src/main/java/org/libreccm/workflow/AssignableTaskManager.java index c14c12dfb..f98579db4 100644 --- a/ccm-core/src/main/java/org/libreccm/workflow/AssignableTaskManager.java +++ b/ccm-core/src/main/java/org/libreccm/workflow/AssignableTaskManager.java @@ -111,12 +111,14 @@ public class AssignableTaskManager { "Can't retract a task from role null."); } - final List result = task.getAssignments().stream() - .filter(assigned -> role.equals(assigned.getRole())) - .collect(Collectors.toList()); + final Optional result = task + .getAssignments() + .stream() + .filter(assigned -> role.getRoleId() == assigned.getRole().getRoleId()) + .findAny(); - if (!result.isEmpty()) { - final TaskAssignment assignment = result.get(0); + if (result.isPresent()) { + final TaskAssignment assignment = result.get(); task.removeAssignment(assignment); role.removeAssignedTask(assignment); entityManager.remove(assignment);