On Fri, May 29, 2015 at 9:19 PM, Dale Henrichs via Glass <[hidden email]> wrote:
Dale, #ajaxErrorHandler is my own method (well, shared by Paul and I improved it a bit). The sender of this method is part of my root/main application component and does: html document addLoadScript: (html jQuery document onAjaxError: (self ajaxErrorHandler asFunction: #('event' 'jqxhr' 'settings' 'exception'))). I just tried by commenting those lines, and I see not difference in gemstone. I mean, I get the exception if I go to "DEbug" -> "Remote Debugging" in GemTools. In addition, with the WAObjectLog I do see the "resumable exception" and I can indeed see the "messageText" of the exception. What I have no way to get is the full stack string (no matter if I set or not my ajax error handler) without having to remote debug. I mean...I need to get the full stack string without needing GemTools or similar. Note that the #ajaxErrorHandler is at client side from what I can see so I am not sure how can I include there what you suggest (#stackReportToLevel: and logError:title:shouldCommit: ) I guess I am missing something... Thanks in advance!
_______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
mmmm actually....I just checked again and it seems that if I click in the continuation link I do get the stack :) See attached screenshots. Cool! I think this answers my original question :) Thank you all.... On Fri, May 29, 2015 at 9:53 PM, Mariano Martinez Peck via Glass <[hidden email]> wrote:
_______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass Screen Shot 2015-05-29 at 10.15.51 PM.png (140K) Download Attachment Screen Shot 2015-05-29 at 10.16.37 PM.png (310K) Download Attachment |
In reply to this post by GLASS mailing list
Okay....
In WARemoteDebuggingWalkbackErrorHandler>>open: there is a test for isXmlHttpRequest which is there to differentiate between html responses and AJAX responses IIRC and it responds with WAResponseGenerator>>internalError:...It looks to me like a continuation _is_ created and stored in the object log, but I take it you aren't necessarily interested in that route ... Sooo, I would say that you would want to customize WAResponseGenerator>>internalError: to include a stack trace in the response using GsProcess class>>stackReportToLevel: .... it's probably worth verifying that WAResponseGenerator>>internalError: is the one generating the response, but reading the code it looks like it's the one that must be doing that ... You might want to return a structured response so that you client could produce a bit better output or even display the error and stack to the user in some form... Dale On 5/29/15 5:53 PM, Mariano Martinez
Peck wrote:
_______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
In reply to this post by GLASS mailing list
Oh, good ... you _are_ interested in a continuation:)
BTW, it does appear that in the WARemoteDebuggingWalkbackErrorHandler case, the errors are not logged to the gem log ... it is probably worth adding that capability since it isn't always a guarantee that the commit will succeed and logging to the gem log means that the error won't be lost forever ... something like WAErrorHandler>>saveExceptionContinuation: could be called from WARemoteDebuggingWalkbackErrorHandler>>open: to log to the gem log AND save the continuation to the object log ... Dale On 5/29/15 6:17 PM, Mariano Martinez
Peck wrote:
_______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
On Sat, May 30, 2015 at 12:00 AM, Dale Henrichs <[hidden email]> wrote:
yes!
Exactly!!!! that was my conclusion: ajax exceptions end up in the repository object log but NOT in the gem log text file, which is something I would really like (as it happens with normal request exceptions).
But the save in the object log is already happening. If we call #saveExceptionContinuation: would that be stored twice? Do we know who is storing the continuation in the object log in case of an ajax error? Thanks Dale!
_______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
In reply to this post by GLASS mailing list
On Fri, May 29, 2015 at 11:51 PM, Dale Henrichs <[hidden email]> wrote:
YES, it IS stored in the object log, and I AM interested in that (on one hand). So that I could "remote debug" when I can, but also I need a plain dead string stack :)
Well, maybe I do not need to show it to the user. But I need this: The user can call me and tell me: "mariano, I have an error at 19:45 and I was doing X". Could you check? Sometimes (for another topic I can remote debug) so I want to be able to get both: 1) cotinuation stored in the object log so that I can use the WAObjectLog 2) get the plain string stack written in the gem text log. I am already getting 1) but not 2) Presenting the error to the user could even be a 3) if you want. Of course it would be nice, but at least with 2) I am fine. Thanks,
_______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
In reply to this post by GLASS mailing list
On 05/30/2015 08:37 AM, Mariano
Martinez Peck wrote:
It looks like WARemoteDebuggingWalkback>>addContinuation is the spot where the continuation is being saved to the object log and there is nothing written to the gem log there, so the call to add a message to the gem log needs to be added in WARemoteDebuggingWalkbackErrorHandler>>open: ... I've got a proposed fix up on github[1]. Please take a look (others as well) and perhaps comment on the changes before I push them out to gs_master... It would be nice if you could verify that I've pinpointed the right spot... Dale [1] https://github.com/GsDevKit/Seaside31/commit/fd8fe4e22ccdba9eb0b166fa90385bd4a4141c41 _______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
On Mon, Jun 1, 2015 at 1:46 PM, Dale Henrichs <[hidden email]> wrote:
Thanks Dale. I just tried [1] and I found a little issue since in #logContinuation: you do a "self stackReportLimit": stack := GsProcess stackReportToLevel: self stackReportLimit. But you don't implemented (and I see where #logContinuation comes from ahhaha (GemServer >> #writeGemLogEntryFor: exception titled: title). So I simply added: WARemoteDebuggingWalkback >> stackReportLimit ^ 300 And it works now. Thank you very much for the fix! _______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
Woops:) Good catch, I've git the fix queued up ... thanks!
Dale On 06/01/2015 12:37 PM, Mariano
Martinez Peck wrote:
_______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
Free forum by Nabble | Edit this page |