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

Silent error : UnsupportedOperationExceptions are not raised when using each/find

      Currently, putting the following code in a Jenkinsfile will raise a UnsupportedOperationException: Calling public static java.util.List org.codehaus.groovy.runtime.DefaultGroovyMethods.find(java.util.List,groovy.lang.Closure) on a CPS-transformed closure is not yet supported (JENKINS-26481); encapsulate in a @NonCPS method, or use Java-style loops

      node {
          tmp = [ 'A', 'B' ].find { it == 'B' }
          echo tmp
      }
      

      However, if this code is used without @NonCPS in a shared library, it will fail silently and tmp will be false.

          [JENKINS-42024] Silent error : UnsupportedOperationExceptions are not raised when using each/find

          Lucas Cimon created issue -
          Lucas Cimon made changes -
          Description Original: Currently, putting the following code in a Jenkinsfile will raise a {{UnsupportedOperationException: Calling public static java.util.List org.codehaus.groovy.runtime.DefaultGroovyMethods.find(java.util.List,groovy.lang.Closure) on a CPS-transformed closure is not yet supported (JENKINS-26481); encapsulate in a @NonCPS method, or use Java-style loops}}
          {code}
          node {
              tmp = [ 'A', 'B' ].find { it == 'B' }
              echo tmp
          }
          {code}

          Howerver, if this code is used without {{@NonCPS}} in a shared library, it will fail silently and {{tmp}} will be {{false}}.
          New: Currently, putting the following code in a Jenkinsfile will raise a {{UnsupportedOperationException: Calling public static java.util.List org.codehaus.groovy.runtime.DefaultGroovyMethods.find(java.util.List,groovy.lang.Closure) on a CPS-transformed closure is not yet supported (JENKINS-26481); encapsulate in a @NonCPS method, or use Java-style loops}}
          {code}
          node {
              tmp = [ 'A', 'B' ].find { it == 'B' }
              echo tmp
          }
          {code}

          However, if this code is used without {{@NonCPS}} in a shared library, it will fail silently and {{tmp}} will be {{false}}.
          Jesse Glick made changes -
          Link New: This issue duplicates JENKINS-41189 [ JENKINS-41189 ]
          Jesse Glick made changes -
          Component/s New: workflow-cps-plugin [ 21713 ]
          Component/s Original: workflow-cps-global-lib-plugin [ 21714 ]
          Issue Type Original: Bug [ 1 ] New: Improvement [ 4 ]
          Jesse Glick made changes -
          Link New: This issue relates to JENKINS-26481 [ JENKINS-26481 ]
          Jesse Glick made changes -
          Labels New: diagnostics
          Jesse Glick made changes -
          Link New: This issue duplicates JENKINS-31314 [ JENKINS-31314 ]
          Jesse Glick made changes -
          Resolution New: Duplicate [ 3 ]
          Status Original: Open [ 1 ] New: Resolved [ 5 ]

            Unassigned Unassigned
            lucasc Lucas Cimon
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: