Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-59760

"Fields" parameter does not work with jiraJqlSearch

    Details

    • Similar Issues:

      Description

      It seems that "fields" parameter does not work with jiraJqlSearch or at least it's unclear how it should be used properly.

      Here is the query to get 3 issues with key and summary fields only

      def issues = jiraJqlSearch(
          jql: "project='AM'",
          fields: 'key,summary',
          site: 'jira',
          maxResults: 3
      )
      

      and this snippet returns the following error

      [Pipeline] jiraJqlSearch
      JIRA: Site - jira - Search JQL: project='AM' startAt: 0 maxResults: 3
      Error Code: 400
      Error Message: {"errorMessages":["Can not deserialize instance of java.util.ArrayList out of VALUE_STRING token\n at [Source: org.apache.catalina.connector.CoyoteInputStream@2e4bdc21; line: 1, column: 51] (through reference chain: com.atlassian.jira.rest.v2.search.SearchRequestBean[\"fields\"])"]}
      

      Trying to pass fields as array like the following

      def issues = jiraJqlSearch(
          jql: "project='AM'",
          fields: ['key','summary'],
          site: 'jira',
          maxResults: 3
      )
      

      leads to the following error

      [Pipeline] End of Pipeline
      java.lang.ClassCastException: class org.thoughtslive.jenkins.plugins.jira.steps.JqlSearchStep.fields expects class java.lang.String but received class java.util.ArrayList
      	at org.jenkinsci.plugins.structs.describable.DescribableModel.coerce(DescribableModel.java:492)
      	at org.jenkinsci.plugins.structs.describable.DescribableModel.injectSetters(DescribableModel.java:429)
      	at org.jenkinsci.plugins.structs.describable.DescribableModel.instantiate(DescribableModel.java:331)
      	at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:269)
      	at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:179)
      	at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:122)
      	at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:1278)
      	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1172)
      	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
      	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:810)
      	at groovy.lang.GroovyObjectSupport.invokeMethod(GroovyObjectSupport.java:46)
      	at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:1278)
      	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1172)
      	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
      	at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:42)
      	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
      	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
      	at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:20)
      Caused: java.lang.IllegalArgumentException: Could not instantiate {jql=project='AM', fields=[key, summary], site=jira, maxResults=3} for org.thoughtslive.jenkins.plugins.jira.steps.JqlSearchStep
      	at org.jenkinsci.plugins.structs.describable.DescribableModel.instantiate(DescribableModel.java:334)
      	at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:269)
      	at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:179)
      	at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:122)
      

      At the same time this curl sample works as expected without any errors

      $ curl -XGET -H'Accept:application/json' -u 'user:pass' 'https://company.atlassian.net/rest/api/2/search?jql=project%3DAM&maxResults=3&fields=key,summary' | jq .
      {
        "expand": "schema,names",
        "startAt": 0,
        "maxResults": 3,
        "total": 2857,
        "issues": [
          {
            "expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
            "id": "52769",
            "self": "https://company.atlassian.net/rest/api/2/issue/52769",
            "key": "AM-2889",
            "fields": {
              "summary": "Issue 1"
            }
          },
          {
            "expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
            "id": "52768",
            "self": "https://company.atlassian.net/rest/api/2/issue/52768",
            "key": "AM-2888",
            "fields": {
              "summary": "Issue 2"
            }
          },
          {
            "expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
            "id": "52753",
            "self": "https://company.atlassian.net/rest/api/2/issue/52753",
            "key": "AM-2887",
            "fields": {
              "summary": "Issue 3"
            }
          }
        ]
      }
      

        Attachments

          Activity

          Hide
          nrayapati Naresh Rayapati added a comment -

          Released with 1.5.3, pass fields as array or similar to how it has been sent in REST API, it should work.

          PR: https://github.com/jenkinsci/jira-steps-plugin/pull/100

          Show
          nrayapati Naresh Rayapati added a comment - Released with 1.5.3, pass fields as array or similar to how it has been sent in REST API, it should work. PR: https://github.com/jenkinsci/jira-steps-plugin/pull/100

            People

            • Assignee:
              nrayapati Naresh Rayapati
              Reporter:
              szhem Sergey Zhemzhitsky
            • Votes:
              2 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: