[JIRA] (JENKINS-38162) Groovy list keySet() method crashes

0 views
Skip to first unread message

dothebart@citadel.org (JIRA)

unread,
Sep 13, 2016, 6:24:01 AM9/13/16
to jenkinsc...@googlegroups.com
Wilfried Goesgens created an issue
 
Jenkins / Bug JENKINS-38162
Groovy list keySet() method crashes
Issue Type: Bug Bug
Assignee: vjuranek
Components: groovy-plugin
Created: 2016/Sep/13 10:23 AM
Priority: Major Major
Reporter: Wilfried Goesgens

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

Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)
Atlassian logo
Reply all
Reply to author
Forward
0 new messages