Could you please take a look if you have any suggestions? Thank you
Script updates FixVersions from parent story to its' subtasks.
After upgrade 2 lines give errors:
1. if(fix_Issue.fixVersions?.name && changeItems.any {it.get('field')=='Fix Version'} )
Looks like this part is having problem: fix_Issue.fixVersions?.name
2. it.setFixVersions(fixVersions)issueManager.updateIssue(event.getUser(), it, EventDispatchOption.ISSUE_UPDATED, false)
Here is whole script. It works fine in Jira 6.4.12 with script runner 3.1.4, but not in Jira 7 with script runner 5.1.6.2
package listeners
import org.apache.log4j.Category
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.user.ApplicationUser
import com.atlassian.jira.event.issue.AbstractIssueEventListener
import com.atlassian.jira.event.issue.IssueEvent
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.project.version.Version
import com.opensymphony.workflow.InvalidInputException
import com.atlassian.jira.config.SubTaskManager
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.event.type.EventDispatchOption
import java.util.ArrayList
import java.util.Collection
class FixVersionPBI_To_SBI_1 extends AbstractIssueEventListener
{
Category log = Category.getInstance(FixVersionPBI_To_SBI_1.class)
@Override
void issueUpdated(IssueEvent event)
{
try
{
Issue fix_Issue = event.getIssue()
if (fix_Issue.issueType.name == "Story" )
{
List changeItems = event.getChangeLog().getRelated("ChildChangeItem")
if(fix_Issue.fixVersions?.name && changeItems.any {it.get('field')=='Fix Version'} )
{
Collection<Version> fixVersions = new ArrayList<Version>();
fixVersions = fix_Issue.getFixVersions()
Collection subTasks = fix_Issue.getSubTaskObjects();
SubTaskManager subTaskManager = ComponentAccessor.getComponent(SubTaskManager);
if (subTaskManager.subTasksEnabled && !subTasks.empty)
{
IssueManager issueManager = ComponentAccessor.getComponent(IssueManager)
Collection _subTasks = fix_Issue.getSubTaskObjects()
_subTasks.each
{
it.setFixVersions(fixVersions)issueManager.updateIssue(event.getUser(), it, EventDispatchOption.ISSUE_UPDATED, false)
}
}
}
}
}
catch (ex)
{
log.debug "Event: ${event.getEventTypeId()} fired for ${event.issue} and caught by FixVersionPBI_To_SBI_1"
log.debug (ex.getMessage())
}
}
}