Script working in console but executing and failing when implemented in post function

Avin Singhal July 18, 2017

Hi,

My script working fine when tested on console but when implemented as post fuction script it failing for one of its case

Script functionality : To copy custome field value from parent to child issue on creation 

Script failure case: when creating an epic which has no parent it give null pointer exception though i have if condition to check that still its trying to access custom field 

script

if ( (issue.issueType.name != 'Epic') && issue != null) { def customFieldManager = ComponentAccessor.getCustomFieldManager(); CustomField epiclink = customFieldManager.getCustomFieldObjectByName("Epic Link"); def epic = issue.getCustomFieldValue(epiclink); if (epic != null) { Issue issue1 = ComponentAccessor.getIssueManager().getIssueByKeyIgnoreCase("$epic"); CustomField costcollector = customFieldManager.getCustomFieldObjectByName("Cost Collector"); def cost = issue1.getCustomFieldValue(costcollector); if (cost != null) { issue.setCustomFieldValue(costcollector, cost) } } }

 

Error:

2017-07-18 08:26:08,010 ERROR [workflow.ScriptWorkflowFunction]: *************************************************************************************
2017-07-18 08:26:08,012 ERROR [workflow.ScriptWorkflowFunction]: Script function failed on issue: null, actionId: 1, file: <inline script>
java.lang.NullPointerException: Cannot invoke method getCustomFieldValue() on null object
	at Script2.run(Script2.groovy:19)

3 answers

0 votes
Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
July 18, 2017

Your error message implies that the custom field you're reading is not valid for the issue type you are running the script against.

0 votes
Stefan Arnold
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.
July 18, 2017

Check for Epic with if(issue.getIssueType().getName() == "Epic")

Worked for me fine.

Avin Singhal July 18, 2017

Well dont know why it not working in console it working all well but when implemented in post fuction its give error but only in the case of epic creation as epic does not have any parent epic but when we create work package or task  it works just fine

Stefan Arnold
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.
July 18, 2017

Maybe on wrong position in postfunction?

When i upgraded to Jira 7 i had to move my create-postfunction scripts that do something with issue fields from second position (behind "Creates the issue originally") to the first position (before "Creates ..").

Maybe try some position changes.

 

Edit: For me the check for issuetype is working in create postfunction when script is on first position

0 votes
Avin Singhal July 18, 2017

Can someone have solution to this problem

Suggest an answer

Log in or Sign up to answer