-
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.
[JENKINS-48011] Calling buildInfo.env.collect after buildInfo.append(server.upload(uploadSpec)) causing NPE in Env.java
Assignee | Original: Eyal Ben Moshe [ eyalbe ] | New: Yahav Itzhak [ yahaviz ] |