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 jenkinsci-users+unsubscr...@googlegroups.com.
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