I'm using this script, which works properly on the groovy commandline interpreter: def testCaseSets = [ 'config.upgrade.authentication.authentication_parameters.arangobench': [ ""], 'dump.importing': ["", "--cluster true"], 'shell_server': ["", "--cluster true --testBuckets 4/1 ", "--cluster true --testBuckets 4/2 ", "--cluster true --testBuckets 4/3 ", "--cluster true --testBuckets 4/4 "], 'shell_server_aql': ["", "--cluster true --testBuckets 4/1 ", "--cluster true --testBuckets 4/2 ", "--cluster true --testBuckets 4/3 ", "--cluster true --testBuckets 4/4 "], 'arangosh': ["", "--cluster true --testBuckets 4/1 ", "--cluster true --testBuckets 4/2 ", "--cluster true --testBuckets 4/3 ", "--cluster true --testBuckets 4/4 "], ] print("getting keyset\n") testCaseNames = testCaseSets.keySet() print("done keyset is: $ {testCaseNames} \n") m = testCaseNames.size() print("size: $ {m} \n") int n = 0; for (int i = 0; i < m; i++) { print("in loop\n") def unitTestName = testCaseNames.getAt; print("unitTestName: $ {unitTestName} \n") def thisTest = testCaseSets[unitTestName] print( "generating short name:\n") def shortName = unitTestName.take(12) print("generated short name: $ {shortName} \n") } Using it in the jenkins pipeline script will make testCaseSets.keySet() throw this ecxeption: [Pipeline] stage [Pipeline] { (cloning source) [Pipeline] echo getting keyset [Pipeline] echo done keyset is: [config.upgrade.authentication.authentication_parameters.arangobench, dump.importing, shell_server, shell_server_aql, arangosh] [Pipeline] echo size: 5 [Pipeline] } [Pipeline] // stage [Pipeline] End of Pipeline java.io.NotSerializableException: java.util.HashMap$KeySet at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:860) at org.jboss.marshalling.river.BlockMarshaller.doWriteObject(BlockMarshaller.java:65) at org.jboss.marshalling.river.BlockMarshaller.writeObject(BlockMarshaller.java:56) at org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride(MarshallerObjectOutputStream.java:50) at org.jboss.marshalling.river.RiverObjectOutputStream.writeObjectOverride(RiverObjectOutputStream.java:179) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:343) at java.util.HashMap.writeObject(HashMap.java:1129) at sun.reflect.GeneratedMethodAccessor92.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.jboss.marshalling.reflect.SerializableClass.callWriteObject(SerializableClass.java:271) ... Caused by: an exception which occurred: in field delegate in field closures in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@69005cb8 |