Aaron Andersen created CAY-1725:
-----------------------------------

             Summary: NullPointerException from call to removeToManyTarget
                 Key: CAY-1725
                 URL: https://issues.apache.org/jira/browse/CAY-1725
             Project: Cayenne
          Issue Type: Bug
          Components: Core Library
    Affects Versions: 3.0.2, 3.0.1
            Reporter: Aaron Andersen


I am using Cayenne version 3.0.1.

In CayenneModeler I have created an "Approver" DbEntity and a "Department" 
DbEntity (as well as the corresponding ObjEntity classes). I have also created 
an "Authorization" DbEntity to act as a join table for the Approver and 
Department tables. Every Approver object has a list of Department objects 
associated with it, and vice versa so in CayenneModeler I have added a 
"departmentArray" relationship to the Approver object which has "to many, list" 
semantics.

When I use the Approver method "void addToDepartmentArray (Department)" 
everything works fine, but when I use the Approver method "void 
removeFromDepartmentArray (Department)" (which simple calls removeToManyTarget) 
a NullPointerException is thrown. A backtrace and quick debug tells me the null 
pointer exception originates from:

org.apache.cayenne.access.DataDomainFlattenedBucket.addFlattenedDelete(DataDomainFlattenedBucket.java:82)

The code on lines 81 and 82 of this file are as follows:

[81] List flattenedSnapshots = 
flattenedDeleteInfo.buildJoinSnapshotsForDelete(node);
[82] if (!flattenedSnapshots.isEmpty()) {

Inspecting flattenedSnapshots on line 82 shows that flattenedSnapshots is null 
hence accessing the isEmpty method is causing the null pointer exception.

I have also tested with Cayenne 3.0.2 and the same error occurs.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to