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]



Reply via email to