Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unapprovable RejectedAccessException when using Tuple in Jenkinsfile

I tried to use Tuple in a Jenkinsfile.

The line I wrote is def tupleTest = new Tuple('test', 'test2').

However, Jenkins did not accept this line and keep writing the following error to the console output:

No such constructor found: new groovy.lang.Tuple java.lang.String java.lang.String. Administrators can decide whether to approve or reject this signature.

...

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: No such constructor found: new groovy.lang.Tuple java.lang.Integer java.lang.String

...

When I visited the "Script Approval" configuration I could not see any scripts that pend approval.

Following this link, I tried to install and enable the "Permissive Security" plugin, but it did not help either - The error was the same.

I even tried to manually add the problematic signature to the scriptApproval.xml file. After I added it, I was able to see it in the list of approved signatures, but the error still remained.

Is there something I am doing wrong?

like image 711
tugnaim Avatar asked Oct 23 '25 15:10

tugnaim


1 Answers

I had the same issue trying to use tuple on jenkins so I found out that I can simply use a list literal instead:

def tuple = ["test1", "test2"]

which is equivalent to

def (a, b) = ["test1", "test2"]

So now, instead of returning a tuple, I am returning a list in my method

def myMethod(...) {
    ...
    return ["test 1", "test 2"]
}

...

def (a, b) = myMethod(...) 
like image 191
Daniel Puiu Avatar answered Oct 27 '25 00:10

Daniel Puiu