Submitted by : simon at: 2004-11-09T02:29:28+00:00 (13 years ago)
Name :
Category : Severity : Status :
Optional subject :  
Optional comment :

You can still cause the page name (and sections of hierarchy) to disappear by reparenting a page under one of it's children. This should be self-correcting. See pages one and two.

This now results in a very ugly traceback --betabug, Wed, 18 Jul 2007 07:11:37 -0700 reply

Seems like there is some infinite recursion happening now in subtopicsEnabled, some excerpt from the Traceback (RuntimeError):

* Module Products.ZWiki.ZWikiPage, line 253, in __call__
* Module Products.ZWiki.ZWikiPage, line 266, in render
* Module Products.ZWiki.pagetypes.stx, line 98, in render
* Module Products.ZWiki.ZWikiPage, line 354, in renderMidsectionIn
* Module Products.ZWiki.ZWikiPage, line 364, in renderMidsection
* Module Products.ZWiki.OutlineSupport, line 222, in subtopicsEnabled
* Module Products.ZWiki.OutlineSupport, line 222, in subtopicsEnabled
* Module Products.ZWiki.OutlineSupport, line 222, in subtopicsEnabled
* Module Products.ZWiki.OutlineSupport, line 222, in subtopicsEnabled
and so on...

patch for circular self-referencing parent producing traceback --betabug, Wed, 18 Jul 2007 07:40:23 -0700 reply

This could fix it:

hunk ./OutlineSupport.py 220
+                if primaryParent and primaryParent.getId() == self.getId(): # circular self-reference
+                    return 1

fixed in darcs --simon, Thu, 19 Jul 2007 10:02:09 -0700 reply

Status: open => closed

That restores the old behaviour (blank title, no error). Thanks betabug!

reopened --simon, Mon, 16 Feb 2009 12:21:43 -0800 reply

Status: closed => open

A longer circular loop still caused the recursion error. I've committed a temporary partial fix for the over-complicated subtopicsEnabled method and not-robust-enough outline subsystem, so once again we show a blank title in this case. Still to do: show something more useful, and analyse the performance impact if using ancestorsAsList2 for it.