I was working on script for a Custom Listener (using Jira 7.3 and ScriptRunner 4.3) and noticed that following piece of code works:
def issueKey = "JIRA-1234"; def issueManager = ComponentAccessor.getIssueManager() def issueObject = issueManager.getIssueObject("JIRA-1234") def issueObjectID = issueObject.getId()
def issueObject = issueManager.getIssueObject("KEY-1234")
is being replaced by:
def issueObject = issueManager.getIssueObject(issueKey)
The code just assigns null to the issueObject variable and code returns following error:
java.lang.NullPointerException: Cannot invoke method getId() on null object
So in other words when the issue key is used directly as parameter for getIssueObject method - the code works. But when variable is used as a parameter - the code doesn't work.
Any idea why this is happening?
BTW, I have circumvented this problem using Search Provider (I share workaround in case somebody has similar problem and needs working solution):
import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.jql.parser.JqlQueryParser import com.atlassian.jira.issue.search.SearchProvider import com.atlassian.jira.web.bean.PagerFilter def jqlQueryParser = ComponentAccessor.getComponent(JqlQueryParser); def searchProvider = ComponentAccessor.getComponent(SearchProvider); def authContext = ComponentAccessor.getJiraAuthenticationContext(); def issueKey = "JIRA-1234"; def jqlQuery = jqlQueryParser.parseQuery(issueKey); def user = authContext.getLoggedInUser(); def results = searchProvider.search(jqlQuery, user, PagerFilter.getUnlimitedFilter());
def issues = results.getIssues();
def issueObject = issues;
def issueObjectID = issueObject.getId();
Thanks in advance for clarifying this oddness for me!
Connect with like-minded Atlassian users at free events near you!Find a group
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no AUG chapters near you at the moment.Start an AUG
We're bringing product updates and pro tips on teamwork to ten cities around the world.Save your spot