2016-05-10 64 views
1

我正在使用JIRA中的REST api更改自定义字段名称。 它正在改变自定义字段名称。 但是,当我试图获得代码中的自定义字段时,结果为空。在使用JIRA中的REST api修改自定义字段名称后,CustomFieldManager未获取自定义字段

String modByWhomCustomFieldName = pluginConfigService.getMUFCustomFieldName(); 
    System.out.println("+++++++++++++++++++In flagCustomField() modByWhomCustomFieldName is:"+modByWhomCustomFieldName); 

    //CustomField modByWhomCustomField = cfManager.getCustomFieldObjectByName("Description Changed By"); 
    CustomField modByWhomCustomField = cfManager.getCustomFieldObjectByName(modByWhomCustomFieldName); 
    if(modByWhomCustomField != null) { 
     System.out.println("++++++++++++++ "+modByWhomCustomField.getDescription()); 
    } 

在上面它没有进入if条件。

从这里编辑。 无论何时用户更改问题的描述,我都会显示该用户。为此,我创建了一个“UserCFType”类型的自定义字段。它显示修改描述的用户。但对于用户管理员,它显示的是管理员(admin)。我只想“管理员”而不是“管理员(admin)”。

Object modByWhomCustomFieldOldValue = issue.getCustomFieldValue(modByWhomCustomField); 
     Object modByWhomCustomFieldNewValue = user; 
     System.out.println("+++++++++++++++++++In flagCustomField() current user is:"+modByWhomCustomFieldNewValue.toString()); 

     ModifiedValue<Object> modifVal2 = new ModifiedValue<>(modByWhomCustomFieldOldValue, modByWhomCustomFieldNewValue); 
     modByWhomCustomField.updateValue(null, issue, modifVal2, changeHolder); 

以上是该代码。

回答

0

尝试获取价值。当你得到customfield对象时,你会得到CF本身,而不是任何问题的自定义字段的值。所以,你得到的自定义字段,然后它的价值对一个具体问题:

cfManager.getCustomFieldObjectByName(modByWhomCustomFieldName).getValue(yourIssue) 

**编辑: 对于名称显示问题,请尝试使用用户对象上的getDisplayName()方法。 Regards

+0

仍然收到空指针异常 – user2636874

+0

好的。你是否宣布了CfManager?并且您确定该问题对该自定义字段有价值吗?并且customField的名称与正确的名称完全相同(区分大小写)? – Oldskultxo

+0

是的,我已经声明了自定义字段管理器,并且该问题也具有该字段的值。 – user2636874