JIRA: 6.3.12
Script runner: latest
import com.atlassian.jira.issue.Issue import com.atlassian.jira.issue.fields.CustomField import com.atlassian.jira.issue.CustomFieldManager import com.atlassian.jira.ComponentManager import com.atlassian.jira.ManagerFactory import com.atlassian.jira.event.issue.IssueEventDispatcher import com.opensymphony.workflow.InvalidInputException bR = (issue.resolution?.id == "6") passesCondition = true if (issue.resolution?.id == "6") { cfm = componentManager.getCustomFieldManager() nff = cfm.getCustomFieldObjects(issue).find {it.id == 'customfield_10200'} cfv = issue.getCustomFieldValue(nff) if (cfv == null) { passesCondition = false this.invalidInputException = new InvalidInputException("customfield_10200","Defferral Justification field is required when resolving issue as Proposed to defer") } } this.passesCondition=passesCondition return [:];
When the Validator is supposed to work, I get the following:
An unknown exception occured executing Validator com.atlassian.jira.workflow.SkippableValidator@47141bd3: root cause: No such property: componentManager for class: vl_defer
Please advise.
I don't know, maybe I removed componentManager from the binding as it's deprecated. The quick fix is to add
import com.atlassian.jira.component.ComponentAccessor
and replace
cfm = componentManager.getCustomFieldManager()
with
cfm = ComponentAccessor.getCustomFieldManager()
Thank you, Jamie Echlin.
It works now, I updated the plugin and introduced your code fix suggestions.
Thanks for such a great support.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thank you for your answer, Jamie Echlin.
The error is gone. But the validator does not work any more. It's meant to work this way: do not allow resolve with 'Propose to Defer' resolution if the customfield_10200 is empty.
It worked in JIRA6.2.
What can go wrong? Maybe there is another way to check it?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I don't understand this: this.passesCondition=passesCondition return [:]; Just do: return passesCondition
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.