-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Minor
-
Component/s: pipeline-utility-steps-plugin
-
Environment:Jenkins ver 2.58; macos; chrome; java -version
>java version "1.8.0_121"
>Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
>Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
Plugins installed:
JavaScript GUI Lib: ACE Editor bundle plugin (ace-editor): 1.1
Ant Plugin (ant): 1.4
OWASP Markup Formatter Plugin (antisamy-markup-formatter): 1.5
Authentication Tokens API Plugin (authentication-tokens): 1.3
bouncycastle API Plugin (bouncycastle-api): 2.16.0
Branch API Plugin (branch-api): 2.0.8
build timeout plugin (build-timeout): 1.18
Folders Plugin (cloudbees-folder): 6.0.3
Copy Artifact Plugin (copyartifact): 1.38.1
Credentials Binding Plugin (credentials-binding): 1.10
Credentials Plugin (credentials): 2.1.13
Display URL API (display-url-api): 1.1.1
Docker Commons Plugin (docker-commons): 1.6
Docker Pipeline (docker-workflow): 1.10
Durable Task Plugin (durable-task): 1.13
Email Extension Plugin (email-ext): 2.57.2
Environment Injector Plugin (envinject): 2.0
External Monitor Job Type Plugin (external-monitor-job): 1.7
Git client plugin (git-client): 2.4.0
GIT server Plugin (git-server): 1.7
Git plugin (git): 3.1.0
GitHub API Plugin (github-api): 1.85
GitHub Branch Source Plugin (github-branch-source): 2.0.4
GitHub Organization Folder Plugin (github-organization-folder): 1.6
GitHub plugin (github): 1.26.1
Gradle Plugin (gradle): 1.26
JavaScript GUI Lib: Handlebars bundle plugin (handlebars): 1.1.1
HipChat Plugin (hipchat): 2.1.1
Icon Shim Plugin (icon-shim): 2.0.3
Javadoc Plugin (javadoc): 1.4
JavaScript GUI Lib: jQuery bundles (jQuery and jQuery UI) plugin (jquery-detached): 1.2.1
JUnit Plugin (junit): 1.20
LDAP Plugin (ldap): 1.14
Mailer Plugin (mailer): 1.20
MapDB API Plugin (mapdb-api): 1.0.9.0
Matrix Authorization Strategy Plugin (matrix-auth): 1.5
Matrix Project Plugin (matrix-project): 1.9
Maven Integration plugin (maven-plugin): 2.15.1
JavaScript GUI Lib: Moment.js bundle plugin (momentjs): 1.1.1
Monitoring (monitoring): 1.65.1
Next Build Number Plugin (next-build-number): 1.4
PAM Authentication plugin (pam-auth): 1.3
Pipeline: Build Step (pipeline-build-step): 2.4
Pipeline: GitHub Groovy Libraries (pipeline-github-lib): 1.0
Pipeline Graph Analysis Plugin (pipeline-graph-analysis): 1.3
Pipeline: Input Step (pipeline-input-step): 2.5
Pipeline: Milestone Step (pipeline-milestone-step): 1.3
Pipeline: Model API (pipeline-model-api): 1.1.1
Pipeline: Declarative Agent API (pipeline-model-declarative-agent): 1.1.1
Pipeline: Model Definition (pipeline-model-definition): 1.1.1
Pipeline: Declarative Extension Points API (pipeline-model-extensions): 1.1.1
Pipeline: REST API Plugin (pipeline-rest-api): 2.6
Pipeline: Stage Step (pipeline-stage-step): 2.2
Pipeline: Stage Tags Metadata (pipeline-stage-tags-metadata): 1.1.1
Pipeline: Stage View Plugin (pipeline-stage-view): 2.6
Plain Credentials Plugin (plain-credentials): 1.4
PlasticSCM Plugin (plasticscm-plugin): 2.9
promoted builds plugin (promoted-builds): 2.28.1
Resource Disposer Plugin (resource-disposer): 0.6
SCM API Plugin (scm-api): 2.1.1
Script Security Plugin (script-security): 1.27
Simple Theme Plugin (simple-theme-plugin): 0.3
SSH Credentials Plugin (ssh-credentials): 1.13
SSH Slaves plugin (ssh-slaves): 1.16
Structs Plugin (structs): 1.6
Subversion Plug-in (subversion): 2.7.2
Timestamper (timestamper): 1.8.8
Token Macro Plugin (token-macro): 2.0
Unity3d plugin (unity3d-plugin): 1.3
Windows Slaves Plugin (windows-slaves): 1.3.1
Pipeline (workflow-aggregator): 2.5
Pipeline: API (workflow-api): 2.12
Pipeline: Basic Steps (workflow-basic-steps): 2.4
Pipeline: Shared Groovy Libraries (workflow-cps-global-lib): 2.7
Pipeline: Groovy (workflow-cps): 2.29
Pipeline: Nodes and Processes (workflow-durable-task-step): 2.10
Pipeline: Job (workflow-job): 2.10
Pipeline: Multibranch (workflow-multibranch): 2.14
Pipeline: SCM Step (workflow-scm-step): 2.4
Pipeline: Step API (workflow-step-api): 2.9
Pipeline: Supporting APIs (workflow-support): 2.13
Workspace Cleanup Plugin (ws-cleanup): 0.32
Xcode integration (xcode-plugin): 1.4.11
Pipeline Utility Steps (pipeline-utility-steps): 1.3.0Jenkins ver 2.58; macos; chrome; java -version >java version "1.8.0_121" >Java(TM) SE Runtime Environment (build 1.8.0_121-b13) >Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode) Plugins installed: JavaScript GUI Lib: ACE Editor bundle plugin (ace-editor): 1.1 Ant Plugin (ant): 1.4 OWASP Markup Formatter Plugin (antisamy-markup-formatter): 1.5 Authentication Tokens API Plugin (authentication-tokens): 1.3 bouncycastle API Plugin (bouncycastle-api): 2.16.0 Branch API Plugin (branch-api): 2.0.8 build timeout plugin (build-timeout): 1.18 Folders Plugin (cloudbees-folder): 6.0.3 Copy Artifact Plugin (copyartifact): 1.38.1 Credentials Binding Plugin (credentials-binding): 1.10 Credentials Plugin (credentials): 2.1.13 Display URL API (display-url-api): 1.1.1 Docker Commons Plugin (docker-commons): 1.6 Docker Pipeline (docker-workflow): 1.10 Durable Task Plugin (durable-task): 1.13 Email Extension Plugin (email-ext): 2.57.2 Environment Injector Plugin (envinject): 2.0 External Monitor Job Type Plugin (external-monitor-job): 1.7 Git client plugin (git-client): 2.4.0 GIT server Plugin (git-server): 1.7 Git plugin (git): 3.1.0 GitHub API Plugin (github-api): 1.85 GitHub Branch Source Plugin (github-branch-source): 2.0.4 GitHub Organization Folder Plugin (github-organization-folder): 1.6 GitHub plugin (github): 1.26.1 Gradle Plugin (gradle): 1.26 JavaScript GUI Lib: Handlebars bundle plugin (handlebars): 1.1.1 HipChat Plugin (hipchat): 2.1.1 Icon Shim Plugin (icon-shim): 2.0.3 Javadoc Plugin (javadoc): 1.4 JavaScript GUI Lib: jQuery bundles (jQuery and jQuery UI) plugin (jquery-detached): 1.2.1 JUnit Plugin (junit): 1.20 LDAP Plugin (ldap): 1.14 Mailer Plugin (mailer): 1.20 MapDB API Plugin (mapdb-api): 1.0.9.0 Matrix Authorization Strategy Plugin (matrix-auth): 1.5 Matrix Project Plugin (matrix-project): 1.9 Maven Integration plugin (maven-plugin): 2.15.1 JavaScript GUI Lib: Moment.js bundle plugin (momentjs): 1.1.1 Monitoring (monitoring): 1.65.1 Next Build Number Plugin (next-build-number): 1.4 PAM Authentication plugin (pam-auth): 1.3 Pipeline: Build Step (pipeline-build-step): 2.4 Pipeline: GitHub Groovy Libraries (pipeline-github-lib): 1.0 Pipeline Graph Analysis Plugin (pipeline-graph-analysis): 1.3 Pipeline: Input Step (pipeline-input-step): 2.5 Pipeline: Milestone Step (pipeline-milestone-step): 1.3 Pipeline: Model API (pipeline-model-api): 1.1.1 Pipeline: Declarative Agent API (pipeline-model-declarative-agent): 1.1.1 Pipeline: Model Definition (pipeline-model-definition): 1.1.1 Pipeline: Declarative Extension Points API (pipeline-model-extensions): 1.1.1 Pipeline: REST API Plugin (pipeline-rest-api): 2.6 Pipeline: Stage Step (pipeline-stage-step): 2.2 Pipeline: Stage Tags Metadata (pipeline-stage-tags-metadata): 1.1.1 Pipeline: Stage View Plugin (pipeline-stage-view): 2.6 Plain Credentials Plugin (plain-credentials): 1.4 PlasticSCM Plugin (plasticscm-plugin): 2.9 promoted builds plugin (promoted-builds): 2.28.1 Resource Disposer Plugin (resource-disposer): 0.6 SCM API Plugin (scm-api): 2.1.1 Script Security Plugin (script-security): 1.27 Simple Theme Plugin (simple-theme-plugin): 0.3 SSH Credentials Plugin (ssh-credentials): 1.13 SSH Slaves plugin (ssh-slaves): 1.16 Structs Plugin (structs): 1.6 Subversion Plug-in (subversion): 2.7.2 Timestamper (timestamper): 1.8.8 Token Macro Plugin (token-macro): 2.0 Unity3d plugin (unity3d-plugin): 1.3 Windows Slaves Plugin (windows-slaves): 1.3.1 Pipeline (workflow-aggregator): 2.5 Pipeline: API (workflow-api): 2.12 Pipeline: Basic Steps (workflow-basic-steps): 2.4 Pipeline: Shared Groovy Libraries (workflow-cps-global-lib): 2.7 Pipeline: Groovy (workflow-cps): 2.29 Pipeline: Nodes and Processes (workflow-durable-task-step): 2.10 Pipeline: Job (workflow-job): 2.10 Pipeline: Multibranch (workflow-multibranch): 2.14 Pipeline: SCM Step (workflow-scm-step): 2.4 Pipeline: Step API (workflow-step-api): 2.9 Pipeline: Supporting APIs (workflow-support): 2.13 Workspace Cleanup Plugin (ws-cleanup): 0.32 Xcode integration (xcode-plugin): 1.4.11 Pipeline Utility Steps (pipeline-utility-steps): 1.3.0
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