Cannot invoke method getName() on null object in Validator

zaharovvv_suek_ru
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 Leaders.
August 2, 2018

I am trying to create issue B from issue A using button menu "Create linked issue" in Validators of Create transition:

 

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
import com.atlassian.jira.workflow.TransitionOptions

def log = Logger.getLogger("com.acme.CreateSubtask")
log.setLevel(Level.DEBUG)


log.info('1. Test')
def isEpicIssueClosed = false;
log.info('2. isEpicIssueClosed BEFORE: ' + isEpicIssueClosed)
log.info('3. The creacted issue is: ' + issue + '. Its status is '+ issue.getStatus().name)

if(issue.getStatus().name == 'Closed') {
isEpicIssueClosed = true;
}

log.info('4. isEpicIssueClosed AFTER: ' + isEpicIssueClosed)
isEpicIssueClosed == false

But I see the following error: 

2018-08-02 18:11:06,513 INFO [acme.CreateSubtask]: 1. Test
2018-08-02 18:11:06,515 INFO [acme.CreateSubtask]: 2. isEpicIssueClosed BEFORE: false
2018-08-02 18:11:06,515 INFO [acme.CreateSubtask]: 3. The creacted issue is: Test of improvement
2018-08-02 18:11:06,517 ERROR [utils.ConditionUtils]: *************************************************************************************
2018-08-02 18:11:06,517 ERROR [utils.ConditionUtils]: Condition failed on issue: null, built-in script:com.onresolve.scriptrunner.canned.jira.workflow.validators.SimpleScriptedValidator
java.lang.NullPointerException: Cannot invoke method getName() on null object
at Script2802.run(Script2802.groovy:28)

 

Guys, what am I doing wrong?

This code works perfectly in other post-functions:

if(issue.getStatus().name == 'Closed') { 

 

1 answer

1 accepted

Suggest an answer

Log in or Sign up to answer
1 vote
Answer accepted
Mark Markov
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 Leaders.
August 2, 2018

Hello @zaharovvv_suek_ru
This is happens because issue does not have status yet

Status sets in postfunction section and validators executes earlier.

So you cannot check status before issue will be created

nallu May 10, 2019

Hi @Mark Markov , 

I have written a script fragment and I am checking for the issue type in condition section. But, It throws an error saying Cannot invoke method getName() on null object. 

2019-05-10 04:44:34,465 http-nio-8080-exec-76 ERROR anonymous 284x1351975x68 lhqo48 172.28.122.240 /login.jsp [c.o.scriptrunner.fragments.JiraScriptCondition] Script condition failed: java.lang.NullPointerException: Cannot invoke method getName() on null object

 Note: This is happening whenever the user login and logout. 

Can you please take a look. This is how i am checking in condition section. 

issue.issueTypeObject.name == 'FEATURE'

TAGS
AUG Leaders

Atlassian Community Events