[Zope-CMF] Bad interaction between CMF 1.4 and Zope 2.8
(catalog-getObject-raises)
Sidnei da Silva
sidnei at awkly.org
Thu Apr 14 12:38:41 EDT 2005
Hi,
I'm facing a small issue with CMF 1.4 and the new 'feature' in Zope 2.8
of letting exceptions through if getObject fails, instead of returning
None.
Specifically, in CMFCatalogAware.reindexObjectSecurity (recently
introduced by Florent Guillaume if I recall), it assumes getObject()
will return None in a failure.
This results in a traceback like this:
Module Products.CMFDefault.DiscussionItem, line 311, in createReply
Module Products.CMFCore.CMFCatalogAware, line 102, in
notifyWorkflowCreated
Module Products.CMFCore.WorkflowTool, line 360, in notifyCreated
Module Products.CMFCore.WorkflowTool, line 706, in
_reindexWorkflowVariables
Module Products.CMFCore.CMFCatalogAware, line 81, in
reindexObjectSecurity
Module Products.ZCatalog.CatalogBrains, line 74, in getObject
Module OFS.Traversable, line 232, in restrictedTraverse
Module OFS.Traversable, line 181, in unrestrictedTraverse
- __traceback_info__: ([], '1113527681')
Module Products.CMFDefault.DiscussionItem, line 224, in
__bobo_traverse__
AttributeError: 'dict' object has no attribute 'RESPONSE'
There's two things going on here:
1. It is wrong in assuming getObject will return None. Well, actually
it wasn't, but the carpet has been took away from under us :)
2. If I understand correctly, it's trying to traverse to the
newly-created DiscussionItem which though it's indexed, will not be
available but two lines after the top-level call, on createReply,
line 313.
I assume there's a reason for the object to be indexed before being
stored, so I won't try to guess what the correct fix is.
Any ideas?
--
Sidnei da Silva <sidnei at awkly.org>
http://awkly.org - dreamcatching :: making your dreams come true
http://www.enfoldsystems.com
http://plone.org/about/team#dreamcatcher
User hostile.
More information about the Zope-CMF
mailing list