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.