error in xml-httprequest

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

error in xml-httprequest

Johan Brichau-2
Hi,

To debug our application I use the SwazooAdaptor that gets started via the runSeasideGems30 script.
When I encounter an error during rendering/regular callbacks, all works fine and I can remotely debug the application via GemTools.
However, when the error occurs in an AJAX request, the Seaside gem is terminated and I can't remotely debug the error.
Below is the output generated by the topaz session running the Seaside gem.

A first inspection of the source code of the remote debugging walkback seems to reveal that in case an xml request is processed, the regular debugging facilities are invoked (GRPlatform openDebugger:) which seems to fail for AJAX requests.

Are we doing something wrong here?

thanks
Johan






|             GemStone/S64 Object-Oriented Data Management System             |
|               Copyright (C) GemStone Systems, Inc. 1986-2010                |
|                            All rights reserved.                             |
|     covered by Patent Number 6,567,905 Generational Garbage Collector.      |
+-----------------------------------------------------------------------------+
|    PROGRAM: topaz, Linear GemStone Interface (Linked Session)               |
|    VERSION: 2.4.4.1, Tue Jul 13 15:19:59 2010                               |
|      BUILD: gss64_2_4_4_x_branch-23813                                      |
|  BUILT FOR: Darwin (Apple Macintosh x86)                                    |
|       MODE: 64 bit                                                          |
| RUNNING ON: 2-CPU GuppyBook.local i386 (Darwin 10.4.0 ) 2800MHz MacBookPro5,3
| 2048MB                                                                      |
| PROCESS ID: 25013     DATE: 09/01/10 13:59:43 CEST                          |
|   USER IDS: REAL=akellens (501) EFFECTIVE=akellens (501)                    |
|_____________________________________________________________________________|
topaz> topaz> topaz> topaz> topaz> topaz> topaz> [Info]: LNK client/gem GCI levels = 844/844
[Info]: User ID: DataCurator
[Info]: Repository: seaside
[Info]: Session ID: 6
[Info]: GCI Client Host: <Linked>
[Info]: Page server PID: -1
[Info]: Login Time: 09/01/10 13:59:43.506 CEST
[09/01/10 13:59:43.530 CEST] gci login: currSession 1 rpc gem processId -1
successful login
topaz 1> topaz 1> [223268097 sz:3 cls: 114945 GsFile] a GsFile
 isClient        [2 sz:0 cls: 74241 SmallInteger] 0
 pathName        [223269889 sz:68 cls: 74753 String] /opt/gemstone/product/seaside/data/WAGsSwazooAdaptor_server-8383.pid
 mode            [8332801 sz:1 cls: 74753 String] w

topaz 1> topaz 1> WAGsSwazooAdaptor Server started on port 8383
--transcript--'open: [WAGemStoneWalkbackErrorHandler] [0]: WARemoteDebuggingWalkbackErrorHandler'
-----------------------------------------------------
GemStone: Error         Nonfatal
A hard break was received.
Error Category: 231169 [GemStone] Number: 6004 Arg Count: 1 Context : 509569281
Arg 1: [217957121 sz:33 cls: 74753 String] interrupted for Seaside debugging

Now executing the following command saved from "iferr 1":
  where
==> 1 System class >> signal:args:signalDictionary: @8 line 15   [GsMethod 3747329]
2 GRGemStonePlatform >> generateHardBreak @5 line 7   [GsMethod 217959169]
3 GRGemStonePlatform >> openDebuggerOn: @1 line 3   [GsMethod 125473281]
4 WADebugErrorHandler >> open: @2 line 2   [GsMethod 160341761]
5 WAWalkbackErrorHandler >> open: @5 line 3   [GsMethod 160321281]
6 WAGemStoneWalkbackErrorHandler >> open: @12 line 4   [GsMethod 160591617]
7 WARemoteDebuggingWalkbackErrorHandler >> open: @5 line 3   [GsMethod 528933121]
8 WADebugErrorHandler >> debugAndResume: @1 line 2   [GsMethod 160342017]
9 WADebugErrorHandler >> handleDefault: @1 line 2   [GsMethod 160341505]
10 WAErrorHandler >> handleError: @1 line 2   [GsMethod 127696641]
11 WAErrorHandler >> handleException: @3 line 3   [GsMethod 127696897]
12 WARemoteDebuggingWalkbackErrorHandler >> handleException: @5 line 5   [GsMethod 160242177]
13 ComplexBlock in WAExceptionHandler >> handleExceptionsDuring: @4 line 5   [GsMethod 128378369]
14 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
15 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
16 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
17 ComplexVCBlock in WAExceptionHandler >> handleExceptionsDuring: @7 line 8   [GsMethod 128378369]
18 ExceptionHandler >> caughtExceptionWithAction: @5 line 4   [GsMethod 11786753]
19 ComplexBlock in ExceptionHandler >> caughtEx:number:cat:args:handler: @12 line 13   [GsMethod 11786241]
20 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
21 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
22 ExceptionHandler >> caughtEx:number:cat:args:handler: @16 line 14   [GsMethod 11786241]
23 ComplexBlock in ExceptionHandler >> try:on:do: @10 line 12   [GsMethod 11784705]
24 Exception >> _signal:number:args: @2 line 7   [GsMethod 2340865]
25 System class >> signal:args:signalDictionary: @5 line 13   [GsMethod 3747329]
26 Object >> doesNotUnderstand: @6 line 14   [GsMethod 1908993]
27 Object >> _doesNotUnderstand: @1 line 6   [GsMethod 1887745]
28 NPEditor >> performAction: @8 line 6   [GsMethod 523758081]
29 NPStructureEditor >> changeStartDate:ofNode: @7 line 8   [GsMethod 228521217]
30 ComplexBlock in NPSEDateTimelineNode >> dropScript:on: @26 line 13   [GsMethod 412016129]
31 ComplexBlock in ExecutableBlock >> valueWithPossibleArguments: @12 line 8   [GsMethod 121484289]
32 WAValueCallback >> evaluateWithArgument: @4 line 3   [GsMethod 127080705]
33 WACallback >> evaluateWithFieldValues: @5 line 2   [GsMethod 126600449]
34 ComplexBlock in WACallbackRegistry >> handle: @16 line 10   [GsMethod 126607617]
35 Collection >> do: @5 line 10   [GsMethod 2572801]
36 WACallbackRegistry >> handle: @17 line 9   [GsMethod 126607617]
37 ComplexBlock in WAActionPhaseContinuation >> runCallbacks @7 line 4   [GsMethod 146568449]
38 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
39 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
40 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
41 WARenderLoopContinuation >> withNotificationHandlerDo: @3 line 2   [GsMethod 146246657]
42 ComplexVCBlock in WAActionPhaseContinuation >> runCallbacks @8 line 3   [GsMethod 146568449]
43 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
44 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
45 WAActionPhaseContinuation >> runCallbacks @18 line 6   [GsMethod 146568449]
46 WAActionPhaseContinuation >> handleRequest @1 line 2   [GsMethod 146567937]
47 ComplexBlock in WASessionContinuation >> basicValue @3 line 2   [GsMethod 146579713]
48 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
49 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
50 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
51 WASessionContinuation >> withUnregisteredHandlerDo: @7 line 3   [GsMethod 146580993]
52 WASessionContinuation >> basicValue @4 line 2   [GsMethod 146579713]
53 WASessionContinuation >> value @3 line 5   [GsMethod 146581761]
54 WASession >> handleFiltered: @14 line 10   [GsMethod 146230017]
55 WARequestFilter >> handleFiltered: @2 line 4   [GsMethod 123878401]
56 ComplexBlock in WADeprecatedToolFilter >> handleFiltered: @3 line 2   [GsMethod 160311297]
57 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
58 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
59 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
60 WADeprecatedToolFilter >> handleFiltered: @6 line 3   [GsMethod 160311297]
61 WARequestFilter >> handleFiltered: @2 line 4   [GsMethod 123878401]
62 ComplexBlock in WATimingToolFilter >> handleFiltered: @4 line 3   [GsMethod 160517377]
63 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
64 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
65 WATimingToolFilter >> handleFiltered: @8 line 4   [GsMethod 160517377]
66 ComplexBlock in WARequestHandler >> handle: @4 line 4   [GsMethod 126041089]
67 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
68 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
69 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
70 WADynamicVariable class >> use:during: @4 line 4   [GsMethod 128447489]
71 ComplexBlock in WARequestContext >> push:while: @4 line 5   [GsMethod 124878593]
72 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
73 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
74 WARequestContext >> push:while: @7 line 6   [GsMethod 124878593]
75 WARequestHandler >> handle: @5 line 4   [GsMethod 126041089]
76 WASession >> handle: @10 line 11   [GsMethod 146226689]
77 WARegistry >> dispatch:to: @1 line 5   [GsMethod 127472129]
78 WARegistry >> handleKeyed:with: @2 line 5   [GsMethod 127466753]
79 WARegistry >> handleFiltered: @31 line 19   [GsMethod 127464193]
80 WAApplication >> handleFiltered: @5 line 5   [GsMethod 146593025]
81 WARequestFilter >> handleFiltered: @2 line 4   [GsMethod 123878401]
82 ComplexBlock in WAExceptionFilter >> handleFiltered: @3 line 3   [GsMethod 123456769]
83 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
84 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
85 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
86 WAExceptionHandler >> handleExceptionsDuring: @8 line 3   [GsMethod 128378369]
87 WAExceptionHandler class >> handleExceptionsDuring:context: @2 line 2   [GsMethod 129380865]
88 WAExceptionFilter >> handleFiltered: @4 line 3   [GsMethod 123456769]
89 ComplexBlock in WARequestHandler >> handle: @4 line 4   [GsMethod 126041089]
90 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
91 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
92 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
93 WADynamicVariable class >> use:during: @4 line 4   [GsMethod 128447489]
94 ComplexBlock in WARequestContext >> push:while: @4 line 5   [GsMethod 124878593]
95 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
96 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
97 WARequestContext >> push:while: @7 line 6   [GsMethod 124878593]
98 WARequestHandler >> handle: @5 line 4   [GsMethod 126041089]
99 WADispatcher >> handleFiltered:named: @7 line 5   [GsMethod 126645505]
100 WADispatcher >> handleFiltered: @7 line 6   [GsMethod 126642945]
101 ComplexBlock in WARequestHandler >> handle: @4 line 4   [GsMethod 126041089]
102 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
103 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
104 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
105 WADynamicVariable class >> use:during: @4 line 4   [GsMethod 128447489]
106 ComplexBlock in WARequestContext >> push:while: @4 line 5   [GsMethod 124878593]
107 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
108 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
109 WARequestContext >> push:while: @7 line 6   [GsMethod 124878593]
110 WARequestHandler >> handle: @5 line 4   [GsMethod 126041089]
111 ComplexBlock in WAServerAdaptor >> handleRequest: @4 line 4   [GsMethod 124014081]
112 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
113 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
114 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
115 WAServerAdaptor >> handleRequest: @6 line 5   [GsMethod 124014081]
116 WAServerAdaptor >> handle: @1 line 4   [GsMethod 124020993]
117 ComplexBlock in WAServerAdaptor >> process: @5 line 6   [GsMethod 124013569]
118 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
119 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
120 WAServerAdaptor >> process: @9 line 7   [GsMethod 124013569]
121 ComplexBlock in WAGsSwazooAdaptor >> process: @3 line 6   [GsMethod 156453889]
122 ComplexBlock in GRGemStonePlatform >> seasideProcessRequestWithRetry:resultBlock: @12 line 11   [GsMethod 80458241]
123 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
124 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
125 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
126 ComplexVCBlock in GRGemStonePlatform >> seasideProcessRequestWithRetry:resultBlock: @18 line 12   [GsMethod 80458241]
127 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
128 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
129 TransientRecursionLock >> critical: @15 line 8   [GsMethod 21391617]
130 GRGemStonePlatform >> seasideProcessRequestWithRetry:resultBlock: @43 line 5   [GsMethod 80458241]
131 ComplexBlock in GRGemStonePlatform >> seasideProcessRequest:adaptor:resultBlock: @7 line 9   [GsMethod 80458497]
132 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
133 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
134 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
135 GRGemStonePlatform >> seasideProcessRequest:adaptor:resultBlock: @32 line 17   [GsMethod 80458497]
136 WAGsSwazooAdaptor >> process: @4 line 4   [GsMethod 156453889]
137 WAPluggableSite >> answerTo: @2 line 2   [GsMethod 146657793]
138 WAPluggableSite >> helpResolve: @7 line 3   [GsMethod 146657281]
139 URIResolution >> visitResource: @1 line 2   [GsMethod 126076417]
140 ComplexBlock in URIResolution >> visitChildrenOf:advancing: @10 line 7   [GsMethod 126077697]
141 Collection >> do: @5 line 10   [GsMethod 2572801]
142 URIResolution >> visitChildrenOf:advancing: @15 line 5   [GsMethod 126077697]
143 URIResolution >> resolveTransparentComposite: @2 line 2   [GsMethod 126078209]
144 URIResolution >> resolveServerRoot: @1 line 2   [GsMethod 126076673]
145 ServerRootComposite >> helpResolve: @1 line 2   [GsMethod 127188225]
146 URIResolution >> visitResource: @1 line 2   [GsMethod 126076417]
147 URIResolution class >> resolveRequest:startingAt: @3 line 2   [GsMethod 128977921]
148 HTTPServer >> answerTo: @3 line 3   [GsMethod 127062017]
149 ComplexBlock in HTTPConnection >> produceResponseFor: @9 line 5   [GsMethod 124766977]
150 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
151 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
152 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
153 HTTPConnection >> produceResponseFor: @23 line 6   [GsMethod 124766977]
154 HTTPConnection >> getAndDispatchMessages @9 line 9   [GsMethod 124768001]
155 ComplexBlock in HTTPConnection >> interact @7 line 6   [GsMethod 124768257]
156 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
157 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
158 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
159 ComplexVCBlock in HTTPConnection >> interact @12 line 9   [GsMethod 124768257]
160 ComplexBlock in ExecutableBlock >> ifCurtailed: @4 line 6   [GsMethod 121482497]
161 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
162 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
163 ComplexVCBlock in ExecutableBlock >> ifCurtailed: @8 line 8   [GsMethod 121482497]
164 ComplexVCBlock in HTTPConnection >> interact @19 line 13   [GsMethod 124768257]
165 HTTPConnection >> interact @26 line 18   [GsMethod 124768257]
166 HTTPServer >> acceptConnection @15 line 11   [GsMethod 127059201]
167 ComplexBlock in HTTPServer >> start @13 line 6   [GsMethod 127061761]
168 ComplexBlock in BlockClosure >> repeat @3 line 5   [GsMethod 17930241]
169 ComplexVCBlock in HTTPServer >> start @14 line 6   [GsMethod 127061761]
170 GsProcess >> _startPart2 @15 line 17   [GsMethod 4498177]
171 GsProcess >> _start @1 line 9   [GsMethod 4502785]
 [GsProcess 509569281]
