I'm having a problem with a web applet deployment. When the applet is
loaded in a web page, I get this error: HRESULT Error: Invalid pointer (FACILIYT_NULL). Crash dump is appended. If I use a debug image, everything runs fine. If I deploy a custom plug-in image, everything runs fine. I suspect this has something to do with the nature of some of these packages- they are autogenerated IDispatch descendents. Perhaps they aren't being initialized correctly when they are loaded? It is a strange situation, but I know in advance that all users of this applet will have those specific COM components present on their system. I want to avoid a custom plug-in image if at all possible- my next step is to drive everything directly through IDispatch and avoid the auto-generated classes completely - not as pretty or fast, but it should work if that is truly the problem. Thanks, Jerry Bell [hidden email] **************************************************************************** **** ************************** Dolphin Crash Dump Report *************************** 16:51:42 PM, 5/17/01: iexplore.exe caused an unhandled Win32 Exception 0x20000002 at 0x77F1D479 in module 0x77F00000 (C:\WINNT\system32\KERNEL32.dll) *----> Exception Parameters <----* 0145C7AC HRESULT Error: Invalid pointer (FACILITY *----> CPU Context for thread 0x10b <----* EAX = 03B9FD70 EBX = 003F4B24 ECX = FFFFFFFF ESI = 03B9FD88 EDI = FFFFFFFF EIP = 77F1D479 ESP = 03B9FD6C EBP = 03B9FDC0 EFL = 00000246 CS = 001B SS = 0023 DS = 0023 ES = 0023 FS = 0038 GS = 0000 *----> VM Context <----* Process: {0x03C80004:suspended frame 0x03C8060D, priority 5, callbacks 0 last failure 34851970:nil, FPE mask 1, thread nil} Active Method: VMLibrary>>crashDump: IP: 0x003FC68E (22) SP: 0x03C805E8 BP: 0x03C805BC (350) ActiveFrame: {0x03C805C4: cf 0x03C805A5, sp 0x03C805D4, bp 0x03C805BC, ip 10, VMLibrary>>crashDump:} New Method: KernelLibrary>>raiseException:dwExceptionFlags:nNumberOfArguments:lpArgument s: Message Selector: #raiseException:dwExceptionFlags:nNumberOfArguments:lpArguments: *----> Stack <----* [0x03C805E8: 361]-->a DWORDArray [0x03C805E4: 360]-->1 [0x03C805E0: 359]-->0 [0x03C805DC: 358]-->536870914 [0x03C805D8: 357]-->a KernelLibrary [0x03C805D4: 356]-->31720158 [0x03C805D0: 355]-->VMLibrary>>crashDump: [0x03C805CC: 354]-->31720170 [0x03C805C8: 353]-->13 [0x03C805C4: 352]-->31720146 [0x03C805C0: 351]-->a DWORDArray [0x03C805BC: 350]-->'HRESULT Error: Invalid pointer (FACILITY_NULL)' [0x03C805B8: 349]-->a VMLibrary [0x03C805B4: 348]-->31720144 [0x03C805B0: 347]-->PluginSessionManager>>logError: [0x03C805AC: 346]-->31720154 [0x03C805A8: 345]-->9 [0x03C805A4: 344]-->31720132 [0x03C805A0: 343]-->a HRESULTError [0x03C8059C: 342]-->a PluginSessionManager [0x03C80598: 341]-->31720130 [0x03C80594: 340]-->SessionManager>>unhandledException: [0x03C80590: 339]-->31720140 [0x03C8058C: 338]-->7 [0x03C80588: 337]-->31720118 [0x03C80584: 336]-->a HRESULTError [0x03C80580: 335]-->a PluginSessionManager [0x03C8057C: 334]-->31720116 [0x03C80578: 333]-->SessionManager>>onUnhandledError: [0x03C80574: 332]-->31720126 [0x03C80570: 331]-->3 [0x03C8056C: 330]-->31720104 [0x03C80568: 329]-->a HRESULTError [0x03C80564: 328]-->a PluginSessionManager [0x03C80560: 327]-->31720104 [0x03C8055C: 326]-->Error>>defaultAction [0x03C80558: 325]-->31720112 [0x03C80554: 324]-->8 [0x03C80550: 323]-->31720092 [0x03C8054C: 322]-->a HRESULTError [0x03C80548: 321]-->a MethodContext [0x03C80544: 320]-->Exception>>_propagateFrom: [0x03C80540: 319]-->31720100 [0x03C8053C: 318]-->60 [0x03C80538: 317]-->31720082 [0x03C80534: 316]-->31720080 [0x03C80530: 315]-->Exception>>_propagate [0x03C8052C: 314]-->31720090 [0x03C80528: 313]-->9 [0x03C80524: 312]-->31720066 [0x03C80520: 311]-->nil [0x03C8051C: 310]-->a HRESULTError [0x03C80518: 309]-->a HRESULTError [0x03C80514: 308]-->31720066 [0x03C80510: 307]-->Exception>>pass [0x03C8050C: 306]-->31720076 [0x03C80508: 305]-->7 [0x03C80504: 304]-->31720054 [0x03C80500: 303]-->a HRESULTError [0x03C804FC: 302]-->[] @ 24 in DeferredValue>>evaluate:withArguments:at: [0x03C804F8: 301]-->DeferredValue>>evaluate:withArguments:at: [0x03C804F4: 300]-->31720062 [0x03C804F0: 299]-->34 [0x03C804EC: 298]-->31720044 [0x03C804E8: 297]-->[] @ 15 in Exception>>_evaluateHandler:in: [0x03C804E4: 296]-->Exception>>_evaluateHandler:in: [0x03C804E0: 295]-->31720052 [0x03C804DC: 294]-->36 [0x03C804D8: 293]-->31720030 [0x03C804D4: 292]-->[] @ 6 in BlockClosure>>ifCurtailed: [0x03C804D0: 291]-->[] @ 15 in Exception>>_evaluateHandler:in: [0x03C804CC: 290]-->a MethodContext [0x03C804C8: 289]-->BlockClosure>>ifCurtailed: [0x03C804C4: 288]-->31720042 [0x03C804C0: 287]-->20 [0x03C804BC: 286]-->31720020 [0x03C804B8: 285]-->31720016 [0x03C804B4: 284]-->BlockClosure>>ensure: [0x03C804B0: 283]-->31720028 [0x03C804AC: 282]-->7 [0x03C804A8: 281]-->31720004 [0x03C804A4: 280]-->nil [0x03C804A0: 279]-->[] @ 40 in Exception>>_evaluateHandler:in: [0x03C8049C: 278]-->[] @ 15 in Exception>>_evaluateHandler:in: [0x03C80498: 277]-->a MethodContext [0x03C80494: 276]-->Exception>>_evaluateHandler:in: [0x03C80490: 275]-->31720012 [0x03C8048C: 274]-->52 [0x03C80488: 273]-->31719994 [0x03C80484: 272]-->a MethodContext [0x03C80480: 271]-->Exception>>_propagateFrom: [0x03C8047C: 270]-->31720002 [0x03C80478: 269]-->47 [0x03C80474: 268]-->31719984 [0x03C80470: 267]-->31719982 [0x03C8046C: 266]-->Exception>>_propagate [0x03C80468: 265]-->31719992 [0x03C80464: 264]-->9 [0x03C80460: 263]-->31719970 [0x03C8045C: 262]-->nil [0x03C80458: 261]-->a HRESULTError [0x03C80454: 260]-->31719970 [0x03C80450: 259]-->Exception>>signal [0x03C8044C: 258]-->31719978 [0x03C80448: 257]-->15 [0x03C80444: 256]-->31719958 [0x03C80440: 255]-->a HRESULTError [0x03C8043C: 254]-->31719952 [0x03C80438: 253]-->IDispatch>>hresultError: [0x03C80434: 252]-->31719966 [0x03C80430: 251]-->31 [0x03C8042C: 250]-->31719940 [0x03C80428: 249]-->nil [0x03C80424: 248]-->a HRESULTError [0x03C80420: 247]-->a LargeInteger() [0x03C8041C: 246]-->a DSServerMapIServer [0x03C80418: 245]-->31719934 [0x03C80414: 244]-->ExternalStructure>>invalidCall [0x03C80410: 243]-->31719948 [0x03C8040C: 242]-->17 [0x03C80408: 241]-->31719922 [0x03C80404: 240]-->nil [0x03C80400: 239]-->a Process(DeferredValue>>evaluate:withArguments:at: base 0x03C80000 [ACTIVE] in VMLibrary>>crashDump: sp=0x03B9FB0C ip=13 list=nil) [0x03C803FC: 238]-->a LargeInteger() [0x03C803F8: 237]-->a DSServerMapIServer [0x03C803F4: 236]-->31719920 [0x03C803F0: 235]-->DSServerMapIServer>>put_DocuShareAddress: [0x03C803EC: 234]-->31719930 [0x03C803E8: 233]-->2 [0x03C803E4: 232]-->31719908 [0x03C803E0: 231]-->a BSTR [0x03C803DC: 230]-->a DSServerMapIServer [0x03C803D8: 229]-->31719906 [0x03C803D4: 228]-->DSServerMapIServer>>docuShareAddress: [0x03C803D0: 227]-->31719916 [0x03C803CC: 226]-->3 [0x03C803C8: 225]-->31719894 [0x03C803C4: 224]-->'https://www.someplace.com/' (sanitized) [0x03C803C0: 223]-->a DSServerMapIServer [0x03C803BC: 222]-->31719884 [0x03C803B8: 221]-->EqPersonPresenter>>fetchModel [0x03C803B4: 220]-->31719902 [0x03C803B0: 219]-->21 [0x03C803AC: 218]-->31719870 [0x03C803A8: 217]-->nil [0x03C803A4: 216]-->nil [0x03C803A0: 215]-->nil [0x03C8039C: 214]-->nil [0x03C80398: 213]-->a NPApplet [0x03C80394: 212]-->a EqPersonPresenter ... <60 slots omitted> ... [0x03C802A0: 151]-->ExceptionHandlerAbstract>>try: [0x03C8029C: 150]-->31719762 [0x03C80298: 149]-->24 [0x03C80294: 148]-->31719740 [0x03C80290: 147]-->[] @ 6 in BlockClosure>>ifCurtailed: [0x03C8028C: 146]-->[] @ 15 in ExceptionHandlerAbstract>>try: [0x03C80288: 145]-->a MethodContext [0x03C80284: 144]-->BlockClosure>>ifCurtailed: [0x03C80280: 143]-->31719752 [0x03C8027C: 142]-->20 [0x03C80278: 141]-->31719730 [0x03C80274: 140]-->31719726 [0x03C80270: 139]-->BlockClosure>>ensure: [0x03C8026C: 138]-->31719738 [0x03C80268: 137]-->7 [0x03C80264: 136]-->31719714 [0x03C80260: 135]-->nil [0x03C8025C: 134]-->[] @ 34 in ExceptionHandlerAbstract>>try: [0x03C80258: 133]-->[] @ 15 in ExceptionHandlerAbstract>>try: [0x03C80254: 132]-->a MethodContext [0x03C80250: 131]-->ExceptionHandlerAbstract>>try: [0x03C8024C: 130]-->31719722 [0x03C80248: 129]-->42 [0x03C80244: 128]-->31719704 [0x03C80240: 127]-->31719700 [0x03C8023C: 126]-->BlockClosure>>on:do: [0x03C80238: 125]-->31719712 [0x03C80234: 124]-->10 [0x03C80230: 123]-->31719688 [0x03C8022C: 122]-->[] @ 29 in NPApplet>>startApplet [0x03C80228: 121]-->BinaryPackageVersionError [0x03C80224: 120]-->[] @ 15 in NPApplet>>startApplet [0x03C80220: 119]-->a MethodContext [0x03C8021C: 118]-->NPApplet>>startApplet [0x03C80218: 117]-->31719696 [0x03C80214: 116]-->39 [0x03C80210: 115]-->31719678 [0x03C8020C: 114]-->[] @ 15 in NPApplet>>evaluateAttributes [0x03C80208: 113]-->NPApplet>>evaluateAttributes [0x03C80204: 112]-->31719686 [0x03C80200: 111]-->20 [0x03C801FC: 110]-->31719668 [0x03C801F8: 109]-->31719664 [0x03C801F4: 108]-->DeferredValue>>_evaluate:withArguments: [0x03C801F0: 107]-->31719676 [0x03C801EC: 106]-->3 [0x03C801E8: 105]-->31719650 [0x03C801E4: 104]-->a Array [0x03C801E0: 103]-->[] @ 15 in NPApplet>>evaluateAttributes [0x03C801DC: 102]-->a DeferredValue [0x03C801D8: 101]-->a DeferredValue [0x03C801D4: 100]-->[] @ 12 in DeferredValue>>evaluate:withArguments:at: [0x03C801D0: 99]-->DeferredValue>>evaluate:withArguments:at: [0x03C801CC: 98]-->31719660 [0x03C801C8: 97]-->20 [0x03C801C4: 96]-->31719640 [0x03C801C0: 95]-->a MethodContext [0x03C801BC: 94]-->ExceptionHandlerAbstract>>markAndTry [0x03C801B8: 93]-->31719648 [0x03C801B4: 92]-->14 [0x03C801B0: 91]-->31719630 [0x03C801AC: 90]-->[] @ 15 in ExceptionHandlerAbstract>>try: [0x03C801A8: 89]-->ExceptionHandlerAbstract>>try: [0x03C801A4: 88]-->31719638 [0x03C801A0: 87]-->24 [0x03C8019C: 86]-->31719616 [0x03C80198: 85]-->[] @ 6 in BlockClosure>>ifCurtailed: [0x03C80194: 84]-->[] @ 15 in ExceptionHandlerAbstract>>try: [0x03C80190: 83]-->a MethodContext [0x03C8018C: 82]-->BlockClosure>>ifCurtailed: [0x03C80188: 81]-->31719628 [0x03C80184: 80]-->20 [0x03C80180: 79]-->31719606 [0x03C8017C: 78]-->31719602 [0x03C80178: 77]-->BlockClosure>>ensure: [0x03C80174: 76]-->31719614 [0x03C80170: 75]-->7 [0x03C8016C: 74]-->31719590 [0x03C80168: 73]-->nil [0x03C80164: 72]-->[] @ 34 in ExceptionHandlerAbstract>>try: [0x03C80160: 71]-->[] @ 15 in ExceptionHandlerAbstract>>try: [0x03C8015C: 70]-->a MethodContext [0x03C80158: 69]-->ExceptionHandlerAbstract>>try: [0x03C80154: 68]-->31719598 [0x03C80150: 67]-->42 [0x03C8014C: 66]-->31719580 [0x03C80148: 65]-->31719578 [0x03C80144: 64]-->BlockClosure>>onDo: [0x03C80140: 63]-->31719588 [0x03C8013C: 62]-->3 [0x03C80138: 61]-->31719566 [0x03C80134: 60]-->a ExceptionHandlerSet [0x03C80130: 59]-->[] @ 12 in DeferredValue>>evaluate:withArguments:at: [0x03C8012C: 58]-->31719558 [0x03C80128: 57]-->BlockClosure>>on:do:on:do: [0x03C80124: 56]-->31719574 [0x03C80120: 55]-->16 [0x03C8011C: 54]-->31719546 [0x03C80118: 53]-->[] @ 37 in DeferredValue>>evaluate:withArguments:at: [0x03C80114: 52]-->ProcessTermination [0x03C80110: 51]-->[] @ 24 in DeferredValue>>evaluate:withArguments:at: [0x03C8010C: 50]-->Error [0x03C80108: 49]-->[] @ 12 in DeferredValue>>evaluate:withArguments:at: [0x03C80104: 48]-->[] @ 8 in DeferredValue>>evaluate:withArguments:at: [0x03C80100: 47]-->DeferredValue>>evaluate:withArguments:at: [0x03C800FC: 46]-->31719554 [0x03C800F8: 45]-->54 [0x03C800F4: 44]-->31719536 [0x03C800F0: 43]-->a MethodContext [0x03C800EC: 42]-->ExceptionHandlerAbstract>>markAndTry [0x03C800E8: 41]-->31719544 [0x03C800E4: 40]-->14 [0x03C800E0: 39]-->31719526 [0x03C800DC: 38]-->[] @ 15 in ExceptionHandlerAbstract>>try: [0x03C800D8: 37]-->ExceptionHandlerAbstract>>try: [0x03C800D4: 36]-->31719534 [0x03C800D0: 35]-->24 [0x03C800CC: 34]-->31719512 [0x03C800C8: 33]-->[] @ 6 in BlockClosure>>ifCurtailed: [0x03C800C4: 32]-->[] @ 15 in ExceptionHandlerAbstract>>try: [0x03C800C0: 31]-->a MethodContext [0x03C800BC: 30]-->BlockClosure>>ifCurtailed: [0x03C800B8: 29]-->31719524 [0x03C800B4: 28]-->20 [0x03C800B0: 27]-->31719502 [0x03C800AC: 26]-->31719498 [0x03C800A8: 25]-->BlockClosure>>ensure: [0x03C800A4: 24]-->31719510 [0x03C800A0: 23]-->7 [0x03C8009C: 22]-->31719486 [0x03C80098: 21]-->nil [0x03C80094: 20]-->[] @ 34 in ExceptionHandlerAbstract>>try: [0x03C80090: 19]-->[] @ 15 in ExceptionHandlerAbstract>>try: [0x03C8008C: 18]-->a MethodContext [0x03C80088: 17]-->ExceptionHandlerAbstract>>try: [0x03C80084: 16]-->31719494 [0x03C80080: 15]-->42 [0x03C8007C: 14]-->31719476 [0x03C80078: 13]-->31719472 [0x03C80074: 12]-->BlockClosure>>on:do: [0x03C80070: 11]-->31719484 [0x03C8006C: 10]-->10 [0x03C80068: 9]-->31719460 [0x03C80064: 8]-->[] @ 12 in BlockClosure>>newProcess [0x03C80060: 7]-->ProcessTermination [0x03C8005C: 6]-->[] @ 8 in DeferredValue>>evaluate:withArguments:at: [0x03C80058: 5]-->[] @ 6 in BlockClosure>>newProcess [0x03C80054: 4]-->BlockClosure>>newProcess [0x03C80050: 3]-->31719468 [0x03C8004C: 2]-->20 [0x03C80048: 1]-->0 <Bottom of stack> *----> Stack Back Trace <----* {0x03C805C4: cf 0x03C805A5, sp 0x03C805D4, bp 0x03C805BC, ip 10, VMLibrary>>crashDump:} {0x03C805A4: cf 0x03C80589, sp 0x03C805B4, bp 0x03C805A0, ip 6, PluginSessionManager>>logError:} {0x03C80588: cf 0x03C8056D, sp 0x03C80598, bp 0x03C80584, ip 4, PluginSessionManager(SessionManager)>>unhandledException:} {0x03C8056C: cf 0x03C80551, sp 0x03C8057C, bp 0x03C80568, ip 4, PluginSessionManager(SessionManager)>>onUnhandledError:} {0x03C80550: cf 0x03C80539, sp 0x03C80560, bp 0x03C80550, ip 5, HRESULTError(Error)>>defaultAction} {0x03C80538: cf 0x03C80525, sp 0x03C80548, bp 0x0145CB70, ip 57, HRESULTError(Exception)>>_propagateFrom:} {0x03C80524: cf 0x03C80505, sp 0x03C80534, bp 0x03C80520, ip 6, HRESULTError(Exception)>>_propagate} {0x03C80504: cf 0x03C804ED, sp 0x03C80518, bp 0x03C80504, ip 4, HRESULTError(Exception)>>pass} {0x03C804EC: cf 0x03C804D9, sp 0x03C804FC, bp 0x0145C1D0, ip 31, [] in DeferredValue>>evaluate:withArguments:at:} {0x03C804D8: cf 0x03C804BD, sp 0x03C804E8, bp 0x0145C9B0, ip 33, [] in HRESULTError(Exception)>>_evaluateHandler:in:} {0x03C804BC: cf 0x03C804A9, sp 0x03C804D4, bp 0x0145CB38, ip 17, BlockClosure>>ifCurtailed:} {0x03C804A8: cf 0x03C80489, sp 0x03C804B8, bp 0x03C804A0, ip 4, BlockClosure>>ensure:} {0x03C80488: cf 0x03C80475, sp 0x03C80498, bp 0x0145C9B0, ip 49, HRESULTError(Exception)>>_evaluateHandler:in:} {0x03C80474: cf 0x03C80461, sp 0x03C80484, bp 0x0145C978, ip 44, HRESULTError(Exception)>>_propagateFrom:} {0x03C80460: cf 0x03C80445, sp 0x03C80470, bp 0x03C8045C, ip 6, HRESULTError(Exception)>>_propagate} {0x03C80444: cf 0x03C8042D, sp 0x03C80454, bp 0x03C80444, ip 12, HRESULTError(Exception)>>signal} {0x03C8042C: cf 0x03C80409, sp 0x03C8043C, bp 0x03C80420, ip 28, DSServerMapIServer(IDispatch)>>hresultError:} {0x03C80408: cf 0x03C803E5, sp 0x03C80418, bp 0x03C803FC, ip 14, DSServerMapIServer(ExternalStructure)>>invalidCall} {0x03C803E4: cf 0x03C803C9, sp 0x03C803F4, bp 0x03C803E0, ip 3, DSServerMapIServer>>put_DocuShareAddress:} {0x03C803C8: cf 0x03C803AD, sp 0x03C803D8, bp 0x03C803C4, ip 4, DSServerMapIServer>>docuShareAddress:} {0x03C803AC: cf 0x03C8037D, sp 0x03C803BC, bp 0x03C80398, ip 18, EqPersonPresenter>>fetchModel} {0x03C8037C: cf 0x03C80361, sp 0x03C80390, bp 0x03C8037C, ip 8, EqPersonPresenter>>onViewOpened} {0x03C80360: cf 0x03C80339, sp 0x03C80374, bp 0x03C80350, ip 14, EqPersonPresenter class(Presenter class)>>create:in:on:} {0x03C80338: cf 0x03C80319, sp 0x03C80348, bp 0x03C80330, ip 8, EqPersonPresenter class(Presenter class)>>create:in:} {0x03C80318: cf 0x03C802ED, sp 0x03C80328, bp 0x03C80304, ip 19, EqPersonPresenter class(Presenter class)>>show:inPlugin:} {0x03C802EC: cf 0x03C802D1, sp 0x03C802FC, bp 0x03C802E8, ip 5, Message>>value:} {0x03C802D0: cf 0x03C802BD, sp 0x03C802E0, bp 0x0145C940, ip 23, EqPersonPresenter class(ClassStub)>>doesNotUnderstand:} {0x03C802BC: cf 0x03C802A9, sp 0x03C802CC, bp 0x0145C860, ip 21, [] in NPApplet>>startApplet} {0x03C802A8: cf 0x03C80295, sp 0x03C802B8, bp 0x0145C908, ip 11, ExceptionHandler(ExceptionHandlerAbstract)>>markAndTry} {0x03C80294: cf 0x03C80279, sp 0x03C802A4, bp 0x0145C898, ip 21, [] in ExceptionHandler(ExceptionHandlerAbstract)>>try:} {0x03C80278: cf 0x03C80265, sp 0x03C80290, bp 0x0145C8D0, ip 17, BlockClosure>>ifCurtailed:} {0x03C80264: cf 0x03C80245, sp 0x03C80274, bp 0x03C8025C, ip 4, BlockClosure>>ensure:} {0x03C80244: cf 0x03C80231, sp 0x03C80254, bp 0x0145C898, ip 39, ExceptionHandler(ExceptionHandlerAbstract)>>try:} {0x03C80230: cf 0x03C80211, sp 0x03C80240, bp 0x03C80228, ip 7, BlockClosure>>on:do:} {0x03C80210: cf 0x03C801FD, sp 0x03C80220, bp 0x0145C860, ip 36, NPApplet>>startApplet} {0x03C801FC: cf 0x03C801E9, sp 0x03C8020C, bp 0x0145C198, ip 17, [] in NPApplet>>evaluateAttributes} {0x03C801E8: cf 0x03C801C5, sp 0x03C801F8, bp 0x03C801E0, ip 4, DeferredValue>>_evaluate:withArguments:} {0x03C801C4: cf 0x03C801B1, sp 0x03C801D8, bp 0x0145C1D0, ip 17, [] in DeferredValue>>evaluate:withArguments:at:} {0x03C801B0: cf 0x03C8019D, sp 0x03C801C0, bp 0x0145C828, ip 11, ExceptionHandlerSet(ExceptionHandlerAbstract)>>markAndTry} {0x03C8019C: cf 0x03C80181, sp 0x03C801AC, bp 0x0145C780, ip 21, [] in ExceptionHandlerSet(ExceptionHandlerAbstract)>>try:} {0x03C80180: cf 0x03C8016D, sp 0x03C80198, bp 0x0145C7F0, ip 17, BlockClosure>>ifCurtailed:} {0x03C8016C: cf 0x03C8014D, sp 0x03C8017C, bp 0x03C80164, ip 4, BlockClosure>>ensure:} {0x03C8014C: cf 0x03C80139, sp 0x03C8015C, bp 0x0145C780, ip 39, ExceptionHandlerSet(ExceptionHandlerAbstract)>>try:} {0x03C80138: cf 0x03C8011D, sp 0x03C80148, bp 0x03C80134, ip 4, BlockClosure>>onDo:} {0x03C8011C: cf 0x03C800F5, sp 0x03C8012C, bp 0x03C8010C, ip 13, BlockClosure>>on:do:on:do:} {0x03C800F4: cf 0x03C800E1, sp 0x03C80104, bp 0x0145C1D0, ip 51, [] in DeferredValue>>evaluate:withArguments:at:} {0x03C800E0: cf 0x03C800CD, sp 0x03C800F0, bp 0x0145C748, ip 11, ExceptionHandler(ExceptionHandlerAbstract)>>markAndTry} {0x03C800CC: cf 0x03C800B1, sp 0x03C800DC, bp 0x0145C6D8, ip 21, [] in ExceptionHandler(ExceptionHandlerAbstract)>>try:} {0x03C800B0: cf 0x03C8009D, sp 0x03C800C8, bp 0x0145C710, ip 17, BlockClosure>>ifCurtailed:} {0x03C8009C: cf 0x03C8007D, sp 0x03C800AC, bp 0x03C80094, ip 4, BlockClosure>>ensure:} {0x03C8007C: cf 0x03C80069, sp 0x03C8008C, bp 0x0145C6D8, ip 39, ExceptionHandler(ExceptionHandlerAbstract)>>try:} {0x03C80068: cf 0x03C80049, sp 0x03C80078, bp 0x03C80060, ip 7, BlockClosure>>on:do:} {0x03C80048: cf 0x00000001, sp 0x03C80058, bp 0x0145C0B8, ip 17, [] in BlockClosure>>newProcess} <Bottom of stack> ***** End of crash report ***** |
Jerry
"Jerry Bell" <[hidden email]> wrote in message news:9e1iim$k76p$[hidden email]... > I'm having a problem with a web applet deployment. When the applet is > loaded in a web page, I get this error: HRESULT Error: Invalid pointer > (FACILIYT_NULL). Crash dump is appended. > > If I use a debug image, everything runs fine. If I deploy a custom plug-in > image, everything runs fine. When you are running a debug image are you running with the package loaded? It'll certainly help you to debug the problem if you can reproduce it in the development environment, so I would suggest uninstalling the packages from the development image and trying again. > > I suspect this has something to do with the nature of some of these > packages- they are autogenerated IDispatch descendents. Perhaps they aren't > being initialized correctly when they are loaded? That's a possible explanation, although we know of some examples where this has worked perfectly well (the Avatar Chat sample being one example, since that involves a number of auto-generated dual interface classes). The error is of course E_POINTER, normally raised by a COM server when one passes a null pointer as an _output_ parameter, so it is a somewhat unexpected result of a property put (unless the operation is internally somewhat more complex than just storing down a string). What does the IDL for the DocuShareAddress property look like? Regards Blair |
> When you are running a debug image are you running with the package
loaded? > It'll certainly help you to debug the problem if you can reproduce it in the > development environment, so I would suggest uninstalling the packages from > the development image and trying again. > Yep, removing the packages from the degug image reproduces the problem, although I still don't know what's going on. Supposedly I'm just passing in a string, I even tried pre-converting it to a BSTR with the same result. Could something bad be happening within the Docushare code somewhere? If so, I wonder why it would fail in the plugin only? > > > > I suspect this has something to do with the nature of some of these > > packages- they are autogenerated IDispatch descendents. Perhaps they > aren't > > being initialized correctly when they are loaded? > > That's a possible explanation, although we know of some examples where this > has worked perfectly well (the Avatar Chat sample being one example, since > that involves a number of auto-generated dual interface classes). The error > is of course E_POINTER, normally raised by a COM server when one passes a > null pointer as an _output_ parameter, so it is a somewhat unexpected result > of a property put (unless the operation is internally somewhat more complex > than just storing down a string). > > What does the IDL for the DocuShareAddress property look like? > > Regards > > Blair > > Here's the IDL from Dolphin: [id(0x0000000b), propget, helpstring("property DocuShareAddress")] HRESULT __stdcall DocuShareAddress( [out, retval] BSTR* pVal); [id(0x0000000b), propput, helpstring("property DocuShareAddress")] HRESULT __stdcall DocuShareAddress( [in] BSTR pVal); Here's the generated code from Dolphin: put_DocuShareAddress: pVal "Private - Set the value of the 'DocuShareAddress' property of the object wrapped by the receiver to the <bstr> argument, pVal. Helpstring: 'property DocuShareAddress' HRESULT __stdcall DocuShareAddress( [in] BSTR pVal); " <virtual stdcall: hresult 27 bstr> ^self invalidCall Now, I'm not very good at this COM stuff, but is id(0x0000000b) as a decimal supposed to equal 27? It doesn't. Regardless, this weekend I'm going to do a clean install on another machine, re-generating all of the Docushare classes and re-loading only my (very simple) EqPerson and EqPersonPresenter classes, and build new binary packages for everything. That will rule out this machine as the problem. Maybe it is possesed or something. And I still haven't tried driving Docushare solely through IDispatch, that's still another option, although I would consider it a last result for a final solution. Thanks, Jerry |
OK, I reworked the code to use only IDispatch calls and everything works
right. I'll look into it more deeply later, as using IDispatch calls doesn't look nearly as clean. But, this has allowed me to uncover another, much more important problem. There seems to be a problem using STB in an applet (when the STB'd objects' classes are loaded via binary packages, anyway). I found something similar in a post by Ted Bracht back in January. My applet downloads an STB file from a Xerox Docushare document repository via the COM objects that where giving me problems before. I save the file as a local temporary file and then load it via STB. This works great from my development image. But, when deployed as an applet this barfs when STB'ing the file, with a message that the EqPerson class (my model class) can't be found in the image. The funny thing is, if I'm not using STB I can work with the EqPerson class in the applet as much as I want without any problems. I can even do stuff with EqPerson in the applet without errors just before trying to STB one in, everything is always fine until the STB'ing starts. My applet lives in a single binary package, which includes the applet presenter (EqPersonPresenter) and the model (EqPerson). I'm including the crash dump below. Has anyone else used STB successfully in an applet? Thanks, Jerry **************************************************************************** **** ************************** Dolphin Crash Dump Report *************************** 21:24:56 PM, 5/19/01: iexplore.exe caused an unhandled Win32 Exception 0x20000002 at 0x77F1D479 in module 0x77F00000 (C:\WINNT\system32\KERNEL32.dll) *----> Exception Parameters <----* 0A9DD03C The class EqPerson could not be found in *----> CPU Context for thread 0x7d <----* EAX = 0A30FD70 EBX = 0A7C4B24 ECX = FFFFFFFF ESI = 0A30FD88 EDI = FFFFFFFF EIP = 77F1D479 ESP = 0A30FD6C EBP = 0A30FDC0 EFL = 00000246 CS = 001B SS = 0023 DS = 0023 ES = 0023 FS = 0038 GS = 0000 *----> VM Context <----* Process: {0x0AAE0004:suspended frame 0x0AAE05F5, priority 5, callbacks 0 last failure 2:nil, FPE mask 1, thread nil} Active Method: VMLibrary>>crashDump: IP: 0x0A7CC68E (22) SP: 0x0AAE0890 BP: 0x0AAE0864 (520) ActiveFrame: {0x0AAE086C: cf 0x0AAE084D, sp 0x0AAE087C, bp 0x0AAE0864, ip 10, VMLibrary>>crashDump:} New Method: KernelLibrary>>raiseException:dwExceptionFlags:nNumberOfArguments:lpArgument s: Message Selector: #raiseException:dwExceptionFlags:nNumberOfArguments:lpArguments: *----> Stack <----* [0x0AAE0890: 531]-->a DWORDArray [0x0AAE088C: 530]-->1 [0x0AAE0888: 529]-->0 [0x0AAE0884: 528]-->536870914 [0x0AAE0880: 527]-->a KernelLibrary [0x0AAE087C: 526]-->89588786 [0x0AAE0878: 525]-->VMLibrary>>crashDump: [0x0AAE0874: 524]-->89588798 [0x0AAE0870: 523]-->13 [0x0AAE086C: 522]-->89588774 [0x0AAE0868: 521]-->a DWORDArray [0x0AAE0864: 520]-->'The class EqPerson could not be found in the image' [0x0AAE0860: 519]-->a VMLibrary [0x0AAE085C: 518]-->89588772 [0x0AAE0858: 517]-->PluginSessionManager>>logError: [0x0AAE0854: 516]-->89588782 [0x0AAE0850: 515]-->9 [0x0AAE084C: 514]-->89588760 [0x0AAE0848: 513]-->a Error [0x0AAE0844: 512]-->a PluginSessionManager [0x0AAE0840: 511]-->89588758 [0x0AAE083C: 510]-->SessionManager>>unhandledException: [0x0AAE0838: 509]-->89588768 [0x0AAE0834: 508]-->7 [0x0AAE0830: 507]-->89588746 [0x0AAE082C: 506]-->a Error [0x0AAE0828: 505]-->a PluginSessionManager [0x0AAE0824: 504]-->89588744 [0x0AAE0820: 503]-->SessionManager>>onUnhandledError: [0x0AAE081C: 502]-->89588754 [0x0AAE0818: 501]-->3 [0x0AAE0814: 500]-->89588732 [0x0AAE0810: 499]-->a Error [0x0AAE080C: 498]-->a PluginSessionManager [0x0AAE0808: 497]-->89588732 [0x0AAE0804: 496]-->Error>>defaultAction [0x0AAE0800: 495]-->89588740 [0x0AAE07FC: 494]-->8 [0x0AAE07F8: 493]-->89588720 [0x0AAE07F4: 492]-->a Error [0x0AAE07F0: 491]-->a MethodContext [0x0AAE07EC: 490]-->Exception>>_propagateFrom: [0x0AAE07E8: 489]-->89588728 [0x0AAE07E4: 488]-->60 [0x0AAE07E0: 487]-->89588710 [0x0AAE07DC: 486]-->89588708 [0x0AAE07D8: 485]-->Exception>>_propagate [0x0AAE07D4: 484]-->89588718 [0x0AAE07D0: 483]-->9 [0x0AAE07CC: 482]-->89588694 [0x0AAE07C8: 481]-->nil [0x0AAE07C4: 480]-->a Error [0x0AAE07C0: 479]-->a Error [0x0AAE07BC: 478]-->89588694 [0x0AAE07B8: 477]-->Exception>>pass [0x0AAE07B4: 476]-->89588704 [0x0AAE07B0: 475]-->7 [0x0AAE07AC: 474]-->89588682 [0x0AAE07A8: 473]-->a Error [0x0AAE07A4: 472]-->[] @ 24 in DeferredValue>>evaluate:withArguments:at: [0x0AAE07A0: 471]-->DeferredValue>>evaluate:withArguments:at: [0x0AAE079C: 470]-->89588690 [0x0AAE0798: 469]-->34 [0x0AAE0794: 468]-->89588672 [0x0AAE0790: 467]-->[] @ 15 in Exception>>_evaluateHandler:in: [0x0AAE078C: 466]-->Exception>>_evaluateHandler:in: [0x0AAE0788: 465]-->89588680 [0x0AAE0784: 464]-->36 [0x0AAE0780: 463]-->89588658 [0x0AAE077C: 462]-->[] @ 6 in BlockClosure>>ifCurtailed: [0x0AAE0778: 461]-->[] @ 15 in Exception>>_evaluateHandler:in: [0x0AAE0774: 460]-->a MethodContext [0x0AAE0770: 459]-->BlockClosure>>ifCurtailed: [0x0AAE076C: 458]-->89588670 [0x0AAE0768: 457]-->20 [0x0AAE0764: 456]-->89588648 [0x0AAE0760: 455]-->89588644 [0x0AAE075C: 454]-->BlockClosure>>ensure: [0x0AAE0758: 453]-->89588656 [0x0AAE0754: 452]-->7 [0x0AAE0750: 451]-->89588632 [0x0AAE074C: 450]-->nil [0x0AAE0748: 449]-->[] @ 40 in Exception>>_evaluateHandler:in: [0x0AAE0744: 448]-->[] @ 15 in Exception>>_evaluateHandler:in: [0x0AAE0740: 447]-->a MethodContext [0x0AAE073C: 446]-->Exception>>_evaluateHandler:in: [0x0AAE0738: 445]-->89588640 [0x0AAE0734: 444]-->52 [0x0AAE0730: 443]-->89588622 [0x0AAE072C: 442]-->a MethodContext [0x0AAE0728: 441]-->Exception>>_propagateFrom: [0x0AAE0724: 440]-->89588630 [0x0AAE0720: 439]-->47 [0x0AAE071C: 438]-->89588612 [0x0AAE0718: 437]-->89588610 [0x0AAE0714: 436]-->Exception>>_propagate [0x0AAE0710: 435]-->89588620 [0x0AAE070C: 434]-->9 [0x0AAE0708: 433]-->89588596 [0x0AAE0704: 432]-->nil [0x0AAE0700: 431]-->a Error [0x0AAE06FC: 430]-->a Error [0x0AAE06F8: 429]-->89588596 [0x0AAE06F4: 428]-->Exception>>pass [0x0AAE06F0: 427]-->89588606 [0x0AAE06EC: 426]-->7 [0x0AAE06E8: 425]-->89588584 [0x0AAE06E4: 424]-->a Error [0x0AAE06E0: 423]-->[] @ 48 in ClassLocator>>findOrImportForeignClass [0x0AAE06DC: 422]-->ClassLocator>>findOrImportForeignClass [0x0AAE06D8: 421]-->89588592 [0x0AAE06D4: 420]-->59 [0x0AAE06D0: 419]-->89588574 [0x0AAE06CC: 418]-->[] @ 15 in Exception>>_evaluateHandler:in: [0x0AAE06C8: 417]-->Exception>>_evaluateHandler:in: [0x0AAE06C4: 416]-->89588582 [0x0AAE06C0: 415]-->36 [0x0AAE06BC: 414]-->89588560 [0x0AAE06B8: 413]-->[] @ 6 in BlockClosure>>ifCurtailed: [0x0AAE06B4: 412]-->[] @ 15 in Exception>>_evaluateHandler:in: [0x0AAE06B0: 411]-->a MethodContext [0x0AAE06AC: 410]-->BlockClosure>>ifCurtailed: [0x0AAE06A8: 409]-->89588572 [0x0AAE06A4: 408]-->20 [0x0AAE06A0: 407]-->89588550 [0x0AAE069C: 406]-->89588546 [0x0AAE0698: 405]-->BlockClosure>>ensure: [0x0AAE0694: 404]-->89588558 [0x0AAE0690: 403]-->7 [0x0AAE068C: 402]-->89588534 [0x0AAE0688: 401]-->nil [0x0AAE0684: 400]-->[] @ 40 in Exception>>_evaluateHandler:in: [0x0AAE0680: 399]-->[] @ 15 in Exception>>_evaluateHandler:in: [0x0AAE067C: 398]-->a MethodContext [0x0AAE0678: 397]-->Exception>>_evaluateHandler:in: [0x0AAE0674: 396]-->89588542 [0x0AAE0670: 395]-->52 [0x0AAE066C: 394]-->89588524 [0x0AAE0668: 393]-->a MethodContext [0x0AAE0664: 392]-->Exception>>_propagateFrom: [0x0AAE0660: 391]-->89588532 [0x0AAE065C: 390]-->47 [0x0AAE0658: 389]-->89588514 [0x0AAE0654: 388]-->89588512 [0x0AAE0650: 387]-->Exception>>_propagate [0x0AAE064C: 386]-->89588522 [0x0AAE0648: 385]-->9 [0x0AAE0644: 384]-->89588500 [0x0AAE0640: 383]-->nil [0x0AAE063C: 382]-->a Error ... <230 slots omitted> ... [0x0AAE02A0: 151]-->ExceptionHandlerAbstract>>try: [0x0AAE029C: 150]-->89588050 [0x0AAE0298: 149]-->24 [0x0AAE0294: 148]-->89588028 [0x0AAE0290: 147]-->[] @ 6 in BlockClosure>>ifCurtailed: [0x0AAE028C: 146]-->[] @ 15 in ExceptionHandlerAbstract>>try: [0x0AAE0288: 145]-->a MethodContext [0x0AAE0284: 144]-->BlockClosure>>ifCurtailed: [0x0AAE0280: 143]-->89588040 [0x0AAE027C: 142]-->20 [0x0AAE0278: 141]-->89588018 [0x0AAE0274: 140]-->89588014 [0x0AAE0270: 139]-->BlockClosure>>ensure: [0x0AAE026C: 138]-->89588026 [0x0AAE0268: 137]-->7 [0x0AAE0264: 136]-->89588002 [0x0AAE0260: 135]-->nil [0x0AAE025C: 134]-->[] @ 34 in ExceptionHandlerAbstract>>try: [0x0AAE0258: 133]-->[] @ 15 in ExceptionHandlerAbstract>>try: [0x0AAE0254: 132]-->a MethodContext [0x0AAE0250: 131]-->ExceptionHandlerAbstract>>try: [0x0AAE024C: 130]-->89588010 [0x0AAE0248: 129]-->42 [0x0AAE0244: 128]-->89587992 [0x0AAE0240: 127]-->89587988 [0x0AAE023C: 126]-->BlockClosure>>on:do: [0x0AAE0238: 125]-->89588000 [0x0AAE0234: 124]-->10 [0x0AAE0230: 123]-->89587976 [0x0AAE022C: 122]-->[] @ 29 in NPApplet>>startApplet [0x0AAE0228: 121]-->BinaryPackageVersionError [0x0AAE0224: 120]-->[] @ 15 in NPApplet>>startApplet [0x0AAE0220: 119]-->a MethodContext [0x0AAE021C: 118]-->NPApplet>>startApplet [0x0AAE0218: 117]-->89587984 [0x0AAE0214: 116]-->39 [0x0AAE0210: 115]-->89587966 [0x0AAE020C: 114]-->[] @ 15 in NPApplet>>evaluateAttributes [0x0AAE0208: 113]-->NPApplet>>evaluateAttributes [0x0AAE0204: 112]-->89587974 [0x0AAE0200: 111]-->20 [0x0AAE01FC: 110]-->89587956 [0x0AAE01F8: 109]-->89587952 [0x0AAE01F4: 108]-->DeferredValue>>_evaluate:withArguments: [0x0AAE01F0: 107]-->89587964 [0x0AAE01EC: 106]-->3 [0x0AAE01E8: 105]-->89587938 [0x0AAE01E4: 104]-->a Array [0x0AAE01E0: 103]-->[] @ 15 in NPApplet>>evaluateAttributes [0x0AAE01DC: 102]-->a DeferredValue [0x0AAE01D8: 101]-->a DeferredValue [0x0AAE01D4: 100]-->[] @ 12 in DeferredValue>>evaluate:withArguments:at: [0x0AAE01D0: 99]-->DeferredValue>>evaluate:withArguments:at: [0x0AAE01CC: 98]-->89587948 [0x0AAE01C8: 97]-->20 [0x0AAE01C4: 96]-->89587928 [0x0AAE01C0: 95]-->a MethodContext [0x0AAE01BC: 94]-->ExceptionHandlerAbstract>>markAndTry [0x0AAE01B8: 93]-->89587936 [0x0AAE01B4: 92]-->14 [0x0AAE01B0: 91]-->89587918 [0x0AAE01AC: 90]-->[] @ 15 in ExceptionHandlerAbstract>>try: [0x0AAE01A8: 89]-->ExceptionHandlerAbstract>>try: [0x0AAE01A4: 88]-->89587926 [0x0AAE01A0: 87]-->24 [0x0AAE019C: 86]-->89587904 [0x0AAE0198: 85]-->[] @ 6 in BlockClosure>>ifCurtailed: [0x0AAE0194: 84]-->[] @ 15 in ExceptionHandlerAbstract>>try: [0x0AAE0190: 83]-->a MethodContext [0x0AAE018C: 82]-->BlockClosure>>ifCurtailed: [0x0AAE0188: 81]-->89587916 [0x0AAE0184: 80]-->20 [0x0AAE0180: 79]-->89587894 [0x0AAE017C: 78]-->89587890 [0x0AAE0178: 77]-->BlockClosure>>ensure: [0x0AAE0174: 76]-->89587902 [0x0AAE0170: 75]-->7 [0x0AAE016C: 74]-->89587878 [0x0AAE0168: 73]-->nil [0x0AAE0164: 72]-->[] @ 34 in ExceptionHandlerAbstract>>try: [0x0AAE0160: 71]-->[] @ 15 in ExceptionHandlerAbstract>>try: [0x0AAE015C: 70]-->a MethodContext [0x0AAE0158: 69]-->ExceptionHandlerAbstract>>try: [0x0AAE0154: 68]-->89587886 [0x0AAE0150: 67]-->42 [0x0AAE014C: 66]-->89587868 [0x0AAE0148: 65]-->89587866 [0x0AAE0144: 64]-->BlockClosure>>onDo: [0x0AAE0140: 63]-->89587876 [0x0AAE013C: 62]-->3 [0x0AAE0138: 61]-->89587854 [0x0AAE0134: 60]-->a ExceptionHandlerSet [0x0AAE0130: 59]-->[] @ 12 in DeferredValue>>evaluate:withArguments:at: [0x0AAE012C: 58]-->89587846 [0x0AAE0128: 57]-->BlockClosure>>on:do:on:do: [0x0AAE0124: 56]-->89587862 [0x0AAE0120: 55]-->16 [0x0AAE011C: 54]-->89587834 [0x0AAE0118: 53]-->[] @ 37 in DeferredValue>>evaluate:withArguments:at: [0x0AAE0114: 52]-->ProcessTermination [0x0AAE0110: 51]-->[] @ 24 in DeferredValue>>evaluate:withArguments:at: [0x0AAE010C: 50]-->Error [0x0AAE0108: 49]-->[] @ 12 in DeferredValue>>evaluate:withArguments:at: [0x0AAE0104: 48]-->[] @ 8 in DeferredValue>>evaluate:withArguments:at: [0x0AAE0100: 47]-->DeferredValue>>evaluate:withArguments:at: [0x0AAE00FC: 46]-->89587842 [0x0AAE00F8: 45]-->54 [0x0AAE00F4: 44]-->89587824 [0x0AAE00F0: 43]-->a MethodContext [0x0AAE00EC: 42]-->ExceptionHandlerAbstract>>markAndTry [0x0AAE00E8: 41]-->89587832 [0x0AAE00E4: 40]-->14 [0x0AAE00E0: 39]-->89587814 [0x0AAE00DC: 38]-->[] @ 15 in ExceptionHandlerAbstract>>try: [0x0AAE00D8: 37]-->ExceptionHandlerAbstract>>try: [0x0AAE00D4: 36]-->89587822 [0x0AAE00D0: 35]-->24 [0x0AAE00CC: 34]-->89587800 [0x0AAE00C8: 33]-->[] @ 6 in BlockClosure>>ifCurtailed: [0x0AAE00C4: 32]-->[] @ 15 in ExceptionHandlerAbstract>>try: [0x0AAE00C0: 31]-->a MethodContext [0x0AAE00BC: 30]-->BlockClosure>>ifCurtailed: [0x0AAE00B8: 29]-->89587812 [0x0AAE00B4: 28]-->20 [0x0AAE00B0: 27]-->89587790 [0x0AAE00AC: 26]-->89587786 [0x0AAE00A8: 25]-->BlockClosure>>ensure: [0x0AAE00A4: 24]-->89587798 [0x0AAE00A0: 23]-->7 [0x0AAE009C: 22]-->89587774 [0x0AAE0098: 21]-->nil [0x0AAE0094: 20]-->[] @ 34 in ExceptionHandlerAbstract>>try: [0x0AAE0090: 19]-->[] @ 15 in ExceptionHandlerAbstract>>try: [0x0AAE008C: 18]-->a MethodContext [0x0AAE0088: 17]-->ExceptionHandlerAbstract>>try: [0x0AAE0084: 16]-->89587782 [0x0AAE0080: 15]-->42 [0x0AAE007C: 14]-->89587764 [0x0AAE0078: 13]-->89587760 [0x0AAE0074: 12]-->BlockClosure>>on:do: [0x0AAE0070: 11]-->89587772 [0x0AAE006C: 10]-->10 [0x0AAE0068: 9]-->89587748 [0x0AAE0064: 8]-->[] @ 12 in BlockClosure>>newProcess [0x0AAE0060: 7]-->ProcessTermination [0x0AAE005C: 6]-->[] @ 8 in DeferredValue>>evaluate:withArguments:at: [0x0AAE0058: 5]-->[] @ 6 in BlockClosure>>newProcess [0x0AAE0054: 4]-->BlockClosure>>newProcess [0x0AAE0050: 3]-->89587756 [0x0AAE004C: 2]-->20 [0x0AAE0048: 1]-->0 <Bottom of stack> *----> Stack Back Trace <----* {0x0AAE086C: cf 0x0AAE084D, sp 0x0AAE087C, bp 0x0AAE0864, ip 10, VMLibrary>>crashDump:} {0x0AAE084C: cf 0x0AAE0831, sp 0x0AAE085C, bp 0x0AAE0848, ip 6, PluginSessionManager>>logError:} {0x0AAE0830: cf 0x0AAE0815, sp 0x0AAE0840, bp 0x0AAE082C, ip 4, PluginSessionManager(SessionManager)>>unhandledException:} {0x0AAE0814: cf 0x0AAE07F9, sp 0x0AAE0824, bp 0x0AAE0810, ip 4, PluginSessionManager(SessionManager)>>onUnhandledError:} {0x0AAE07F8: cf 0x0AAE07E1, sp 0x0AAE0808, bp 0x0AAE07F8, ip 5, Error>>defaultAction} {0x0AAE07E0: cf 0x0AAE07CD, sp 0x0AAE07F0, bp 0x0A9DCA58, ip 57, Error(Exception)>>_propagateFrom:} {0x0AAE07CC: cf 0x0AAE07AD, sp 0x0AAE07DC, bp 0x0AAE07C8, ip 6, Error(Exception)>>_propagate} {0x0AAE07AC: cf 0x0AAE0795, sp 0x0AAE07C0, bp 0x0AAE07AC, ip 4, Error(Exception)>>pass} {0x0AAE0794: cf 0x0AAE0781, sp 0x0AAE07A4, bp 0x0A9DC1D0, ip 31, [] in DeferredValue>>evaluate:withArguments:at:} {0x0AAE0780: cf 0x0AAE0765, sp 0x0AAE0790, bp 0x0A9DC080, ip 33, [] in Error(Exception)>>_evaluateHandler:in:} {0x0AAE0764: cf 0x0AAE0751, sp 0x0AAE077C, bp 0x0A9C57F0, ip 17, BlockClosure>>ifCurtailed:} {0x0AAE0750: cf 0x0AAE0731, sp 0x0AAE0760, bp 0x0AAE0748, ip 4, BlockClosure>>ensure:} {0x0AAE0730: cf 0x0AAE071D, sp 0x0AAE0740, bp 0x0A9DC080, ip 49, Error(Exception)>>_evaluateHandler:in:} {0x0AAE071C: cf 0x0AAE0709, sp 0x0AAE072C, bp 0x0A9DCCF8, ip 44, Error(Exception)>>_propagateFrom:} {0x0AAE0708: cf 0x0AAE06E9, sp 0x0AAE0718, bp 0x0AAE0704, ip 6, Error(Exception)>>_propagate} {0x0AAE06E8: cf 0x0AAE06D1, sp 0x0AAE06FC, bp 0x0AAE06E8, ip 4, Error(Exception)>>pass} {0x0AAE06D0: cf 0x0AAE06BD, sp 0x0AAE06E0, bp 0x0A9DC978, ip 56, [] in ClassLocator>>findOrImportForeignClass} {0x0AAE06BC: cf 0x0AAE06A1, sp 0x0AAE06CC, bp 0x0A9DCC88, ip 33, [] in Error(Exception)>>_evaluateHandler:in:} {0x0AAE06A0: cf 0x0AAE068D, sp 0x0AAE06B8, bp 0x0A9DCCC0, ip 17, BlockClosure>>ifCurtailed:} {0x0AAE068C: cf 0x0AAE066D, sp 0x0AAE069C, bp 0x0AAE0684, ip 4, BlockClosure>>ensure:} {0x0AAE066C: cf 0x0AAE0659, sp 0x0AAE067C, bp 0x0A9DCC88, ip 49, Error(Exception)>>_evaluateHandler:in:} {0x0AAE0658: cf 0x0AAE0645, sp 0x0AAE0668, bp 0x0A9DC048, ip 44, Error(Exception)>>_propagateFrom:} {0x0AAE0644: cf 0x0AAE0629, sp 0x0AAE0654, bp 0x0AAE0640, ip 6, Error(Exception)>>_propagate} {0x0AAE0628: cf 0x0AAE0611, sp 0x0AAE0638, bp 0x0AAE0628, ip 12, Error(Exception)>>signal} {0x0AAE0610: cf 0x0AAE05F5, sp 0x0AAE0620, bp 0x0AAE060C, ip 7, Error(Exception)>>signal:} {0x0AAE05F4: cf 0x0AAE05D9, sp 0x0AAE0604, bp 0x0AAE05F0, ip 5, Error class(Exception class)>>signal:} {0x0AAE05D8: cf 0x0AAE05BD, sp 0x0AAE05E8, bp 0x0AAE05D4, ip 4, ClassLocator(Object)>>error:} {0x0AAE05BC: cf 0x0AAE05A5, sp 0x0AAE05CC, bp 0x0AAE05BC, ip 6, ClassLocator>>errorClassNotFound} {0x0AAE05A4: cf 0x0AAE0591, sp 0x0AAE05B4, bp 0x0A9DC978, ip 28, [] in ClassLocator>>findOrImportForeignClass} {0x0AAE0590: cf 0x0AAE057D, sp 0x0AAE05A0, bp 0x0A9DCC18, ip 25, WeakLookupTable(SharedLookupTable)>>at:ifAbsent:} {0x0AAE057C: cf 0x0AAE0569, sp 0x0AAE058C, bp 0x0A9DC978, ip 40, [] in ClassLocator>>findOrImportForeignClass} {0x0AAE0568: cf 0x0AAE0555, sp 0x0AAE0578, bp 0x0A9DCC50, ip 11, ExceptionHandler(ExceptionHandlerAbstract)>>markAndTry} {0x0AAE0554: cf 0x0AAE0539, sp 0x0AAE0564, bp 0x0A9DCB38, ip 21, [] in ExceptionHandler(ExceptionHandlerAbstract)>>try:} {0x0AAE0538: cf 0x0AAE0525, sp 0x0AAE0550, bp 0x0A9DCBE0, ip 17, BlockClosure>>ifCurtailed:} {0x0AAE0524: cf 0x0AAE0505, sp 0x0AAE0534, bp 0x0AAE051C, ip 4, BlockClosure>>ensure:} {0x0AAE0504: cf 0x0AAE04F1, sp 0x0AAE0514, bp 0x0A9DCB38, ip 39, ExceptionHandler(ExceptionHandlerAbstract)>>try:} {0x0AAE04F0: cf 0x0AAE04D1, sp 0x0AAE0500, bp 0x0AAE04E8, ip 7, BlockClosure>>on:do:} {0x0AAE04D0: cf 0x0AAE04BD, sp 0x0AAE04E0, bp 0x0A9DC978, ip 59, [] in ClassLocator>>findOrImportForeignClass} {0x0AAE04BC: cf 0x0AAE04A1, sp 0x0AAE04CC, bp 0x0A9DC9B0, ip 33, [] in Mutex>>critical:} {0x0AAE04A0: cf 0x0AAE048D, sp 0x0AAE04B8, bp 0x0A9DCB70, ip 17, BlockClosure>>ifCurtailed:} {0x0AAE048C: cf 0x0AAE046D, sp 0x0AAE049C, bp 0x0AAE0484, ip 4, BlockClosure>>ensure:} {0x0AAE046C: cf 0x0AAE0459, sp 0x0AAE047C, bp 0x0A9DC9B0, ip 69, Mutex>>critical:} {0x0AAE0458: cf 0x0AAE0445, sp 0x0AAE0468, bp 0x0A9DC978, ip 61, ClassLocator>>findOrImportForeignClass} {0x0AAE0444: cf 0x0AAE0429, sp 0x0AAE0454, bp 0x0AAE0440, ip 9, ClassLocator>>locateClass} {0x0AAE0428: cf 0x0AAE03F5, sp 0x0AAE0438, bp 0x0AAE040C, ip 23, STBInFiler>>readClassData:} {0x0AAE03F4: cf 0x0AAE03CD, sp 0x0AAE0404, bp 0x0AAE03E4, ip 51, STBInFiler>>basicNext} {0x0AAE03CC: cf 0x0AAE03B1, sp 0x0AAE03DC, bp 0x0AAE03C8, ip 3, STBInFiler>>next} {0x0AAE03B0: cf 0x0AAE037D, sp 0x0AAE03C0, bp 0x0AAE0398, ip 67, EqPersonPresenter>>fetchModel} {0x0AAE037C: cf 0x0AAE0361, sp 0x0AAE0390, bp 0x0AAE037C, ip 11, EqPersonPresenter>>onViewOpened} {0x0AAE0360: cf 0x0AAE0339, sp 0x0AAE0374, bp 0x0AAE0350, ip 14, EqPersonPresenter class(Presenter class)>>create:in:on:} {0x0AAE0338: cf 0x0AAE0319, sp 0x0AAE0348, bp 0x0AAE0330, ip 8, EqPersonPresenter class(Presenter class)>>create:in:} {0x0AAE0318: cf 0x0AAE02ED, sp 0x0AAE0328, bp 0x0AAE0304, ip 19, EqPersonPresenter class(Presenter class)>>show:inPlugin:} {0x0AAE02EC: cf 0x0AAE02D1, sp 0x0AAE02FC, bp 0x0AAE02E8, ip 5, Message>>value:} {0x0AAE02D0: cf 0x0AAE02BD, sp 0x0AAE02E0, bp 0x0A9DC940, ip 23, EqPersonPresenter class(ClassStub)>>doesNotUnderstand:} {0x0AAE02BC: cf 0x0AAE02A9, sp 0x0AAE02CC, bp 0x0A9DC860, ip 21, [] in NPApplet>>startApplet} {0x0AAE02A8: cf 0x0AAE0295, sp 0x0AAE02B8, bp 0x0A9DC908, ip 11, ExceptionHandler(ExceptionHandlerAbstract)>>markAndTry} {0x0AAE0294: cf 0x0AAE0279, sp 0x0AAE02A4, bp 0x0A9DC898, ip 21, [] in ExceptionHandler(ExceptionHandlerAbstract)>>try:} {0x0AAE0278: cf 0x0AAE0265, sp 0x0AAE0290, bp 0x0A9DC8D0, ip 17, BlockClosure>>ifCurtailed:} {0x0AAE0264: cf 0x0AAE0245, sp 0x0AAE0274, bp 0x0AAE025C, ip 4, BlockClosure>>ensure:} {0x0AAE0244: cf 0x0AAE0231, sp 0x0AAE0254, bp 0x0A9DC898, ip 39, ExceptionHandler(ExceptionHandlerAbstract)>>try:} {0x0AAE0230: cf 0x0AAE0211, sp 0x0AAE0240, bp 0x0AAE0228, ip 7, BlockClosure>>on:do:} {0x0AAE0210: cf 0x0AAE01FD, sp 0x0AAE0220, bp 0x0A9DC860, ip 36, NPApplet>>startApplet} {0x0AAE01FC: cf 0x0AAE01E9, sp 0x0AAE020C, bp 0x0A9DC198, ip 17, [] in NPApplet>>evaluateAttributes} {0x0AAE01E8: cf 0x0AAE01C5, sp 0x0AAE01F8, bp 0x0AAE01E0, ip 4, DeferredValue>>_evaluate:withArguments:} {0x0AAE01C4: cf 0x0AAE01B1, sp 0x0AAE01D8, bp 0x0A9DC1D0, ip 17, [] in DeferredValue>>evaluate:withArguments:at:} {0x0AAE01B0: cf 0x0AAE019D, sp 0x0AAE01C0, bp 0x0A9DC828, ip 11, ExceptionHandlerSet(ExceptionHandlerAbstract)>>markAndTry} {0x0AAE019C: cf 0x0AAE0181, sp 0x0AAE01AC, bp 0x0A9DC780, ip 21, [] in ExceptionHandlerSet(ExceptionHandlerAbstract)>>try:} {0x0AAE0180: cf 0x0AAE016D, sp 0x0AAE0198, bp 0x0A9DC7F0, ip 17, BlockClosure>>ifCurtailed:} {0x0AAE016C: cf 0x0AAE014D, sp 0x0AAE017C, bp 0x0AAE0164, ip 4, BlockClosure>>ensure:} {0x0AAE014C: cf 0x0AAE0139, sp 0x0AAE015C, bp 0x0A9DC780, ip 39, ExceptionHandlerSet(ExceptionHandlerAbstract)>>try:} {0x0AAE0138: cf 0x0AAE011D, sp 0x0AAE0148, bp 0x0AAE0134, ip 4, BlockClosure>>onDo:} {0x0AAE011C: cf 0x0AAE00F5, sp 0x0AAE012C, bp 0x0AAE010C, ip 13, BlockClosure>>on:do:on:do:} {0x0AAE00F4: cf 0x0AAE00E1, sp 0x0AAE0104, bp 0x0A9DC1D0, ip 51, [] in DeferredValue>>evaluate:withArguments:at:} {0x0AAE00E0: cf 0x0AAE00CD, sp 0x0AAE00F0, bp 0x0A9DC748, ip 11, ExceptionHandler(ExceptionHandlerAbstract)>>markAndTry} {0x0AAE00CC: cf 0x0AAE00B1, sp 0x0AAE00DC, bp 0x0A9DC6D8, ip 21, [] in ExceptionHandler(ExceptionHandlerAbstract)>>try:} {0x0AAE00B0: cf 0x0AAE009D, sp 0x0AAE00C8, bp 0x0A9DC710, ip 17, BlockClosure>>ifCurtailed:} {0x0AAE009C: cf 0x0AAE007D, sp 0x0AAE00AC, bp 0x0AAE0094, ip 4, BlockClosure>>ensure:} {0x0AAE007C: cf 0x0AAE0069, sp 0x0AAE008C, bp 0x0A9DC6D8, ip 39, ExceptionHandler(ExceptionHandlerAbstract)>>try:} {0x0AAE0068: cf 0x0AAE0049, sp 0x0AAE0078, bp 0x0AAE0060, ip 7, BlockClosure>>on:do:} {0x0AAE0048: cf 0x00000001, sp 0x0AAE0058, bp 0x0A9DC0B8, ip 17, [] in BlockClosure>>newProcess} <Bottom of stack> ***** End of crash report ***** |
Jerry,
> But, when deployed as an applet this barfs when STB'ing the file, with a > message that the EqPerson class (my model class) can't be found in the > image. The funny thing is, if I'm not using STB I can work with the > EqPerson class in the applet as much as I want without any problems. I can > even do stuff with EqPerson in the applet without errors just before trying > to STB one in, everything is always fine until the STB'ing starts. > > My applet lives in a single binary package, which includes the applet > presenter (EqPersonPresenter) and the model (EqPerson). > > I'm including the crash dump below. Has anyone else used STB successfully > in an applet? I don't recall where I got into trouble, but, I think you're on to something. It was easier to build an .exe, so I ended up doing that. > [0x0AAE0864: 520]-->'The class EqPerson could not be found in the image' Blair, Thanks for adding this to the tracing; it should help a lot. Have a good one, Bill -- Wilhelm K. Schwab, Ph.D. [hidden email] |
In reply to this post by Jerry Bell
OK, more information.
By the time the error occurs, I have already forced my EqPerson class to load with 'EqPerson name'. Looking at the error in my debug image debugger, I find this when the error occurs during the STB activity: In ClassLocator>>findOrImportForeignClass, the classKey which is generated is 'EqPerson'. The class is indeed in ImportedClassese. However, its key is: 'https://www.myurl.com/EqPerson' So, looking up EqPerson is failing, hence the error. What I don't know yet is whether the key sent to the ClassLocator is wrong, or if the keys in the ClassLocator's WeakLookupTable are wrong, or if the problem is somewhere else. Andy? Blair? Thanks, Jerry "Jerry Bell" <[hidden email]> wrote in message news:9e7ahf$1fkgd$[hidden email]... > OK, I reworked the code to use only IDispatch calls and everything works > right. I'll look into it more deeply later, as using IDispatch calls > doesn't look nearly as clean. > > But, this has allowed me to uncover another, much more important problem. > > There seems to be a problem using STB in an applet (when the STB'd objects' > classes are loaded via binary packages, anyway). I found something similar > in a post by Ted Bracht back in January. > > My applet downloads an STB file from a Xerox Docushare document repository > via the COM objects that where giving me problems before. I save the file > as a local temporary file and then load it via STB. This works great from > my development image. > > But, when deployed as an applet this barfs when STB'ing the file, with a > message that the EqPerson class (my model class) can't be found in the > image. The funny thing is, if I'm not using STB I can work with the > EqPerson class in the applet as much as I want without any problems. I > even do stuff with EqPerson in the applet without errors just before trying > to STB one in, everything is always fine until the STB'ing starts. > > My applet lives in a single binary package, which includes the applet > presenter (EqPersonPresenter) and the model (EqPerson). > > I'm including the crash dump below. Has anyone else used STB successfully > in an applet? > > Thanks, > > Jerry > > > > **** > ************************** Dolphin Crash Dump Report > *************************** > > 21:24:56 PM, 5/19/01: iexplore.exe caused an unhandled Win32 Exception > 0x20000002 > at 0x77F1D479 in module 0x77F00000 (C:\WINNT\system32\KERNEL32.dll) > > *----> Exception Parameters <----* > 0A9DD03C The class EqPerson could not be found in > > *----> CPU Context for thread 0x7d <----* > EAX = 0A30FD70 EBX = 0A7C4B24 ECX = FFFFFFFF > ESI = 0A30FD88 EDI = FFFFFFFF EIP = 77F1D479 > ESP = 0A30FD6C EBP = 0A30FDC0 EFL = 00000246 > CS = 001B SS = 0023 DS = 0023 > ES = 0023 FS = 0038 GS = 0000 > > *----> VM Context <----* > Process: {0x0AAE0004:suspended frame 0x0AAE05F5, priority 5, callbacks 0 > last failure 2:nil, FPE mask 1, thread nil} > Active Method: VMLibrary>>crashDump: > IP: 0x0A7CC68E (22) > SP: 0x0AAE0890 > BP: 0x0AAE0864 (520) > ActiveFrame: {0x0AAE086C: cf 0x0AAE084D, sp 0x0AAE087C, bp 0x0AAE0864, ip > 10, VMLibrary>>crashDump:} > > New Method: > > s: > Message Selector: > #raiseException:dwExceptionFlags:nNumberOfArguments:lpArguments: > > *----> Stack <----* > [0x0AAE0890: 531]-->a DWORDArray > [0x0AAE088C: 530]-->1 > [0x0AAE0888: 529]-->0 > [0x0AAE0884: 528]-->536870914 > [0x0AAE0880: 527]-->a KernelLibrary > [0x0AAE087C: 526]-->89588786 > [0x0AAE0878: 525]-->VMLibrary>>crashDump: > [0x0AAE0874: 524]-->89588798 > [0x0AAE0870: 523]-->13 > [0x0AAE086C: 522]-->89588774 > [0x0AAE0868: 521]-->a DWORDArray > [0x0AAE0864: 520]-->'The class EqPerson could not be found in the image' > [0x0AAE0860: 519]-->a VMLibrary > [0x0AAE085C: 518]-->89588772 > [0x0AAE0858: 517]-->PluginSessionManager>>logError: > [0x0AAE0854: 516]-->89588782 > [0x0AAE0850: 515]-->9 > [0x0AAE084C: 514]-->89588760 > [0x0AAE0848: 513]-->a Error > [0x0AAE0844: 512]-->a PluginSessionManager > [0x0AAE0840: 511]-->89588758 > [0x0AAE083C: 510]-->SessionManager>>unhandledException: > [0x0AAE0838: 509]-->89588768 > [0x0AAE0834: 508]-->7 > [0x0AAE0830: 507]-->89588746 > [0x0AAE082C: 506]-->a Error > [0x0AAE0828: 505]-->a PluginSessionManager > [0x0AAE0824: 504]-->89588744 > [0x0AAE0820: 503]-->SessionManager>>onUnhandledError: > [0x0AAE081C: 502]-->89588754 > [0x0AAE0818: 501]-->3 > [0x0AAE0814: 500]-->89588732 > [0x0AAE0810: 499]-->a Error > [0x0AAE080C: 498]-->a PluginSessionManager > [0x0AAE0808: 497]-->89588732 > [0x0AAE0804: 496]-->Error>>defaultAction > [0x0AAE0800: 495]-->89588740 > [0x0AAE07FC: 494]-->8 > [0x0AAE07F8: 493]-->89588720 > [0x0AAE07F4: 492]-->a Error > [0x0AAE07F0: 491]-->a MethodContext > [0x0AAE07EC: 490]-->Exception>>_propagateFrom: > [0x0AAE07E8: 489]-->89588728 > [0x0AAE07E4: 488]-->60 > [0x0AAE07E0: 487]-->89588710 > [0x0AAE07DC: 486]-->89588708 > [0x0AAE07D8: 485]-->Exception>>_propagate > [0x0AAE07D4: 484]-->89588718 > [0x0AAE07D0: 483]-->9 > [0x0AAE07CC: 482]-->89588694 > [0x0AAE07C8: 481]-->nil > [0x0AAE07C4: 480]-->a Error > [0x0AAE07C0: 479]-->a Error > [0x0AAE07BC: 478]-->89588694 > [0x0AAE07B8: 477]-->Exception>>pass > [0x0AAE07B4: 476]-->89588704 > [0x0AAE07B0: 475]-->7 > [0x0AAE07AC: 474]-->89588682 > [0x0AAE07A8: 473]-->a Error > [0x0AAE07A4: 472]-->[] @ 24 in DeferredValue>>evaluate:withArguments:at: > [0x0AAE07A0: 471]-->DeferredValue>>evaluate:withArguments:at: > [0x0AAE079C: 470]-->89588690 > [0x0AAE0798: 469]-->34 > [0x0AAE0794: 468]-->89588672 > [0x0AAE0790: 467]-->[] @ 15 in Exception>>_evaluateHandler:in: > [0x0AAE078C: 466]-->Exception>>_evaluateHandler:in: > [0x0AAE0788: 465]-->89588680 > [0x0AAE0784: 464]-->36 > [0x0AAE0780: 463]-->89588658 > [0x0AAE077C: 462]-->[] @ 6 in BlockClosure>>ifCurtailed: > [0x0AAE0778: 461]-->[] @ 15 in Exception>>_evaluateHandler:in: > [0x0AAE0774: 460]-->a MethodContext > [0x0AAE0770: 459]-->BlockClosure>>ifCurtailed: > [0x0AAE076C: 458]-->89588670 > [0x0AAE0768: 457]-->20 > [0x0AAE0764: 456]-->89588648 > [0x0AAE0760: 455]-->89588644 > [0x0AAE075C: 454]-->BlockClosure>>ensure: > [0x0AAE0758: 453]-->89588656 > [0x0AAE0754: 452]-->7 > [0x0AAE0750: 451]-->89588632 > [0x0AAE074C: 450]-->nil > [0x0AAE0748: 449]-->[] @ 40 in Exception>>_evaluateHandler:in: > [0x0AAE0744: 448]-->[] @ 15 in Exception>>_evaluateHandler:in: > [0x0AAE0740: 447]-->a MethodContext > [0x0AAE073C: 446]-->Exception>>_evaluateHandler:in: > [0x0AAE0738: 445]-->89588640 > [0x0AAE0734: 444]-->52 > [0x0AAE0730: 443]-->89588622 > [0x0AAE072C: 442]-->a MethodContext > [0x0AAE0728: 441]-->Exception>>_propagateFrom: > [0x0AAE0724: 440]-->89588630 > [0x0AAE0720: 439]-->47 > [0x0AAE071C: 438]-->89588612 > [0x0AAE0718: 437]-->89588610 > [0x0AAE0714: 436]-->Exception>>_propagate > [0x0AAE0710: 435]-->89588620 > [0x0AAE070C: 434]-->9 > [0x0AAE0708: 433]-->89588596 > [0x0AAE0704: 432]-->nil > [0x0AAE0700: 431]-->a Error > [0x0AAE06FC: 430]-->a Error > [0x0AAE06F8: 429]-->89588596 > [0x0AAE06F4: 428]-->Exception>>pass > [0x0AAE06F0: 427]-->89588606 > [0x0AAE06EC: 426]-->7 > [0x0AAE06E8: 425]-->89588584 > [0x0AAE06E4: 424]-->a Error > [0x0AAE06E0: 423]-->[] @ 48 in ClassLocator>>findOrImportForeignClass > [0x0AAE06DC: 422]-->ClassLocator>>findOrImportForeignClass > [0x0AAE06D8: 421]-->89588592 > [0x0AAE06D4: 420]-->59 > [0x0AAE06D0: 419]-->89588574 > [0x0AAE06CC: 418]-->[] @ 15 in Exception>>_evaluateHandler:in: > [0x0AAE06C8: 417]-->Exception>>_evaluateHandler:in: > [0x0AAE06C4: 416]-->89588582 > [0x0AAE06C0: 415]-->36 > [0x0AAE06BC: 414]-->89588560 > [0x0AAE06B8: 413]-->[] @ 6 in BlockClosure>>ifCurtailed: > [0x0AAE06B4: 412]-->[] @ 15 in Exception>>_evaluateHandler:in: > [0x0AAE06B0: 411]-->a MethodContext > [0x0AAE06AC: 410]-->BlockClosure>>ifCurtailed: > [0x0AAE06A8: 409]-->89588572 > [0x0AAE06A4: 408]-->20 > [0x0AAE06A0: 407]-->89588550 > [0x0AAE069C: 406]-->89588546 > [0x0AAE0698: 405]-->BlockClosure>>ensure: > [0x0AAE0694: 404]-->89588558 > [0x0AAE0690: 403]-->7 > [0x0AAE068C: 402]-->89588534 > [0x0AAE0688: 401]-->nil > [0x0AAE0684: 400]-->[] @ 40 in Exception>>_evaluateHandler:in: > [0x0AAE0680: 399]-->[] @ 15 in Exception>>_evaluateHandler:in: > [0x0AAE067C: 398]-->a MethodContext > [0x0AAE0678: 397]-->Exception>>_evaluateHandler:in: > [0x0AAE0674: 396]-->89588542 > [0x0AAE0670: 395]-->52 > [0x0AAE066C: 394]-->89588524 > [0x0AAE0668: 393]-->a MethodContext > [0x0AAE0664: 392]-->Exception>>_propagateFrom: > [0x0AAE0660: 391]-->89588532 > [0x0AAE065C: 390]-->47 > [0x0AAE0658: 389]-->89588514 > [0x0AAE0654: 388]-->89588512 > [0x0AAE0650: 387]-->Exception>>_propagate > [0x0AAE064C: 386]-->89588522 > [0x0AAE0648: 385]-->9 > [0x0AAE0644: 384]-->89588500 > [0x0AAE0640: 383]-->nil > [0x0AAE063C: 382]-->a Error > ... > <230 slots omitted> > ... > [0x0AAE02A0: 151]-->ExceptionHandlerAbstract>>try: > [0x0AAE029C: 150]-->89588050 > [0x0AAE0298: 149]-->24 > [0x0AAE0294: 148]-->89588028 > [0x0AAE0290: 147]-->[] @ 6 in BlockClosure>>ifCurtailed: > [0x0AAE028C: 146]-->[] @ 15 in ExceptionHandlerAbstract>>try: > [0x0AAE0288: 145]-->a MethodContext > [0x0AAE0284: 144]-->BlockClosure>>ifCurtailed: > [0x0AAE0280: 143]-->89588040 > [0x0AAE027C: 142]-->20 > [0x0AAE0278: 141]-->89588018 > [0x0AAE0274: 140]-->89588014 > [0x0AAE0270: 139]-->BlockClosure>>ensure: > [0x0AAE026C: 138]-->89588026 > [0x0AAE0268: 137]-->7 > [0x0AAE0264: 136]-->89588002 > [0x0AAE0260: 135]-->nil > [0x0AAE025C: 134]-->[] @ 34 in ExceptionHandlerAbstract>>try: > [0x0AAE0258: 133]-->[] @ 15 in ExceptionHandlerAbstract>>try: > [0x0AAE0254: 132]-->a MethodContext > [0x0AAE0250: 131]-->ExceptionHandlerAbstract>>try: > [0x0AAE024C: 130]-->89588010 > [0x0AAE0248: 129]-->42 > [0x0AAE0244: 128]-->89587992 > [0x0AAE0240: 127]-->89587988 > [0x0AAE023C: 126]-->BlockClosure>>on:do: > [0x0AAE0238: 125]-->89588000 > [0x0AAE0234: 124]-->10 > [0x0AAE0230: 123]-->89587976 > [0x0AAE022C: 122]-->[] @ 29 in NPApplet>>startApplet > [0x0AAE0228: 121]-->BinaryPackageVersionError > [0x0AAE0224: 120]-->[] @ 15 in NPApplet>>startApplet > [0x0AAE0220: 119]-->a MethodContext > [0x0AAE021C: 118]-->NPApplet>>startApplet > [0x0AAE0218: 117]-->89587984 > [0x0AAE0214: 116]-->39 > [0x0AAE0210: 115]-->89587966 > [0x0AAE020C: 114]-->[] @ 15 in NPApplet>>evaluateAttributes > [0x0AAE0208: 113]-->NPApplet>>evaluateAttributes > [0x0AAE0204: 112]-->89587974 > [0x0AAE0200: 111]-->20 > [0x0AAE01FC: 110]-->89587956 > [0x0AAE01F8: 109]-->89587952 > [0x0AAE01F4: 108]-->DeferredValue>>_evaluate:withArguments: > [0x0AAE01F0: 107]-->89587964 > [0x0AAE01EC: 106]-->3 > [0x0AAE01E8: 105]-->89587938 > [0x0AAE01E4: 104]-->a Array > [0x0AAE01E0: 103]-->[] @ 15 in NPApplet>>evaluateAttributes > [0x0AAE01DC: 102]-->a DeferredValue > [0x0AAE01D8: 101]-->a DeferredValue > [0x0AAE01D4: 100]-->[] @ 12 in DeferredValue>>evaluate:withArguments:at: > [0x0AAE01D0: 99]-->DeferredValue>>evaluate:withArguments:at: > [0x0AAE01CC: 98]-->89587948 > [0x0AAE01C8: 97]-->20 > [0x0AAE01C4: 96]-->89587928 > [0x0AAE01C0: 95]-->a MethodContext > [0x0AAE01BC: 94]-->ExceptionHandlerAbstract>>markAndTry > [0x0AAE01B8: 93]-->89587936 > [0x0AAE01B4: 92]-->14 > [0x0AAE01B0: 91]-->89587918 > [0x0AAE01AC: 90]-->[] @ 15 in ExceptionHandlerAbstract>>try: > [0x0AAE01A8: 89]-->ExceptionHandlerAbstract>>try: > [0x0AAE01A4: 88]-->89587926 > [0x0AAE01A0: 87]-->24 > [0x0AAE019C: 86]-->89587904 > [0x0AAE0198: 85]-->[] @ 6 in BlockClosure>>ifCurtailed: > [0x0AAE0194: 84]-->[] @ 15 in ExceptionHandlerAbstract>>try: > [0x0AAE0190: 83]-->a MethodContext > [0x0AAE018C: 82]-->BlockClosure>>ifCurtailed: > [0x0AAE0188: 81]-->89587916 > [0x0AAE0184: 80]-->20 > [0x0AAE0180: 79]-->89587894 > [0x0AAE017C: 78]-->89587890 > [0x0AAE0178: 77]-->BlockClosure>>ensure: > [0x0AAE0174: 76]-->89587902 > [0x0AAE0170: 75]-->7 > [0x0AAE016C: 74]-->89587878 > [0x0AAE0168: 73]-->nil > [0x0AAE0164: 72]-->[] @ 34 in ExceptionHandlerAbstract>>try: > [0x0AAE0160: 71]-->[] @ 15 in ExceptionHandlerAbstract>>try: > [0x0AAE015C: 70]-->a MethodContext > [0x0AAE0158: 69]-->ExceptionHandlerAbstract>>try: > [0x0AAE0154: 68]-->89587886 > [0x0AAE0150: 67]-->42 > [0x0AAE014C: 66]-->89587868 > [0x0AAE0148: 65]-->89587866 > [0x0AAE0144: 64]-->BlockClosure>>onDo: > [0x0AAE0140: 63]-->89587876 > [0x0AAE013C: 62]-->3 > [0x0AAE0138: 61]-->89587854 > [0x0AAE0134: 60]-->a ExceptionHandlerSet > [0x0AAE0130: 59]-->[] @ 12 in DeferredValue>>evaluate:withArguments:at: > [0x0AAE012C: 58]-->89587846 > [0x0AAE0128: 57]-->BlockClosure>>on:do:on:do: > [0x0AAE0124: 56]-->89587862 > [0x0AAE0120: 55]-->16 > [0x0AAE011C: 54]-->89587834 > [0x0AAE0118: 53]-->[] @ 37 in DeferredValue>>evaluate:withArguments:at: > [0x0AAE0114: 52]-->ProcessTermination > [0x0AAE0110: 51]-->[] @ 24 in DeferredValue>>evaluate:withArguments:at: > [0x0AAE010C: 50]-->Error > [0x0AAE0108: 49]-->[] @ 12 in DeferredValue>>evaluate:withArguments:at: > [0x0AAE0104: 48]-->[] @ 8 in DeferredValue>>evaluate:withArguments:at: > [0x0AAE0100: 47]-->DeferredValue>>evaluate:withArguments:at: > [0x0AAE00FC: 46]-->89587842 > [0x0AAE00F8: 45]-->54 > [0x0AAE00F4: 44]-->89587824 > [0x0AAE00F0: 43]-->a MethodContext > [0x0AAE00EC: 42]-->ExceptionHandlerAbstract>>markAndTry > [0x0AAE00E8: 41]-->89587832 > [0x0AAE00E4: 40]-->14 > [0x0AAE00E0: 39]-->89587814 > [0x0AAE00DC: 38]-->[] @ 15 in ExceptionHandlerAbstract>>try: > [0x0AAE00D8: 37]-->ExceptionHandlerAbstract>>try: > [0x0AAE00D4: 36]-->89587822 > [0x0AAE00D0: 35]-->24 > [0x0AAE00CC: 34]-->89587800 > [0x0AAE00C8: 33]-->[] @ 6 in BlockClosure>>ifCurtailed: > [0x0AAE00C4: 32]-->[] @ 15 in ExceptionHandlerAbstract>>try: > [0x0AAE00C0: 31]-->a MethodContext > [0x0AAE00BC: 30]-->BlockClosure>>ifCurtailed: > [0x0AAE00B8: 29]-->89587812 > [0x0AAE00B4: 28]-->20 > [0x0AAE00B0: 27]-->89587790 > [0x0AAE00AC: 26]-->89587786 > [0x0AAE00A8: 25]-->BlockClosure>>ensure: > [0x0AAE00A4: 24]-->89587798 > [0x0AAE00A0: 23]-->7 > [0x0AAE009C: 22]-->89587774 > [0x0AAE0098: 21]-->nil > [0x0AAE0094: 20]-->[] @ 34 in ExceptionHandlerAbstract>>try: > [0x0AAE0090: 19]-->[] @ 15 in ExceptionHandlerAbstract>>try: > [0x0AAE008C: 18]-->a MethodContext > [0x0AAE0088: 17]-->ExceptionHandlerAbstract>>try: > [0x0AAE0084: 16]-->89587782 > [0x0AAE0080: 15]-->42 > [0x0AAE007C: 14]-->89587764 > [0x0AAE0078: 13]-->89587760 > [0x0AAE0074: 12]-->BlockClosure>>on:do: > [0x0AAE0070: 11]-->89587772 > [0x0AAE006C: 10]-->10 > [0x0AAE0068: 9]-->89587748 > [0x0AAE0064: 8]-->[] @ 12 in BlockClosure>>newProcess > [0x0AAE0060: 7]-->ProcessTermination > [0x0AAE005C: 6]-->[] @ 8 in DeferredValue>>evaluate:withArguments:at: > [0x0AAE0058: 5]-->[] @ 6 in BlockClosure>>newProcess > [0x0AAE0054: 4]-->BlockClosure>>newProcess > [0x0AAE0050: 3]-->89587756 > [0x0AAE004C: 2]-->20 > [0x0AAE0048: 1]-->0 > <Bottom of stack> > > *----> Stack Back Trace <----* > {0x0AAE086C: cf 0x0AAE084D, sp 0x0AAE087C, bp 0x0AAE0864, ip 10, > VMLibrary>>crashDump:} > {0x0AAE084C: cf 0x0AAE0831, sp 0x0AAE085C, bp 0x0AAE0848, ip 6, > PluginSessionManager>>logError:} > {0x0AAE0830: cf 0x0AAE0815, sp 0x0AAE0840, bp 0x0AAE082C, ip 4, > PluginSessionManager(SessionManager)>>unhandledException:} > {0x0AAE0814: cf 0x0AAE07F9, sp 0x0AAE0824, bp 0x0AAE0810, ip 4, > PluginSessionManager(SessionManager)>>onUnhandledError:} > {0x0AAE07F8: cf 0x0AAE07E1, sp 0x0AAE0808, bp 0x0AAE07F8, ip 5, > Error>>defaultAction} > {0x0AAE07E0: cf 0x0AAE07CD, sp 0x0AAE07F0, bp 0x0A9DCA58, ip 57, > Error(Exception)>>_propagateFrom:} > {0x0AAE07CC: cf 0x0AAE07AD, sp 0x0AAE07DC, bp 0x0AAE07C8, ip 6, > Error(Exception)>>_propagate} > {0x0AAE07AC: cf 0x0AAE0795, sp 0x0AAE07C0, bp 0x0AAE07AC, ip 4, > Error(Exception)>>pass} > {0x0AAE0794: cf 0x0AAE0781, sp 0x0AAE07A4, bp 0x0A9DC1D0, ip 31, [] in > DeferredValue>>evaluate:withArguments:at:} > {0x0AAE0780: cf 0x0AAE0765, sp 0x0AAE0790, bp 0x0A9DC080, ip 33, [] in > Error(Exception)>>_evaluateHandler:in:} > {0x0AAE0764: cf 0x0AAE0751, sp 0x0AAE077C, bp 0x0A9C57F0, ip 17, > BlockClosure>>ifCurtailed:} > {0x0AAE0750: cf 0x0AAE0731, sp 0x0AAE0760, bp 0x0AAE0748, ip 4, > BlockClosure>>ensure:} > {0x0AAE0730: cf 0x0AAE071D, sp 0x0AAE0740, bp 0x0A9DC080, ip 49, > Error(Exception)>>_evaluateHandler:in:} > {0x0AAE071C: cf 0x0AAE0709, sp 0x0AAE072C, bp 0x0A9DCCF8, ip 44, > Error(Exception)>>_propagateFrom:} > {0x0AAE0708: cf 0x0AAE06E9, sp 0x0AAE0718, bp 0x0AAE0704, ip 6, > Error(Exception)>>_propagate} > {0x0AAE06E8: cf 0x0AAE06D1, sp 0x0AAE06FC, bp 0x0AAE06E8, ip 4, > Error(Exception)>>pass} > {0x0AAE06D0: cf 0x0AAE06BD, sp 0x0AAE06E0, bp 0x0A9DC978, ip 56, [] in > ClassLocator>>findOrImportForeignClass} > {0x0AAE06BC: cf 0x0AAE06A1, sp 0x0AAE06CC, bp 0x0A9DCC88, ip 33, [] in > Error(Exception)>>_evaluateHandler:in:} > {0x0AAE06A0: cf 0x0AAE068D, sp 0x0AAE06B8, bp 0x0A9DCCC0, ip 17, > BlockClosure>>ifCurtailed:} > {0x0AAE068C: cf 0x0AAE066D, sp 0x0AAE069C, bp 0x0AAE0684, ip 4, > BlockClosure>>ensure:} > {0x0AAE066C: cf 0x0AAE0659, sp 0x0AAE067C, bp 0x0A9DCC88, ip 49, > Error(Exception)>>_evaluateHandler:in:} > {0x0AAE0658: cf 0x0AAE0645, sp 0x0AAE0668, bp 0x0A9DC048, ip 44, > Error(Exception)>>_propagateFrom:} > {0x0AAE0644: cf 0x0AAE0629, sp 0x0AAE0654, bp 0x0AAE0640, ip 6, > Error(Exception)>>_propagate} > {0x0AAE0628: cf 0x0AAE0611, sp 0x0AAE0638, bp 0x0AAE0628, ip 12, > Error(Exception)>>signal} > {0x0AAE0610: cf 0x0AAE05F5, sp 0x0AAE0620, bp 0x0AAE060C, ip 7, > Error(Exception)>>signal:} > {0x0AAE05F4: cf 0x0AAE05D9, sp 0x0AAE0604, bp 0x0AAE05F0, ip 5, Error > class(Exception class)>>signal:} > {0x0AAE05D8: cf 0x0AAE05BD, sp 0x0AAE05E8, bp 0x0AAE05D4, ip 4, > ClassLocator(Object)>>error:} > {0x0AAE05BC: cf 0x0AAE05A5, sp 0x0AAE05CC, bp 0x0AAE05BC, ip 6, > ClassLocator>>errorClassNotFound} > {0x0AAE05A4: cf 0x0AAE0591, sp 0x0AAE05B4, bp 0x0A9DC978, ip 28, [] in > ClassLocator>>findOrImportForeignClass} > {0x0AAE0590: cf 0x0AAE057D, sp 0x0AAE05A0, bp 0x0A9DCC18, ip 25, > WeakLookupTable(SharedLookupTable)>>at:ifAbsent:} > {0x0AAE057C: cf 0x0AAE0569, sp 0x0AAE058C, bp 0x0A9DC978, ip 40, [] in > ClassLocator>>findOrImportForeignClass} > {0x0AAE0568: cf 0x0AAE0555, sp 0x0AAE0578, bp 0x0A9DCC50, ip 11, > ExceptionHandler(ExceptionHandlerAbstract)>>markAndTry} > {0x0AAE0554: cf 0x0AAE0539, sp 0x0AAE0564, bp 0x0A9DCB38, ip 21, [] in > ExceptionHandler(ExceptionHandlerAbstract)>>try:} > {0x0AAE0538: cf 0x0AAE0525, sp 0x0AAE0550, bp 0x0A9DCBE0, ip 17, > BlockClosure>>ifCurtailed:} > {0x0AAE0524: cf 0x0AAE0505, sp 0x0AAE0534, bp 0x0AAE051C, ip 4, > BlockClosure>>ensure:} > {0x0AAE0504: cf 0x0AAE04F1, sp 0x0AAE0514, bp 0x0A9DCB38, ip 39, > ExceptionHandler(ExceptionHandlerAbstract)>>try:} > {0x0AAE04F0: cf 0x0AAE04D1, sp 0x0AAE0500, bp 0x0AAE04E8, ip 7, > BlockClosure>>on:do:} > {0x0AAE04D0: cf 0x0AAE04BD, sp 0x0AAE04E0, bp 0x0A9DC978, ip 59, [] in > ClassLocator>>findOrImportForeignClass} > {0x0AAE04BC: cf 0x0AAE04A1, sp 0x0AAE04CC, bp 0x0A9DC9B0, ip 33, [] in > Mutex>>critical:} > {0x0AAE04A0: cf 0x0AAE048D, sp 0x0AAE04B8, bp 0x0A9DCB70, ip 17, > BlockClosure>>ifCurtailed:} > {0x0AAE048C: cf 0x0AAE046D, sp 0x0AAE049C, bp 0x0AAE0484, ip 4, > BlockClosure>>ensure:} > {0x0AAE046C: cf 0x0AAE0459, sp 0x0AAE047C, bp 0x0A9DC9B0, ip 69, > Mutex>>critical:} > {0x0AAE0458: cf 0x0AAE0445, sp 0x0AAE0468, bp 0x0A9DC978, ip 61, > ClassLocator>>findOrImportForeignClass} > {0x0AAE0444: cf 0x0AAE0429, sp 0x0AAE0454, bp 0x0AAE0440, ip 9, > ClassLocator>>locateClass} > {0x0AAE0428: cf 0x0AAE03F5, sp 0x0AAE0438, bp 0x0AAE040C, ip 23, > STBInFiler>>readClassData:} > {0x0AAE03F4: cf 0x0AAE03CD, sp 0x0AAE0404, bp 0x0AAE03E4, ip 51, > STBInFiler>>basicNext} > {0x0AAE03CC: cf 0x0AAE03B1, sp 0x0AAE03DC, bp 0x0AAE03C8, ip 3, > STBInFiler>>next} > {0x0AAE03B0: cf 0x0AAE037D, sp 0x0AAE03C0, bp 0x0AAE0398, ip 67, > EqPersonPresenter>>fetchModel} > {0x0AAE037C: cf 0x0AAE0361, sp 0x0AAE0390, bp 0x0AAE037C, ip 11, > EqPersonPresenter>>onViewOpened} > {0x0AAE0360: cf 0x0AAE0339, sp 0x0AAE0374, bp 0x0AAE0350, ip 14, > EqPersonPresenter class(Presenter class)>>create:in:on:} > {0x0AAE0338: cf 0x0AAE0319, sp 0x0AAE0348, bp 0x0AAE0330, ip 8, > EqPersonPresenter class(Presenter class)>>create:in:} > {0x0AAE0318: cf 0x0AAE02ED, sp 0x0AAE0328, bp 0x0AAE0304, ip 19, > EqPersonPresenter class(Presenter class)>>show:inPlugin:} > {0x0AAE02EC: cf 0x0AAE02D1, sp 0x0AAE02FC, bp 0x0AAE02E8, ip 5, > Message>>value:} > {0x0AAE02D0: cf 0x0AAE02BD, sp 0x0AAE02E0, bp 0x0A9DC940, ip 23, > EqPersonPresenter class(ClassStub)>>doesNotUnderstand:} > {0x0AAE02BC: cf 0x0AAE02A9, sp 0x0AAE02CC, bp 0x0A9DC860, ip 21, [] in > NPApplet>>startApplet} > {0x0AAE02A8: cf 0x0AAE0295, sp 0x0AAE02B8, bp 0x0A9DC908, ip 11, > ExceptionHandler(ExceptionHandlerAbstract)>>markAndTry} > {0x0AAE0294: cf 0x0AAE0279, sp 0x0AAE02A4, bp 0x0A9DC898, ip 21, [] in > ExceptionHandler(ExceptionHandlerAbstract)>>try:} > {0x0AAE0278: cf 0x0AAE0265, sp 0x0AAE0290, bp 0x0A9DC8D0, ip 17, > BlockClosure>>ifCurtailed:} > {0x0AAE0264: cf 0x0AAE0245, sp 0x0AAE0274, bp 0x0AAE025C, ip 4, > BlockClosure>>ensure:} > {0x0AAE0244: cf 0x0AAE0231, sp 0x0AAE0254, bp 0x0A9DC898, ip 39, > ExceptionHandler(ExceptionHandlerAbstract)>>try:} > {0x0AAE0230: cf 0x0AAE0211, sp 0x0AAE0240, bp 0x0AAE0228, ip 7, > BlockClosure>>on:do:} > {0x0AAE0210: cf 0x0AAE01FD, sp 0x0AAE0220, bp 0x0A9DC860, ip 36, > NPApplet>>startApplet} > {0x0AAE01FC: cf 0x0AAE01E9, sp 0x0AAE020C, bp 0x0A9DC198, ip 17, [] in > NPApplet>>evaluateAttributes} > {0x0AAE01E8: cf 0x0AAE01C5, sp 0x0AAE01F8, bp 0x0AAE01E0, ip 4, > DeferredValue>>_evaluate:withArguments:} > {0x0AAE01C4: cf 0x0AAE01B1, sp 0x0AAE01D8, bp 0x0A9DC1D0, ip 17, [] in > DeferredValue>>evaluate:withArguments:at:} > {0x0AAE01B0: cf 0x0AAE019D, sp 0x0AAE01C0, bp 0x0A9DC828, ip 11, > ExceptionHandlerSet(ExceptionHandlerAbstract)>>markAndTry} > {0x0AAE019C: cf 0x0AAE0181, sp 0x0AAE01AC, bp 0x0A9DC780, ip 21, [] in > ExceptionHandlerSet(ExceptionHandlerAbstract)>>try:} > {0x0AAE0180: cf 0x0AAE016D, sp 0x0AAE0198, bp 0x0A9DC7F0, ip 17, > BlockClosure>>ifCurtailed:} > {0x0AAE016C: cf 0x0AAE014D, sp 0x0AAE017C, bp 0x0AAE0164, ip 4, > BlockClosure>>ensure:} > {0x0AAE014C: cf 0x0AAE0139, sp 0x0AAE015C, bp 0x0A9DC780, ip 39, > ExceptionHandlerSet(ExceptionHandlerAbstract)>>try:} > {0x0AAE0138: cf 0x0AAE011D, sp 0x0AAE0148, bp 0x0AAE0134, ip 4, > BlockClosure>>onDo:} > {0x0AAE011C: cf 0x0AAE00F5, sp 0x0AAE012C, bp 0x0AAE010C, ip 13, > BlockClosure>>on:do:on:do:} > {0x0AAE00F4: cf 0x0AAE00E1, sp 0x0AAE0104, bp 0x0A9DC1D0, ip 51, [] in > DeferredValue>>evaluate:withArguments:at:} > {0x0AAE00E0: cf 0x0AAE00CD, sp 0x0AAE00F0, bp 0x0A9DC748, ip 11, > ExceptionHandler(ExceptionHandlerAbstract)>>markAndTry} > {0x0AAE00CC: cf 0x0AAE00B1, sp 0x0AAE00DC, bp 0x0A9DC6D8, ip 21, [] in > ExceptionHandler(ExceptionHandlerAbstract)>>try:} > {0x0AAE00B0: cf 0x0AAE009D, sp 0x0AAE00C8, bp 0x0A9DC710, ip 17, > BlockClosure>>ifCurtailed:} > {0x0AAE009C: cf 0x0AAE007D, sp 0x0AAE00AC, bp 0x0AAE0094, ip 4, > BlockClosure>>ensure:} > {0x0AAE007C: cf 0x0AAE0069, sp 0x0AAE008C, bp 0x0A9DC6D8, ip 39, > ExceptionHandler(ExceptionHandlerAbstract)>>try:} > {0x0AAE0068: cf 0x0AAE0049, sp 0x0AAE0078, bp 0x0AAE0060, ip 7, > BlockClosure>>on:do:} > {0x0AAE0048: cf 0x00000001, sp 0x0AAE0058, bp 0x0A9DC0B8, ip 17, [] in > BlockClosure>>newProcess} > <Bottom of stack> > > ***** End of crash report ***** > > > > |
In reply to this post by Jerry Bell
Jerry
You wrote in message news:9e7ahf$1fkgd$[hidden email]... > ... > There seems to be a problem using STB in an applet (when the STB'd objects' > classes are loaded via binary packages, anyway). I found something similar > in a post by Ted Bracht back in January. >... Ah, that is (I'd guess) because you are not setting the #classLocator of the STBInFiler, and so it is attempting to lookup the classes referenced in the STB file in the "global" namespace, which would not include any classes dynamically loaded from binary packages. Classes loaded from binary packages exist within a "namespace" that is based on the URL from which they were loaded - the "codeBase". The fully qualified name of a class is needed to resolve any classes loaded from binary packages (this is in order to avoid name clash issues when loading multiple applets). In order to resolve the class references, the STBInFiler needs to know the namespace in which it should look, by default the global namespace. >... > My applet downloads an STB file from a Xerox Docushare document repository > via the COM objects that where giving me problems before. I save the file > as a local temporary file and then load it via STB. This works great from > my development image. That would be because you have the classes loaded into (effectively) the global namespace. > But, when deployed as an applet this barfs when STB'ing the file, with a > message that the EqPerson class (my model class) can't be found in the > image. The funny thing is, if I'm not using STB I can work with the > EqPerson class in the applet as much as I want without any problems. I can > even do stuff with EqPerson in the applet without errors just before trying > to STB one in, everything is always fine until the STB'ing starts. Yes that is because all references to the class are within the context of the binary package, which knows the correct class locator. > My applet lives in a single binary package, which includes the applet > presenter (EqPersonPresenter) and the model (EqPerson). You need to set up the class/file locator (class locators are a type of file locator). Inside an applet you need to get at the URLClassLocator associated with the applet. How you go about doing this depends on where you are instantiating the STBInFiler. I'll assume from the EqPersonPresenter, in which case the locator is available by sending #fileLocator to its view. The only caveat about this is that in a non-applet situation #fileLocator will answer a <FileLocator> (in fact an ImageRelativeFileLocator). Now ClassLocator is a FileLocator, but not vice versa, and hence if you attempt to use one as the classLocator for an STBInFiler it will result in DNUs. This is a weakness in the current design, although #fileLocator was really intended for locating resources, rather than loading classes. This means that running exactly the same code as an applet or an application will not be entirely seamless, and you will need some conditional code to control whether the STBInFiler's default classLocator is replaced (yes in the applet case, not in the application case). An alternative would be to construct an appropriate ClassLocator with the correct codeBase (the server URL) as required. Regards Blair |
Thank you very much! This looks like it will be more than enough to get
things going- and it also indicates to me that I should look into the ClassLocator and its friends more in-depth- the 'namespace' stuff sounds really interesting... Thanks again! You've saved my applet's life! Jerry "Blair McGlashan" <[hidden email]> wrote in message news:9eds47$2eif2$[hidden email]... > Jerry > > You wrote in message news:9e7ahf$1fkgd$[hidden email]... > > ... > > There seems to be a problem using STB in an applet (when the STB'd > objects' > > classes are loaded via binary packages, anyway). I found something > similar > > in a post by Ted Bracht back in January. > >... > > Ah, that is (I'd guess) because you are not setting the #classLocator of > STBInFiler, and so it is attempting to lookup the classes referenced in the > STB file in the "global" namespace, which would not include any classes > dynamically loaded from binary packages. Classes loaded from binary packages > exist within a "namespace" that is based on the URL from which they were > loaded - the "codeBase". The fully qualified name of a class is needed to > resolve any classes loaded from binary packages (this is in order to avoid > name clash issues when loading multiple applets). In order to resolve the > class references, the STBInFiler needs to know the namespace in which it > should look, by default the global namespace. > > >... > > My applet downloads an STB file from a Xerox Docushare document repository > > via the COM objects that where giving me problems before. I save the file > > as a local temporary file and then load it via STB. This works great from > > my development image. > > That would be because you have the classes loaded into (effectively) the > global namespace. > > > But, when deployed as an applet this barfs when STB'ing the file, with a > > message that the EqPerson class (my model class) can't be found in the > > image. The funny thing is, if I'm not using STB I can work with the > > EqPerson class in the applet as much as I want without any problems. I > can > > even do stuff with EqPerson in the applet without errors just before > trying > > to STB one in, everything is always fine until the STB'ing starts. > > Yes that is because all references to the class are within the context of > the binary package, which knows the correct class locator. > > > My applet lives in a single binary package, which includes the applet > > presenter (EqPersonPresenter) and the model (EqPerson). > > You need to set up the class/file locator (class locators are a type of > locator). Inside an applet you need to get at the URLClassLocator associated > with the applet. How you go about doing this depends on where you are > instantiating the STBInFiler. I'll assume from the EqPersonPresenter, in > which case the locator is available by sending #fileLocator to its view. > > The only caveat about this is that in a non-applet situation #fileLocator > will answer a <FileLocator> (in fact an ImageRelativeFileLocator). Now > ClassLocator is a FileLocator, but not vice versa, and hence if you attempt > to use one as the classLocator for an STBInFiler it will result in DNUs. > This is a weakness in the current design, although #fileLocator was really > intended for locating resources, rather than loading classes. This means > that running exactly the same code as an applet or an application will not > be entirely seamless, and you will need some conditional code to control > whether the STBInFiler's default classLocator is replaced (yes in the applet > case, not in the application case). > > An alternative would be to construct an appropriate ClassLocator with the > correct codeBase (the server URL) as required. > > Regards > > Blair > > |
Free forum by Nabble | Edit this page |