-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
Jenkins 2.89
artifactory-plugin: 2.13.1
Hi everyone,
i just faced very weird issue using buildInfo.append() function.
I see this exception:
java.lang.NullPointerException at org.jfrog.hudson.pipeline.types.buildInfo.Env.collect(Env.java:102) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022) at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:47) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:19) at com.mirantis.mcp.MCPArtifactory.uploadBinariesToArtifactory(/var/jenkins_home/jobs/mcp_k8s_test_pipeline/builds/12/libs/pipeline-library/src/com/mirantis/mcp/MCPArtifactory.groovy:234) at
...
I using this code
def uploadBinariesToArtifactoryLocal (ArtifactoryServer server, BuildInfo buildInfo, String uploadSpec, Boolean publishInfo = false) { println "!!!!!!!!!!!!!!!!! Build Info !!!!!!!!!!!!!!!!!!!!!!!!!!!" buildInfo.env.collect() println "${buildInfo.env.vars}" buildInfo.append(server.upload(uploadSpec)) println "!!!!!!!!!!!!!!!!! Build Info After Upload Spec !!!!!!!!!!!!!!!!!!!!!!!!!!!" buildInfo.env.collect() println "${buildInfo.env.vars}" if ( publishInfo ) { buildInfo.env.capture = true buildInfo.env.filter.addInclude("*") buildInfo.env.filter.addExclude("*PASSWORD*") buildInfo.env.filter.addExclude("*password*") buildInfo.env.collect() // this one will fails server.publishBuildInfo(buildInfo) } }
So the problematic line is buildInfo.append(server.upload(uploadSpec)).
If i use this call: server.upload(uploadSpec, buildInfo) it works.
That probably means the reason of this failure is Env recreation inside append method which caused NPE because CpsScript inside created env is null.
jakubjosef,
Thanks for reporting this issue.
We opened HAP-1021 to track this task.