I've noticed that when lazy deserialization is on and you use a user
defined key, notification callbacks receive MarshalledValue instances
within event.getKey() rather than instances of the user defined class.
This forces listener code to be aware whether lazy deserialization is
enabled or not, hence we're leaking an implementation detail to the
client code.
I think these callbacks should provide user defined class instances
regardless of whether lazy deserialization is on or not.
Manik: The event instance should be able to detect a MarshalledValue and
return the actual key.