I'm getting the following Error from a groovy script that ran on a previous version of Jira 8.5.0 but has started error out after upgrading to 8.5.4.
See the main error and script below...
Error:
2020-05-15 22:43:04,635-0500 https-jsse-nio-443-exec-46 ERROR ethan 1363x459075x1 1jfte1t 172.20.10.69 /secure/QuickCreateIssue.jspa [c.o.s.jira.workflow.AbstractScriptWorkflowFunction] *************************************************************************************
2020-05-15 22:43:04,637-0500 https-jsse-nio-443-exec-46 ERROR ethan 1363x459075x1 1jfte1t 172.20.10.69 /secure/QuickCreateIssue.jspa [c.o.s.jira.workflow.AbstractScriptWorkflowFunction] Script function failed on issue: null, actionId: 1, file: null
groovy.lang.MissingMethodException: No signature of method: listeners.AutoAssign_AUD.main() is applicable for argument types: ([Ljava.lang.String;) values: [[]]
Possible solutions: wait(), wait(long), any(), find(), wait(long, int), init(java.util.Map) ....
Script: AutoAssign_AUD.groovy
Auto assigns an issue based on the discipline field, specifically for the AUD project
package listeners
import java.util.*
import java.sql.Timestamp
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.*
import com.atlassian.jira.event.issue.AbstractIssueEventListener
import com.atlassian.jira.event.issue.IssueEvent
import org.apache.log4j.Category
import com.atlassian.jira.user.util.UserUtil
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.util.ImportUtils
import com.atlassian.jira.issue.index.IssueIndexingService
//rename your listener class as needed, should be same as the filename
class AutoAssign_AUD extends AbstractIssueEventListener {
//Gotta have this
@Override
void workflowEvent(IssueEvent event) {
this.customEvent(event)
}
//Core Event work
@Override
void customEvent(IssueEvent event) {
//Need this
Issue issue = event.issue
//Set logging
def Category log = Category.getInstance("com.onresolve.jira.groovy")
log.setLevel(org.apache.log4j.Level.INFO)
if (issue.assignee) {
log.info("Issue was created with assignee")
return
}
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def cfDiscipline = customFieldManager.getCustomFieldObjectByName("Discipline")
def discipline = issue.getCustomFieldValue(cfDiscipline)
def userToReassign = issue.getAssignee()
UserUtil userUtil = ComponentAccessor.getUserUtil()
switch (discipline) {
case "Audio":
userToReassign = userUtil.getUserObject("un-audio")
break
case "Animation":
userToReassign = userUtil.getUserObject("un-animation")
break
case "Character_Art":
userToReassign = userUtil.getUserObject("un-charart")
break
case "Concept_Art":
userToReassign = userUtil.getUserObject("un-concept")
break
case "Design":
userToReassign = userUtil.getUserObject("un-designer")
break
case "Engineering":
userToReassign = userUtil.getUserObject("un-audioeng")
break
case "Environment_Art":
userToReassign = userUtil.getUserObject("un-enviroart")
break
case "Narrative":
userToReassign = userUtil.getUserObject("un-narrative")
break
case "Tech_Art":
userToReassign = userUtil.getUserObject("un-techart")
break
case "UI_UX":
userToReassign = userUtil.getUserObject("un-interface")
break
case "VFX":
userToReassign = userUtil.getUserObject("un-vfx")
break
}
log.info("Discipline: $discipline | Assignee: $userToReassign")
issue.setAssignee(userToReassign)
UpdateIssueRequest updateIssueRequest = UpdateIssueRequest.builder().eventDispatchOption(EventDispatchOption.DO_NOT_DISPATCH).sendMail(false).build();
ComponentAccessor.getIssueManager().updateIssue(ComponentAccessor.getJiraAuthenticationContext().getUser(), issue, updateIssueRequest)
boolean wasIndexing = ImportUtils.isIndexIssues();
IssueIndexingService indexing = (IssueIndexingService) ComponentAccessor.getComponent(IssueIndexingService.class);
indexing.reIndex(issue)
ImportUtils.setIndexIssues(wasIndexing);
log.info("Issue Updated-(Auto-Assign)")
}
}