[Seaside] The 'onAnswer:' message: what does it do?

Bahman Movaqar Bahman at BahmanM.com
Mon May 27 05:20:07 UTC 2013


Following the Seaside tutorial
(http://www.hpi.uni-potsdam.de/hirschfeld/seaside/tutorial) on chapter 5
(Forms), when I click on the "edit" link beside any task, all I get is
the following:

   Seaside Walkback
   MessageNotUnderstood: StTaskEditor>>onAnswer:

I suspect there's been a change in the API which has not been reflected
in the tutorial yet.  Could anyone please shed a light on this?

TIA,

PS: I'm using Pharo 2.0.  Also I've attached the whole stacktrace from
Seaside.

-- 
Bahman Movaqar  (http://BahmanM.com)
ERP Evaluation, Implementation, Deployment Consultant
-------------- next part --------------
Seaside Walkback
MessageNotUnderstood: StTaskEditor>>onAnswer:

Debug Proceed
Possible Causes

    you sent a message this type of object doesn't understand

Stack Trace

    thisContext
        StTaskEditor(Object)>>doesNotUnderstand: #onAnswer:
    self
        a StTaskEditor

    thisContext
        StRootComponent(WAComponent)>>show:onAnswer:delegation:
    self
        a StRootComponent

    thisContext
        StRootComponent(WAComponent)>>show:onAnswer:
    self
        a StRootComponent

    thisContext
        StRootComponent(WAComponent)>>call:onAnswer:
    self
        a StRootComponent

    thisContext
        [:cc | self call: aComponent onAnswer: cc] in StRootComponent(WAComponent)>>call:
    self
        a StRootComponent

    thisContext
        [:cc | aBlock value: cc] in StRootComponent(WAComponent)>>wait:
    self
        a StRootComponent

    thisContext
        GRPharoPlatform>>seasideSuspendFlowDo:
    self
        a GRPharoPlatform

    thisContext
        StRootComponent(WAComponent)>>wait:
    self
        a StRootComponent

    thisContext
        StRootComponent(WAComponent)>>call:
    self
        a StRootComponent

    thisContext
        StRootComponent>>editTask:
    self
        a StRootComponent

    thisContext
        [self editTask: aTask] in [html anchor callback: [self editTask: aTask]; with: 'edit'] in [html...etc...
    self
        a StRootComponent

    thisContext
        BlockClosure>>valueWithPossibleArguments:
    self
        [self editTask: aTask]

    thisContext
        WAActionCallback>>evaluateWithArgument:
    self
        a WAActionCallback

    thisContext
        WAActionCallback(WACallback)>>evaluateWithFieldValues:
    self
        a WAActionCallback

    thisContext
        [:callback | callback evaluateWithFieldValues: (fields allAt: callback key)] in WACallbackRegistry...etc...
    self
        a WACallbackRegistry

    thisContext
        Array(SequenceableCollection)>>do:
    self
        an Array(a WAActionCallback)

    thisContext
        WACallbackRegistry>>handle:
    self
        a WACallbackRegistry

    thisContext
        [self renderContext callbacks handle: self requestContext] in [self withNotificationHandlerDo: [se...etc...
    self
        a WAActionPhaseContinuation

    thisContext
        BlockClosure>>on:do:
    self
        [self renderContext callbacks handle: self requestContext]

    thisContext
        WAActionPhaseContinuation(WARenderLoopContinuation)>>withNotificationHandlerDo:
    self
        a WAActionPhaseContinuation

    thisContext
        [self withNotificationHandlerDo: [self renderContext callbacks handle: self requestContext]. (WAV...etc...
    self
        a WAActionPhaseContinuation

    thisContext
        BlockClosure>>ensure:
    self
        [self withNotificationHandlerDo: [self renderContext callbacks handle: self requestContext]. (WAV...etc...

    thisContext
        WAActionPhaseContinuation>>runCallbacks
    self
        a WAActionPhaseContinuation

    thisContext
        WAActionPhaseContinuation>>handleRequest
    self
        a WAActionPhaseContinuation

    thisContext
        [self handleRequest] in WAActionPhaseContinuation(WASessionContinuation)>>basicValue
    self
        a WAActionPhaseContinuation

    thisContext
        BlockClosure>>on:do:
    self
        [self handleRequest]

    thisContext
        WAActionPhaseContinuation(WASessionContinuation)>>withUnregisteredHandlerDo:
    self
        a WAActionPhaseContinuation

    thisContext
        WAActionPhaseContinuation(WASessionContinuation)>>basicValue
    self
        a WAActionPhaseContinuation

    thisContext
        WAActionPhaseContinuation(WASessionContinuation)>>value
    self
        a WAActionPhaseContinuation

    thisContext
        WASession>>handleFiltered:
    self
        a WASession

    thisContext
        WATimingToolFilter(WARequestFilter)>>handleFiltered:
    self
        a WATimingToolFilter

    thisContext
        [super handleFiltered: aRequestContext] in WATimingToolFilter>>handleFiltered:
    self
        a WATimingToolFilter

    thisContext
        BlockClosure>>ensure:
    self
        [super handleFiltered: aRequestContext]

    thisContext
        WATimingToolFilter>>handleFiltered:
    self
        a WATimingToolFilter

    thisContext
        WADeprecatedToolFilter(WARequestFilter)>>handleFiltered:
    self
        a WADeprecatedToolFilter

    thisContext
        [super handleFiltered: aRequestContext] in WADeprecatedToolFilter>>handleFiltered:
    self
        a WADeprecatedToolFilter

    thisContext
        BlockClosure>>on:do:
    self
        [super handleFiltered: aRequestContext]

    thisContext
        WADeprecatedToolFilter>>handleFiltered:
    self
        a WADeprecatedToolFilter

    thisContext
        WAMutualExclusionFilter(WARequestFilter)>>handleFiltered:
    self
        a WAMutualExclusionFilter

    thisContext
        [super handleFiltered: aRequestContext] in WAMutualExclusionFilter>>handleFiltered:
    self
        a WAMutualExclusionFilter

    thisContext
        BlockClosure>>ensure:
    self
        [super handleFiltered: aRequestContext]

    thisContext
        [owner := process. aBlock ensure: [owner := nil]] in WAMutex>>critical:
    self
        a WAMutex

    thisContext
        [caught := true. self wait. blockValue := mutuallyExcludedBlock value] in Semaphore>>critical:
    self
        a Semaphore()

    thisContext
        BlockClosure>>ensure:
    self
        [caught := true. self wait. blockValue := mutuallyExcludedBlock value]

    thisContext
        Semaphore>>critical:
    self
        a Semaphore()

    thisContext
        WAMutex>>critical:
    self
        a WAMutex

    thisContext
        WAMutualExclusionFilter>>handleFiltered:
    self
        a WAMutualExclusionFilter

    thisContext
        [self filter handleFiltered: aRequestContext] in WASession(WARequestHandler)>>handle:
    self
        a WASession

    thisContext
        BlockClosure>>on:do:
    self
        [self filter handleFiltered: aRequestContext]

    thisContext
        WACurrentRequestContext class(WADynamicVariable class)>>use:during:
    self
        WACurrentRequestContext

    thisContext
        [WACurrentRequestContext use: self during: aBlock] in WARequestContext>>push:during:
    self
        a WARequestContext url: <nil>

    thisContext
        BlockClosure>>ensure:
    self
        [WACurrentRequestContext use: self during: aBlock]

    thisContext
        WARequestContext>>push:during:
    self
        a WARequestContext url: <nil>

    thisContext
        WASession(WARequestHandler)>>handle:
    self
        a WASession

    thisContext
        WAApplication(WARegistry)>>dispatch:to:
    self
        a WAApplication

    thisContext
        WAApplication(WARegistry)>>handleKeyed:with:
    self
        a WAApplication

    thisContext
        WAApplication(WARegistry)>>handleFiltered:
    self
        a WAApplication

    thisContext
        WAApplication>>handleFiltered:
    self
        a WAApplication

    thisContext
        WAExceptionFilter(WARequestFilter)>>handleFiltered:
    self
        a WAExceptionFilter

    thisContext
        [super handleFiltered: aRequestContext] in WAExceptionFilter>>handleFiltered:
    self
        a WAExceptionFilter

    thisContext
        BlockClosure>>on:do:
    self
        [super handleFiltered: aRequestContext]

    thisContext
        WAWalkbackErrorHandler(WAExceptionHandler)>>handleExceptionsDuring:
    self
        a WAWalkbackErrorHandler

    thisContext
        WAWalkbackErrorHandler class(WAExceptionHandler class)>>handleExceptionsDuring:context:
    self
        WAWalkbackErrorHandler

    thisContext
        WAExceptionFilter>>handleFiltered:
    self
        a WAExceptionFilter

    thisContext
        [self filter handleFiltered: aRequestContext] in WAApplication(WARequestHandler)>>handle:
    self
        a WAApplication

    thisContext
        BlockClosure>>on:do:
    self
        [self filter handleFiltered: aRequestContext]

    thisContext
        WACurrentRequestContext class(WADynamicVariable class)>>use:during:
    self
        WACurrentRequestContext

    thisContext
        [WACurrentRequestContext use: self during: aBlock] in WARequestContext>>push:during:
    self
        a WARequestContext url: <nil>

    thisContext
        BlockClosure>>ensure:
    self
        [WACurrentRequestContext use: self during: aBlock]

    thisContext
        WARequestContext>>push:during:
    self
        a WARequestContext url: <nil>

    thisContext
        WAApplication(WARequestHandler)>>handle:
    self
        a WAApplication

    thisContext
        WADispatcher>>handleFiltered:named:
    self
        a WADispatcher

    thisContext
        WADispatcher>>handleFiltered:
    self
        a WADispatcher

    thisContext
        [self filter handleFiltered: aRequestContext] in WADispatcher(WARequestHandler)>>handle:
    self
        a WADispatcher

    thisContext
        BlockClosure>>on:do:
    self
        [self filter handleFiltered: aRequestContext]

    thisContext
        WACurrentRequestContext class(WADynamicVariable class)>>use:during:
    self
        WACurrentRequestContext

    thisContext
        [WACurrentRequestContext use: self during: aBlock] in WARequestContext>>push:during:
    self
        a WARequestContext url: <nil>

    thisContext
        BlockClosure>>ensure:
    self
        [WACurrentRequestContext use: self during: aBlock]

    thisContext
        WARequestContext>>push:during:
    self
        a WARequestContext url: <nil>

    thisContext
        WADispatcher(WARequestHandler)>>handle:
    self
        a WADispatcher

    thisContext
        [self requestHandler handle: aRequestContext] in ZnZincServerAdaptor(WAServerAdaptor)>>handleRequest...etc...
    self
        a ZnZincServerAdaptor(zinc on port 8888 [running])

    thisContext
        BlockClosure>>on:do:
    self
        [self requestHandler handle: aRequestContext]

    thisContext
        ZnZincServerAdaptor(WAServerAdaptor)>>handleRequest:
    self
        a ZnZincServerAdaptor(zinc on port 8888 [running])

    thisContext
        ZnZincServerAdaptor(WAServerAdaptor)>>handle:
    self
        a ZnZincServerAdaptor(zinc on port 8888 [running])

    thisContext
        [self handle: context; responseFrom: context] in ZnZincServerAdaptor(WAServerAdaptor)>>process:
    self
        a ZnZincServerAdaptor(zinc on port 8888 [running])

    thisContext
        BlockClosure>>ensure:
    self
        [self handle: context; responseFrom: context]

    thisContext
        ZnZincServerAdaptor(WAServerAdaptor)>>process:
    self
        a ZnZincServerAdaptor(zinc on port 8888 [running])

    thisContext
        ZnSeasideServerAdaptorDelegate>>handleRequest:
    self
        a ZnSeasideServerAdaptorDelegate

    thisContext
        [self delegate ifNil: [ZnResponse notFound: request uri] ifNotNil: [:delegate | delegate handleR...etc...
    self
        a ZnManagingMultiThreadedServer(running 8888)

    thisContext
        ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>authenticateRequest:do:
    self
        a ZnManagingMultiThreadedServer(running 8888)

    thisContext
        ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>authenticateAndDelegateRequest:
    self
        a ZnManagingMultiThreadedServer(running 8888)

    thisContext
        [self authenticateAndDelegateRequest: request] in ZnManagingMultiThreadedServer(ZnSingleThreadedServ...etc...
    self
        a ZnManagingMultiThreadedServer(running 8888)

    thisContext
        BlockClosure>>on:do:
    self
        [self authenticateAndDelegateRequest: request]

    thisContext
        ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>handleRequestProtected:
    self
        a ZnManagingMultiThreadedServer(running 8888)

    thisContext
        ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>handleRequest:
    self
        a ZnManagingMultiThreadedServer(running 8888)

    thisContext
        ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>executeOneRequestResponseOn:
    self
        a ZnManagingMultiThreadedServer(running 8888)

    thisContext
        [[self executeOneRequestResponseOn: stream] whileFalse. nil] in ZnManagingMultiThreadedServer(ZnMul...etc...
    self
        a ZnManagingMultiThreadedServer(running 8888)

    thisContext
        [p psValueAt: index put: anObject. aBlock value] in ZnCurrentServer(DynamicVariable)>>value:during:...etc...
    self
        a ZnCurrentServer

    thisContext
        BlockClosure>>ensure:
    self
        [p psValueAt: index put: anObject. aBlock value]

    thisContext
        ZnCurrentServer(DynamicVariable)>>value:during:
    self
        a ZnCurrentServer

    thisContext
        ZnCurrentServer class(DynamicVariable class)>>value:during:
    self
        ZnCurrentServer

    thisContext
        ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>executeRequestResponseLoopOn:
    self
        a ZnManagingMultiThreadedServer(running 8888)

    thisContext
        [self executeRequestResponseLoopOn: stream] in [[self executeRequestResponseLoopOn: stream] ensure...etc...
    self
        a ZnManagingMultiThreadedServer(running 8888)

    thisContext
        BlockClosure>>ensure:
    self
        [self executeRequestResponseLoopOn: stream]

    thisContext
        [[self executeRequestResponseLoopOn: stream] ensure: [self log debug: 'Closing stream'. self cl...etc...
    self
        a ZnManagingMultiThreadedServer(running 8888)

    thisContext
        BlockClosure>>ifCurtailed:
    self
        [[self executeRequestResponseLoopOn: stream] ensure: [self log debug: 'Closing stream'. self cl...etc...

    thisContext
        [[[self executeRequestResponseLoopOn: stream] ensure: [self log debug: 'Closing stream'. self c...etc...
    self
        a ZnManagingMultiThreadedServer(running 8888)

    thisContext
        [self value. Processor terminateActive] in BlockClosure>>newProcess
    self
        [[[self executeRequestResponseLoopOn: stream] ensure: [self log debug: 'Closing stream'. self c...etc...

New Session Configure Halos Profile Memory XHTML 6/143 ms


More information about the seaside mailing list