writeJSON throws java.lang.UnsupportedOperationException: must specify $class with an implementation of interface net.sf.json.JSON

This issue is archived. You can view it, but you can't modify it. Learn more

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: Minor
    • Environment:

      Hi,

      I'm new to pipeline, but I'm trying to create a job that reads in some data from JSON files, and writes it to another JSON file for future use.  My script is currently written in the job definition, not a jenkinsfile

      The job is choking on the writeJSON step and I don't know why.  I'm basing my implementation on https://jenkins.io/doc/pipeline/steps/pipeline-utility-steps/#code-writejson-code-write-json-to-a-file-in-the-workspace

      Based on the console output it seems like a library dependency hasn't been installed, but I'm not sure how to solve the issue.

      Script:

      pipeline {

          …

              

              stage (“Try to write a JSON file into the workspace“) {

                  steps {

                      script {

                          dir (‘…’) {

                              …

                              def outVersionData = lastClientData + lastAssBunsData

                              echo "outfile: ${outVersionData}"

                              writeJSON file: 'infoes.json', json: outVersionData

                          }

                      }

                  }

              }

          …

      }

      Console Output:

      [Pipeline] stage

      [Pipeline] { (Try to write a JSON file into the workspace)

      [Pipeline] script

      [Pipeline] {

      [Pipeline] dir

      Running in …

      [Pipeline] {

      …

      [Pipeline] echo

      outfile: [latestChangeset:14210, bundleVersionChangeset:14000]

      [Pipeline] writeJSON

      [Pipeline] }

      [Pipeline] // dir

      [Pipeline] }

      [Pipeline] // script

      [Pipeline] }

      [Pipeline] // stage

      ...

      java.lang.IllegalArgumentException: Could not instantiate {file=infoes.json, json={latestChangeset=14210, bundleVersionChangeset=14000}} for WriteJSONStep(file: String, json: JSON{}): java.lang.UnsupportedOperationException: must specify $class with an implementation of interface net.sf.json.JSON

      at org.jenkinsci.plugins.structs.describable.DescribableModel.instantiate(DescribableModel.java:264)

      at org.jenkinsci.plugins.workflow.steps.StepDescriptor.newInstance(StepDescriptor.java:194)

      at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:181)

      at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:126)

      at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:108)

      at groovy.lang.GroovyObject$invokeMethod.call(Unknown Source)

      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)

      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)

      at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:151)

      at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:21)

      at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:115)

      at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:149)

      at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146)

      at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:123)

      at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:123)

      at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:123)

      at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:16)

      at WorkflowScript.run(WorkflowScript:43)

      at __cps.transform__(Native Method)

      at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:57)

      at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:109)

      at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:82)

      at sun.reflect.GeneratedMethodAccessor645.invoke(Unknown Source)

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

      at java.lang.reflect.Method.invoke(Method.java:498)

      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.GeneratedMethodAccessor710.invoke(Unknown Source)

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

      at java.lang.reflect.Method.invoke(Method.java:498)

      at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)

      at com.cloudbees.groovy.cps.impl.LocalVariableBlock$LocalVariable.get(LocalVariableBlock.java:39)

      at com.cloudbees.groovy.cps.LValueBlock$GetAdapter.receive(LValueBlock.java:30)

      at com.cloudbees.groovy.cps.impl.LocalVariableBlock.evalLValue(LocalVariableBlock.java:28)

      at com.cloudbees.groovy.cps.LValueBlock$BlockImpl.eval(LValueBlock.java:55)

      at com.cloudbees.groovy.cps.LValueBlock.eval(LValueBlock.java:16)

      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:165)

      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:64)

      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)

      Caused by: java.lang.UnsupportedOperationException: must specify $class with an implementation of interface net.sf.json.JSON

      at org.jenkinsci.plugins.structs.describable.DescribableModel.resolveClass(DescribableModel.java:450)

      at org.jenkinsci.plugins.structs.describable.DescribableModel.coerce(DescribableModel.java:379)

      at org.jenkinsci.plugins.structs.describable.DescribableModel.buildArguments(DescribableModel.java:318)

      at org.jenkinsci.plugins.structs.describable.DescribableModel.instantiate(DescribableModel.java:259)

      at org.jenkinsci.plugins.workflow.steps.StepDescriptor.newInstance(StepDescriptor.java:194)

      at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:181)

      at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:126)

      at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:108)

      at groovy.lang.GroovyObject$invokeMethod.call(Unknown Source)

      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)

      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)

      at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:151)

      at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:21)

      at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:115)

      at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:149)

      at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146)

      at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:123)

      at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:123)

      at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:123)

      at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:16)

      ... 39 more

            Assignee:
            rsandell
            Reporter:
            Matt Duffy
            Archiver:
            Jenkins Service Account

              Created:
              Updated:
              Resolved:
              Archived: