[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