[JIRA] (JENKINS-38739) writing to key / value barfs with UnsupportedOperationException

7 views
Skip to first unread message

dothebart@citadel.org (JIRA)

unread,
Oct 5, 2016, 10:35:02 AM10/5/16
to jenkinsc...@googlegroups.com
Wilfried Goesgens created an issue
 
Jenkins / Bug JENKINS-38739
writing to key / value barfs with UnsupportedOperationException
Issue Type: Bug Bug
Assignee: Unassigned
Components: script-security-plugin
Created: 2016/Oct/05 2:34 PM
Environment: latest fresh released jenkins on 2016/10/05, pipeline from github.
Priority: Blocker Blocker
Reporter: Wilfried Goesgens

params = [:]

params['foo'] = 'bar'

will throw:

java.lang.UnsupportedOperationException
at java.util.AbstractMap.put(AbstractMap.java:203)
at groovy.lang.MetaClassImpl.setProperty(MetaClassImpl.java:2713)
at groovy.lang.MetaClassImpl.setProperty(MetaClassImpl.java:3747)
at org.codehaus.groovy.runtime.InvokerHelper.setProperty(InvokerHelper.java:199)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.putAt(DefaultGroovyMethods.java:272)
at org.codehaus.groovy.runtime.dgm$508.invoke(Unknown Source)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
at org.kohsuke.groovy.sandbox.impl.Checker$9.call(Checker.java:400)
at org.kohsuke.groovy.sandbox.GroovyInterceptor.onSetArray(GroovyInterceptor.java:124)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onSetArray(SandboxInterceptor.java:442)
at org.kohsuke.groovy.sandbox.impl.Checker$9.call(Checker.java:397)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedSetArray(Checker.java:394)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.setArray(SandboxInvoker.java:44)
at com.cloudbees.groovy.cps.impl.ArrayAccessBlock.rawSet(ArrayAccessBlock.java:26)
at WorkflowScript.run(WorkflowScript:27)
at __cps.transform__(Native Method)
at com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.set(PropertyishBlock.java:88)
at com.cloudbees.groovy.cps.impl.AssignmentBlock$ContinuationImpl.assignAndDone(AssignmentBlock.java:70)
at sun.reflect.GeneratedMethodAccessor149.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
at com.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21)
at com.cloudbees.groovy.cps.Next.step(Next.java:58)
at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:154)
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:18)
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:33)
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:30)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:108)
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:30)
at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:163)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:324)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$100(CpsThreadGroup.java:78)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:236)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:224)
at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:63)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112)
at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Finished: FAILURE

Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)
Atlassian logo

dothebart@citadel.org (JIRA)

unread,
Oct 5, 2016, 10:38:02 AM10/5/16
to jenkinsc...@googlegroups.com
Wilfried Goesgens updated an issue
Change By: Wilfried Goesgens
params = [:]

params['foo'] = 'bar'

will throw:

java.lang.UnsupportedOperationException
at java.util.AbstractMap.put(AbstractMap.java:203)
at groovy.lang.MetaClassImpl.setProperty(MetaClassImpl.java:2713)
at groovy.lang.MetaClassImpl.setProperty(MetaClassImpl.java:3747)
at org.codehaus.groovy.runtime.InvokerHelper.setProperty(InvokerHelper.java:199)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.putAt(DefaultGroovyMethods.java:272)
at org.codehaus.groovy.runtime.dgm$508.invoke(Unknown Source)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
at org.kohsuke.groovy.sandbox.impl.Checker$9.call(Checker.java:400)
at org.kohsuke.groovy.sandbox.GroovyInterceptor.onSetArray(GroovyInterceptor.java:124)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onSetArray(SandboxInterceptor.java:442)
at org.kohsuke.groovy.sandbox.impl.Checker$9.call(Checker.java:397)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedSetArray(Checker.java:394)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.setArray(SandboxInvoker.java:44)
at com.cloudbees.groovy.cps.impl.ArrayAccessBlock.rawSet(ArrayAccessBlock.java:26)
at WorkflowScript.run(WorkflowScript:27)
at ___cps.transform___(Native Method)


Current whitelist:

method groovy.lang.GroovyObject getProperty java.lang.String
method groovy.lang.GroovyObject invokeMethod java.lang.String java.lang.Object
method java.lang.Throwable getMessage
method java.util.Map size
staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods print java.lang.Object java.lang.Object
staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods sprintf java.lang.Object java.lang.String java.lang.Object
staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods take java.lang.CharSequence int
staticMethod org.codehaus.groovy.runtime.ScriptBytecodeAdapter createRange java.lang.Object java.lang.Object boolean


jglick@cloudbees.com (JIRA)

unread,
Oct 5, 2016, 10:38:06 AM10/5/16
to jenkinsc...@googlegroups.com

jglick@cloudbees.com (JIRA)

unread,
Oct 5, 2016, 10:39:04 AM10/5/16
to jenkinsc...@googlegroups.com
Jesse Glick resolved as Not A Defect
 

params is read-only. If you want a map that you can manipulate in various ways, make a copy.

Change By: Jesse Glick
Status: Open Resolved
Resolution: Not A Defect

dothebart@citadel.org (JIRA)

unread,
Oct 5, 2016, 10:41:02 AM10/5/16
to jenkinsc...@googlegroups.com
Wilfried Goesgens updated an issue
Change By: Wilfried Goesgens
renaming the variable 'params' will fix this issue.

dothebart@citadel.org (JIRA)

unread,
Oct 5, 2016, 10:43:07 AM10/5/16
to jenkinsc...@googlegroups.com
Wilfried Goesgens commented on Bug JENKINS-38739
 
Re: writing to key / value barfs with UnsupportedOperationException

can we get a better error message for this please?

jglick@cloudbees.com (JIRA)

unread,
Oct 5, 2016, 2:17:01 PM10/5/16
to jenkinsc...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages