Hi Aaron,
sorry for the late reply..
Are add... and remove... called in sequence after each other or is there a
commit between them?
Also going through release notes for 3.0.2, there were a few fixes related to
flattened relationships. While I can't say for sure that your issue was
addressed there, maybe it is worth upgrading before we dig any deeper?
Cheers,
Andrus
On Jul 5, 2012, at 4:23 AM, Aaron Andersen wrote:
> Hello,
>
> I am using Cayenne version 3.0.1 and having an issue.
>
> 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.
>
> A couple of obvious points I can list off are:
> - both the approver and the department are not null
> - the department does belong to the approvers list of departments
> - both objects are in the same context
>
> I'm not sure what I am doing incorrect to cause this null pointer exception
> but I would really appreciate any help.
>
> Thank you for your time!
> Aaron
>
>