On Fri, Jun 27, 2008 at 6:53 PM, Ross Patterson <[EMAIL PROTECTED]> wrote:
> "Martijn Pieters" <[EMAIL PROTECTED]> writes:
>> But the code never does that. When cloning a file-based FSObject, a
>> new instance is created and that is added to the ZODB. Noone else
>> should do this either.
>
> zope.app.keyreference does.  The persistence machinery doesn't add an
> object to a connection until commit.  As such, an IPersistent and
> IObjectAdded event handler, such as the one in zope.app.intid, that
> needs the object to have a connection needs to add the object to a
> connection.

Why is the IObjectAdded event fired at all? Perhaps that's the bug here.

> Shouldn't anything that implements IPersistent be able to be added to a
> connection?  Wouldn't that be considered part of providing the
> interface?  Where else is an object that provides IPersistent stored in
> global state?

I assume it was easier at the time to use just one class. Perhaps this
should be reconsidered now. However, just providing the IPersistence
interface does not mean the object expects to be added to a connection
arbitrarily.

-- 
Martijn Pieters

_______________________________________________
Product-Developers mailing list
[email protected]
http://lists.plone.org/mailman/listinfo/product-developers

Reply via email to