XML Deserialization fails on relationships when using a mapping file
--------------------------------------------------------------------

                 Key: CAY-763
                 URL: https://issues.apache.org/cayenne/browse/CAY-763
             Project: Cayenne
          Issue Type: Bug
          Components: Cayenne Core Library
    Affects Versions: 1.2 [STABLE], 2.0 [STABLE]
         Environment: Any
            Reporter: Robert Zeigler
         Assigned To: Andrus Adamchik


When XMLDecoder deserializes objects using a mapping descriptor, no objects are 
registered with a datacontext until after all objects have been initialized. 
However, cayenne requires a non-null datacontext to correctly handle 
relationships. Hence, dataobjects using the default cayenne handling of 
relationships (either to-one or to-many) will be unable to deserialize objects 
from XML (due to null pointers). 

In the case of a collection, the getXXX method will return null, and the 
XMLMappingDescriptor fails to "sense" a collection.
In the case of a to-one relationship, a NPE exception is thrown trying to set 
the child property of the parent object.

The simplest way to fix this would be to make XMLMappingDescriptor 
DataContext-capable (ie: will register objects with a datacontext, if one is 
provided, as the objects are created). I've done this in a local copy of the 
code. I will attach a patch when I get a minute.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to