PSC, Poi, plone.app.layout.navigation, and BTrees

Raphael Ritz r.ritz at biologie.hu-berlin.de
Mon Oct 22 13:14:37 UTC 2007


Hi,

when trying out PloneSoftwareCenter (trunk) and Poi
(the plone3_support branch) on Plone 3 (3.0.2 to be precise)
I'm running in the following  issue:

After adding a tracker to a PSC project I get

Exception Type  	AttributeError
Exception Value 	'NoneType' object has no attribute 'has_key'

Traceback (innermost last):

     * Module ZPublisher.Publish, line 110, in publish
     * Module ZPublisher.BaseRequest, line 421, in traverse
     * Module Products.CMFCore.DynamicType, line 139, in 
__before_publishing_traverse__
     * Module Products.CMFDynamicViewFTI.fti, line 221, in queryMethodID
     * Module Products.CMFDynamicViewFTI.fti, line 188, in defaultView
     * Module Products.CMFPlone.PloneTool, line 817, in browserDefault
     * Module Products.CMFPlone.PloneTool, line 650, in getDefaultPage
     * Module Products.CMFPlone.utils, line 104, in getDefaultPage
     * Module plone.app.layout.navigation.defaultpage, line 66, in 
getDefaultPage
     * Module Products.BTreeFolder2.BTreeFolder2, line 335, in has_key

AttributeError: 'NoneType' object has no attribute 'has_key'


While I'm able to come up with a work-around by suppressing the
extra handling of BTree folders in

   plone.app.layout.navigation.defaultpage

which isn't strictly necessary because BTree folders support the
OFS ObjectManager API as well (why was this added in the first place?
performance reasons?) I still don't understand what's going on here.

Digging into this a bit deeper I could only imagine the folder's
'_tree' attribute being still None. That would indicate that the
folder wasn't fully initialized (yet?) because otherwise this should
be an OOBTree instance.

Now, before debugging this further, I'd like to know whether
there are others tinkering around with PSC/Poi on Plone 3
that could confirm this. Or maybe this surfaces in other
contexts as well?

Furthermore, I'm not sure what's really causing the problem
in the first place and therefore where this should be fixed.
Currently I tend to think  plone.app.layout.navigation.defaultpage
isn't clever enough but I might be wrong.

Hints welcome,

	Raphael





More information about the Product-Developers mailing list