Hash: SHA1

On 2/9/10 22:23 , Charlie Clark wrote:
> Am 09.02.2010, 13:46 Uhr, schrieb Jens Vagelpohl <j...@dataflake.org>:
>> Your event handler "handle_new_masterpage" should be rewritten to look
>> if the object it wants to instantiate already exists. If it exists it
>> should obviously not try to instantiate it again.
> Hiya Jens,
> the handlers were written to use IObjectAddedEvent as some things in the  
> Zope2 world can't happen until an object has somewhere to be or more  
> pertinently this is the most common pattern. Adding the check is easy  
> enough but I'm interested in the general pattern here: should we be  
> looking at working with (and notifying) ObjectCreatedEvents? Or should  
> this check become standard?

Hi Charlie,

Checking to see if an object you are trying to instantiate already
exists is simply common sense.

Everyone who writes handlers for IObjectAdded must remember that the
event is not just called when a brand new instance is created, but also
when an existing instance is cut/copied and pasted, and when the Zope
import machinery is used. In those cases a clash is virtually guaranteed
if your event handler tries to blindly add another persistent object
that is already part of the copied or imported instance.


Version: GnuPG v1.4.8 (Darwin)

Zope-CMF maillist  -  Zope-CMF@zope.org

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests

Reply via email to