Hi ,

                        Is XPathEvaluator::initialize() supposed to be
thread-safe if you call it in each thread after
XMLPlatformUtils::Initialize() similar to how SImpleXPathAPI does it?     I
find that if I try to run an application that is essentially SimpleXPathAPI
logic being called independently for each one  within a set of multiple
threads (no, they are NOT using the same objects, that I know of), if I try
it with more than 2 threads, I end up with a protection exception on a call
stack that look like this:

     0C3239C0  +00000072  XMLString::transcode(const char* const,unsigned
short* const
                                                               0C3239C0
+00000072              *PATHNAM           Exception
    0C843C98                0B624018  +000001C2  doXercesTranscode(const
char*,unsigned int,int,vector<unsign
                                                               0B624018
+000001C2              *PATHNAM           Call
    0C843BB0                0B6245E8  +0000015A
doTranscodeFromLocalCodePage(const char*,unsigned int,int,ve
                                                               0B6245E8
+0000015A              *PATHNAM           Call
    0C8439D8                0B626A40  +00000164
XalanDOMString::append(const char*,unsigned int)
                                                               0B626A40
+00000164              *PATHNAM           Call
    0C8438F8                0B625810  +0000009A
XalanDOMString::XalanDOMString(const char*,unsigned int)
                                                               0B625810
+0000009A              *PATHNAM           Call
    0C8437C8                0B649C10  +00000082
DOMStringHelperInitialize()
                                                               0B649C10
+00000082              *PATHNAM           Call
    0C8436F0                0B65D388  +000000A8
PlatformSupportInit::PlatformSupportInit()
                                                               0B65D388
+000000A8              *PATHNAM           Call
    0C843618                0B7DB0D0  +00000078  XPathInit::XPathInit()
                                                               0B7DB0D0
+00000078              *PATHNAM           Call
    0C843540                0B7BB1C0  +00000092
XPathEvaluator::initialize()
                                                               0B7BB1C0
+00000092              *PATHNAM

       One question I have is: what is the transcode trying to work on?
XPathEvaluator::initialize() never had any arguments from anything I passed
into it.

       Is it possible that DOMStringHelperInitialize() is trying to work
with something global that is not set up separately for each thread and
then trying to do a TranscodeFromLocalCodePage on it?

        How does one assure that the XPathEvaluator::initialize() is
properly set up for multi-threading?

Thanks,
Suzanne

Reply via email to