尝试使用groovy脚本运行程序在JIRA中删除时出现NullPointerException

时间:2017-02-13 00:21:37

标签: java groovy nullpointerexception jira

我对groovy脚本运行器很新,我一直在尝试删除JIRA中的一个字段,但我总是得到NullPointerException。

我确实理解NullPointerMeans和我在网上和atlassian上阅读了多个帖子,但没有任何帮助。

我对如何实现这一目标表示赞赏/帮助

import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.fields.CustomField
import org.apache.log4j.Logger;
import org.apache.log4j.Level;

CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager();

CustomField customField_toDelete = customFieldManager.getCustomFieldObject("12345")

customFieldManager.removeCustomField(customField_toDelete);

堆栈跟踪

java.lang.NullPointerException
    at com.atlassian.jira.issue.managers.DefaultCustomFieldManager.removeCustomField(DefaultCustomFieldManager.java:490)
    at com.atlassian.jira.issue.CustomFieldManager$removeCustomField$7.call(Unknown Source)
    at Script2441.run(Script2441.groovy:20)

1 个答案:

答案 0 :(得分:0)

根据JIRA documentation

customFieldManager.getCustomFieldObject("12345")

如果JIRA中没有标识符为“12345”的客户字段,则返回 null ,因此

customFieldManager.removeCustomField(customField_toDelete)

抛出空指针(因为customField_toDelete null

如果方法removeCustomField是@Nullable(即使用Nullable注释注释),那么可以将null传递给方法,但由于它没有使用该方法注释,因此会抛出异常。