Details
-
Bug
-
Status: Done
-
Medium
-
Resolution: Done
-
5.5.0, 5.5.5
-
None
-
Sprint 53
-
0
Description
Scripted field of type "Issue Picker" does not work properly with the standard Jira REST API.
Steps to reproduce
- Create a scripted field of type "Issue Picker"
- Create an issue with a value inside the scripted field
- Perform the following PUT call (<JIRA_URL>/rest/api/2/issue/<ISSUE_KEY>):
{ "fields": { "customfield_xxxxxx": "ISSUE_KEY" } }
Expected result
The scripted field is updated with the new value
Actual result
An HTTP 500 error with this body:
{ "errorMessages": [ "Internal server error" ], "errors": {} }
This exception appears within the application log:
java.lang.ClassCastException: com.atlassian.jira.issue.IssueImpl cannot be cast to java.lang.String at com.atlassian.jira.issue.customfields.impl.rest.TextCustomFieldOperationsHandler.getInitialValue(TextCustomFieldOperationsHandler.java:43) at com.atlassian.jira.issue.customfields.impl.rest.TextCustomFieldOperationsHandler.getInitialValue(TextCustomFieldOperationsHandler.java:17) at com.atlassian.jira.issue.customfields.impl.rest.AbstractCustomFieldOperationsHandler.updateIssueInputParameters(AbstractCustomFieldOperationsHandler.java:75) at com.atlassian.jira.rest.v2.issue.IssueInputParametersAssembler$IssueInputParametersBuilder.finalizeIssueInputParams(IssueInputParametersAssembler.java:428) at com.atlassian.jira.rest.v2.issue.IssueInputParametersAssembler$IssueInputParametersBuilder.buildForEdit(IssueInputParametersAssembler.java:230) at com.atlassian.jira.rest.v2.issue.UpdateIssueResource.editIssue(UpdateIssueResource.java:58) at com.atlassian.jira.rest.v2.issue.IssueResource.editIssue(IssueResource.java:768) ... 255 more
Note
The REST call works fine if the scripted field has no value, but if a value is already present the exception is thrown every time