Workflow plugin silently breaks regular Groovy maps

This issue is archived. You can view it, but you can't modify it. Learn more

XMLWordPrintable

      The docs mention the need for all data in steps to be serializable, but it doesn't mention that it somehow breaks Groovy maps in order to do.

      If I run

      def map =  [foo: "bar", test: 'hello']
      
      println 'Using Groovy version ' + GroovySystem.getVersion()
      println map
      
      map.each { k, v -> println "$k := $v" }
      

      I will see the following when I run groovy locally:

      Using Groovy version 1.8.9
      [foo:bar, test:hello]
      foo := bar
      test := hello
      

      However, I'll get this output from the Jenkins workflow plugin: (note that the each() iteration only shows the first element, and it is not a key/value pair

      Using Groovy version 1.8.9
      Running: Print Message
      {foo=bar, test=hello}
      Running: Print Message
      foo=bar := null
      

      If this is expected behavior, it means users cannot use maps as expected, unless specifically passed to workflow classes that know how to read those parameters.

      Am I doing something wrong here, or should the docs just be updated to reflect this?

            Assignee:
            Jesse Glick
            Reporter:
            James VL
            Archiver:
            Jenkins Service Account

              Created:
              Updated:
              Resolved:
              Archived: