2016-05-10 10 views
1

Я меняю имя настраиваемого поля, используя REST api в JIRA. Он меняет имя пользовательского поля. Но когда я попытался получить пользовательскую регистрацию в коде, я получаю null в качестве результата.CustomFieldManager не получает настраиваемое поле после изменения имени настраиваемого поля с помощью REST api в jira

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()); 
    } 

В приведенном выше сообщении он не входит в условие.

Отредактировано отсюда. Когда пользователь менял описание проблемы, я показываю этого пользователя. Для этого я создал одно настраиваемое поле типа «UserCFType». Он отображает пользователя, который изменил описание. Но для пользователя admin он отображает admin (admin). Я просто хочу «admin» только не «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) 

** EDIT: Для задачи имени отображения, попробуйте использовать getDisplayName() метод на объекте пользователя. С уважением

+0

Все еще получаю исключение нулевого указателя – user2636874

+0

Хорошо. Вы объявили CfManager? и уверены ли вы, что проблема имеет значение для этого настраиваемого поля? и имя customField точно такое же, как и правильное (с учетом регистра)? – Oldskultxo

+0

Да, я объявил пользовательский менеджер полей, а также проблема имеет значение для этого поля. – user2636874