topaz 1> [268 sz:0 cls: 68097 Boolean] true
topaz 1>
[Info]: Logging out at 09/01/10 14:00:09 CEST
        Starting maintenance gem
Reply | Threaded
Open this post in threaded view
|

Re: error in xml-httprequest

Dale Henrichs
Johan,

With the WARemoteDebuggingWalkbackErrorHandler (part of the
WAWalkbackErrorHandler family), the idea is that when you get an error,
you will throw up a page with a stack trace and give the browser user a
chance to proceed or debug ... this all works well for errors that occur
while handling html-based requests.

Ajax requests are xml-based requests and the default Seaside handling is
different ... instead of returning an html repsonse (with a remote debug
action embedded), a debugger is opened directly... not a cool thing to
do in GemStone as it crashes the vm...

I've attached a new version WARemoteDebuggingWalkbackErrorHandler>>open:
that snaps off a continuation and responds with an HTTP internal error
(500), which I assume should be workable ...

Let me know how this works for you. I'll need to make sure that the Ajax
requests are handled correctly in the other error handlers for GemStone.

This is being tracked as Issue 170
(http://code.google.com/p/glassdb/issues/detail?id=170).

Thanks for the report,

Dale

Johan Brichau wrote:

> Hi,
>
> To debug our application I use the SwazooAdaptor that gets started via the runSeasideGems30 script.
> When I encounter an error during rendering/regular callbacks, all works fine and I can remotely debug the application via GemTools.
> However, when the error occurs in an AJAX request, the Seaside gem is terminated and I can't remotely debug the error.
> Below is the output generated by the topaz session running the Seaside gem.
>
> A first inspection of the source code of the remote debugging walkback seems to reveal that in case an xml request is processed, the regular debugging facilities are invoked (GRPlatform openDebugger:) which seems to fail for AJAX requests.
>
> Are we doing something wrong here?
>
> thanks
> Johan
>
>
>
>
>
>
> |             GemStone/S64 Object-Oriented Data Management System             |
> |               Copyright (C) GemStone Systems, Inc. 1986-2010                |
> |                            All rights reserved.                             |
> |     covered by Patent Number 6,567,905 Generational Garbage Collector.      |
> +-----------------------------------------------------------------------------+
> |    PROGRAM: topaz, Linear GemStone Interface (Linked Session)               |
> |    VERSION: 2.4.4.1, Tue Jul 13 15:19:59 2010                               |
> |      BUILD: gss64_2_4_4_x_branch-23813                                      |
> |  BUILT FOR: Darwin (Apple Macintosh x86)                                    |
> |       MODE: 64 bit                                                          |
> | RUNNING ON: 2-CPU GuppyBook.local i386 (Darwin 10.4.0 ) 2800MHz MacBookPro5,3
> | 2048MB                                                                      |
> | PROCESS ID: 25013     DATE: 09/01/10 13:59:43 CEST                          |
> |   USER IDS: REAL=akellens (501) EFFECTIVE=akellens (501)                    |
> |_____________________________________________________________________________|
> topaz> topaz> topaz> topaz> topaz> topaz> topaz> [Info]: LNK client/gem GCI levels = 844/844
> [Info]: User ID: DataCurator
> [Info]: Repository: seaside
> [Info]: Session ID: 6
> [Info]: GCI Client Host: <Linked>
> [Info]: Page server PID: -1
> [Info]: Login Time: 09/01/10 13:59:43.506 CEST
> [09/01/10 13:59:43.530 CEST] gci login: currSession 1 rpc gem processId -1
> successful login
> topaz 1> topaz 1> [223268097 sz:3 cls: 114945 GsFile] a GsFile
>  isClient        [2 sz:0 cls: 74241 SmallInteger] 0
>  pathName        [223269889 sz:68 cls: 74753 String] /opt/gemstone/product/seaside/data/WAGsSwazooAdaptor_server-8383.pid
>  mode            [8332801 sz:1 cls: 74753 String] w
>
> topaz 1> topaz 1> WAGsSwazooAdaptor Server started on port 8383
> --transcript--'open: [WAGemStoneWalkbackErrorHandler] [0]: WARemoteDebuggingWalkbackErrorHandler'
> -----------------------------------------------------
> GemStone: Error         Nonfatal
> A hard break was received.
> Error Category: 231169 [GemStone] Number: 6004 Arg Count: 1 Context : 509569281
> Arg 1: [217957121 sz:33 cls: 74753 String] interrupted for Seaside debugging
>
> Now executing the following command saved from "iferr 1":
>   where
> ==> 1 System class >> signal:args:signalDictionary: @8 line 15   [GsMethod 3747329]
> 2 GRGemStonePlatform >> generateHardBreak @5 line 7   [GsMethod 217959169]
> 3 GRGemStonePlatform >> openDebuggerOn: @1 line 3   [GsMethod 125473281]
> 4 WADebugErrorHandler >> open: @2 line 2   [GsMethod 160341761]
> 5 WAWalkbackErrorHandler >> open: @5 line 3   [GsMethod 160321281]
> 6 WAGemStoneWalkbackErrorHandler >> open: @12 line 4   [GsMethod 160591617]
> 7 WARemoteDebuggingWalkbackErrorHandler >> open: @5 line 3   [GsMethod 528933121]
> 8 WADebugErrorHandler >> debugAndResume: @1 line 2   [GsMethod 160342017]
> 9 WADebugErrorHandler >> handleDefault: @1 line 2   [GsMethod 160341505]
> 10 WAErrorHandler >> handleError: @1 line 2   [GsMethod 127696641]
> 11 WAErrorHandler >> handleException: @3 line 3   [GsMethod 127696897]
> 12 WARemoteDebuggingWalkbackErrorHandler >> handleException: @5 line 5   [GsMethod 160242177]
> 13 ComplexBlock in WAExceptionHandler >> handleExceptionsDuring: @4 line 5   [GsMethod 128378369]
> 14 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
> 15 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
> 16 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
> 17 ComplexVCBlock in WAExceptionHandler >> handleExceptionsDuring: @7 line 8   [GsMethod 128378369]
> 18 ExceptionHandler >> caughtExceptionWithAction: @5 line 4   [GsMethod 11786753]
> 19 ComplexBlock in ExceptionHandler >> caughtEx:number:cat:args:handler: @12 line 13   [GsMethod 11786241]
> 20 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
> 21 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
> 22 ExceptionHandler >> caughtEx:number:cat:args:handler: @16 line 14   [GsMethod 11786241]
> 23 ComplexBlock in ExceptionHandler >> try:on:do: @10 line 12   [GsMethod 11784705]
> 24 Exception >> _signal:number:args: @2 line 7   [GsMethod 2340865]
> 25 System class >> signal:args:signalDictionary: @5 line 13   [GsMethod 3747329]
> 26 Object >> doesNotUnderstand: @6 line 14   [GsMethod 1908993]
> 27 Object >> _doesNotUnderstand: @1 line 6   [GsMethod 1887745]
> 28 NPEditor >> performAction: @8 line 6   [GsMethod 523758081]
> 29 NPStructureEditor >> changeStartDate:ofNode: @7 line 8   [GsMethod 228521217]
> 30 ComplexBlock in NPSEDateTimelineNode >> dropScript:on: @26 line 13   [GsMethod 412016129]
> 31 ComplexBlock in ExecutableBlock >> valueWithPossibleArguments: @12 line 8   [GsMethod 121484289]
> 32 WAValueCallback >> evaluateWithArgument: @4 line 3   [GsMethod 127080705]
> 33 WACallback >> evaluateWithFieldValues: @5 line 2   [GsMethod 126600449]
> 34 ComplexBlock in WACallbackRegistry >> handle: @16 line 10   [GsMethod 126607617]
> 35 Collection >> do: @5 line 10   [GsMethod 2572801]
> 36 WACallbackRegistry >> handle: @17 line 9   [GsMethod 126607617]
> 37 ComplexBlock in WAActionPhaseContinuation >> runCallbacks @7 line 4   [GsMethod 146568449]
> 38 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
> 39 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
> 40 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
> 41 WARenderLoopContinuation >> withNotificationHandlerDo: @3 line 2   [GsMethod 146246657]
> 42 ComplexVCBlock in WAActionPhaseContinuation >> runCallbacks @8 line 3   [GsMethod 146568449]
> 43 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
> 44 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
> 45 WAActionPhaseContinuation >> runCallbacks @18 line 6   [GsMethod 146568449]
> 46 WAActionPhaseContinuation >> handleRequest @1 line 2   [GsMethod 146567937]
> 47 ComplexBlock in WASessionContinuation >> basicValue @3 line 2   [GsMethod 146579713]
> 48 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
> 49 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
> 50 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
> 51 WASessionContinuation >> withUnregisteredHandlerDo: @7 line 3   [GsMethod 146580993]
> 52 WASessionContinuation >> basicValue @4 line 2   [GsMethod 146579713]
> 53 WASessionContinuation >> value @3 line 5   [GsMethod 146581761]
> 54 WASession >> handleFiltered: @14 line 10   [GsMethod 146230017]
> 55 WARequestFilter >> handleFiltered: @2 line 4   [GsMethod 123878401]
> 56 ComplexBlock in WADeprecatedToolFilter >> handleFiltered: @3 line 2   [GsMethod 160311297]
> 57 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
> 58 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
> 59 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
> 60 WADeprecatedToolFilter >> handleFiltered: @6 line 3   [GsMethod 160311297]
> 61 WARequestFilter >> handleFiltered: @2 line 4   [GsMethod 123878401]
> 62 ComplexBlock in WATimingToolFilter >> handleFiltered: @4 line 3   [GsMethod 160517377]
> 63 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
> 64 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
> 65 WATimingToolFilter >> handleFiltered: @8 line 4   [GsMethod 160517377]
> 66 ComplexBlock in WARequestHandler >> handle: @4 line 4   [GsMethod 126041089]
> 67 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
> 68 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
> 69 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
> 70 WADynamicVariable class >> use:during: @4 line 4   [GsMethod 128447489]
> 71 ComplexBlock in WARequestContext >> push:while: @4 line 5   [GsMethod 124878593]
> 72 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
> 73 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
> 74 WARequestContext >> push:while: @7 line 6   [GsMethod 124878593]
> 75 WARequestHandler >> handle: @5 line 4   [GsMethod 126041089]
> 76 WASession >> handle: @10 line 11   [GsMethod 146226689]
> 77 WARegistry >> dispatch:to: @1 line 5   [GsMethod 127472129]
> 78 WARegistry >> handleKeyed:with: @2 line 5   [GsMethod 127466753]
> 79 WARegistry >> handleFiltered: @31 line 19   [GsMethod 127464193]
> 80 WAApplication >> handleFiltered: @5 line 5   [GsMethod 146593025]
> 81 WARequestFilter >> handleFiltered: @2 line 4   [GsMethod 123878401]
> 82 ComplexBlock in WAExceptionFilter >> handleFiltered: @3 line 3   [GsMethod 123456769]
> 83 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
> 84 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
> 85 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
> 86 WAExceptionHandler >> handleExceptionsDuring: @8 line 3   [GsMethod 128378369]
> 87 WAExceptionHandler class >> handleExceptionsDuring:context: @2 line 2   [GsMethod 129380865]
> 88 WAExceptionFilter >> handleFiltered: @4 line 3   [GsMethod 123456769]
> 89 ComplexBlock in WARequestHandler >> handle: @4 line 4   [GsMethod 126041089]
> 90 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
> 91 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
> 92 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
> 93 WADynamicVariable class >> use:during: @4 line 4   [GsMethod 128447489]
> 94 ComplexBlock in WARequestContext >> push:while: @4 line 5   [GsMethod 124878593]
> 95 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
> 96 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
> 97 WARequestContext >> push:while: @7 line 6   [GsMethod 124878593]
> 98 WARequestHandler >> handle: @5 line 4   [GsMethod 126041089]
> 99 WADispatcher >> handleFiltered:named: @7 line 5   [GsMethod 126645505]
> 100 WADispatcher >> handleFiltered: @7 line 6   [GsMethod 126642945]
> 101 ComplexBlock in WARequestHandler >> handle: @4 line 4   [GsMethod 126041089]
> 102 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
> 103 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
> 104 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
> 105 WADynamicVariable class >> use:during: @4 line 4   [GsMethod 128447489]
> 106 ComplexBlock in WARequestContext >> push:while: @4 line 5   [GsMethod 124878593]
> 107 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
> 108 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
> 109 WARequestContext >> push:while: @7 line 6   [GsMethod 124878593]
> 110 WARequestHandler >> handle: @5 line 4   [GsMethod 126041089]
> 111 ComplexBlock in WAServerAdaptor >> handleRequest: @4 line 4   [GsMethod 124014081]
> 112 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
> 113 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
> 114 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
> 115 WAServerAdaptor >> handleRequest: @6 line 5   [GsMethod 124014081]
> 116 WAServerAdaptor >> handle: @1 line 4   [GsMethod 124020993]
> 117 ComplexBlock in WAServerAdaptor >> process: @5 line 6   [GsMethod 124013569]
> 118 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
> 119 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
> 120 WAServerAdaptor >> process: @9 line 7   [GsMethod 124013569]
> 121 ComplexBlock in WAGsSwazooAdaptor >> process: @3 line 6   [GsMethod 156453889]
> 122 ComplexBlock in GRGemStonePlatform >> seasideProcessRequestWithRetry:resultBlock: @12 line 11   [GsMethod 80458241]
> 123 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
> 124 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
> 125 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
> 126 ComplexVCBlock in GRGemStonePlatform >> seasideProcessRequestWithRetry:resultBlock: @18 line 12   [GsMethod 80458241]
> 127 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
> 128 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
> 129 TransientRecursionLock >> critical: @15 line 8   [GsMethod 21391617]
> 130 GRGemStonePlatform >> seasideProcessRequestWithRetry:resultBlock: @43 line 5   [GsMethod 80458241]
> 131 ComplexBlock in GRGemStonePlatform >> seasideProcessRequest:adaptor:resultBlock: @7 line 9   [GsMethod 80458497]
> 132 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
> 133 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
> 134 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
> 135 GRGemStonePlatform >> seasideProcessRequest:adaptor:resultBlock: @32 line 17   [GsMethod 80458497]
> 136 WAGsSwazooAdaptor >> process: @4 line 4   [GsMethod 156453889]
> 137 WAPluggableSite >> answerTo: @2 line 2   [GsMethod 146657793]
> 138 WAPluggableSite >> helpResolve: @7 line 3   [GsMethod 146657281]
> 139 URIResolution >> visitResource: @1 line 2   [GsMethod 126076417]
> 140 ComplexBlock in URIResolution >> visitChildrenOf:advancing: @10 line 7   [GsMethod 126077697]
> 141 Collection >> do: @5 line 10   [GsMethod 2572801]
> 142 URIResolution >> visitChildrenOf:advancing: @15 line 5   [GsMethod 126077697]
> 143 URIResolution >> resolveTransparentComposite: @2 line 2   [GsMethod 126078209]
> 144 URIResolution >> resolveServerRoot: @1 line 2   [GsMethod 126076673]
> 145 ServerRootComposite >> helpResolve: @1 line 2   [GsMethod 127188225]
> 146 URIResolution >> visitResource: @1 line 2   [GsMethod 126076417]
> 147 URIResolution class >> resolveRequest:startingAt: @3 line 2   [GsMethod 128977921]
> 148 HTTPServer >> answerTo: @3 line 3   [GsMethod 127062017]
> 149 ComplexBlock in HTTPConnection >> produceResponseFor: @9 line 5   [GsMethod 124766977]
> 150 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
> 151 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
> 152 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
> 153 HTTPConnection >> produceResponseFor: @23 line 6   [GsMethod 124766977]
> 154 HTTPConnection >> getAndDispatchMessages @9 line 9   [GsMethod 124768001]
> 155 ComplexBlock in HTTPConnection >> interact @7 line 6   [GsMethod 124768257]
> 156 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
> 157 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
> 158 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
> 159 ComplexVCBlock in HTTPConnection >> interact @12 line 9   [GsMethod 124768257]
> 160 ComplexBlock in ExecutableBlock >> ifCurtailed: @4 line 6   [GsMethod 121482497]
> 161 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
> 162 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
> 163 ComplexVCBlock in ExecutableBlock >> ifCurtailed: @8 line 8   [GsMethod 121482497]
> 164 ComplexVCBlock in HTTPConnection >> interact @19 line 13   [GsMethod 124768257]
> 165 HTTPConnection >> interact @26 line 18   [GsMethod 124768257]
> 166 HTTPServer >> acceptConnection @15 line 11   [GsMethod 127059201]
> 167 ComplexBlock in HTTPServer >> start @13 line 6   [GsMethod 127061761]
> 168 ComplexBlock in BlockClosure >> repeat @3 line 5   [GsMethod 17930241]
> 169 ComplexVCBlock in HTTPServer >> start @14 line 6   [GsMethod 127061761]
> 170 GsProcess >> _startPart2 @15 line 17   [GsMethod 4498177]
> 171 GsProcess >> _start @1 line 9   [GsMethod 4502785]
>  [GsProcess 509569281]
> topaz 1> [268 sz:0 cls: 68097 Boolean] true
> topaz 1>
> [Info]: Logging out at 09/01/10 14:00:09 CEST
>         Starting maintenance gem

category: 'private'
method: WARemoteDebuggingWalkbackErrorHandler
open: anException
        | continuation action |
        false "GRPlatform current canDebugInteractively"
                ifTrue: [
                        (anException isKindOf: Error)
                                ifFalse: [
                                        "Halt or BreakpointNotification ... see WASession>>withErrorHandler"
                                        anException pass ].
                        ^super open: anException].
        action := [:cont | continuation := cont. #create ] callCC.
        action == #create
                ifTrue: [  | wb |
                        "If an error occurs trying to display the walkback component, we just use the super
                        behaviour, which should be to open a debugger.."
                        [ self session isNil ifFalse: [
                                WACurrentRequestContext value forDebugging: true.
                                wb := self walkbackClass exception: anException continuation: continuation.
                                self requestContext request isXmlHttpRequest
                                        ifTrue: [
                                                wb addContinuation.
                                                (self requestContext responseGenerator internalError: anException) respond ]
                                        ifFalse: [ self session presenter call: wb ].
                                "Exception handlers hold the request context because they are used in places where
                                 the dynamic variable is not present. Since this particular class depends on RenderLoop,
                  however, it will be present and we need to update the stored value after doing a call."
                                requestContext := WACurrentRequestContext value ] ]
                                        on: Error
                                        do: [ :err |
                                                Transcript cr; show: 'Error creating WAWalkback: ', err description.
                                                "error depends upon whether we're using #call:onAnswer: or #call:"
                                                ((err isKindOf: WAUnhandledNotificationError) or: [ err isKindOf: WAGsInvalidCallbackContext ])
                                                        ifTrue: [
                                                                wb applicationDeployed
                                                                        ifFalse: [ wb addContinuation ].
                                                                ^self handleRenderingError: anException inProduction: wb applicationDeployed ]].
                        ^self].
        action == #debug
                ifTrue: [ | meth |
                        meth := self class lookupSelector: #remoteBreakpointMethod.
                        meth setBreakAtStepPoint: 1.
                        self remoteBreakpointMethod ].
%
Reply | Threaded
Open this post in threaded view
|

Re: error in xml-httprequest

Johan Brichau-2
Hi Dale,

That works like a charm now. Thanks for this swift bugfixing!
We were not sure if we were just particularly good at writing bugs in our callbacks or if we still did not get how to run Gemstone. Seems it was only the first case ;-)

cheers,
Johan

On 01 Sep 2010, at 21:15, Dale Henrichs wrote:

> Johan,
>
> With the WARemoteDebuggingWalkbackErrorHandler (part of the WAWalkbackErrorHandler family), the idea is that when you get an error, you will throw up a page with a stack trace and give the browser user a chance to proceed or debug ... this all works well for errors that occur while handling html-based requests.
>
> Ajax requests are xml-based requests and the default Seaside handling is different ... instead of returning an html repsonse (with a remote debug action embedded), a debugger is opened directly... not a cool thing to do in GemStone as it crashes the vm...
>
> I've attached a new version WARemoteDebuggingWalkbackErrorHandler>>open: that snaps off a continuation and responds with an HTTP internal error (500), which I assume should be workable ...
>
> Let me know how this works for you. I'll need to make sure that the Ajax requests are handled correctly in the other error handlers for GemStone.
>
> This is being tracked as Issue 170 (http://code.google.com/p/glassdb/issues/detail?id=170).
>
> Thanks for the report,
>
> Dale
>
> Johan Brichau wrote:
>> Hi,
>> To debug our application I use the SwazooAdaptor that gets started via the runSeasideGems30 script.
>> When I encounter an error during rendering/regular callbacks, all works fine and I can remotely debug the application via GemTools.
>> However, when the error occurs in an AJAX request, the Seaside gem is terminated and I can't remotely debug the error.
>> Below is the output generated by the topaz session running the Seaside gem.
>> A first inspection of the source code of the remote debugging walkback seems to reveal that in case an xml request is processed, the regular debugging facilities are invoked (GRPlatform openDebugger:) which seems to fail for AJAX requests.
>> Are we doing something wrong here?
>> thanks
>> Johan
>> |             GemStone/S64 Object-Oriented Data Management System             |
>> |               Copyright (C) GemStone Systems, Inc. 1986-2010                |
>> |                            All rights reserved.                             |
>> |     covered by Patent Number 6,567,905 Generational Garbage Collector.      |
>> +-----------------------------------------------------------------------------+
>> |    PROGRAM: topaz, Linear GemStone Interface (Linked Session)               |
>> |    VERSION: 2.4.4.1, Tue Jul 13 15:19:59 2010                               |
>> |      BUILD: gss64_2_4_4_x_branch-23813                                      |
>> |  BUILT FOR: Darwin (Apple Macintosh x86)                                    |
>> |       MODE: 64 bit                                                          |
>> | RUNNING ON: 2-CPU GuppyBook.local i386 (Darwin 10.4.0 ) 2800MHz MacBookPro5,3
>> | 2048MB                                                                      |
>> | PROCESS ID: 25013     DATE: 09/01/10 13:59:43 CEST                          |
>> |   USER IDS: REAL=akellens (501) EFFECTIVE=akellens (501)                    |
>> |_____________________________________________________________________________|
>> topaz> topaz> topaz> topaz> topaz> topaz> topaz> [Info]: LNK client/gem GCI levels = 844/844
>> [Info]: User ID: DataCurator
>> [Info]: Repository: seaside
>> [Info]: Session ID: 6
>> [Info]: GCI Client Host: <Linked>
>> [Info]: Page server PID: -1
>> [Info]: Login Time: 09/01/10 13:59:43.506 CEST
>> [09/01/10 13:59:43.530 CEST] gci login: currSession 1 rpc gem processId -1
>> successful login
>> topaz 1> topaz 1> [223268097 sz:3 cls: 114945 GsFile] a GsFile
>> isClient        [2 sz:0 cls: 74241 SmallInteger] 0
>> pathName        [223269889 sz:68 cls: 74753 String] /opt/gemstone/product/seaside/data/WAGsSwazooAdaptor_server-8383.pid
>> mode            [8332801 sz:1 cls: 74753 String] w
>> topaz 1> topaz 1> WAGsSwazooAdaptor Server started on port 8383
>> --transcript--'open: [WAGemStoneWalkbackErrorHandler] [0]: WARemoteDebuggingWalkbackErrorHandler'
>> -----------------------------------------------------
>> GemStone: Error         Nonfatal
>> A hard break was received.
>> Error Category: 231169 [GemStone] Number: 6004 Arg Count: 1 Context : 509569281
>> Arg 1: [217957121 sz:33 cls: 74753 String] interrupted for Seaside debugging
>> Now executing the following command saved from "iferr 1":
>>  where
>> ==> 1 System class >> signal:args:signalDictionary: @8 line 15   [GsMethod 3747329]
>> 2 GRGemStonePlatform >> generateHardBreak @5 line 7   [GsMethod 217959169]
>> 3 GRGemStonePlatform >> openDebuggerOn: @1 line 3   [GsMethod 125473281]
>> 4 WADebugErrorHandler >> open: @2 line 2   [GsMethod 160341761]
>> 5 WAWalkbackErrorHandler >> open: @5 line 3   [GsMethod 160321281]
>> 6 WAGemStoneWalkbackErrorHandler >> open: @12 line 4   [GsMethod 160591617]
>> 7 WARemoteDebuggingWalkbackErrorHandler >> open: @5 line 3   [GsMethod 528933121]
>> 8 WADebugErrorHandler >> debugAndResume: @1 line 2   [GsMethod 160342017]
>> 9 WADebugErrorHandler >> handleDefault: @1 line 2   [GsMethod 160341505]
>> 10 WAErrorHandler >> handleError: @1 line 2   [GsMethod 127696641]
>> 11 WAErrorHandler >> handleException: @3 line 3   [GsMethod 127696897]
>> 12 WARemoteDebuggingWalkbackErrorHandler >> handleException: @5 line 5   [GsMethod 160242177]
>> 13 ComplexBlock in WAExceptionHandler >> handleExceptionsDuring: @4 line 5   [GsMethod 128378369]
>> 14 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>> 15 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>> 16 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>> 17 ComplexVCBlock in WAExceptionHandler >> handleExceptionsDuring: @7 line 8   [GsMethod 128378369]
>> 18 ExceptionHandler >> caughtExceptionWithAction: @5 line 4   [GsMethod 11786753]
>> 19 ComplexBlock in ExceptionHandler >> caughtEx:number:cat:args:handler: @12 line 13   [GsMethod 11786241]
>> 20 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
>> 21 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
>> 22 ExceptionHandler >> caughtEx:number:cat:args:handler: @16 line 14   [GsMethod 11786241]
>> 23 ComplexBlock in ExceptionHandler >> try:on:do: @10 line 12   [GsMethod 11784705]
>> 24 Exception >> _signal:number:args: @2 line 7   [GsMethod 2340865]
>> 25 System class >> signal:args:signalDictionary: @5 line 13   [GsMethod 3747329]
>> 26 Object >> doesNotUnderstand: @6 line 14   [GsMethod 1908993]
>> 27 Object >> _doesNotUnderstand: @1 line 6   [GsMethod 1887745]
>> 28 NPEditor >> performAction: @8 line 6   [GsMethod 523758081]
>> 29 NPStructureEditor >> changeStartDate:ofNode: @7 line 8   [GsMethod 228521217]
>> 30 ComplexBlock in NPSEDateTimelineNode >> dropScript:on: @26 line 13   [GsMethod 412016129]
>> 31 ComplexBlock in ExecutableBlock >> valueWithPossibleArguments: @12 line 8   [GsMethod 121484289]
>> 32 WAValueCallback >> evaluateWithArgument: @4 line 3   [GsMethod 127080705]
>> 33 WACallback >> evaluateWithFieldValues: @5 line 2   [GsMethod 126600449]
>> 34 ComplexBlock in WACallbackRegistry >> handle: @16 line 10   [GsMethod 126607617]
>> 35 Collection >> do: @5 line 10   [GsMethod 2572801]
>> 36 WACallbackRegistry >> handle: @17 line 9   [GsMethod 126607617]
>> 37 ComplexBlock in WAActionPhaseContinuation >> runCallbacks @7 line 4   [GsMethod 146568449]
>> 38 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>> 39 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>> 40 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>> 41 WARenderLoopContinuation >> withNotificationHandlerDo: @3 line 2   [GsMethod 146246657]
>> 42 ComplexVCBlock in WAActionPhaseContinuation >> runCallbacks @8 line 3   [GsMethod 146568449]
>> 43 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
>> 44 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
>> 45 WAActionPhaseContinuation >> runCallbacks @18 line 6   [GsMethod 146568449]
>> 46 WAActionPhaseContinuation >> handleRequest @1 line 2   [GsMethod 146567937]
>> 47 ComplexBlock in WASessionContinuation >> basicValue @3 line 2   [GsMethod 146579713]
>> 48 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>> 49 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>> 50 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>> 51 WASessionContinuation >> withUnregisteredHandlerDo: @7 line 3   [GsMethod 146580993]
>> 52 WASessionContinuation >> basicValue @4 line 2   [GsMethod 146579713]
>> 53 WASessionContinuation >> value @3 line 5   [GsMethod 146581761]
>> 54 WASession >> handleFiltered: @14 line 10   [GsMethod 146230017]
>> 55 WARequestFilter >> handleFiltered: @2 line 4   [GsMethod 123878401]
>> 56 ComplexBlock in WADeprecatedToolFilter >> handleFiltered: @3 line 2   [GsMethod 160311297]
>> 57 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>> 58 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>> 59 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>> 60 WADeprecatedToolFilter >> handleFiltered: @6 line 3   [GsMethod 160311297]
>> 61 WARequestFilter >> handleFiltered: @2 line 4   [GsMethod 123878401]
>> 62 ComplexBlock in WATimingToolFilter >> handleFiltered: @4 line 3   [GsMethod 160517377]
>> 63 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
>> 64 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
>> 65 WATimingToolFilter >> handleFiltered: @8 line 4   [GsMethod 160517377]
>> 66 ComplexBlock in WARequestHandler >> handle: @4 line 4   [GsMethod 126041089]
>> 67 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>> 68 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>> 69 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>> 70 WADynamicVariable class >> use:during: @4 line 4   [GsMethod 128447489]
>> 71 ComplexBlock in WARequestContext >> push:while: @4 line 5   [GsMethod 124878593]
>> 72 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
>> 73 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
>> 74 WARequestContext >> push:while: @7 line 6   [GsMethod 124878593]
>> 75 WARequestHandler >> handle: @5 line 4   [GsMethod 126041089]
>> 76 WASession >> handle: @10 line 11   [GsMethod 146226689]
>> 77 WARegistry >> dispatch:to: @1 line 5   [GsMethod 127472129]
>> 78 WARegistry >> handleKeyed:with: @2 line 5   [GsMethod 127466753]
>> 79 WARegistry >> handleFiltered: @31 line 19   [GsMethod 127464193]
>> 80 WAApplication >> handleFiltered: @5 line 5   [GsMethod 146593025]
>> 81 WARequestFilter >> handleFiltered: @2 line 4   [GsMethod 123878401]
>> 82 ComplexBlock in WAExceptionFilter >> handleFiltered: @3 line 3   [GsMethod 123456769]
>> 83 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>> 84 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>> 85 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>> 86 WAExceptionHandler >> handleExceptionsDuring: @8 line 3   [GsMethod 128378369]
>> 87 WAExceptionHandler class >> handleExceptionsDuring:context: @2 line 2   [GsMethod 129380865]
>> 88 WAExceptionFilter >> handleFiltered: @4 line 3   [GsMethod 123456769]
>> 89 ComplexBlock in WARequestHandler >> handle: @4 line 4   [GsMethod 126041089]
>> 90 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>> 91 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>> 92 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>> 93 WADynamicVariable class >> use:during: @4 line 4   [GsMethod 128447489]
>> 94 ComplexBlock in WARequestContext >> push:while: @4 line 5   [GsMethod 124878593]
>> 95 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
>> 96 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
>> 97 WARequestContext >> push:while: @7 line 6   [GsMethod 124878593]
>> 98 WARequestHandler >> handle: @5 line 4   [GsMethod 126041089]
>> 99 WADispatcher >> handleFiltered:named: @7 line 5   [GsMethod 126645505]
>> 100 WADispatcher >> handleFiltered: @7 line 6   [GsMethod 126642945]
>> 101 ComplexBlock in WARequestHandler >> handle: @4 line 4   [GsMethod 126041089]
>> 102 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>> 103 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>> 104 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>> 105 WADynamicVariable class >> use:during: @4 line 4   [GsMethod 128447489]
>> 106 ComplexBlock in WARequestContext >> push:while: @4 line 5   [GsMethod 124878593]
>> 107 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
>> 108 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
>> 109 WARequestContext >> push:while: @7 line 6   [GsMethod 124878593]
>> 110 WARequestHandler >> handle: @5 line 4   [GsMethod 126041089]
>> 111 ComplexBlock in WAServerAdaptor >> handleRequest: @4 line 4   [GsMethod 124014081]
>> 112 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>> 113 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>> 114 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>> 115 WAServerAdaptor >> handleRequest: @6 line 5   [GsMethod 124014081]
>> 116 WAServerAdaptor >> handle: @1 line 4   [GsMethod 124020993]
>> 117 ComplexBlock in WAServerAdaptor >> process: @5 line 6   [GsMethod 124013569]
>> 118 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
>> 119 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
>> 120 WAServerAdaptor >> process: @9 line 7   [GsMethod 124013569]
>> 121 ComplexBlock in WAGsSwazooAdaptor >> process: @3 line 6   [GsMethod 156453889]
>> 122 ComplexBlock in GRGemStonePlatform >> seasideProcessRequestWithRetry:resultBlock: @12 line 11   [GsMethod 80458241]
>> 123 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>> 124 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>> 125 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>> 126 ComplexVCBlock in GRGemStonePlatform >> seasideProcessRequestWithRetry:resultBlock: @18 line 12   [GsMethod 80458241]
>> 127 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
>> 128 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
>> 129 TransientRecursionLock >> critical: @15 line 8   [GsMethod 21391617]
>> 130 GRGemStonePlatform >> seasideProcessRequestWithRetry:resultBlock: @43 line 5   [GsMethod 80458241]
>> 131 ComplexBlock in GRGemStonePlatform >> seasideProcessRequest:adaptor:resultBlock: @7 line 9   [GsMethod 80458497]
>> 132 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>> 133 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>> 134 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>> 135 GRGemStonePlatform >> seasideProcessRequest:adaptor:resultBlock: @32 line 17   [GsMethod 80458497]
>> 136 WAGsSwazooAdaptor >> process: @4 line 4   [GsMethod 156453889]
>> 137 WAPluggableSite >> answerTo: @2 line 2   [GsMethod 146657793]
>> 138 WAPluggableSite >> helpResolve: @7 line 3   [GsMethod 146657281]
>> 139 URIResolution >> visitResource: @1 line 2   [GsMethod 126076417]
>> 140 ComplexBlock in URIResolution >> visitChildrenOf:advancing: @10 line 7   [GsMethod 126077697]
>> 141 Collection >> do: @5 line 10   [GsMethod 2572801]
>> 142 URIResolution >> visitChildrenOf:advancing: @15 line 5   [GsMethod 126077697]
>> 143 URIResolution >> resolveTransparentComposite: @2 line 2   [GsMethod 126078209]
>> 144 URIResolution >> resolveServerRoot: @1 line 2   [GsMethod 126076673]
>> 145 ServerRootComposite >> helpResolve: @1 line 2   [GsMethod 127188225]
>> 146 URIResolution >> visitResource: @1 line 2   [GsMethod 126076417]
>> 147 URIResolution class >> resolveRequest:startingAt: @3 line 2   [GsMethod 128977921]
>> 148 HTTPServer >> answerTo: @3 line 3   [GsMethod 127062017]
>> 149 ComplexBlock in HTTPConnection >> produceResponseFor: @9 line 5   [GsMethod 124766977]
>> 150 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>> 151 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>> 152 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>> 153 HTTPConnection >> produceResponseFor: @23 line 6   [GsMethod 124766977]
>> 154 HTTPConnection >> getAndDispatchMessages @9 line 9   [GsMethod 124768001]
>> 155 ComplexBlock in HTTPConnection >> interact @7 line 6   [GsMethod 124768257]
>> 156 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>> 157 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>> 158 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>> 159 ComplexVCBlock in HTTPConnection >> interact @12 line 9   [GsMethod 124768257]
>> 160 ComplexBlock in ExecutableBlock >> ifCurtailed: @4 line 6   [GsMethod 121482497]
>> 161 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
>> 162 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
>> 163 ComplexVCBlock in ExecutableBlock >> ifCurtailed: @8 line 8   [GsMethod 121482497]
>> 164 ComplexVCBlock in HTTPConnection >> interact @19 line 13   [GsMethod 124768257]
>> 165 HTTPConnection >> interact @26 line 18   [GsMethod 124768257]
>> 166 HTTPServer >> acceptConnection @15 line 11   [GsMethod 127059201]
>> 167 ComplexBlock in HTTPServer >> start @13 line 6   [GsMethod 127061761]
>> 168 ComplexBlock in BlockClosure >> repeat @3 line 5   [GsMethod 17930241]
>> 169 ComplexVCBlock in HTTPServer >> start @14 line 6   [GsMethod 127061761]
>> 170 GsProcess >> _startPart2 @15 line 17   [GsMethod 4498177]
>> 171 GsProcess >> _start @1 line 9   [GsMethod 4502785]
>> [GsProcess 509569281]
>> topaz 1> [268 sz:0 cls: 68097 Boolean] true
>> topaz 1>
>> [Info]: Logging out at 09/01/10 14:00:09 CEST
>>        Starting maintenance gem
>
> category: 'private'
> method: WARemoteDebuggingWalkbackErrorHandler
> open: anException
> | continuation action |
> false "GRPlatform current canDebugInteractively"
> ifTrue: [
> (anException isKindOf: Error)
> ifFalse: [
> "Halt or BreakpointNotification ... see WASession>>withErrorHandler"
> anException pass ].
> ^super open: anException].
> action := [:cont | continuation := cont. #create ] callCC.
> action == #create
> ifTrue: [  | wb |
> "If an error occurs trying to display the walkback component, we just use the super
> behaviour, which should be to open a debugger.."
> [ self session isNil ifFalse: [
> WACurrentRequestContext value forDebugging: true.
> wb := self walkbackClass exception: anException continuation: continuation.
> self requestContext request isXmlHttpRequest
> ifTrue: [
> wb addContinuation.
> (self requestContext responseGenerator internalError: anException) respond ]
> ifFalse: [ self session presenter call: wb ].
> "Exception handlers hold the request context because they are used in places where
> the dynamic variable is not present. Since this particular class depends on RenderLoop,
> however, it will be present and we need to update the stored value after doing a call."
> requestContext := WACurrentRequestContext value ] ]
> on: Error
> do: [ :err |
> Transcript cr; show: 'Error creating WAWalkback: ', err description.
> "error depends upon whether we're using #call:onAnswer: or #call:"
> ((err isKindOf: WAUnhandledNotificationError) or: [ err isKindOf: WAGsInvalidCallbackContext ])
> ifTrue: [
> wb applicationDeployed
> ifFalse: [ wb addContinuation ].
> ^self handleRenderingError: anException inProduction: wb applicationDeployed ]].
> ^self].
> action == #debug
> ifTrue: [ | meth |
> meth := self class lookupSelector: #remoteBreakpointMethod.
> meth setBreakAtStepPoint: 1.
> self remoteBreakpointMethod ].
> %

Reply | Threaded
Open this post in threaded view
|

Re: error in xml-httprequest

Dale Henrichs
Johan,

Of course you _were_ leveraging my particularly good skill at
introducing subtle bugs into the GemStone version of Seaside:)

Dale

bugsJohan Brichau wrote:

> Hi Dale,
>
> That works like a charm now. Thanks for this swift bugfixing!
> We were not sure if we were just particularly good at writing bugs in our callbacks or if we still did not get how to run Gemstone. Seems it was only the first case ;-)
>
> cheers,
> Johan
>
> On 01 Sep 2010, at 21:15, Dale Henrichs wrote:
>
>> Johan,
>>
>> With the WARemoteDebuggingWalkbackErrorHandler (part of the WAWalkbackErrorHandler family), the idea is that when you get an error, you will throw up a page with a stack trace and give the browser user a chance to proceed or debug ... this all works well for errors that occur while handling html-based requests.
>>
>> Ajax requests are xml-based requests and the default Seaside handling is different ... instead of returning an html repsonse (with a remote debug action embedded), a debugger is opened directly... not a cool thing to do in GemStone as it crashes the vm...
>>
>> I've attached a new version WARemoteDebuggingWalkbackErrorHandler>>open: that snaps off a continuation and responds with an HTTP internal error (500), which I assume should be workable ...
>>
>> Let me know how this works for you. I'll need to make sure that the Ajax requests are handled correctly in the other error handlers for GemStone.
>>
>> This is being tracked as Issue 170 (http://code.google.com/p/glassdb/issues/detail?id=170).
>>
>> Thanks for the report,
>>
>> Dale
>>
>> Johan Brichau wrote:
>>> Hi,
>>> To debug our application I use the SwazooAdaptor that gets started via the runSeasideGems30 script.
>>> When I encounter an error during rendering/regular callbacks, all works fine and I can remotely debug the application via GemTools.
>>> However, when the error occurs in an AJAX request, the Seaside gem is terminated and I can't remotely debug the error.
>>> Below is the output generated by the topaz session running the Seaside gem.
>>> A first inspection of the source code of the remote debugging walkback seems to reveal that in case an xml request is processed, the regular debugging facilities are invoked (GRPlatform openDebugger:) which seems to fail for AJAX requests.
>>> Are we doing something wrong here?
>>> thanks
>>> Johan
>>> |             GemStone/S64 Object-Oriented Data Management System             |
>>> |               Copyright (C) GemStone Systems, Inc. 1986-2010                |
>>> |                            All rights reserved.                             |
>>> |     covered by Patent Number 6,567,905 Generational Garbage Collector.      |
>>> +-----------------------------------------------------------------------------+
>>> |    PROGRAM: topaz, Linear GemStone Interface (Linked Session)               |
>>> |    VERSION: 2.4.4.1, Tue Jul 13 15:19:59 2010                               |
>>> |      BUILD: gss64_2_4_4_x_branch-23813                                      |
>>> |  BUILT FOR: Darwin (Apple Macintosh x86)                                    |
>>> |       MODE: 64 bit                                                          |
>>> | RUNNING ON: 2-CPU GuppyBook.local i386 (Darwin 10.4.0 ) 2800MHz MacBookPro5,3
>>> | 2048MB                                                                      |
>>> | PROCESS ID: 25013     DATE: 09/01/10 13:59:43 CEST                          |
>>> |   USER IDS: REAL=akellens (501) EFFECTIVE=akellens (501)                    |
>>> |_____________________________________________________________________________|
>>> topaz> topaz> topaz> topaz> topaz> topaz> topaz> [Info]: LNK client/gem GCI levels = 844/844
>>> [Info]: User ID: DataCurator
>>> [Info]: Repository: seaside
>>> [Info]: Session ID: 6
>>> [Info]: GCI Client Host: <Linked>
>>> [Info]: Page server PID: -1
>>> [Info]: Login Time: 09/01/10 13:59:43.506 CEST
>>> [09/01/10 13:59:43.530 CEST] gci login: currSession 1 rpc gem processId -1
>>> successful login
>>> topaz 1> topaz 1> [223268097 sz:3 cls: 114945 GsFile] a GsFile
>>> isClient        [2 sz:0 cls: 74241 SmallInteger] 0
>>> pathName        [223269889 sz:68 cls: 74753 String] /opt/gemstone/product/seaside/data/WAGsSwazooAdaptor_server-8383.pid
>>> mode            [8332801 sz:1 cls: 74753 String] w
>>> topaz 1> topaz 1> WAGsSwazooAdaptor Server started on port 8383
>>> --transcript--'open: [WAGemStoneWalkbackErrorHandler] [0]: WARemoteDebuggingWalkbackErrorHandler'
>>> -----------------------------------------------------
>>> GemStone: Error         Nonfatal
>>> A hard break was received.
>>> Error Category: 231169 [GemStone] Number: 6004 Arg Count: 1 Context : 509569281
>>> Arg 1: [217957121 sz:33 cls: 74753 String] interrupted for Seaside debugging
>>> Now executing the following command saved from "iferr 1":
>>>  where
>>> ==> 1 System class >> signal:args:signalDictionary: @8 line 15   [GsMethod 3747329]
>>> 2 GRGemStonePlatform >> generateHardBreak @5 line 7   [GsMethod 217959169]
>>> 3 GRGemStonePlatform >> openDebuggerOn: @1 line 3   [GsMethod 125473281]
>>> 4 WADebugErrorHandler >> open: @2 line 2   [GsMethod 160341761]
>>> 5 WAWalkbackErrorHandler >> open: @5 line 3   [GsMethod 160321281]
>>> 6 WAGemStoneWalkbackErrorHandler >> open: @12 line 4   [GsMethod 160591617]
>>> 7 WARemoteDebuggingWalkbackErrorHandler >> open: @5 line 3   [GsMethod 528933121]
>>> 8 WADebugErrorHandler >> debugAndResume: @1 line 2   [GsMethod 160342017]
>>> 9 WADebugErrorHandler >> handleDefault: @1 line 2   [GsMethod 160341505]
>>> 10 WAErrorHandler >> handleError: @1 line 2   [GsMethod 127696641]
>>> 11 WAErrorHandler >> handleException: @3 line 3   [GsMethod 127696897]
>>> 12 WARemoteDebuggingWalkbackErrorHandler >> handleException: @5 line 5   [GsMethod 160242177]
>>> 13 ComplexBlock in WAExceptionHandler >> handleExceptionsDuring: @4 line 5   [GsMethod 128378369]
>>> 14 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>>> 15 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>>> 16 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>>> 17 ComplexVCBlock in WAExceptionHandler >> handleExceptionsDuring: @7 line 8   [GsMethod 128378369]
>>> 18 ExceptionHandler >> caughtExceptionWithAction: @5 line 4   [GsMethod 11786753]
>>> 19 ComplexBlock in ExceptionHandler >> caughtEx:number:cat:args:handler: @12 line 13   [GsMethod 11786241]
>>> 20 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
>>> 21 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
>>> 22 ExceptionHandler >> caughtEx:number:cat:args:handler: @16 line 14   [GsMethod 11786241]
>>> 23 ComplexBlock in ExceptionHandler >> try:on:do: @10 line 12   [GsMethod 11784705]
>>> 24 Exception >> _signal:number:args: @2 line 7   [GsMethod 2340865]
>>> 25 System class >> signal:args:signalDictionary: @5 line 13   [GsMethod 3747329]
>>> 26 Object >> doesNotUnderstand: @6 line 14   [GsMethod 1908993]
>>> 27 Object >> _doesNotUnderstand: @1 line 6   [GsMethod 1887745]
>>> 28 NPEditor >> performAction: @8 line 6   [GsMethod 523758081]
>>> 29 NPStructureEditor >> changeStartDate:ofNode: @7 line 8   [GsMethod 228521217]
>>> 30 ComplexBlock in NPSEDateTimelineNode >> dropScript:on: @26 line 13   [GsMethod 412016129]
>>> 31 ComplexBlock in ExecutableBlock >> valueWithPossibleArguments: @12 line 8   [GsMethod 121484289]
>>> 32 WAValueCallback >> evaluateWithArgument: @4 line 3   [GsMethod 127080705]
>>> 33 WACallback >> evaluateWithFieldValues: @5 line 2   [GsMethod 126600449]
>>> 34 ComplexBlock in WACallbackRegistry >> handle: @16 line 10   [GsMethod 126607617]
>>> 35 Collection >> do: @5 line 10   [GsMethod 2572801]
>>> 36 WACallbackRegistry >> handle: @17 line 9   [GsMethod 126607617]
>>> 37 ComplexBlock in WAActionPhaseContinuation >> runCallbacks @7 line 4   [GsMethod 146568449]
>>> 38 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>>> 39 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>>> 40 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>>> 41 WARenderLoopContinuation >> withNotificationHandlerDo: @3 line 2   [GsMethod 146246657]
>>> 42 ComplexVCBlock in WAActionPhaseContinuation >> runCallbacks @8 line 3   [GsMethod 146568449]
>>> 43 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
>>> 44 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
>>> 45 WAActionPhaseContinuation >> runCallbacks @18 line 6   [GsMethod 146568449]
>>> 46 WAActionPhaseContinuation >> handleRequest @1 line 2   [GsMethod 146567937]
>>> 47 ComplexBlock in WASessionContinuation >> basicValue @3 line 2   [GsMethod 146579713]
>>> 48 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>>> 49 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>>> 50 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>>> 51 WASessionContinuation >> withUnregisteredHandlerDo: @7 line 3   [GsMethod 146580993]
>>> 52 WASessionContinuation >> basicValue @4 line 2   [GsMethod 146579713]
>>> 53 WASessionContinuation >> value @3 line 5   [GsMethod 146581761]
>>> 54 WASession >> handleFiltered: @14 line 10   [GsMethod 146230017]
>>> 55 WARequestFilter >> handleFiltered: @2 line 4   [GsMethod 123878401]
>>> 56 ComplexBlock in WADeprecatedToolFilter >> handleFiltered: @3 line 2   [GsMethod 160311297]
>>> 57 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>>> 58 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>>> 59 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>>> 60 WADeprecatedToolFilter >> handleFiltered: @6 line 3   [GsMethod 160311297]
>>> 61 WARequestFilter >> handleFiltered: @2 line 4   [GsMethod 123878401]
>>> 62 ComplexBlock in WATimingToolFilter >> handleFiltered: @4 line 3   [GsMethod 160517377]
>>> 63 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
>>> 64 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
>>> 65 WATimingToolFilter >> handleFiltered: @8 line 4   [GsMethod 160517377]
>>> 66 ComplexBlock in WARequestHandler >> handle: @4 line 4   [GsMethod 126041089]
>>> 67 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>>> 68 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>>> 69 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>>> 70 WADynamicVariable class >> use:during: @4 line 4   [GsMethod 128447489]
>>> 71 ComplexBlock in WARequestContext >> push:while: @4 line 5   [GsMethod 124878593]
>>> 72 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
>>> 73 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
>>> 74 WARequestContext >> push:while: @7 line 6   [GsMethod 124878593]
>>> 75 WARequestHandler >> handle: @5 line 4   [GsMethod 126041089]
>>> 76 WASession >> handle: @10 line 11   [GsMethod 146226689]
>>> 77 WARegistry >> dispatch:to: @1 line 5   [GsMethod 127472129]
>>> 78 WARegistry >> handleKeyed:with: @2 line 5   [GsMethod 127466753]
>>> 79 WARegistry >> handleFiltered: @31 line 19   [GsMethod 127464193]
>>> 80 WAApplication >> handleFiltered: @5 line 5   [GsMethod 146593025]
>>> 81 WARequestFilter >> handleFiltered: @2 line 4   [GsMethod 123878401]
>>> 82 ComplexBlock in WAExceptionFilter >> handleFiltered: @3 line 3   [GsMethod 123456769]
>>> 83 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>>> 84 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>>> 85 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>>> 86 WAExceptionHandler >> handleExceptionsDuring: @8 line 3   [GsMethod 128378369]
>>> 87 WAExceptionHandler class >> handleExceptionsDuring:context: @2 line 2   [GsMethod 129380865]
>>> 88 WAExceptionFilter >> handleFiltered: @4 line 3   [GsMethod 123456769]
>>> 89 ComplexBlock in WARequestHandler >> handle: @4 line 4   [GsMethod 126041089]
>>> 90 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>>> 91 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>>> 92 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>>> 93 WADynamicVariable class >> use:during: @4 line 4   [GsMethod 128447489]
>>> 94 ComplexBlock in WARequestContext >> push:while: @4 line 5   [GsMethod 124878593]
>>> 95 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
>>> 96 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
>>> 97 WARequestContext >> push:while: @7 line 6   [GsMethod 124878593]
>>> 98 WARequestHandler >> handle: @5 line 4   [GsMethod 126041089]
>>> 99 WADispatcher >> handleFiltered:named: @7 line 5   [GsMethod 126645505]
>>> 100 WADispatcher >> handleFiltered: @7 line 6   [GsMethod 126642945]
>>> 101 ComplexBlock in WARequestHandler >> handle: @4 line 4   [GsMethod 126041089]
>>> 102 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>>> 103 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>>> 104 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>>> 105 WADynamicVariable class >> use:during: @4 line 4   [GsMethod 128447489]
>>> 106 ComplexBlock in WARequestContext >> push:while: @4 line 5   [GsMethod 124878593]
>>> 107 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
>>> 108 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
>>> 109 WARequestContext >> push:while: @7 line 6   [GsMethod 124878593]
>>> 110 WARequestHandler >> handle: @5 line 4   [GsMethod 126041089]
>>> 111 ComplexBlock in WAServerAdaptor >> handleRequest: @4 line 4   [GsMethod 124014081]
>>> 112 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>>> 113 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>>> 114 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>>> 115 WAServerAdaptor >> handleRequest: @6 line 5   [GsMethod 124014081]
>>> 116 WAServerAdaptor >> handle: @1 line 4   [GsMethod 124020993]
>>> 117 ComplexBlock in WAServerAdaptor >> process: @5 line 6   [GsMethod 124013569]
>>> 118 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
>>> 119 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
>>> 120 WAServerAdaptor >> process: @9 line 7   [GsMethod 124013569]
>>> 121 ComplexBlock in WAGsSwazooAdaptor >> process: @3 line 6   [GsMethod 156453889]
>>> 122 ComplexBlock in GRGemStonePlatform >> seasideProcessRequestWithRetry:resultBlock: @12 line 11   [GsMethod 80458241]
>>> 123 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>>> 124 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>>> 125 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>>> 126 ComplexVCBlock in GRGemStonePlatform >> seasideProcessRequestWithRetry:resultBlock: @18 line 12   [GsMethod 80458241]
>>> 127 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
>>> 128 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
>>> 129 TransientRecursionLock >> critical: @15 line 8   [GsMethod 21391617]
>>> 130 GRGemStonePlatform >> seasideProcessRequestWithRetry:resultBlock: @43 line 5   [GsMethod 80458241]
>>> 131 ComplexBlock in GRGemStonePlatform >> seasideProcessRequest:adaptor:resultBlock: @7 line 9   [GsMethod 80458497]
>>> 132 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>>> 133 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>>> 134 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>>> 135 GRGemStonePlatform >> seasideProcessRequest:adaptor:resultBlock: @32 line 17   [GsMethod 80458497]
>>> 136 WAGsSwazooAdaptor >> process: @4 line 4   [GsMethod 156453889]
>>> 137 WAPluggableSite >> answerTo: @2 line 2   [GsMethod 146657793]
>>> 138 WAPluggableSite >> helpResolve: @7 line 3   [GsMethod 146657281]
>>> 139 URIResolution >> visitResource: @1 line 2   [GsMethod 126076417]
>>> 140 ComplexBlock in URIResolution >> visitChildrenOf:advancing: @10 line 7   [GsMethod 126077697]
>>> 141 Collection >> do: @5 line 10   [GsMethod 2572801]
>>> 142 URIResolution >> visitChildrenOf:advancing: @15 line 5   [GsMethod 126077697]
>>> 143 URIResolution >> resolveTransparentComposite: @2 line 2   [GsMethod 126078209]
>>> 144 URIResolution >> resolveServerRoot: @1 line 2   [GsMethod 126076673]
>>> 145 ServerRootComposite >> helpResolve: @1 line 2   [GsMethod 127188225]
>>> 146 URIResolution >> visitResource: @1 line 2   [GsMethod 126076417]
>>> 147 URIResolution class >> resolveRequest:startingAt: @3 line 2   [GsMethod 128977921]
>>> 148 HTTPServer >> answerTo: @3 line 3   [GsMethod 127062017]
>>> 149 ComplexBlock in HTTPConnection >> produceResponseFor: @9 line 5   [GsMethod 124766977]
>>> 150 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>>> 151 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>>> 152 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>>> 153 HTTPConnection >> produceResponseFor: @23 line 6   [GsMethod 124766977]
>>> 154 HTTPConnection >> getAndDispatchMessages @9 line 9   [GsMethod 124768001]
>>> 155 ComplexBlock in HTTPConnection >> interact @7 line 6   [GsMethod 124768257]
>>> 156 ExceptionHandler >> doTryBlock: @9 line 7   [GsMethod 11787009]
>>> 157 ExceptionHandler >> try:on:do: @15 line 18   [GsMethod 11784705]
>>> 158 ComplexBlock in ExecutableBlock >> on:do: @2 line 8   [GsMethod 8919041]
>>> 159 ComplexVCBlock in HTTPConnection >> interact @12 line 9   [GsMethod 124768257]
>>> 160 ComplexBlock in ExecutableBlock >> ifCurtailed: @4 line 6   [GsMethod 121482497]
>>> 161 ComplexBlock in ExecutableBlock >> ensure: @4 line 11   [GsMethod 2311681]
>>> 162 ComplexBlock in ExecutableBlock >> ensure: @6 line 11   [GsMethod 2311681]
>>> 163 ComplexVCBlock in ExecutableBlock >> ifCurtailed: @8 line 8   [GsMethod 121482497]
>>> 164 ComplexVCBlock in HTTPConnection >> interact @19 line 13   [GsMethod 124768257]
>>> 165 HTTPConnection >> interact @26 line 18   [GsMethod 124768257]
>>> 166 HTTPServer >> acceptConnection @15 line 11   [GsMethod 127059201]
>>> 167 ComplexBlock in HTTPServer >> start @13 line 6   [GsMethod 127061761]
>>> 168 ComplexBlock in BlockClosure >> repeat @3 line 5   [GsMethod 17930241]
>>> 169 ComplexVCBlock in HTTPServer >> start @14 line 6   [GsMethod 127061761]
>>> 170 GsProcess >> _startPart2 @15 line 17   [GsMethod 4498177]
>>> 171 GsProcess >> _start @1 line 9   [GsMethod 4502785]
>>> [GsProcess 509569281]
>>> topaz 1> [268 sz:0 cls: 68097 Boolean] true
>>> topaz 1>
>>> [Info]: Logging out at 09/01/10 14:00:09 CEST
>>>        Starting maintenance gem
>> category: 'private'
>> method: WARemoteDebuggingWalkbackErrorHandler
>> open: anException
>>       | continuation action |
>>       false "GRPlatform current canDebugInteractively"
>>               ifTrue: [
>>                       (anException isKindOf: Error)
>>                               ifFalse: [
>>                                       "Halt or BreakpointNotification ... see WASession>>withErrorHandler"
>>                                       anException pass ].
>>                       ^super open: anException].
>>       action := [:cont | continuation := cont. #create ] callCC.
>>       action == #create
>>               ifTrue: [  | wb |
>>                       "If an error occurs trying to display the walkback component, we just use the super
>>                       behaviour, which should be to open a debugger.."
>>                       [ self session isNil ifFalse: [
>>                               WACurrentRequestContext value forDebugging: true.
>>                               wb := self walkbackClass exception: anException continuation: continuation.
>>                               self requestContext request isXmlHttpRequest
>>                                       ifTrue: [
>>                                               wb addContinuation.
>>                                               (self requestContext responseGenerator internalError: anException) respond ]
>>                                       ifFalse: [ self session presenter call: wb ].
>>                               "Exception handlers hold the request context because they are used in places where
>>                                the dynamic variable is not present. Since this particular class depends on RenderLoop,
>>                               however, it will be present and we need to update the stored value after doing a call."
>>                               requestContext := WACurrentRequestContext value ] ]
>>                                       on: Error
>>                                       do: [ :err |
>>                                               Transcript cr; show: 'Error creating WAWalkback: ', err description.
>>                                               "error depends upon whether we're using #call:onAnswer: or #call:"
>>                                               ((err isKindOf: WAUnhandledNotificationError) or: [ err isKindOf: WAGsInvalidCallbackContext ])
>>                                                       ifTrue: [
>>                                                               wb applicationDeployed
>>                                                                       ifFalse: [ wb addContinuation ].
>>                                                               ^self handleRenderingError: anException inProduction: wb applicationDeployed ]].
>>                       ^self].
>>       action == #debug
>>               ifTrue: [ | meth |
>>                       meth := self class lookupSelector: #remoteBreakpointMethod.
>>                       meth setBreakAtStepPoint: 1.
>>                       self remoteBreakpointMethod ].
>> %
>