Hi,
I want to create a IssueLink by a ScriptRunner Post function during the create transition of an issue.
But when calling createIssueLink(..), an MissingMethodException is thrown:
groovy.lang.MissingMethodException: No signature of method: static com.atlassian.jira.issue.link.DefaultIssueLinkManager.createIssueLink() is applicable for argument types: (java.lang.Long, java.lang.Long, java.lang.Long, java.lang.Long, com.atlassian.jira.user.DelegatingApplicationUser) values: [11442, 11502, 10003, 1, glt(glt)]
Possible solutions: createIssueLink(java.lang.Long, java.lang.Long, java.lang.Long, java.lang.Long, com.atlassian.jira.user.ApplicationUser)
So it seems that createIssueLink(..) requires a ApplicationUser instead of an DelegatingApplicationUser. The documentation states that DelegatingApplicationUser implements ApplicationUser. So I am wondering why Jira throws this exception.
I use ScriptRunner v.5.2.2 and Jira v 7.6.1. My source is is:
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.IssueInputParameters
import com.atlassian.jira.issue.link.DefaultIssueLinkManager
import com.atlassian.jira.bc.issue.IssueService
def issueService = ComponentAccessor.getIssueService()
def issueInputParameters = issueService.newIssueInputParameters()
def actIssueType = ComponentAccessor.issueTypeSchemeManager.getIssueTypesForProject(issue.projectObject).find {it.name == "HW_IT_Layout"}
issueInputParameters.setIssueTypeId(actIssueType.getId())
issueInputParameters.setProjectId(issue.getProjectId())
issueInputParameters.setSummary("Summary")
def createValidationResult = issueService.validateCreate(ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser(), issueInputParameters)
def createResult = issueService.create(ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser(), createValidationResult)
DefaultIssueLinkManager.createIssueLink(issue.getId(), createResult.getIssue().getId(), 10000L, 1L, ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser())
Has anyone am idea what is going wrong?
Thanks in advance,
Stefan
Try like this
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.IssueInputParameters
import com.atlassian.jira.issue.link.DefaultIssueLinkManager
import com.atlassian.jira.bc.issue.IssueService
def issueService = ComponentAccessor.getIssueService()
def issueInputParameters = issueService.newIssueInputParameters()
def actIssueType = ComponentAccessor.issueTypeSchemeManager.getIssueTypesForProject(issue.projectObject).find {it.name == "HW_IT_Layout"}
issueInputParameters.setIssueTypeId(actIssueType.getId())
issueInputParameters.setProjectId(issue.getProjectId())
issueInputParameters.setSummary("Summary")
def createValidationResult = issueService.validateCreate(ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser(), issueInputParameters)
def createResult = issueService.create(ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser(), createValidationResult)
ComponentAccessor.getIssueLinkManager().createIssueLink(issue.getId(), issue2.getId(), 10000L, 1L, ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser())
Hello Alexey,
thnaks for your hint. I only had to add
def issue2 = createResult.getIssue()
after the line
def createResult = issueService.create(ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser(), createValidationResult)
Then, it worked.
Thanks,
Stefan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.