我正在使用JRJC jira-rest-java-client-2.0.0-m2.
我的目标是能够从问题中复制自定义字段并使用该值创建新问题.这通常很好:
Field trigger = issue.getFieldByName("Trigger");
if (trigger != null) {
newIssue.setFieldValue(trigger.getId(), trigger.getValue());
}
Run Code Online (Sandbox Code Playgroud)
(newIssue是IssueInputBuilder类型的对象;类型问题的问题)
但它不适用于下拉列表(单选),这会引发以下异常:
com.atlassian.jira.rest.client.domain.input.CannotTransformValueException: Any of available transformers was able to transform given value. Value is: org.codehaus.jettison.json.JSONObject: {"self":"http:\/\/localhost:8080\/rest\/api\/2\/customFieldOption\/10100","value":"SQL Statement","id":"10100"}
at com.atlassian.jira.rest.client.domain.input.ValueTransformerManager.apply(ValueTransformerManager.java:83)
at com.atlassian.jira.rest.client.domain.input.IssueInputBuilder.setFieldValue(IssueInputBuilder.java:135)
at com.sonydadc.lfiala.jira.CopyUtil.copy(CopyUtil.java:152)
at com.sonydadc.lfiala.jira.JiraUtil.copyTask(JiraUtil.java:90)
at com.sonydadc.lfiala.jira.Start.main(Start.java:13)
Run Code Online (Sandbox Code Playgroud)
直接设置值不起作用:
Field trigger = issue.getFieldByName("Trigger");
if (trigger != null) {
newIssue.setFieldValue(trigger.getId(), trigger);
}
Run Code Online (Sandbox Code Playgroud)
当我尝试这个时,会抛出此异常:
com.atlassian.jira.rest.client.RestClientException: Could not find valid 'id' or 'value' in the Parent Option object.
at com.atlassian.jira.rest.client.internal.async.AbstractAsynchronousRestClient$2.apply(AbstractAsynchronousRestClient.java:165)
at com.atlassian.jira.rest.client.internal.async.AbstractAsynchronousRestClient$2.apply(AbstractAsynchronousRestClient.java:159)
at com.atlassian.httpclient.api.ResponsePromiseMapFunction.apply(ResponsePromiseMapFunction.java:48)
at com.atlassian.httpclient.api.ResponsePromiseMapFunction.apply(ResponsePromiseMapFunction.java:12)
at com.atlassian.util.concurrent.Promises$Of$3.apply(Promises.java:285) …Run Code Online (Sandbox Code Playgroud)