[Seaside] Re: #children and Ajax

itsme213 itsme213 at hotmail.com
Tue Jan 22 13:34:11 UTC 2008


> 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]}





More information about the seaside mailing list