The Atlassian Community Forums are currently in read-only mode. We will be relaunching on a new platform on September 22 (read more here). We apologize for the extended downtime. For concerns or questions, please email communitymanagers@atlassian.com. See you on the other side, on the new Atlassian Community Forums! :)

×

Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Issue Manager getIssueObject oddness

Ron Gates
Contributor
April 4, 2017

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:

import com.atlassian.jira.component.ComponentAccessor

def issueKey = "JIRA-1234"; def issueManager = ComponentAccessor.getIssueManager() def issueObject = issueManager.getIssueObject("JIRA-1234") def issueObjectID = issueObject.getId()

But when:

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[0];
def issueObjectID = issueObject.getId();

Thanks in advance for clarifying this oddness for me!

1 answer

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

0 votes
Sam Hall
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Champions.
April 5, 2017

Hi Ron - Is this is duplicate of Issue Manager getIssueObject oddity?

If so, and you are happy your issue got solved, we could close this thread.

Let me know.

Daniel Yelamos [Adaptavist]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Champions.
April 10, 2017

It seems to be the exact same question Sam.