This is what happens. I use xstream to serliaze an object which contains closures in its graph.. When I convert the xml back to an object, the closure, the metaClass of the closure does not get instantiated and remains null. I cannot execute the closure and get a null Pointer exception. Intrestingly methods of the closure objects, like getMetaClass() and getClass() fail after the closure is deserialized.
Jochen Theodorou has pointed out that while Objects inheriting from GroovyObject do a null check before accessing the Metaclass, Closures inherit from GroovyObjectSupport and dont do a null check