>
> > Reading (novice at it) the stacktrace suggests it's to do with 
> serialization 
> > of variables but the annotation should take care of that, isn't it ? 
> > 
> > an exception which occurred: 
> > in field groovy.lang.Closure.delegate 
> > in object org.jenkinsci.plugins.workflow.cps.CpsClosure2@72ae419a 
> > in field org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.closures 
> > in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@401a5d46 
> > in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@401a5d46 
> > Caused: java.io.NotSerializableException: 
> > org.jenkinsci.plugins.workflow.job.WorkflowJob 
> > at 
> > 
> org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:860)
>  
>
> > at 
> > 
> org.jboss.marshalling.river.BlockMarshaller.doWriteObject(BlockMarshaller.java:65)
>  
>
> > at 
> > 
> org.jboss.marshalling.river.BlockMarshaller.writeObject(BlockMarshaller.java:56)
>  
>
> > at 
> > 
> org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride(MarshallerObjectOutputStream.java:50)
>  
>
> > at 
> > 
> org.jboss.marshalling.river.RiverObjectOutputStream.writeObjectOverride(RiverObjectOutputStream.java:179)
>  
>
> > at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344) 
> > at java.util.LinkedHashMap.internalWriteEntries(LinkedHashMap.java:333) 
> > . . . . . 
> > . . . . . 
>
> No, the annotation wouldn't help with this, I believe. 
>
> The problem is, when "job steps" execute, objects are deserialized 
> before and after.  If Jenkins has to try to serialize something in 
> scope that is not serializable, you will get that exception. What is 
> often very frustrating is that the stacktrace won't tell you which 
> variable contains something that is not serializable. What it will 
> usually tell you is what type was not serializable. If you're lucky, 
> it will be obvious what variable has a value of that type. In your 
> case, I believe is it obvious. 
>
> The other thing that is not obvious is that "println" is a job step. 
>
> If you really need to do a println, then right before you call it, you 
> have to assign "null" to variables containing values of 
> non-serializable types. 
>
> In your "getjobName" method, it's odd that your formal parameter is 
> called "job", when it's really "jobName", and then you appear to 
> assign to "jobname", which isn't defined anywhere, but the value 
> actually represents a "Job", not a "jobname". 
>

Thanks for the notes on deserialization. 

Immediately after posting my query to this forum, I  did few changes to the 
code, like, assigning null values to some of the variables.

This did solve the problem for me!

/Ram

-- 
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/bdc42815-bdce-4a5a-a050-a81d53a4e927%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to