I have the following code. I'm trying to only show custom field options that match a certain filter.
def customField = customFieldManager.getCustomFieldObject(cfield.getFieldId())
def config = customField.getRelevantConfig(getIssueContext())
def options = optionsManager.getOptions(config)
def filter = "(test1/test2, test)";
def filterOptions = options.findAll { it.value.contains(filter) }
cfield.setFieldOptions(filterOptions )
The problem I have is that when I print out the "options" variable, it shows a set of options in the format of "key:value". However, when I print out "filterOptions", it shows a list in the format of "value".
I'm also getting the following error that I think is related to this observation:
/rest/scriptrunner/latest/canned/com.onresolve.scriptrunner.canned.common.StaticCompilationChecker [c.o.s.canned.common.StaticCompilationChecker] Type checking error: com.atlassian.cache.CacheException: java.lang.NullPointerException: Null keys are not supported com.atlassian.cache.CacheException: java.lang.NullPointerException: Null keys are not supported
I've tried examples from here. Namely the following two:
def items = map.findAll { key, value -> value.contains('a') }
def items = list.findAll { p -> p.lastName == 'Doe' }
None seem to populate the option list in the "key:value" format, which results in strange behaviour with the option set on screen. More on that here.
There are also examples that use this findAll logic:
ParticipationTypeOptions.findAll {
it.value in ["Informal Remarks", "Keynote Address", "Speech", "Report"]
}.collectEntries {
[(it.optionId.toString()): it.value]
}
But it also results in an error.
Unsupported type class java.util.LinkedHashMap in setFieldOptions()
My versions are:
Nvm, The map isn't the issue, that's just how dump() displays things.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.