[Seaside-dev] Issue with #removeDecoration:

John Thornborrow john at pinesoft.co.uk
Thu May 29 16:10:35 UTC 2008


this time with the attachment..



John Thornborrow wrote:
> Right.. we've found out how to reproduce the error every time.
> 
> Attached is a fileout (MySuff.st) with a demonstration.
> 
> To reproduce:
> 
> 1. Click the button "Click to answer "foo""
> 2. Click 'back' button.
> 3. Click "Click to answer "foo"" again
> 4. Click "Click to answer nil"
> 
> If you skip step 2, the error does not occur.
> 
> I haven't confirmed, but it seems that after step 1, a decoration is 
> removed from the chain, but not re-added before stage 3.
> 
> Does this help at all?
> 
> Many thanks,
> John
> 
> John Thornborrow wrote:
>> Forgot to add, that this indicates that #decoration: is not always 
>> sent.. am yet to find out why it wouldn't be sent yet, or perhaps 
>> #initializeDecoration should do more than just "decoration := 
>> WAValueHolder with: self", such as: "decoration := WAValueHolder with: 
>> (WADecoration new owner: self)" or some such?
>>
>> John Thornborrow wrote:
>>> Some more info, which may have been obvious to others already.
>>>
>>> It seems the error is occurring when 'self decoration == self' i.e. 
>>> the component or task is trying to remove itself from the decoration 
>>> chain.
>>>
>>> Not got anything else yet.. but hopefully this might shed some light ?
>>>
>>> Regards,
>>> John
>>>
>>> John Thornborrow wrote:
>>>> Hi,
>>>>
>>>> One of my apps is very rarely having issues when answering.
>>>>
>>>> The message is "MessageNotUnderstood: MyComponentOrTask>>owner in: 
>>>> OtherMyComponentOrTask(WAComponent)>>removeDecoration:
>>>>
>>>> Unfortunately, no matter how hard I try, I cannot reproduce this 
>>>> error.. however I have stepped through the debugger when it does 
>>>> happen, and I have noticed that the chain of decorations has, what I 
>>>> believe to be, an incorrect value - and that is one of the 
>>>> WADecoration has the iVar value for "next" as a WAValueHolder, and 
>>>> not a WAAnswerHandler as the others are.
>>>>
>>>> Is this a known issue, or would you like me to investigate further? 
>>>> (My knowledge on this area of Seaside is absolutely miminal..)
>>>>
>>>> Many thanks,
>>>> John
>>>>
>>>
>>
> 

-- 
John Thornborrow
http://www.pinesoft.co.uk


******************************************************************************************************************************************
This email is from Pinesoft Limited. Its contents are confidential to the intended recipient(s) at the email address(es) to which it has been addressed. It may not be disclosed to or used by anyone other than the addressee(s), nor may it be copied in anyway. If received in error, please contact the sender, then delete it from your system. Although this email and attachments are believed to be free of virus, or any other defect which might affect any computer or IT system into which they are received and opened, it is the responsibility of the recipient to ensure that they are virus free and no responsibility is accepted by Pinesoft for any loss or damage arising in any way from receipt or use thereof. *******************************************************************************************************************************************


Pinesoft Limited are registered in England, Registered number: 2914825. Registered office: 266-268 High Street, Waltham Cross, Herts, EN8 7EA
-------------- next part --------------
WATask subclass: #Blah
	instanceVariableNames: 'component1 component2'
	classVariableNames: ''
	poolDictionaries: ''
	category: 'MyStuff'!

!Blah methodsFor: 'processing' stamp: 'jmt 5/29/2008 17:04'!
go
	(self call: component1)
		ifNotNilDo: [:aValue | self call: (component2 value: aValue)]! !


!Blah methodsFor: 'initialize-release' stamp: 'jmt 5/29/2008 16:58'!
initialize
	super initialize.
	component1 := BlahComponent new.
	component2 := BlahComponent2 new
	! !



"-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "!

Blah class
	instanceVariableNames: ''!

!Blah class methodsFor: 'testing' stamp: 'jmt 3/25/2008 12:49'!
canBeRoot
	^ true! !


WAComponent subclass: #BlahComponent
	instanceVariableNames: ''
	classVariableNames: ''
	poolDictionaries: ''
	category: 'MyStuff'!

!BlahComponent methodsFor: 'rendering' stamp: 'jmt 5/29/2008 17:02'!
renderContentOn: html
	html form: [html submitButton callback: [self answer: 'foo']; text: 'Click to answer "foo"']! !


WAComponent subclass: #BlahComponent2
	instanceVariableNames: 'value'
	classVariableNames: ''
	poolDictionaries: ''
	category: 'MyStuff'!

!BlahComponent2 methodsFor: 'rendering' stamp: 'jmt 5/29/2008 17:03'!
renderContentOn: html
	html text: value.
	html form: [html submitButton callback: [self answer: nil]; text: 'Click to answer nil']! !


!BlahComponent2 methodsFor: 'accessing' stamp: 'jmt 5/29/2008 17:01'!
value: anObject
	value := anObject! !


More information about the seaside-dev mailing list