Hi,
We fall into this issue https://jamieechlin.atlassian.net/browse/GRV-282
But I am not able to access workaround script from here https://gist.github.com/jamieechlin/5917773
Can anyone please post me here as an answer ??
Thanks,
Arpit
package examples import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.customfields.option.Option import com.atlassian.jira.issue.fields.config.FieldConfig import com.atlassian.jira.issue.fields.layout.field.AbstractFieldLayoutManager import com.atlassian.jira.issue.managers.DefaultCustomFieldManager import org.apache.log4j.Level import org.apache.log4j.Logger public class FixBrokenOptionsScript { def log = Logger.getLogger("examples.FixBrokenOptionsScript") // set isPreview to true to see what would be done - check the logs def isPreview = false public void run() { log.setLevel(Level.DEBUG) Logger.getLogger(AbstractFieldLayoutManager.class).setLevel(Level.WARN) Logger.getLogger(DefaultCustomFieldManager.class).setLevel(Level.OFF) def totalOptionsToUpdate = 0 def optionsManager = ComponentAccessor.getOptionsManager() def Map<FieldConfig, List<Option>> optionsByFieldConfig = optionsManager.getAllOptions().groupBy { try { it.relatedCustomField } catch (e) { // some options can be broken, they refer to a deleted field config or something return null } }
optionsByFieldConfig.each {fieldConfig, fcOptionList -> fcOptionList.groupBy {it.parentOption}.each {parentOption, optionList -> if (optionList.any {it.sequence == null}) { log.debug("Modify options for field config ${fieldConfig.name}") // find highest sequence number to use as the base def highestSeq = optionList*.sequence.max() ?: -1 highestSeq++ optionList.findAll {it.sequence == null}.sort{it.optionId}.eachWithIndex {Option option, Integer kount -> log.debug("Update option with ID ${option.optionId} and value ${option.value}") if (! isPreview) { option.setSequence(highestSeq + kount) option.store() } totalOptionsToUpdate++ } } } } log.debug("Updated or will update: ${totalOptionsToUpdate} options in total") } } new FixBrokenOptionsScript().run()
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.