I'm trying to populate a custom field (I have tried to populate a Number Field, Multi Select & Calculated number field) using the following groovy script that is being called from a "Script Post-Function" within the workflow and receive a javax.script.ScriptException, can anyone tell me what's wrong with my code?
{Code}
import org.apache.log4j.Category
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.ModifiedValue
cfm = componentManager.getCustomFieldManager()
ch = new DefaultIssueChangeHolder();
Issue issue = issue
MeD = cfm.getCustomFieldObjects(issue).find {it.name == 'Month-End'}
cfMeD = issue.getCustomFieldValue(MeD)
Date now = new Date()
month = now.month + 1
log.warn "The Month value is: " +month
MeD.updateValue(null, issue, new ModifiedValue(MeD, month), ch)
{Code}
The error is:
2013-02-01 15:21:46,206 http-8081-12 WARN t16384 921x1999x1 rr89da 172.19.25.160 /secure/CommentAssignIssue.jspa [onresolve.jira.groovy.GroovyRunner] The Month value is: 2
2013-02-01 15:21:46,206 http-8081-12 ERROR t16384 921x1999x1 rr89da 172.19.25.160 /secure/CommentAssignIssue.jspa [onresolve.jira.groovy.GroovyRunner] The script failed : javax.script.ScriptException: javax.script.ScriptException: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Double
2013-02-01 15:21:46,206 http-8081-12 ERROR t16384 921x1999x1 rr89da 172.19.25.160 /secure/CommentAssignIssue.jspa [onresolve.jira.groovy.GroovyFunctionPlugin] Error executing post-function
javax.script.ScriptException: javax.script.ScriptException: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Double
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:117)
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:103)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:195)
at com.onresolve.jira.groovy.GroovyRunner.runFile(GroovyRunner.java:92)
at com.onresolve.jira.groovy.GroovyRunner.run(GroovyRunner.java:52)
at com.onresolve.jira.groovy.GroovyFunctionPlugin.execute(GroovyFunctionPlugin.java:35)
at com.opensymphony.workflow.AbstractWorkflow.executeFunction(AbstractWorkflow.java:1050)
at com.opensymphony.workflow.AbstractWorkflow.transitionWorkflow(AbstractWorkflow.java:1446)
at com.opensymphony.workflow.AbstractWorkflow.doAction(AbstractWorkflow.java:564)
at com.atlassian.jira.workflow.OSWorkflowManager.doWorkflowActionInsideTxn(OSWorkflowManager.java:905)
Caused by: javax.script.ScriptException: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Double
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:318)
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:111)
... 140 more
Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Double
at com.atlassian.jira.issue.customfields.impl.NumberCFType.getDbValueFromObject(NumberCFType.java:40)
at com.atlassian.jira.issue.customfields.impl.AbstractSingleFieldType.createValue(AbstractSingleFieldType.java:137)
at com.atlassian.jira.issue.fields.CustomFieldImpl.createValue(CustomFieldImpl.java:740)
at com.atlassian.jira.issue.fields.CustomFieldImpl.updateValue(CustomFieldImpl.java:428)
at com.atlassian.jira.issue.fields.CustomFieldImpl.updateValue(CustomFieldImpl.java:410)
at com.atlassian.jira.issue.fields.OrderableField$updateValue.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
at Script38.run(Script38.groovy:15)
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:315)