"Phillip J. Eby" wrote:
This would explain why you only get a change event, since if add happens after change, it is ignored. I'm curious how the change event is getting called first, since... Oh. I'll bet I know what it is. It's probably that manage_afterAdd is being called later in the ObjectManager code than it used to be, and/or Zope is trying to set an _owner attribute on the newly added object. Crap. This is going to take some rethinking to find another way to trap the Zope "add" event. :(
If it saves you any time, here's part of a traceback from an exception raised in _objectChanging(): File /lib/python/ZClasses/ZClass.py, line 466, in createInObjectManager File /lib/python/OFS/ObjectManager.py, line 258, in _setObject File /lib/python/AccessControl/Role.py, line 393, in manage_setLocalRoles Looks like you're right -- manage_setLocalRoles. -- Steve Alexander Software Engineer Cat-Box limited http://www.cat-box.net