[zope2-tracker] [Bug 537057] Re: initializeProduct chokes on product ids that match ids in the acquisition path?
ric at digitalmarbles.com
Thu Mar 11 15:33:01 EST 2010
Actually, if you trace the code, it looks like the "enable-product-
installation" directive doesn't come in until later whereupon this
transaction gets aborted before the commit. So the error pops up
before Zope has a chance to back out of it :P
On Mar 11, 2010, at 10:31 AM, Hanno Schlichting wrote:
> This sounds weird. Plone 4.0b1 doesn't install any of the products
> the Control_Panel/Products section anymore. The zope2instance recipe
> makes sure to set "enable-product-installation off" by default.
> @newberry could you check if the "enable-product-installation off"
> up in your parts/instance/etc/zope.conf file? As part of the upgrade
> 4.0b1 Plone should also delete all product entries in the
> Control_Panel/Products section. After the upgrade there shouldn't be
> entries in it anymore.
> If those thing work, the code path you showed should never be called.
> initializeProduct chokes on product ids that match ids in the
> acquisition path?
> You received this bug notification because you are a direct subscriber
> of the bug.
> Status in Zope 2: New
> Bug description:
> It appears that App.Product.initializeProduct chokes on product ids
> that match ids in the acquisition path.
> The culprit appears to be line 253...
> products._setObject(name, product)
> _setObject eventually calls OFS.ObjectManager.checkValidId which
> chokes at line 119
> if not allow_dup:
> obj = getattr(self, id, None)
> if obj is not None:
> # An object by the given id exists either in this
> # ObjectManager or in the acquisition path.
> flags = getattr(obj, '__replaceable__', NOT_REPLACEABLE)
> if hasattr(aq_base(self), id):
> # The object is located in this ObjectManager.
> if not flags & REPLACEABLE:
> raise BadRequest, (
> 'The id "%s" is invalid - it is already in
> use.' % id)
> # else the object is replaceable even if the UNIQUE
> # flag is set.
> elif flags & UNIQUE:
> raise BadRequest, ('The id "%s" is reserved.' % id)
> because it acquires the object in the zodb root which cannot be
> replaced (nor should it).
> This of course throws an error... BadRequest The id "%s" is invalid
> - it is already in use
> Can someone confirm this is a real bug or an oddity in my setup?
> To unsubscribe from this bug, go to:
initializeProduct chokes on product ids that match ids in the acquisition path?
You received this bug notification because you are a member of Zope 2
Developers, which is subscribed to Zope 2.
More information about the zope2-tracker