I have a script that gets fired on issueupdated/issuedeleted events and renames options configured in a single-select custom field.
The renaming part is working fine, however when I look at issues using the renamed option, on the "view" screen they are still showing the old value. If I go into "edit" mode the new option value is displayed (and is correctly selected as the current value for that issue).
Things I've tried:
Is there an extra step that needs to be performed to let issues know that the option has been renamed so they display the correct value? Here's a snippet of the code I'm using (including my attempts to get the issue to recognise the new value):
CustomField customField = this.customFieldManager.getCustomFieldObject(CUSTOMFIELD_ID);
FieldConfig fieldConfig = customField.getConfigurationSchemes().listIterator().next().getOneAndOnlyConfig();
Options fieldOptions = this.optionsManager.getOptions(fieldConfig);
Option existingOption = fieldOptions.getOptionForValue(originalValue, null);
if (existingOption) {
existingOption.setValue(newValue);
// later that evening...
List<Issue> issues = searchResults.getIssues();
if (issues) {
fieldOptions = this.optionsManager.getOptions(fieldConfig);
existingOption = fieldOptions.getOptionForValue(newValue, null);
IssueChangeHolder changeHolder = new DefaultIssueChangeHolder();
for (Issue existingIssue : issues) {
// Update the new issues with the renamed option
customField.updateValue(null, existingIssue, new ModifiedValue(customField.getValue(existingIssue), existingOption), changeHolder);
this.issueManager.updateIssue(this.currentUser.getDirectoryUser(), existingIssue, EventDispatchOption.ISSUE_UPDATED, false);
// Explicitly reindex the issues
ComponentAccessor.getIssueIndexManager().reIndex(existingIssue);
}
}
}
It's not ideal but I found a work-around. Instead of renaming an existing option, I just create a new one, point any issues using the old option to the new option, reindex them then delete the old option. It works but feels like a bit of a dirty hack...
If it helps at all I'm using JIRA 6.2.1 and Script Runner 2.1.17 (doesn't officially support 6.2.x but I haven't had any show-stopper compatibility problems so far)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.