有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我是groovy script runner的新手,我一直在尝试删除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);

Stacktrace

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) 个答案

  1. # 1 楼答案

    根据JIRA documentation

    customFieldManager.getCustomFieldObject("12345")
    

    如果JIRA中没有标识符为“12345”的customer字段,则返回null,这是为什么

    customFieldManager.removeCustomField(customField_toDelete)
    

    抛出一个空指针(因为customField_toDelete为空)

    如果removeCustomField方法是@Nullable(即使用Nullable注释进行注释),则可以将null传递给该方法,但由于它没有使用该方法进行注释,因此会引发异常