• Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Medium Medium (View bug fix roadmap)
    • None
    • None
    • None

      This has been reported by a Cloud customer and I can reproduce on the EAP driver (m01).

      Trying to update an issue with the following results in a internal server error. The same json format for the Epic Link custom field works correctly on a create, just not the update.

      {"fields":{"customfield_11261":"ZAGILE-1"}}
      
      java.lang.reflect.InvocationTargetException
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [?:1.8.0_45]
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [?:1.8.0_45]
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [?:1.8.0_45]
      	at java.lang.reflect.Method.invoke(Method.java:497) [?:1.8.0_45]
      	at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$ResponseOutInvoker$1.invoke(DispatchProviderHelper.java:234) [atlassian-rest-module-3.0.0-m012_1437952492000.jar:?]
      	... 4 filtered
      	at com.atlassian.jira.rest.exception.ExceptionInterceptor.intercept(ExceptionInterceptor.java:59) [jira-rest-plugin-7.0.0-m01.jar:?]
      	... 1 filtered
      	at com.atlassian.jira.rest.v2.issue.scope.RequestScopeInterceptor.intercept(RequestScopeInterceptor.java:43) [jira-rest-plugin-7.0.0-m01.jar:?]
      	... 15 filtered
      	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:178) [atlassian-rest-module-3.0.0-m012_1437952492000.jar:?]
      	... 1 filtered
      	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:73) [atlassian-rest-module-3.0.0-m012_1437952492000.jar:?]
      	... 32 filtered
      	at com.atlassian.plugins.cors.CorsFilter.doFilter(CorsFilter.java:65) [atlassian-whitelist-api-plugin-1.13_1437952360000.jar:?]
      	... 64 filtered
      	at com.atlassian.plugins.rest.module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:40) [atlassian-rest-module-3.0.0-m012_1437952492000.jar:?]
      	... 73 filtered
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_45]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_45]
      	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:8.0.17]
      	at java.lang.Thread.run(Thread.java:745) [?:1.8.0_45]
      Caused by: 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:46) [jira-api-7.0.0-m01.jar:?]
      	at com.atlassian.jira.issue.customfields.impl.rest.TextCustomFieldOperationsHandler.getInitialValue(TextCustomFieldOperationsHandler.java:17) [jira-api-7.0.0-m01.jar:?]
      	at com.atlassian.jira.issue.customfields.impl.rest.AbstractCustomFieldOperationsHandler.updateIssueInputParameters(AbstractCustomFieldOperationsHandler.java:78) [jira-api-7.0.0-m01.jar:?]
      	at com.atlassian.jira.rest.v2.issue.IssueInputParametersAssembler$IssueInputParametersBuilder.finalizeIssueInputParams(IssueInputParametersAssembler.java:470) [jira-rest-plugin-7.0.0-m01.jar:?]
      	at com.atlassian.jira.rest.v2.issue.IssueInputParametersAssembler$IssueInputParametersBuilder.buildForEdit(IssueInputParametersAssembler.java:221) [jira-rest-plugin-7.0.0-m01.jar:?]
      	at com.atlassian.jira.rest.v2.issue.UpdateIssueResource.editIssue(UpdateIssueResource.java:37) [jira-rest-plugin-7.0.0-m01.jar:?]
      	at com.atlassian.jira.rest.v2.issue.IssueResource.editIssue(IssueResource.java:894) [jira-rest-plugin-7.0.0-m01.jar:?]
      	... 205 more
      

      The meta data is incorrect/ambiguous in this case. I reported the general problem of custom field metadata to Dave Meyer earlier.

      Let me know if there is a different format required for the update of this field compared to the create case.

      Here is the metadata:

      Id  . . . . . . . . . . . . . : customfield_11261
      Name  . . . . . . . . . . . . : Epic Link
      Description . . . . . . . . . : 
      Required  . . . . . . . . . . : false
      Has default . . . . . . . . . : false
      Has allowed values  . . . . . : false
      Type  . . . . . . . . . . . . : array
      Item type . . . . . . . . . . : string
      Custom  . . . . . . . . . . . : true
      Custom type . . . . . . . . . : com.pyxis.greenhopper.jira:gh-epic-link
      Custom id . . . . . . . . . . : 11261
      

          Form Name

            [JSWSERVER-12506] Internal server error updating Epic Link field

            Hi bob.swift@charter.net,

            This was fixed in JIRA Software 7.1.4.

            Regards,

            Oswaldo Hernández.
            JIRA Bugmaster.
            [Atlassian].

            Oswaldo Hernandez (Inactive) added a comment - Hi bob.swift@charter.net , This was fixed in JIRA Software 7.1.4. Regards, Oswaldo Hernández. JIRA Bugmaster. [Atlassian] .

            Bob Swift added a comment -

            Thanks for fixing this. What is the fix version?

            Bob Swift added a comment - Thanks for fixing this. What is the fix version?

            After the fix the following JSON payloads will work:
            To add:

             {"fields":{"customfield_10420":"EPIC-1"}}
            

            To remove:

             {"fields":{"customfield_10420":""}}
            

            Adam Horvath (Inactive) added a comment - - edited After the fix the following JSON payloads will work: To add: { "fields" :{ "customfield_10420" : "EPIC-1" }} To remove: { "fields" :{ "customfield_10420" :""}}

            I have same problem on JIRA 6.3.15 and JIRA Agile 6.7.12.
            I tried another json format, but internal error occurred.

            {
              "update": {
                "customfield_10306": [
                  {
                    "set": "DEMO-2"
                  }
                ]
              }
            }
            

            Takayuki Hirota added a comment - I have same problem on JIRA 6.3.15 and JIRA Agile 6.7.12. I tried another json format, but internal error occurred. { "update" : { "customfield_10306" : [ { "set" : "DEMO-2" } ] } }

            This issue is currently blocking me and my team from making further process automating Jira provisioning scripts. If there is any workaround or fix out there I would really appreciate the help!

            Stephen Cerbone added a comment - This issue is currently blocking me and my team from making further process automating Jira provisioning scripts. If there is any workaround or fix out there I would really appreciate the help!

            Hi! In addition to this problem, we have something similar when updating the sprint field.

            JIRA is throwing a similar class cast exception:

            [INFO] [talledLocalContainer] 2015-12-04 08:45:52,826 http-nio-2990-exec-8 ERROR addon_com.javahollic.jira.jemh-ui 525x8325x1 12d7v1f 127.0.0.1 /rest/api/latest/issue/SCRUM-78 [c.a.j.rest.exception.ExceptionInterceptor] Returning internal server error in response
            [INFO] [talledLocalContainer] java.lang.reflect.InvocationTargetException
            [INFO] [talledLocalContainer] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            [INFO] [talledLocalContainer] 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            [INFO] [talledLocalContainer] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            [INFO] [talledLocalContainer] 	at java.lang.reflect.Method.invoke(Method.java:497)
            [INFO] [talledLocalContainer] 	at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$ResponseOutInvoker$1.invoke(DispatchProviderHelper.java:234)
            [INFO] [talledLocalContainer] 	... 4 filtered
            [INFO] [talledLocalContainer] 	at com.atlassian.jira.rest.exception.ExceptionInterceptor.intercept(ExceptionInterceptor.java:55)
            [INFO] [talledLocalContainer] 	... 1 filtered
            [INFO] [talledLocalContainer] 	at com.atlassian.jira.rest.v2.issue.scope.RequestScopeInterceptor.intercept(RequestScopeInterceptor.java:39)
            [INFO] [talledLocalContainer] 	... 15 filtered
            [INFO] [talledLocalContainer] 	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:178)
            [INFO] [talledLocalContainer] 	... 1 filtered
            [INFO] [talledLocalContainer] 	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:73)
            [INFO] [talledLocalContainer] 	... 32 filtered
            [INFO] [talledLocalContainer] 	at com.atlassian.web.servlet.plugin.ForwardLocationPassFilter.doFilter(ForwardLocationPassFilter.java:50)
            [INFO] [talledLocalContainer] 	... 27 filtered
            [INFO] [talledLocalContainer] 	at com.atlassian.labs.httpservice.resource.ResourceFilter.doFilter(ResourceFilter.java:59)
            [INFO] [talledLocalContainer] 	... 21 filtered
            [INFO] [talledLocalContainer] 	at com.atlassian.plugin.connect.plugin.auth.scope.ApiScopingFilter.handleScopedRequest(ApiScopingFilter.java:111)
            [INFO] [talledLocalContainer] 	at com.atlassian.plugin.connect.plugin.auth.scope.ApiScopingFilter.doFilter(ApiScopingFilter.java:85)
            [INFO] [talledLocalContainer] 	... 15 filtered
            [INFO] [talledLocalContainer] 	at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:70)
            [INFO] [talledLocalContainer] 	... 15 filtered
            [INFO] [talledLocalContainer] 	at com.atlassian.plugins.rest.module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:40)
            [INFO] [talledLocalContainer] 	... 27 filtered
            [INFO] [talledLocalContainer] 	at com.atlassian.plugin.connect.plugin.auth.user.ThreeLeggedAuthFilter.actAsAddOnUser(ThreeLeggedAuthFilter.java:273)
            [INFO] [talledLocalContainer] 	at com.atlassian.plugin.connect.plugin.auth.user.ThreeLeggedAuthFilter.processAddOnRequest(ThreeLeggedAuthFilter.java:186)
            [INFO] [talledLocalContainer] 	at com.atlassian.plugin.connect.plugin.auth.user.ThreeLeggedAuthFilter.doFilter(ThreeLeggedAuthFilter.java:113)
            [INFO] [talledLocalContainer] 	... 3 filtered
            [INFO] [talledLocalContainer] 	at com.atlassian.plugin.connect.plugin.auth.oauth.OAuth2LOFilter.doFilter(OAuth2LOFilter.java:82)
            [INFO] [talledLocalContainer] 	... 3 filtered
            [INFO] [talledLocalContainer] 	at com.atlassian.fastdev.AutoReloadFilter.doFilter(AutoReloadFilter.java:63)
            [INFO] [talledLocalContainer] 	... 3 filtered
            [INFO] [talledLocalContainer] 	at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:31)
            [INFO] [talledLocalContainer] 	... 55 filtered
            [INFO] [talledLocalContainer] 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
            [INFO] [talledLocalContainer] 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
            [INFO] [talledLocalContainer] 	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
            [INFO] [talledLocalContainer] 	at java.lang.Thread.run(Thread.java:745)
            [INFO] [talledLocalContainer] Caused by: java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.String
            [INFO] [talledLocalContainer] 	at com.atlassian.jira.issue.customfields.impl.rest.TextCustomFieldOperationsHandler.getInitialValue(TextCustomFieldOperationsHandler.java:43)
            [INFO] [talledLocalContainer] 	at com.atlassian.jira.issue.customfields.impl.rest.TextCustomFieldOperationsHandler.getInitialValue(TextCustomFieldOperationsHandler.java:17)
            [INFO] [talledLocalContainer] 	at com.atlassian.jira.issue.customfields.impl.rest.AbstractCustomFieldOperationsHandler.updateIssueInputParameters(AbstractCustomFieldOperationsHandler.java:75)
            [INFO] [talledLocalContainer] 	at com.atlassian.jira.rest.v2.issue.IssueInputParametersAssembler$IssueInputParametersBuilder.finalizeIssueInputParams(IssueInputParametersAssembler.java:428)
            [INFO] [talledLocalContainer] 	at com.atlassian.jira.rest.v2.issue.IssueInputParametersAssembler$IssueInputParametersBuilder.buildForEdit(IssueInputParametersAssembler.java:233)
            [INFO] [talledLocalContainer] 	at com.atlassian.jira.rest.v2.issue.UpdateIssueResource.editIssue(UpdateIssueResource.java:33)
            [INFO] [talledLocalContainer] 	at com.atlassian.jira.rest.v2.issue.IssueResource.editIssue(IssueResource.java:727)
            [INFO] [talledLocalContainer] 	... 247 more
            
            

            Setting the sprint of issue creation works fine, but issue update breaks.

            Is the sprint issue tracked elsewhere?

            Fernando Boucquez (PPL) added a comment - Hi! In addition to this problem, we have something similar when updating the sprint field. JIRA is throwing a similar class cast exception: [INFO] [talledLocalContainer] 2015-12-04 08:45:52,826 http-nio-2990-exec-8 ERROR addon_com.javahollic.jira.jemh-ui 525x8325x1 12d7v1f 127.0.0.1 /rest/api/latest/issue/SCRUM-78 [c.a.j.rest.exception.ExceptionInterceptor] Returning internal server error in response [INFO] [talledLocalContainer] java.lang.reflect.InvocationTargetException [INFO] [talledLocalContainer] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [INFO] [talledLocalContainer] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [INFO] [talledLocalContainer] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [INFO] [talledLocalContainer] at java.lang.reflect.Method.invoke(Method.java:497) [INFO] [talledLocalContainer] at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$ResponseOutInvoker$1.invoke(DispatchProviderHelper.java:234) [INFO] [talledLocalContainer] ... 4 filtered [INFO] [talledLocalContainer] at com.atlassian.jira.rest.exception.ExceptionInterceptor.intercept(ExceptionInterceptor.java:55) [INFO] [talledLocalContainer] ... 1 filtered [INFO] [talledLocalContainer] at com.atlassian.jira.rest.v2.issue.scope.RequestScopeInterceptor.intercept(RequestScopeInterceptor.java:39) [INFO] [talledLocalContainer] ... 15 filtered [INFO] [talledLocalContainer] at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:178) [INFO] [talledLocalContainer] ... 1 filtered [INFO] [talledLocalContainer] at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:73) [INFO] [talledLocalContainer] ... 32 filtered [INFO] [talledLocalContainer] at com.atlassian.web.servlet.plugin.ForwardLocationPassFilter.doFilter(ForwardLocationPassFilter.java:50) [INFO] [talledLocalContainer] ... 27 filtered [INFO] [talledLocalContainer] at com.atlassian.labs.httpservice.resource.ResourceFilter.doFilter(ResourceFilter.java:59) [INFO] [talledLocalContainer] ... 21 filtered [INFO] [talledLocalContainer] at com.atlassian.plugin.connect.plugin.auth.scope.ApiScopingFilter.handleScopedRequest(ApiScopingFilter.java:111) [INFO] [talledLocalContainer] at com.atlassian.plugin.connect.plugin.auth.scope.ApiScopingFilter.doFilter(ApiScopingFilter.java:85) [INFO] [talledLocalContainer] ... 15 filtered [INFO] [talledLocalContainer] at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:70) [INFO] [talledLocalContainer] ... 15 filtered [INFO] [talledLocalContainer] at com.atlassian.plugins.rest.module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:40) [INFO] [talledLocalContainer] ... 27 filtered [INFO] [talledLocalContainer] at com.atlassian.plugin.connect.plugin.auth.user.ThreeLeggedAuthFilter.actAsAddOnUser(ThreeLeggedAuthFilter.java:273) [INFO] [talledLocalContainer] at com.atlassian.plugin.connect.plugin.auth.user.ThreeLeggedAuthFilter.processAddOnRequest(ThreeLeggedAuthFilter.java:186) [INFO] [talledLocalContainer] at com.atlassian.plugin.connect.plugin.auth.user.ThreeLeggedAuthFilter.doFilter(ThreeLeggedAuthFilter.java:113) [INFO] [talledLocalContainer] ... 3 filtered [INFO] [talledLocalContainer] at com.atlassian.plugin.connect.plugin.auth.oauth.OAuth2LOFilter.doFilter(OAuth2LOFilter.java:82) [INFO] [talledLocalContainer] ... 3 filtered [INFO] [talledLocalContainer] at com.atlassian.fastdev.AutoReloadFilter.doFilter(AutoReloadFilter.java:63) [INFO] [talledLocalContainer] ... 3 filtered [INFO] [talledLocalContainer] at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:31) [INFO] [talledLocalContainer] ... 55 filtered [INFO] [talledLocalContainer] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [INFO] [talledLocalContainer] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [INFO] [talledLocalContainer] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [INFO] [talledLocalContainer] at java.lang.Thread.run(Thread.java:745) [INFO] [talledLocalContainer] Caused by: java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.String [INFO] [talledLocalContainer] at com.atlassian.jira.issue.customfields.impl.rest.TextCustomFieldOperationsHandler.getInitialValue(TextCustomFieldOperationsHandler.java:43) [INFO] [talledLocalContainer] at com.atlassian.jira.issue.customfields.impl.rest.TextCustomFieldOperationsHandler.getInitialValue(TextCustomFieldOperationsHandler.java:17) [INFO] [talledLocalContainer] at com.atlassian.jira.issue.customfields.impl.rest.AbstractCustomFieldOperationsHandler.updateIssueInputParameters(AbstractCustomFieldOperationsHandler.java:75) [INFO] [talledLocalContainer] at com.atlassian.jira.rest.v2.issue.IssueInputParametersAssembler$IssueInputParametersBuilder.finalizeIssueInputParams(IssueInputParametersAssembler.java:428) [INFO] [talledLocalContainer] at com.atlassian.jira.rest.v2.issue.IssueInputParametersAssembler$IssueInputParametersBuilder.buildForEdit(IssueInputParametersAssembler.java:233) [INFO] [talledLocalContainer] at com.atlassian.jira.rest.v2.issue.UpdateIssueResource.editIssue(UpdateIssueResource.java:33) [INFO] [talledLocalContainer] at com.atlassian.jira.rest.v2.issue.IssueResource.editIssue(IssueResource.java:727) [INFO] [talledLocalContainer] ... 247 more Setting the sprint of issue creation works fine, but issue update breaks. Is the sprint issue tracked elsewhere?

              ahorvath@atlassian.com Adam Horvath (Inactive)
              bob.swift Bob Swift
              Affected customers:
              31 This affects my team
              Watchers:
              15 Start watching this issue

                Created:
                Updated:
                Resolved: