update custom field using ScriptRunner

Ray Zhang September 23, 2021

I added a custom field named 'Participants' which is User Picker(multiple user) type to record the change of Assignee using ScriptRunner custom listener as below:

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.user.ApplicationUser

def customFieldManager = ComponentAccessor.getCustomFieldManager()

// a user custom field
def userCf = customFieldManager.getCustomFieldObjectByName("Participants")

if (!issue.getCustomFieldValue(userCf)) {
return
}

List<ApplicationUser> userAlreadyInCustomField = issue.getCustomFieldValue(userCf)
userAlreadyInCustomField.add(issue.getAssignee())
issue.setCustomFieldValue(userCf, userAlreadyInCustomField)
ComponentAccessor.getIssueManager().updateIssue(issue.getAssignee(), issue, EventDispatchOption.ISSUE_UPDATED, false)

 

And sometimes it works and sometime get error:

2021-09-22 15:26:41,750 ERROR [runner.AbstractScriptListener]: ************************************************************************************* 2021-09-22 15:26:41,753 ERROR [runner.AbstractScriptListener]: Script function failed on event: com.atlassian.jira.event.issue.IssueEvent, file: null java.lang.NullPointerException at com.atlassian.jira.issue.IssueImpl.getCustomFieldValue(IssueImpl.java:951) at com.atlassian.jira.issue.Issue$getCustomFieldValue$2.call(Unknown Source) at Script1.run(Script1.groovy:11)

 

So I got confused what's wrong, and anyone can help me to fix this, thanks in advance~

0 answers

Suggest an answer

Log in or Sign up to answer