cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aaron Andersen <aande...@uwo.ca>
Subject NullPointerException from call to removeToManyTarget
Date Thu, 05 Jul 2012 01:23:48 GMT
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


Mime
View raw message