Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-41856

Cannot initialize beans with named parameters and the default constructor

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Icon: Major Major
    • script-security-plugin
    • None
    • Jenkins 2.32.2 / Pipeline 2.5

      On my Jenkins i define a bean :

      class Property {
            String name
      }
      

      Then i instanciate the bean:

      def json = JsonOutput.toJson(new Property(name : "a"))
      

      I get an error : unclassified new Property java.util.LinkedHashMap.

      org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: unclassified new Property java.util.LinkedHashMap
                     at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onNewInstance(SandboxInterceptor.java:126)
                     at org.kohsuke.groovy.sandbox.impl.Checker$3.call(Checker.java:191)
                     at org.kohsuke.groovy.sandbox.impl.Checker.checkedConstructor(Checker.java:188)
                     at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.constructorCall(SandboxInvoker.java:20)
                     at WorkflowScript.run(WorkflowScript:143)
                     at ___cps.transform___(Native Method)
                     at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:96)
                     at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:82)
                     at sun.reflect.GeneratedMethodAccessor333.invoke(Unknown Source)
                     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                     at java.lang.reflect.Method.invoke(Method.java:497)
                     at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
                     at com.cloudbees.groovy.cps.impl.CollectionLiteralBlock$ContinuationImpl.dispatch(CollectionLiteralBlock.java:55)
                     at com.cloudbees.groovy.cps.impl.CollectionLiteralBlock$ContinuationImpl.item(CollectionLiteralBlock.java:45)
                     at sun.reflect.GeneratedMethodAccessor331.invoke(Unknown Source)
                     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                     at java.lang.reflect.Method.invoke(Method.java:497)
                     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:74)
                     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:328)
                     at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$100(CpsThreadGroup.java:80)
                     at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:240)
                     at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:228)
                     at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:63)
                     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
                     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:511)
                     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
                     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
                     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
                     at java.lang.Thread.run(Thread.java:745)
      
      

      However if i explicitely declare the constructor it works:

      class Property {
            String name
            Property(String name) {
                this.name = name
            }
      }
      

            Unassigned Unassigned
            lautou Laurent TOURREAU
            Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: