[Seaside] Re: #children and Ajax

Sebastian Sastre ssastre at seaswork.com
Tue Jan 22 14:22:48 UTC 2008


And how your #basicRenderOn: works?

I do something similar without problems (add and remove dynamically
components N times. You allways add only? I ask because the remove is more
likely to bring that kind of trouble

	cheers,

Sebastian Sastre


 

> -----Mensaje original-----
> De: seaside-bounces at lists.squeakfoundation.org 
> [mailto:seaside-bounces at lists.squeakfoundation.org] En nombre 
> de itsme213
> Enviado el: Martes, 22 de Enero de 2008 11:34
> Para: seaside at lists.squeakfoundation.org
> Asunto: [Seaside] Re: #children and Ajax
> 
> 
> > Without backtracking, but after some Ajax callbacks, I am trying to 
> > reliably reproduce it.
> 
> I am getting this "Components not found ..." in the midst of 
> pure Ajax callbacks.
> Seaside2.8a1-lr.533
> Scriptaculous-lr.238
> 
> Is it considered safe to dynamically add components as below?
> 
> C>>children
>     ^ subComponents
> 
> C>>render...
>     onClick: (html updater
>         ...
>         callback: [:r | subComponents add: C new.
>             self basicRenderOn: r ])
> 
> I might run through this N times successfully adding 
> subcomponents, then on the (N+1) time it dies. Below is the trace:
> 
> Many thanks - Sophie
> 
> ========================================
> 
> Subject: [BUG]WARenderContinuation>>componentsNotFound:
> 
> VM: Win32 - a SmalltalkImage
> Image: Squeak3.9 [latest update: #7067]
> 
> WARenderContinuation>>componentsNotFound:
>  Receiver: a WARenderContinuation
>  Arguments and temporary variables:
>   aCollection:  an Array(a MPTreeView)
>  Receiver's instance variables:
>   root:  a WAToolFrame
>   states:  a WASnapshot(a WAValueHolder contents: a MPPage->a 
> WAValueHolder conten...etc...
>   context:  a WARenderingContext
> 
> WARenderContinuation>>unprocessedCallbacks:
>  Receiver: a WARenderContinuation
>  Arguments and temporary variables:
>   aCollection:  an Array(a SUCallback)
>   owners:  an Array(a MPTreeView)
>   each:  a SUCallback
>  Receiver's instance variables:
>   root:  a WAToolFrame
>   states:  a WASnapshot(a WAValueHolder contents: a MPPage->a 
> WAValueHolder conten...etc...
>   context:  a WARenderingContext
> 
> WARenderContinuation>>processCallbacks:
>  Receiver: a WARenderContinuation
>  Arguments and temporary variables:
>   aRequest:  a WARequest POST /map/repo2
>   lastPosition:  0
>   callbackStream:  a WACallbackStream
>   each:  a WAToolFrame
>  Receiver's instance variables:
>   root:  a WAToolFrame
>   states:  a WASnapshot(a WAValueHolder contents: a MPPage->a 
> WAValueHolder conten...etc...
>   context:  a WARenderingContext
> 
> [] in WARenderContinuation>>handleRequest: {[self processCallbacks: 
> aRequest]}
>  Arguments and temporary variables:
>   aRequest:  a WARequest POST /map/repo2
>   r:  nil
> 
> 
> --- The full stack ---
> WARenderContinuation>>componentsNotFound:
> WARenderContinuation>>unprocessedCallbacks:
> WARenderContinuation>>processCallbacks:
> [] in WARenderContinuation>>handleRequest: {[self processCallbacks: 
> aRequest]}
>  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> BlockContext>>on:do:
> WARenderContinuation>>withNotificationHandler:
> WARenderContinuation>>handleRequest:
> WARenderContinuation(WASessionContinuation)>>value:
> MPSession(WASession)>>performRequest:
> [] in MPSession(WASession)>>responseForRequest: {[self 
> performRequest: 
> aRequest]}
> BlockContext>>on:do:
> [] in MPSession(WASession)>>withErrorHandler: {[aBlock   on: 
> Error   do: [:e 
> |     self errorHandler handleError: e.    WAP...]}
> BlockContext>>on:do:
> MPSession(WASession)>>withErrorHandler:
> [] in MPSession(WASession)>>responseForRequest: {[self   
> withErrorHandler: 
> [self performRequest: aRequest]]}
> BlockContext>>on:do:
> WACurrentSession class(WADynamicVariable class)>>use:during:
> [] in MPSession(WASession)>>responseForRequest: 
> {[WACurrentSession   use: 
> self   during: [self     withErrorHandler: [self pe...]}
> [] in MPSession(WASession)>>withEscapeContinuation: {[:cc | 
> escapeContinuation := cc.  aBlock value.  self 
> pageIntentionallyLeft...]} EscapeContinuation 
> class(Continuation class)>>currentDo:
> MPSession(WASession)>>withEscapeContinuation:
> MPSession(WASession)>>responseForRequest:
> [] in MPSession(WASession)>>incomingRequest: {[self 
> responseForRequest: 
> aRequest]}
> BlockContext>>on:do:
> [] in WAProcessMonitor>>critical:ifError: {[value := aBlock 
> on: Error do: 
> anErrorBlock]}
> BlockContext>>ensure:
> [] in WAProcessMonitor>>critical:ifError: {[[value := aBlock 
> on: Error do: 
> anErrorBlock]   ensure: [semaphore signal]]}
> [] in BlockContext>>newProcess {[self value.  Processor 
> terminateActive]}
> 
> 
> 
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside



More information about the seaside mailing list