I created a small object called Bug with a public String called bugString.
My object also has a private method called getBugString() which modifies the value of bugString.
Since Groovy generates properties automatically we now have a public getBugString method and a private one.
When calling bug.bugString the private getter method is executed outside the scope of the class.
When serializing the bug object the correct value is returned (as it should)
I've attached sample code demonstrating the problem.