I am using a simple test pipeline to get a username out of a xml file, I 
have written a simple function using the XmlSlurper method and I have 
included the @NonCPS annotation at the beginning of the function but I keep 
getting an error, even though the function seems to work as it prints out 
in the console the username I am trying to find but it finishes the build 
with failure status. This is the pipeline:

```

import groovy.xml.*

import jenkins.model.Jenkins



@NonCPS

def findComitter(){

committer = ""

found = false 

file = new 
XmlSlurper().parse("C:/Users/User/.jenkins/jobs/Phoenix_pipeline/builds/288/changelog6429015253614530280.xml")

file.entry.each { entry ->

entry.changenumber.each { changenumber ->

changenumber.children().each { tag ->

if(tag.name() == "changeUser" && found != true){

committer = tag.text()

found = true

}

}

}

}

println committer

//return committer.toString()

}


pipeline {

agent any


stages {

stage('test') {

steps {

findComitter()

}

}

}

}


```


this is the output I get, as you can see the function call seems to work as 
it get to the ```println commiter``` step but then I get an error and 
failure build status:

```

00:00:00.021 [Pipeline] Start of Pipeline

00:00:00.121 [Pipeline] node

00:00:00.129 Running on Jenkins in C:\Users\User\.jenkins\workspace\test

00:00:00.140 [Pipeline] {

00:00:00.157 [Pipeline] stage

00:00:00.161 [Pipeline] { (Hello)

00:00:00.180 [Pipeline] echo

00:00:00.182 Hello World

00:00:00.202 [Pipeline] echo

00:00:00.204 jaydenm

00:00:00.207 [Pipeline] }

00:00:00.220 [Pipeline] // stage

00:00:00.230 [Pipeline] }

00:00:00.242 [Pipeline] // node

00:00:00.264 [Pipeline] End of Pipeline

00:00:00.293 an exception which occurred:

00:00:00.293 in field 
org.jenkinsci.plugins.pipeline.modeldefinition.withscript.WithScriptScript.script

00:00:00.293 in object 
org.jenkinsci.plugins.pipeline.modeldefinition.agent.impl.LabelScript@49af372

00:00:00.293 in field groovy.lang.Closure.delegate

00:00:00.293 in object 
org.jenkinsci.plugins.workflow.cps.CpsClosure2@18d98e8e

00:00:00.293 in field groovy.lang.Closure.delegate

00:00:00.293 in object 
org.jenkinsci.plugins.workflow.cps.CpsClosure2@43324839

00:00:00.293 in field 
org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.closures

00:00:00.293 in object 
org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@76d386ff

00:00:00.293 in object 
org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@76d386ff

00:00:00.293 Caused: java.io.NotSerializableException: 
groovy.util.slurpersupport.NodeChild

```


I have been looking through the SO threads and all the info I got is to use 
the @NonCPS annotation to use any non-serializable objects, which I have 
done.

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/3764c601-8250-44f8-875a-ea0ec35321aan%40googlegroups.com.

Reply via email to