I have three issues - "issueA", "issueB", "issueC". These issues have the following links:
- "issueA" has two inward links to "issueB", "issueC"
- "issueB", "issueC" has outward links to "issueA"
Briefly, I have issue B. Then I want to get all linked issues if issue B such as issue A. Then I want to get all linked issues of issue A and they are issueB and and issue C.
I am running this code in Post-Function of transition "In Progress" from issue B to get outward links of "issueA", but it returns issue A and it is wrong:
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.user.ApplicationUser
import com.atlassian.jira.user.util.UserManager
import com.atlassian.jira.issue.IssueManager
import org.apache.log4j.Logger
import org.apache.log4j.Level
import com.atlassian.jira.issue.IssueInputParameters
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.event.type.EventDispatchOption;
import com.opensymphony.workflow.loader.ActionDescriptor
import com.opensymphony.workflow.loader.StepDescriptor
import com.atlassian.jira.bc.issue.IssueService
import com.atlassian.jira.issue.IssueInputParametersImpl
def log = Logger.getLogger("com.acme.CreateSubtask")
log.setLevel(Level.DEBUG)
def issue = ComponentAccessor.getIssueManager().getIssueObject("issueB")
def issueLinkManager = ComponentAccessor.getIssueLinkManager()
issueLinkManager.getOutwardLinks(issue.id).each{ issueLink ->
def linkedIssue = issueLink.getDestinationObject()
if(linkedIssue.getIssueType().getName() == 'Epic') {
log.info('1.1 ***EPIC.*** Issue type is Epic. The epic issue is: '
+ linkedIssue
+ '***EPIC***') //Here we get issue A. It is ok
log.info('1.2 linkedIssue.id: ' + linkedIssue.id)
def linkManager = ComponentAccessor.getIssueLinkManager()
log.info("1.3 * linkManager*")
linkManager.getInwardLinks(linkedIssue.id).each{ fooLink ->
def fooIssue = fooLink.getDestinationObject();
log.info('2.2.* FooIssue: ' + fooIssue
+ '. Type of fooIssue is: ' + fooIssue.issueType.name + '*')
} }
}
However "linkManager"(issueLinkManager) returns "issue A", but "linkManager"(issueLinkManager) should return "issueB" and "issueC" cause I am giving to it 'issueA'.
The Logs looks like this:
2018-07-11 17:29:27,052 INFO [acme.CreateSubtask]: 1.1 ***EPIC.*** Issue type is Epic. The epic issue is: issueA***EPIC***
2018-07-11 17:29:27,052 INFO [acme.CreateSubtask]: 1.2 linkedIssue.id: 28685
2018-07-11 17:29:27,052 INFO [acme.CreateSubtask]: 1.3 * linkManager*
2018-07-11 17:29:27,054 INFO [acme.CreateSubtask]: 2.2.* FooIssue: issueA. Type of fooIssue is: Epic*
Guys, how can I read correctly inward links of linked issue 'issueA'?