Details
-
Bug
-
Resolution: Fixed
-
Low
-
None
Description
NOTE: This bug report is for JIRA Cloud. Using JIRA Server? See the corresponding bug report.
Steps to reproduce
- Create a custom field Cascading Select
- Add the options into it
- Create an issue
- Select 'NONE' for the Cascading Select custom field
The issue successfully created without exception - Edit the same issue and select 'NONE' for the Cascading Select custom field again
The following error appear and the update fail:2012-05-04 18:18:58,904 http-8503-6 ERROR kahloun.foong 1098x176x1 2zrt38 127.0.0.1 /secure/QuickEditIssue.jspa [jira.bc.issue.DefaultIssueService] Exception occurred editing issue: java.lang.NullPointerException java.lang.NullPointerException at com.atlassian.jira.issue.customfields.impl.CascadingSelectCFType.getChangelogValue(CascadingSelectCFType.java:390) at com.atlassian.jira.issue.customfields.impl.CascadingSelectCFType.getChangelogValue(CascadingSelectCFType.java:69) at com.atlassian.jira.issue.fields.CustomFieldImpl.getChangelogValue(CustomFieldImpl.java:378) at com.atlassian.jira.issue.fields.CustomFieldImpl.updateValue(CustomFieldImpl.java:418) at com.atlassian.jira.issue.fields.CustomFieldImpl.updateValue(CustomFieldImpl.java:399) at com.atlassian.jira.issue.managers.DefaultIssueManager.updateFieldValues(DefaultIssueManager.java:589) at com.atlassian.jira.issue.managers.DefaultIssueManager.updateIssue(DefaultIssueManager.java:554) at com.atlassian.jira.bc.issue.DefaultIssueService.update(DefaultIssueService.java:272) at com.atlassian.jira.bc.issue.DefaultIssueService.update(DefaultIssueService.java:246) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
Workaround
- Shutdown JIRA
- Backup and modify the file <jira-install>\atlassian-jira\WEB-INF\classes\templates\plugins\fields\edit\edit-cascadingselect.vm from
<select class="select cascadingselect-parent" id="${customField.id}" name="${customField.id}"> <option class="default-option" value="">$i18n.getText("common.words.pleaseselect")</option> <option class="default-option" value="-1">$i18n.getText("common.words.none")</option> #foreach ($option in $configs.options.rootOptions) #if(!$option.disabled || $option.disabled == false || ($selectedParent && $selectedParent == $option.optionId.toString())) <option class="option-group-$option.optionId" value="$option.optionId"#if ($selectedParent && $selectedParent == $option.optionId.toString()) selected="selected"#end>$cfValueEncoder.encodeForHtml($option.value)</option> #end #end </select> <select class="select cascadingselect-child" id="${customField.id}:1" name="${customField.id}:1"> <option class="default-option" value="">$i18n.getText("common.words.pleaseselect")</option> <option class="default-option" value="-1">$i18n.getText("common.words.none")</option> #foreach ($parentOption in $configs.options.rootOptions) <option class="option-group-$parentOption.optionId" value="">$i18n.getText("common.words.pleaseselect")</option> <option class="option-group-$parentOption.optionId" value="-1">$i18n.getText("common.words.none")</option>
to
<select class="select cascadingselect-parent" id="${customField.id}" name="${customField.id}"> <option class="default-option" value="">$i18n.getText("common.words.none")</option> <!-- <option class="default-option" value="-1">$i18n.getText("common.words.none")</option> --> #foreach ($option in $configs.options.rootOptions) #if(!$option.disabled || $option.disabled == false || ($selectedParent && $selectedParent == $option.optionId.toString())) <option class="option-group-$option.optionId" value="$option.optionId"#if ($selectedParent && $selectedParent == $option.optionId.toString()) selected="selected"#end>$cfValueEncoder.encodeForHtml($option.value)</option> #end #end </select> <select class="select cascadingselect-child" id="${customField.id}:1" name="${customField.id}:1"> <option class="default-option" value="">$i18n.getText("common.words.none")</option> <!-- <option class="default-option" value="-1">$i18n.getText("common.words.none")</option> --> #foreach ($parentOption in $configs.options.rootOptions) <option class="option-group-$parentOption.optionId" value="">$i18n.getText("common.words.none")</option> <!-- <option class="option-group-$parentOption.optionId" value="-1">$i18n.getText("common.words.none")</option> -->
- Restart JIRA
This modification will remove the 'Please select' in the option and replace it with the word 'None'
Attachments
Issue Links
- is related to
-
JRASERVER-28076 NullPointerException selecting NONE for Cascading Select Field
- Closed