Andrey Razumovsky commented on CAY-1118:
----------------------------------------
Yes. The problem is here (this is PersistentObjectList class)
public Object setValueDirectly(Object value) throws CayenneRuntimeException {
if (value == null || value instanceof List) { /// <<<------- value is null
Object old = this.objectList;
setObjectList((List) value); /// <<<<--------- so we do just invalidate
return old;
}
.......
}
> ROP: setToXXX(null) does not update reverse rel
> -----------------------------------------------
>
> Key: CAY-1118
> URL: https://issues.apache.org/cayenne/browse/CAY-1118
> Project: Cayenne
> Issue Type: Bug
> Components: Cayenne Core Library
> Affects Versions: 3.0
> Reporter: Andrey Razumovsky
> Assignee: Andrus Adamchik
> Fix For: 3.0
>
>
> Following test fails. The reason is that setToXXX(null) causes an invalidation on reverse property but not a removal of reverse object
> ClientMtTable1 o1 = context.newObject(ClientMtTable1.class);
> ClientMtTable2 o2 = context.newObject(ClientMtTable2.class);
> o2.setTable1(o1);
>
> assertEquals(1, o1.getTable2Array().size());
> context.commitChanges(); //important line!
>
> o2.setTable1(null);
> assertEquals(0, o1.getTable2Array().size());
-- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
This archive was generated by hypermail 2.0.0 : Thu Oct 09 2008 - 11:46:34 EDT