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

CascadeChoiceParameter does not react to extendedChoice of type PT_CHECKBOX

      Running this works as expected

      node("label") {
          properties([
              parameters([
                  [$class: 'ChoiceParameter',
                      name: "CONFIGURATION",
                      choiceType: "PT_CHECKBOX",
                      script: [
                          $class: 'GroovyScript',
                          script: [
                              classpath: [],
                              sandbox: true,
                              script: '''
                                  return [
                                      "A:selected",
                                      "B",
                                      "C"
                                  ]
                              '''
                          ]
                      ]
                  ],
                  [$class: 'CascadeChoiceParameter',
                      choiceType: 'PT_CHECKBOX',
                      name: 'CHOICE',
                      referencedParameters: 'CONFIGURATION',
                      script: [
                          $class: 'GroovyScript',
                          fallbackScript: [
                              classpath: [],
                              sandbox: true,
                              script: '''
                                  return ["ERROR"]
                              '''
                          ],
                          script: [
                              classpath: [],
                              sandbox: true,
                              script: '''
                                  def values = []
      
                                  if (CONFIGURATION.contains("A")) {
                                      values.add("A")
                                  }
      
                                  if (CONFIGURATION.contains("B")) {
                                      values.add("B")
                                  }
      
                                  if (CONFIGURATION.contains("C")) {
                                      values.add("C")
                                  }
      
                                  return values
                              '''
                          ]
                      ]
                  ]
              ])
          ])
          stage("OUTPUT") {
              echo params.CONFIGURATION
              echo params.CHOICE
          }
      } 

      But using extendedChoice of type PT_CHECKBOX instead of ChoiceParameter
      does not 

      node("label") {
          properties([
              parameters([
                  extendedChoice(
                      name: "CONFIGURATION",
                      type: "PT_CHECKBOX",
                      multiSelectDelimiter: ",",
                      value: "A,B,C",
                      defaultValue: "A",
                      visibleItemCount: 3
                  ),
                  [$class: 'CascadeChoiceParameter',
                      choiceType: 'PT_CHECKBOX',
                      name: 'CHOICE',
                      referencedParameters: 'CONFIGURATION',
                      script: [
                          $class: 'GroovyScript',
                          fallbackScript: [
                              classpath: [],
                              sandbox: true,
                              script: '''
                                  return ["ERROR"]
                              '''
                          ],
                          script: [
                              classpath: [],
                              sandbox: true,
                              script: '''
                                  def values = []
      
                                  if (CONFIGURATION.contains("A")) {
                                      values.add("A")
                                  }
      
                                  if (CONFIGURATION.contains("B")) {
                                      values.add("B")
                                  }
      
                                  if (CONFIGURATION.contains("C")) {
                                      values.add("C")
                                  } 
      
                                 return values
                              '''
                          ]
                      ]
                  ]
              ])
          ])
          stage("OUTPUT") {
              echo params.CONFIGURATION
              echo params.CHOICE
          }
      } 

      Changing the type of extentdedChoise to PT_SINGLE_SELECT from PT_CHECKBOX makes it work again. But that's not the solution here as I need multi choice checkboxes.

          [JENKINS-71580] CascadeChoiceParameter does not react to extendedChoice of type PT_CHECKBOX

          Muhammet created issue -
          Muhammet made changes -
          Description Original: Running this works as expected
          {code:java}
          node("label") {
              properties([
                  parameters([
                      [$class: 'ChoiceParameter',
                          name: "CONFIGURATION",
                          choiceType: "PT_CHECKBOX",
                          script: [
                              $class: 'GroovyScript',
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return [
                                          "A:selected",
                                          "B",
                                          "C"
                                      ]
                                  '''
                              ]
                          ]
                      ],            [$class: 'CascadeChoiceParameter',
                          choiceType: 'PT_CHECKBOX',
                          name: 'CHOICE',
                          referencedParameters: 'CONFIGURATION',
                          script: [
                              $class: 'GroovyScript',
                              fallbackScript: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return ["ERROR"]
                                  '''
                              ],
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      def values = []                            if (CONFIGURATION.contains("A")) {
                                          values.add("A")
                                      }                            if (CONFIGURATION.contains("B")) {
                                          values.add("B")
                                      }                            if (CONFIGURATION.contains("C")) {
                                          values.add("C")
                                      }                            return values
                                  '''
                              ]
                          ]
                      ]
                  ])
              ])    stage("OUTPUT") {
                  echo params.CONFIGURATION
                  echo params.CHOICE
              }
          } {code}
          But using extendedChoice of type PT_CHECKBOX instead of ChoiceParameter
          does not 
          {code:java}
          node("build-ios-megamacs") {
              properties([
                  parameters([
                      extendedChoice(
                          name: "CONFIGURATION",
                          type: "PT_CHECKBOX",
                          multiSelectDelimiter: ",",
                          value: "A,B,C",
                          defaultValue: "A",
                          visibleItemCount: 3
                      ),            [$class: 'CascadeChoiceParameter',
                          choiceType: 'PT_CHECKBOX',
                          name: 'CHOICE',
                          referencedParameters: 'CONFIGURATION',
                          script: [
                              $class: 'GroovyScript',
                              fallbackScript: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return ["ERROR"]
                                  '''
                              ],
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      def values = []                            if (CONFIGURATION.contains("A")) {
                                          values.add("A")
                                      }                            if (CONFIGURATION.contains("B")) {
                                          values.add("B")
                                      }                            if (CONFIGURATION.contains("C")) {
                                          values.add("C")
                                      }                            return values
                                  '''
                              ]
                          ]
                      ]
                  ])
              ])    stage("OUTPUT") {
                  echo params.CONFIGURATION
                  echo params.CHOICE
              }
          } {code}

          Changing the type of extentdedChoise to PT_SINGLE_SELECT from PT_CHECKBOX makes it work again.
          New: Running this works as expected
          {code:java}
          node("label") {
              properties([
                  parameters([
                      [$class: 'ChoiceParameter',
                          name: "CONFIGURATION",
                          choiceType: "PT_CHECKBOX",
                          script: [
                              $class: 'GroovyScript',
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return [
                                          "A:selected",
                                          "B",
                                          "C"
                                      ]
                                  '''
                              ]
                          ]
                      ],
                      [$class: 'CascadeChoiceParameter',
                          choiceType: 'PT_CHECKBOX',
                          name: 'CHOICE',
                          referencedParameters: 'CONFIGURATION',
                          script: [
                              $class: 'GroovyScript',
                              fallbackScript: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return ["ERROR"]
                                  '''
                              ],
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      def values = []
          if (CONFIGURATION.contains("A")) {
                                          values.add("A")
                                      }                            if (CONFIGURATION.contains("B")) {
                                          values.add("B")
                                      }                            if (CONFIGURATION.contains("C")) {
                                          values.add("C")
                                      }                            return values
                                  '''
                              ]
                          ]
                      ]
                  ])
              ])    stage("OUTPUT") {
                  echo params.CONFIGURATION
                  echo params.CHOICE
              }
          } {code}
          But using extendedChoice of type PT_CHECKBOX instead of ChoiceParameter
          does not 
          {code:java}
          node("build-ios-megamacs") {
              properties([
                  parameters([
                      extendedChoice(
                          name: "CONFIGURATION",
                          type: "PT_CHECKBOX",
                          multiSelectDelimiter: ",",
                          value: "A,B,C",
                          defaultValue: "A",
                          visibleItemCount: 3
                      ),            [$class: 'CascadeChoiceParameter',
                          choiceType: 'PT_CHECKBOX',
                          name: 'CHOICE',
                          referencedParameters: 'CONFIGURATION',
                          script: [
                              $class: 'GroovyScript',
                              fallbackScript: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return ["ERROR"]
                                  '''
                              ],
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      def values = []                            if (CONFIGURATION.contains("A")) {
                                          values.add("A")
                                      }                            if (CONFIGURATION.contains("B")) {
                                          values.add("B")
                                      }                            if (CONFIGURATION.contains("C")) {
                                          values.add("C")
                                      }                            return values
                                  '''
                              ]
                          ]
                      ]
                  ])
              ])    stage("OUTPUT") {
                  echo params.CONFIGURATION
                  echo params.CHOICE
              }
          } {code}

          Changing the type of extentdedChoise to PT_SINGLE_SELECT from PT_CHECKBOX makes it work again.
          Muhammet made changes -
          Description Original: Running this works as expected
          {code:java}
          node("label") {
              properties([
                  parameters([
                      [$class: 'ChoiceParameter',
                          name: "CONFIGURATION",
                          choiceType: "PT_CHECKBOX",
                          script: [
                              $class: 'GroovyScript',
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return [
                                          "A:selected",
                                          "B",
                                          "C"
                                      ]
                                  '''
                              ]
                          ]
                      ],
                      [$class: 'CascadeChoiceParameter',
                          choiceType: 'PT_CHECKBOX',
                          name: 'CHOICE',
                          referencedParameters: 'CONFIGURATION',
                          script: [
                              $class: 'GroovyScript',
                              fallbackScript: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return ["ERROR"]
                                  '''
                              ],
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      def values = []
          if (CONFIGURATION.contains("A")) {
                                          values.add("A")
                                      }                            if (CONFIGURATION.contains("B")) {
                                          values.add("B")
                                      }                            if (CONFIGURATION.contains("C")) {
                                          values.add("C")
                                      }                            return values
                                  '''
                              ]
                          ]
                      ]
                  ])
              ])    stage("OUTPUT") {
                  echo params.CONFIGURATION
                  echo params.CHOICE
              }
          } {code}
          But using extendedChoice of type PT_CHECKBOX instead of ChoiceParameter
          does not 
          {code:java}
          node("build-ios-megamacs") {
              properties([
                  parameters([
                      extendedChoice(
                          name: "CONFIGURATION",
                          type: "PT_CHECKBOX",
                          multiSelectDelimiter: ",",
                          value: "A,B,C",
                          defaultValue: "A",
                          visibleItemCount: 3
                      ),            [$class: 'CascadeChoiceParameter',
                          choiceType: 'PT_CHECKBOX',
                          name: 'CHOICE',
                          referencedParameters: 'CONFIGURATION',
                          script: [
                              $class: 'GroovyScript',
                              fallbackScript: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return ["ERROR"]
                                  '''
                              ],
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      def values = []                            if (CONFIGURATION.contains("A")) {
                                          values.add("A")
                                      }                            if (CONFIGURATION.contains("B")) {
                                          values.add("B")
                                      }                            if (CONFIGURATION.contains("C")) {
                                          values.add("C")
                                      }                            return values
                                  '''
                              ]
                          ]
                      ]
                  ])
              ])    stage("OUTPUT") {
                  echo params.CONFIGURATION
                  echo params.CHOICE
              }
          } {code}

          Changing the type of extentdedChoise to PT_SINGLE_SELECT from PT_CHECKBOX makes it work again.
          New: Running this works as expected
          {code:java}
          node("label") {
              properties([
                  parameters([
                      [$class: 'ChoiceParameter',
                          name: "CONFIGURATION",
                          choiceType: "PT_CHECKBOX",
                          script: [
                              $class: 'GroovyScript',
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return [
                                          "A:selected",
                                          "B",
                                          "C"
                                      ]
                                  '''
                              ]
                          ]
                      ],
                      [$class: 'CascadeChoiceParameter',
                          choiceType: 'PT_CHECKBOX',
                          name: 'CHOICE',
                          referencedParameters: 'CONFIGURATION',
                          script: [
                              $class: 'GroovyScript',
                              fallbackScript: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return ["ERROR"]
                                  '''
                              ],
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      def values = []

                                      if (CONFIGURATION.contains("A")) {
                                      values.add("A")
                                  }

                                      if (CONFIGURATION.contains("B")) {
                                      values.add("B")
                                  }

                                      if (CONFIGURATION.contains("C")) {
                                          values.add("C")
                                      }

                                      return values
                                  '''
                              ]
                          ]
                      ]
                  ])
              ])
              stage("OUTPUT") {
                  echo params.CONFIGURATION
                  echo params.CHOICE
              }
          } {code}
          But using extendedChoice of type PT_CHECKBOX instead of ChoiceParameter
          does not 
          {code:java}
          node("build-ios-megamacs") {
              properties([
                  parameters([
                      extendedChoice(
                          name: "CONFIGURATION",
                          type: "PT_CHECKBOX",
                          multiSelectDelimiter: ",",
                          value: "A,B,C",
                          defaultValue: "A",
                          visibleItemCount: 3
                      ),
                      [$class: 'CascadeChoiceParameter',
                          choiceType: 'PT_CHECKBOX',
                          name: 'CHOICE',
                          referencedParameters: 'CONFIGURATION',
                          script: [
                              $class: 'GroovyScript',
                              fallbackScript: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return ["ERROR"]
                                  '''
                              ],
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      def values = []

                                      if (CONFIGURATION.contains("A")) {
                                          values.add("A")
                                      }

                                      if (CONFIGURATION.contains("B")) {
                                          values.add("B")
                                      }

                                      if (CONFIGURATION.contains("C")) {
                                          values.add("C")
                                      } 

                                     return values
                                  '''
                              ]
                          ]
                      ]
                  ])
              ])
              stage("OUTPUT") {
                  echo params.CONFIGURATION
                  echo params.CHOICE
              }
          } {code}

          Changing the type of extentdedChoise to PT_SINGLE_SELECT from PT_CHECKBOX makes it work again.
          Muhammet made changes -
          Description Original: Running this works as expected
          {code:java}
          node("label") {
              properties([
                  parameters([
                      [$class: 'ChoiceParameter',
                          name: "CONFIGURATION",
                          choiceType: "PT_CHECKBOX",
                          script: [
                              $class: 'GroovyScript',
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return [
                                          "A:selected",
                                          "B",
                                          "C"
                                      ]
                                  '''
                              ]
                          ]
                      ],
                      [$class: 'CascadeChoiceParameter',
                          choiceType: 'PT_CHECKBOX',
                          name: 'CHOICE',
                          referencedParameters: 'CONFIGURATION',
                          script: [
                              $class: 'GroovyScript',
                              fallbackScript: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return ["ERROR"]
                                  '''
                              ],
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      def values = []

                                      if (CONFIGURATION.contains("A")) {
                                      values.add("A")
                                  }

                                      if (CONFIGURATION.contains("B")) {
                                      values.add("B")
                                  }

                                      if (CONFIGURATION.contains("C")) {
                                          values.add("C")
                                      }

                                      return values
                                  '''
                              ]
                          ]
                      ]
                  ])
              ])
              stage("OUTPUT") {
                  echo params.CONFIGURATION
                  echo params.CHOICE
              }
          } {code}
          But using extendedChoice of type PT_CHECKBOX instead of ChoiceParameter
          does not 
          {code:java}
          node("build-ios-megamacs") {
              properties([
                  parameters([
                      extendedChoice(
                          name: "CONFIGURATION",
                          type: "PT_CHECKBOX",
                          multiSelectDelimiter: ",",
                          value: "A,B,C",
                          defaultValue: "A",
                          visibleItemCount: 3
                      ),
                      [$class: 'CascadeChoiceParameter',
                          choiceType: 'PT_CHECKBOX',
                          name: 'CHOICE',
                          referencedParameters: 'CONFIGURATION',
                          script: [
                              $class: 'GroovyScript',
                              fallbackScript: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return ["ERROR"]
                                  '''
                              ],
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      def values = []

                                      if (CONFIGURATION.contains("A")) {
                                          values.add("A")
                                      }

                                      if (CONFIGURATION.contains("B")) {
                                          values.add("B")
                                      }

                                      if (CONFIGURATION.contains("C")) {
                                          values.add("C")
                                      } 

                                     return values
                                  '''
                              ]
                          ]
                      ]
                  ])
              ])
              stage("OUTPUT") {
                  echo params.CONFIGURATION
                  echo params.CHOICE
              }
          } {code}

          Changing the type of extentdedChoise to PT_SINGLE_SELECT from PT_CHECKBOX makes it work again.
          New: Running this works as expected
          {code:java}
          node("label") {
              properties([
                  parameters([
                      [$class: 'ChoiceParameter',
                          name: "CONFIGURATION",
                          choiceType: "PT_CHECKBOX",
                          script: [
                              $class: 'GroovyScript',
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return [
                                          "A:selected",
                                          "B",
                                          "C"
                                      ]
                                  '''
                              ]
                          ]
                      ],
                      [$class: 'CascadeChoiceParameter',
                          choiceType: 'PT_CHECKBOX',
                          name: 'CHOICE',
                          referencedParameters: 'CONFIGURATION',
                          script: [
                              $class: 'GroovyScript',
                              fallbackScript: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return ["ERROR"]
                                  '''
                              ],
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      def values = []

                                      if (CONFIGURATION.contains("A")) {
                                      values.add("A")
                                  }

                                      if (CONFIGURATION.contains("B")) {
                                      values.add("B")
                                  }

                                      if (CONFIGURATION.contains("C")) {
                                          values.add("C")
                                      }

                                      return values
                                  '''
                              ]
                          ]
                      ]
                  ])
              ])
              stage("OUTPUT") {
                  echo params.CONFIGURATION
                  echo params.CHOICE
              }
          } {code}
          But using extendedChoice of type PT_CHECKBOX instead of ChoiceParameter
          does not 
          {code:java}
          node("build-ios-megamacs") {
              properties([
                  parameters([
                      extendedChoice(
                          name: "CONFIGURATION",
                          type: "PT_CHECKBOX",
                          multiSelectDelimiter: ",",
                          value: "A,B,C",
                          defaultValue: "A",
                          visibleItemCount: 3
                      ),
                      [$class: 'CascadeChoiceParameter',
                          choiceType: 'PT_CHECKBOX',
                          name: 'CHOICE',
                          referencedParameters: 'CONFIGURATION',
                          script: [
                              $class: 'GroovyScript',
                              fallbackScript: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return ["ERROR"]
                                  '''
                              ],
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      def values = []

                                      if (CONFIGURATION.contains("A")) {
                                          values.add("A")
                                      }

                                      if (CONFIGURATION.contains("B")) {
                                          values.add("B")
                                      }

                                      if (CONFIGURATION.contains("C")) {
                                          values.add("C")
                                      } 

                                     return values
                                  '''
                              ]
                          ]
                      ]
                  ])
              ])
              stage("OUTPUT") {
                  echo params.CONFIGURATION
                  echo params.CHOICE
              }
          } {code}

          Changing the type of extentdedChoise to PT_SINGLE_SELECT from PT_CHECKBOX makes it work again. But that's not the solution here as I need multi choice checkboxes.
          Muhammet made changes -
          Description Original: Running this works as expected
          {code:java}
          node("label") {
              properties([
                  parameters([
                      [$class: 'ChoiceParameter',
                          name: "CONFIGURATION",
                          choiceType: "PT_CHECKBOX",
                          script: [
                              $class: 'GroovyScript',
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return [
                                          "A:selected",
                                          "B",
                                          "C"
                                      ]
                                  '''
                              ]
                          ]
                      ],
                      [$class: 'CascadeChoiceParameter',
                          choiceType: 'PT_CHECKBOX',
                          name: 'CHOICE',
                          referencedParameters: 'CONFIGURATION',
                          script: [
                              $class: 'GroovyScript',
                              fallbackScript: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return ["ERROR"]
                                  '''
                              ],
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      def values = []

                                      if (CONFIGURATION.contains("A")) {
                                      values.add("A")
                                  }

                                      if (CONFIGURATION.contains("B")) {
                                      values.add("B")
                                  }

                                      if (CONFIGURATION.contains("C")) {
                                          values.add("C")
                                      }

                                      return values
                                  '''
                              ]
                          ]
                      ]
                  ])
              ])
              stage("OUTPUT") {
                  echo params.CONFIGURATION
                  echo params.CHOICE
              }
          } {code}
          But using extendedChoice of type PT_CHECKBOX instead of ChoiceParameter
          does not 
          {code:java}
          node("build-ios-megamacs") {
              properties([
                  parameters([
                      extendedChoice(
                          name: "CONFIGURATION",
                          type: "PT_CHECKBOX",
                          multiSelectDelimiter: ",",
                          value: "A,B,C",
                          defaultValue: "A",
                          visibleItemCount: 3
                      ),
                      [$class: 'CascadeChoiceParameter',
                          choiceType: 'PT_CHECKBOX',
                          name: 'CHOICE',
                          referencedParameters: 'CONFIGURATION',
                          script: [
                              $class: 'GroovyScript',
                              fallbackScript: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return ["ERROR"]
                                  '''
                              ],
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      def values = []

                                      if (CONFIGURATION.contains("A")) {
                                          values.add("A")
                                      }

                                      if (CONFIGURATION.contains("B")) {
                                          values.add("B")
                                      }

                                      if (CONFIGURATION.contains("C")) {
                                          values.add("C")
                                      } 

                                     return values
                                  '''
                              ]
                          ]
                      ]
                  ])
              ])
              stage("OUTPUT") {
                  echo params.CONFIGURATION
                  echo params.CHOICE
              }
          } {code}

          Changing the type of extentdedChoise to PT_SINGLE_SELECT from PT_CHECKBOX makes it work again. But that's not the solution here as I need multi choice checkboxes.
          New: Running this works as expected
          {code:java}
          node("label") {
              properties([
                  parameters([
                      [$class: 'ChoiceParameter',
                          name: "CONFIGURATION",
                          choiceType: "PT_CHECKBOX",
                          script: [
                              $class: 'GroovyScript',
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return [
                                          "A:selected",
                                          "B",
                                          "C"
                                      ]
                                  '''
                              ]
                          ]
                      ],
                      [$class: 'CascadeChoiceParameter',
                          choiceType: 'PT_CHECKBOX',
                          name: 'CHOICE',
                          referencedParameters: 'CONFIGURATION',
                          script: [
                              $class: 'GroovyScript',
                              fallbackScript: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return ["ERROR"]
                                  '''
                              ],
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      def values = []

                                      if (CONFIGURATION.contains("A")) {
                                      values.add("A")
                                  }

                                      if (CONFIGURATION.contains("B")) {
                                      values.add("B")
                                  }

                                      if (CONFIGURATION.contains("C")) {
                                          values.add("C")
                                      }

                                      return values
                                  '''
                              ]
                          ]
                      ]
                  ])
              ])
              stage("OUTPUT") {
                  echo params.CONFIGURATION
                  echo params.CHOICE
              }
          } {code}
          But using extendedChoice of type PT_CHECKBOX instead of ChoiceParameter
          does not 
          {code:java}
          node("label") {
              properties([
                  parameters([
                      extendedChoice(
                          name: "CONFIGURATION",
                          type: "PT_CHECKBOX",
                          multiSelectDelimiter: ",",
                          value: "A,B,C",
                          defaultValue: "A",
                          visibleItemCount: 3
                      ),
                      [$class: 'CascadeChoiceParameter',
                          choiceType: 'PT_CHECKBOX',
                          name: 'CHOICE',
                          referencedParameters: 'CONFIGURATION',
                          script: [
                              $class: 'GroovyScript',
                              fallbackScript: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      return ["ERROR"]
                                  '''
                              ],
                              script: [
                                  classpath: [],
                                  sandbox: true,
                                  script: '''
                                      def values = []

                                      if (CONFIGURATION.contains("A")) {
                                          values.add("A")
                                      }

                                      if (CONFIGURATION.contains("B")) {
                                          values.add("B")
                                      }

                                      if (CONFIGURATION.contains("C")) {
                                          values.add("C")
                                      } 

                                     return values
                                  '''
                              ]
                          ]
                      ]
                  ])
              ])
              stage("OUTPUT") {
                  echo params.CONFIGURATION
                  echo params.CHOICE
              }
          } {code}

          Changing the type of extentdedChoise to PT_SINGLE_SELECT from PT_CHECKBOX makes it work again. But that's not the solution here as I need multi choice checkboxes.

          Muhammet added a comment - - edited

          What I have noticed: When the job is run by a timer or automatically and you are referencing a parameter in your CascadeChoiceParameter, it will immediately fallback to the fallbackScript. If you are returning a list like

          return ["A", "B"]

           it will only return the first element. Probably relates more to JENKINS-71579

          Muhammet added a comment - - edited What I have noticed: When the job is run by a timer or automatically and you are referencing a parameter in your CascadeChoiceParameter, it will immediately fallback to the fallbackScript. If you are returning a list like return [ "A" , "B" ]  it will only return the first element. Probably relates more to JENKINS-71579

            kinow Bruno P. Kinoshita
            gubergren Muhammet
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: