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

Using method pointers results in warning

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Minor Minor
    • workflow-cps-plugin
    • None

      When invoking a closure created from a method pointer, the following warning is printed in the log:

      expected to call org.codehaus.groovy.runtime.MethodClosure.call but wound up catching my.method; see:
      https://jenkins.io/redirect/pipeline-cps-method-mismatches/ 

      The code works correctly, but produces this warning:

      def method() {
        // do stuff
      }
      def runIt(Closure closure) {
        closure.call()
      }
      runIt(this.&method)

      The workaround gets rid of the warning:

      def method() {
        // do stuff
      }
      def runIt(Closure closure) {
        closure.call()
      }
      runIt({ method() }) 

      I would prefer to not have to create this extra closure.

      My situation is a little more complex than this as the method is from another vars script, but it should be the same situation.

       

            Unassigned Unassigned
            brucebrouwer Bruce Brouwer
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: