public void clear()
{
Collection coll;if(getData()instanceof ManageableCollection) {
getData().clear(); // ECER: assure it will notify all being removed, necessary for RemovalAware classes...
} else {
// BRJ: use an empty collection so isLoaded will return true
try
{
coll = (Collection) getCollectionClass().newInstance();
}
catch (Exception e)
{
coll = new ArrayList();
}
setData(coll);
_size = 0;
}
}
Could someone cofirm/fix this in CVS?
Thanks,
Edson Richter
Edson Carlos Ericksson Richter wrote:
I think I and a co-worker (Igor) found a little bug in collection proxy. When using RemovalAware... as class for a collection descriptor, calling clear() in the collection don't register the objects for deletion. The answer is the clear implementation in CollectionProxyDefaultImpl:
public void clear() { Collection coll;
// BRJ: use an empty collection so isLoaded will return true try { coll = (Collection) getCollectionClass().newInstance(); } catch (Exception e) { coll = new ArrayList(); } setData(coll); _size = 0;
}
I think the right method should be:
public void clear()
{
Collection coll;
getData().clear(); // ECER: assure it will notify all being removed, necessary for RemovalAware classes...
// BRJ: use an empty collection so isLoaded will return true try { coll = (Collection) getCollectionClass().newInstance(); } catch (Exception e) { coll = new ArrayList(); } setData(coll); _size = 0;
}
Could you analize and report if this is right?
Thanks,
Edson Richter
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
