Hi -
I just had a very strange experience with Smallwiki. I installed it on
my home machine and ran it since I wanted to play around a bit with a
wiki that I could easily trash. I set up the menu component just like it
had been described when suddenly Smallwiki locked up when trying to save
to top-level page. *Just* the top-level page I should add.
Since I had the image still open I got over there and some investigation
showed that the problem was caused by an endless recursion caused from
using #deepCopy to copy an object with "up" pointers (SWFolder) which
was initiated by the following sequence:
SWKom>>process:
SWFolder(SWStructure)>>process:
SWFolder(SWStructure)>>processSelf:
SWFolder(SWStructure)>>processAction:
BlockContext>>on:do:
[] in SWFolder(SWStructure)>>processAction: {[anAction execute]}
SWPageEdit(SWAction)>>execute
SWPageEdit(SWAction)>>executeCallback
SWPageEdit(SWAction)>>processFormCallback
SortedCollection(OrderedCollection)>>do:
[] in SWPageEdit(SWAction)>>processFormCallback {[:key | object := self
request server callback get: key. object isNil if...]}
SWPageEdit(SWAction)>>performCallback:withArguments:
SWPageEdit(SWAction)>>performCallbackSymbol:withArguments:
SWPageEdit(SWEditAction)>>save
SWPageEdit(SWEditAction)>>privatePreSave
SWFolder(SWStructure)>>nextVersion:
SWFolder(SWStructure)>>nextVersionBecome:
SWFolder(Object)>>copy
SWFolder>>postCopy
SWFolder(SWPage)>>postCopy
SWFolder(SWStructure)>>postCopy
SWPropertyManager(Object)>>copy
SWPropertyManager>>postCopy
Dictionary(Object)>>deepCopy
Array(Object)>>deepCopy
Association(Object)>>deepCopy
OrderedCollection(Object)>>deepCopy
Array(Object)>>deepCopy
SWTemplateBodyMenu(Object)>>deepCopy
SWFolder(Object)>>deepCopy
Dictionary(Object)>>deepCopy
Array(Object)>>deepCopy
Association(Object)>>deepCopy
SWFolder(Object)>>deepCopy
Dictionary(Object)>>deepCopy
Array(Object)>>deepCopy
"... and downhill from here ..."
Looking at it more closely it seems as if this is triggered by
#internalTemplates referring to a SWTemplateBodyMenu which (I believe)
is created when using the menu component.
Is this is a known issue? Any recommended fixes?
Cheers,
- Andreas