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

Active Choices Reactive Parameter Groovy script returning String instead of List

      I have an Active Choices parameter defined: It is an Active Choices Reactive parameter, where I am simply returning a list of character strings via the Groovy script (i.e: return ['example1','example2']) that will be used to create some check boxes. I notice from the documentation that the way I have formatted this should return a List. I have also verified that this does return a List in a Groovy web console.

      Now, the problem occurs when I attempt to index the List later on in my Jenkinsfile. If my List contained ["example1","example2"], then list[0] would return "e" instead of "example1". It looked like my List was actually a String instead. I debugged the parameter and found that it actually was a String type.

      I am wondering why my parameter is being returned as a String instead of a List, as it appears that the way I have set it up should return a List, which I should then be able to index.

       

          [JENKINS-58219] Active Choices Reactive Parameter Groovy script returning String instead of List

          Brett Hand created issue -
          Brett Hand made changes -
          Description Original: I have an Active Choices parameters defined: It is an Active Choices Reactive parameter, where I am simply returning a list of character strings via the Groovy script (i.e: return ['example1','example2']) that will be used to create some check boxes. I notice from the documentation that the way I have formatted this should return an ArrayList. I have also verified that this does return an ArrayList in a Groovy web console.

          Now, the problem occurs when I attempt to index the list later on in my Jenkinsfile. If my list contained ["example1","example2"], then list[0] would return "e" instead of "example1". It looked like my list was actually a String instead. I debugged the parameter and found that it actually was a String type.

          I am wondering why my parameter is being returned as a String instead of a list, as it appears that the way I have set it up should return a list, which I should then be able to index.

           
          New: I have an Active Choices parameter defined: It is an Active Choices Reactive parameter, where I am simply returning a list of character strings via the Groovy script (i.e: return ['example1','example2']) that will be used to create some check boxes. I notice from the documentation that the way I have formatted this should return an ArrayList. I have also verified that this does return an ArrayList in a Groovy web console.

          Now, the problem occurs when I attempt to index the list later on in my Jenkinsfile. If my list contained ["example1","example2"], then list[0] would return "e" instead of "example1". It looked like my list was actually a String instead. I debugged the parameter and found that it actually was a String type.

          I am wondering why my parameter is being returned as a String instead of a list, as it appears that the way I have set it up should return a list, which I should then be able to index.

           

          Brett Hand added a comment -

          I also suspected the parameter was actually a String because I was able to use the tokenize() method on it. I would not be able to do this if the returned parameter were a List.

          Brett Hand added a comment - I also suspected the parameter was actually a String because I was able to use the tokenize() method on it. I would not be able to do this if the returned parameter were a List.
          Brett Hand made changes -
          Description Original: I have an Active Choices parameter defined: It is an Active Choices Reactive parameter, where I am simply returning a list of character strings via the Groovy script (i.e: return ['example1','example2']) that will be used to create some check boxes. I notice from the documentation that the way I have formatted this should return an ArrayList. I have also verified that this does return an ArrayList in a Groovy web console.

          Now, the problem occurs when I attempt to index the list later on in my Jenkinsfile. If my list contained ["example1","example2"], then list[0] would return "e" instead of "example1". It looked like my list was actually a String instead. I debugged the parameter and found that it actually was a String type.

          I am wondering why my parameter is being returned as a String instead of a list, as it appears that the way I have set it up should return a list, which I should then be able to index.

           
          New: I have an Active Choices parameter defined: It is an Active Choices Reactive parameter, where I am simply returning a list of character strings via the Groovy script (i.e: return ['example1','example2']) that will be used to create some check boxes. I notice from the documentation that the way I have formatted this should return an List. I have also verified that this does return an List in a Groovy web console.

          Now, the problem occurs when I attempt to index the list later on in my Jenkinsfile. If my list contained ["example1","example2"], then list[0] would return "e" instead of "example1". It looked like my list was actually a String instead. I debugged the parameter and found that it actually was a String type.

          I am wondering why my parameter is being returned as a String instead of a list, as it appears that the way I have set it up should return a list, which I should then be able to index.

           
          Brett Hand made changes -
          Description Original: I have an Active Choices parameter defined: It is an Active Choices Reactive parameter, where I am simply returning a list of character strings via the Groovy script (i.e: return ['example1','example2']) that will be used to create some check boxes. I notice from the documentation that the way I have formatted this should return an List. I have also verified that this does return an List in a Groovy web console.

          Now, the problem occurs when I attempt to index the list later on in my Jenkinsfile. If my list contained ["example1","example2"], then list[0] would return "e" instead of "example1". It looked like my list was actually a String instead. I debugged the parameter and found that it actually was a String type.

          I am wondering why my parameter is being returned as a String instead of a list, as it appears that the way I have set it up should return a list, which I should then be able to index.

           
          New: I have an Active Choices parameter defined: It is an Active Choices Reactive parameter, where I am simply returning a list of character strings via the Groovy script (i.e: return ['example1','example2']) that will be used to create some check boxes. I notice from the documentation that the way I have formatted this should return an List. I have also verified that this does return an List in a Groovy web console.

          Now, the problem occurs when I attempt to index the List later on in my Jenkinsfile. If my List contained ["example1","example2"], then list[0] would return "e" instead of "example1". It looked like my List was actually a String instead. I debugged the parameter and found that it actually was a String type.

          I am wondering why my parameter is being returned as a String instead of a List, as it appears that the way I have set it up should return a List, which I should then be able to index.

           
          Brett Hand made changes -
          Description Original: I have an Active Choices parameter defined: It is an Active Choices Reactive parameter, where I am simply returning a list of character strings via the Groovy script (i.e: return ['example1','example2']) that will be used to create some check boxes. I notice from the documentation that the way I have formatted this should return an List. I have also verified that this does return an List in a Groovy web console.

          Now, the problem occurs when I attempt to index the List later on in my Jenkinsfile. If my List contained ["example1","example2"], then list[0] would return "e" instead of "example1". It looked like my List was actually a String instead. I debugged the parameter and found that it actually was a String type.

          I am wondering why my parameter is being returned as a String instead of a List, as it appears that the way I have set it up should return a List, which I should then be able to index.

           
          New: I have an Active Choices parameter defined: It is an Active Choices Reactive parameter, where I am simply returning a list of character strings via the Groovy script (i.e: return ['example1','example2']) that will be used to create some check boxes. I notice from the documentation that the way I have formatted this should return a List. I have also verified that this does return a List in a Groovy web console.

          Now, the problem occurs when I attempt to index the List later on in my Jenkinsfile. If my List contained ["example1","example2"], then list[0] would return "e" instead of "example1". It looked like my List was actually a String instead. I debugged the parameter and found that it actually was a String type.

          I am wondering why my parameter is being returned as a String instead of a List, as it appears that the way I have set it up should return a List, which I should then be able to index.

           

          bhand14 AC parameters have not been tested in use with Jenkinsfile and we only have experience using them in 'freestyle' type builds. Nonetheless, in these cases returning a  list of Strings is required for proper display in the build form UI. The parameters are passed to the build as text with the selected options as a comma separated String. You may need to tokenize this string to return a list. Note that 'splitting' a string with Groovy returns a String[] not a list

          I hope this helps. And any experience with using AC parameters in jenkinsfile is always useful (for future reference). Thank you!

          Ioannis Moutsatsos added a comment - bhand14 AC parameters have not been tested in use with Jenkinsfile and we only have experience using them in 'freestyle' type builds. Nonetheless, in these cases returning a  list of Strings is required for proper display in the build form UI. The parameters are passed to the build as text with the selected options as a comma separated String. You may need to tokenize this string to return a list. Note that 'splitting' a string with Groovy returns a String[] not a list I hope this helps. And any experience with using AC parameters in jenkinsfile is always useful (for future reference). Thank you!

            kinow Bruno P. Kinoshita
            bhand14 Brett Hand
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: