Rony, I just thought of one more thing that could cause the error you're seeing. If you do an AttachThread() at some point and neglect to do a corresponding DetachThread() before returning to your caller, you'll end up with a corrupted activaation stack that will result in problems with legacy callback APIs like RexxVariablePool or RexxStemSort. What;s showing up in this traceback very much appears to match what might happen in that sort of situation.
Rick On Sun, May 24, 2009 at 7:08 PM, Rony G. Flatscher <rony.flatsc...@wu-wien.ac.at> wrote: > Forgot the stack trace, here it goes: > >> rexx.dll!RexxLocalVariables::get(unsigned int index=0) Line 119 + 0xa >> bytes C++ > rexx.dll!RexxActivation::getLocalStemVariable(RexxString * > name=0x7ef108d8, unsigned int index=0) Line 463 + 0x12 bytes C++ > rexx.dll!RexxActivation::getLocalStem(RexxString * name=0x7ef108d8, > unsigned int index=0) Line 472 + 0x10 bytes C++ > rexx.dll!RexxStemVariable::sort(RexxActivation * context=0x00000000, > RexxString * prefix=0x7fcbe430, int order=0, int type=0, unsigned int > start=1, unsigned int end=4294967295, unsigned int firstcol=0, unsigned int > lastcol=4294967295) Line 337 + 0x16 bytes C++ > rexx.dll!RexxNativeActivation::stemSort(const char * > stemname=0x000ad85c, > int order=0, int type=0, unsigned int start=1, unsigned int end=4294967295, > unsigned int firstcol=0, unsigned int lastcol=4294967295) Line 3171 + 0x2b > bytes C++ > rexx.dll!RexxStemSort(const char * stemname=0x000ad85c, int order=0, int > type=0, unsigned int start=1, unsigned int end=4294967295, unsigned int > firstcol=0, unsigned int lastcol=4294967295) Line 419 + 0x24 bytes C++ > rexxutil.dll!SysStemSort(const char * name=0x7eeeac34, unsigned int > numargs=1, _CONSTRXSTRING * args=0x000adad4, const char * > queuename=0x7eee6394, _RXSTRING * retstr=0x000adabc) Line 5299 + 0x2d > bytes C++ > rexx.dll!RexxNativeActivation::callRegisteredRoutine(RoutineClass * > _routine=0x7fcb6948, RegisteredRoutine * _code=0x7fcb9758, RexxString * > functionName=0x7eeeac10, RexxObject * * list=0x7df62448, unsigned int > count=1, ProtectedObject & resultObj={...}) Line 1432 + 0x34 bytes C++ > rexx.dll!RegisteredRoutine::call(RexxActivity * activity=0x7eee5188, > RoutineClass * routine=0x7fcb6948, RexxString * functionName=0x7eeeac10, > RexxObject * * argPtr=0x7df62448, unsigned int count=1, ProtectedObject & > result={...}) Line 353 C++ > rexx.dll!RoutineClass::call(RexxActivity * activity=0x7eee5188, > RexxString > * msgname=0x7eeeac10, RexxObject * * argPtr=0x7df62448, unsigned int > argcount=1, ProtectedObject & result={...}) Line 234 C++ > rexx.dll!PackageManager::callNativeRoutine(RexxActivity * > activity=0x7eee5188, RexxString * name=0x7eeeac10, RexxObject * * > arguments=0x7df62448, unsigned int argcount=1, ProtectedObject & > result={...}) Line 658 C++ > rexx.dll!SystemInterpreter::invokeExternalFunction(RexxActivation * > activation=0x7eee18e0, RexxActivity * activity=0x7eee5188, RexxString * > target=0x7eeeac10, RexxObject * * arguments=0x7df62448, unsigned int > argcount=1, RexxString * calltype=0x7fd52690, ProtectedObject & > result={...}) Line 267 + 0x17 bytes C++ > rexx.dll!RexxActivation::externalCall(RexxString * target=0x7eeeac10, > unsigned int _argcount=1, RexxExpressionStack * _stack=0x7eee19a0, > RexxString * calltype=0x7fd52690, ProtectedObject & resultObj={...}) Line > 2586 + 0x25 bytes C++ > rexx.dll!RexxInstructionCall::execute(RexxActivation * > context=0x7eee18e0, > RexxExpressionStack * stack=0x7eee19a0) Line 277 C++ > rexx.dll!RexxActivation::run(RexxObject * _receiver=0x00000000, > RexxString > * msgname=0x7fd52450, RexxObject * * _arglist=0x7eee6610, unsigned int > _argcount=0, RexxInstruction * start=0x00000000, ProtectedObject & > resultObj={...}) Line 518 C++ > rexx.dll!RexxCode::call(RexxActivity * activity=0x7eee5188, > RoutineClass * > routine=0x7eee7040, RexxString * msgname=0x7fd52450, RexxObject * * > argPtr=0x7eee6610, unsigned int argcount=0, RexxString * > calltype=0x7fcef878, RexxString * environment=0x7eee5a20, int context=16, > ProtectedObject & result={...}) Line 116 C++ > rexx.dll!RoutineClass::runProgram(RexxActivity * activity=0x7eee5188, > RexxString * calltype=0x7fcef878, RexxString * environment=0x7eee5a20, > RexxObject * * arguments=0x7eee6610, unsigned int argCount=0, > ProtectedObject & result={...}) Line 306 C++ > rexx.dll!RexxStartDispatcher::run() Line 139 C++ > rexx.dll!RexxNativeActivation::run(ActivityDispatcher & > dispatcher={...}) > Line 1533 C++ > rexx.dll!RexxActivity::run(ActivityDispatcher & target={...}) Line > 2945 C++ > rexx.dll!ActivityDispatcher::invoke(_RXSYSEXIT * exits=0x00000000, const > char * env=0x0041d248) Line 122 C++ > rexx.dll!RexxStart(unsigned int argcount=0, _CONSTRXSTRING * > arglist=0x000aff5c, const char * programname=0x00a53871, _RXSTRING * > instore=0x00000000, const char * envname=0x0041d248, int calltype=0, > _RXSYSEXIT * exits=0x00000000, short * retcode=0x000adf28, _RXSTRING * > result=0x000aff4c) Line 164 C++ > rexx.exe!main(int argc=2, char * * argv=0x00a53848) Line 196 + 0x27 > bytes C++ > rexx.exe!__tmainCRTStartup() Line 266 + 0x19 bytes C > rexx.exe!mainCRTStartup() Line 182 C > kernel32.dll!7c817077() > [Frames below may be incorrect and/or missing, no symbols loaded for > kernel32.dll] > > > The Rexx script gets executed via rexx.exe and loads BSF4Rexx to interact > with Java and collects the properties that then get sorted. (The Java > properties and their values look o.k., nothing scrambled there.) > > --rony > ------------------------------------------------------------------------------ > Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT > is a gathering of tech-side developers & brand creativity professionals. > Meet > the minds behind Google Creative Lab, Visual Complexity, Processing, & > iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian > Group, R/GA, & Big Spaceship. http://www.creativitycat.com > _______________________________________________ > Oorexx-devel mailing list > Oorexx-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/oorexx-devel > > ------------------------------------------------------------------------------ Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT is a gathering of tech-side developers & brand creativity professionals. Meet the minds behind Google Creative Lab, Visual Complexity, Processing, & iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian Group, R/GA, & Big Spaceship. http://www.creativitycat.com _______________________________________________ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel