Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,296,817
Community Members
 
Community Events
165
Community Groups

issue.getFixVersions() NOT returning archived fixversions

Edited

Hi,

I have this code snipppet:

import com.atlassian.jira.project.version.Version
Collection <Version> fixVersions = issue.getFixVersions()

for (fv in fixVersions) {
    log.debug (String.format('issue=%s fv=%s isArchived=%s isReleased=%s', issue.key, fv.getName(),
                             fv.isArchived(), fv.isReleased()))
  if (fv.isReleased()) {
    log.debug("yes ${fv.getName()} is released.")
  }
}

When i run it using "Groovy Script Tester" from JMWE (Jira Misc Workflow Extensions), i see:

DEBUG: issue=PRJ-90210 fv=foo.1.0 isArchived=true isReleased=true
DEBUG: yes foo.1.0 is released.
DEBUG: issue=PRJ-90210 fv=bar.3.0 isArchived=false isReleased=false

which is the expected results.

Running this code snippet in the Scriptrunner Script Console

IssueManager issueManager = ComponentAccessor.getIssueManager() 
Issue issue = issueManager.getIssueObject('PRJ-90210')
Collection <Version> fixVersions = issue.getFixVersions()

for (fv in fixVersions) {
    log.debug (String.format('issue=%s fv=%s isArchived=%s isReleased=%s', issue.key, fv.getName(),
                             fv.isArchived(), fv.isReleased()))
  if (fv.isReleased()) {
    log.debug("yes ${fv.getName()} is released.")
  }
}
 

gives the expected output as seen in the "Groovy Script Tester".

However, when i run the same exact code snippet as a Scriptrunner Validator, i only see:

issue=PRJ-90210 fv=bar.3.0 isArchived=false isReleased=false

The archived fixversion (foo.1.0) did NOT show up.

What could be the problem?

Thanks

--Andrew

1 answer

Hi, I've found a solution to get the archived fix versions in the scriptrunner validators. Here is my code:

 

import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.IssueManager;
import com.atlassian.jira.component.ComponentAccessor;

import com.opensymphony.workflow.InvalidInputException

IssueManager issueManager = ComponentAccessor.getIssueManager()
Issue myIssue = issueManager.getIssueObject(issue.getKey())

// myIssue -> the issue object in the past. 
// issue -> the issue object in validation time
// To avoid false positive when removing all the fixed versions, we are checking if any of these fixed versions of the issue in the past are archived. if (issue.getResolution().name == "Fixed or Completed" && ! (issue.fixVersions || myIssue.fixVersions*.archived.contains(true))) { throw new InvalidInputException("fixVersions", "Fix Version/s is required when specifying Resolution of 'Fixed'") }

 

As you can see, my solution is to instance another issue object with the same key. 

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Posted in Jira Service Management

Jira Service Management Documentation Opportunities

Hello everyone, Hope everyone is safe! A few months ago we posted an article sharing all the new articles and documentation that we, the AMER Jira Service Management team created. As mentioned ...

331 views 0 10
Join discussion

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you