-
Bug
-
Resolution: Fixed
-
Major
The script
node { writeFile file: 'x', text: 'def main() {}; this' load('x').main() }
fails
java.lang.ArrayIndexOutOfBoundsException: 0 at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovyCallSiteSelector.isMoreSpecific(GroovyCallSiteSelector.java:230) at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovyCallSiteSelector.findMatchingMethod(GroovyCallSiteSelector.java:178) at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovyCallSiteSelector.method(GroovyCallSiteSelector.java:146) at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:78) at ...
whereas if you pick a different name it is OK.
Claimed to be a regression in 1.22 though it seems unlikely those changes are related.
- relates to
-
JENKINS-45117 Nondeterministic selection of matching constructor
-
- Resolved
-
- links to
Root cause is that Groovy seems to define a main(String...) method on Script, and the code to pick which of those was being called got confused.