-
Bug
-
Resolution: Unresolved
-
Major
-
None
Using a DSL in a workflow script that has a method with named params e.g.
Object inside(String link = null, Closure body)
Calling it in the workflow (with sandbox mode turned ON) results in the following exception:
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use method groovy.lang.GroovyObject invokeMethod java.lang.String java.lang.Object (DSL inside java.util.LinkedHashMap com.cloudbees.groovy.cps.impl.CpsClosure) at org.jenkinsci.plugins.scriptsecurity.sandbox.whitelists.StaticWhitelist.rejectMethod(StaticWhitelist.java:155) at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:77) at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:60)
Quote from Jesse:
Not sure offhand how to fix; part of the general “Groovy hell” that is SandboxInterceptor: we get a high-level representation of a call point, and have to duplicate an incredibly complex system in Groovy to translate that to an actual Java method call.
Possibly related to
JENKINS-34741?