private void swapRoleInWorkflows(final ProjectRole role, final ProjectRole swapRole) { ErrorCollection errorCollection = new SimpleErrorCollection(); MultiMap associatedWorkflows = getAssociatedWorkflows(role, errorCollection); String moduleKey = "com.atlassian.jira.plugin.system.workflow:isuserinprojectrole-condition"; String className = "com.atlassian.jira.workflow.condition.InProjectRoleCondition"; for (Object o : associatedWorkflows.keySet()) { if(!(associatedWorkflows.get(o) instanceof Collection)) { throw new IllegalStateException("Associated workflows returned an unexpected map"); } for (ActionDescriptor actionDescriptor: (Collection<ActionDescriptor>)associatedWorkflows.get(o)) { JiraWorkflow jiraWorkflow = (JiraWorkflow) o; //JiraWorkflow clone = workflowManager.getWorkflowClone(jiraWorkflow.getName()); workflowManager.replaceConditionInTransition( actionDescriptor, ImmutableMap.of("jira.projectrole.id", role.getId().toString(), "class.name", className), ImmutableMap.of("jira.projectrole.id", swapRole.getId().toString())); workflowManager.saveWorkflowWithoutAudit(jiraWorkflow); } } }