[Seaside-dev] Issue 340 in seaside: WAWalkbackErrorHandler no longer works for rendering errors

codesite-noreply at google.com codesite-noreply at google.com
Tue Feb 10 16:39:06 UTC 2009


Comment #3 on issue 340 by jfitzell: WAWalkbackErrorHandler no longer works  
for rendering errors
http://code.google.com/p/seaside/issues/detail?id=340

So the more I think about this, the more I think we've broken it  
essentially by
design. Two major changes have impacted this:
  + partial continuations
  + response refactoring

The walkback error handler never would have worked for exceptions outside  
the Session
because, in order to use #call: (or its moral equivalent  
#inNewRenderLoopCall:), it
would need to be inside the ProcessMonitor. Now that we've dropped the  
process
monitor and started using partial continuation, it will only work for  
exceptions
signaled in places where #call: is valid. Currently this is within  
callbacks and
tasks. It will never work in framework code because most of that code holds
references directly to the request context.

I think I could probably get it working within rendering code by using  
continuations
more directly but I have to wonder if there's much point. The contexts that  
you ended
up debugging would all be working on an old RenderContext, on an old  
Document, on an
old Stream, from an old Response. Whereas that previously didn't matter (as  
long as
it was not a streaming response), we can now only return a response via the  
Response
stored on the current RequestContext. So you'd debug, fix the problem,  
proceed, and
your response would get written nowhere.

The best suggestion I can think of is, in the case of an error during  
rendering, to
display a walkback with a link that submits the same url again with an extra
parameter indicating that if an error occurs (which is presumably will)  
that the
error should be debugged immediately. I'm not quite sure how the error  
handler would
know whether it is in rendering code or framework code but presumably we  
can solve
that somehow. Anyone have any thoughts on this solution or other  
suggestions/comments?

--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings


More information about the seaside-dev mailing list