DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9986>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9986

Xerces hangs in ThrowXML

           Summary: Xerces hangs in ThrowXML
           Product: Xerces-C++
           Version: 1.7.0
          Platform: PC
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Utilities
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


I have several threads (CWinThread) that use Xerces. Sooner or later one 
specific thread gets stuck in ThrowXML. The exact point varies depending on what 
I send in systemID. This is one example:
void XMLURL::setURL(const XMLCh* const    baseURL
                  , const XMLCh* const    relativeURL)
{
    cleanup();

    // Parse our URL string
    parse(relativeURL);

        //
        //  If its relative and the base is non-null and non-empty, then
        //  parse the base URL string and conglomerate them.
        //
        if (isRelative() && baseURL)
        {
                if (*baseURL)
                {
                        XMLURL basePart(baseURL);
                        if (!conglomerateWithBase(basePart, false))
                        {
                                cleanup();
---->                           ThrowXML(MalformedURLException, 
XMLExcepts::URL_RelativeBaseURL);
                        }
                }
        }
}
[ baseURL = "Client" relativeURL = "Information-1-0.dtd" ]

The calltree proceeds with:
MSVCRTD!__CxxThrowException@8
KERNEL32!77e989d1()
so there are no more clues there I guess. The CPU is at 0% and it appears as 
though everything is stuck in some mutex.

I've made a (large) test program that spawns 50 threads and parses 50 DTD'd XML 
documents in each and it also occasionally gets stucks.

Brief facts of the case are:
* Single thread single point of initialization.
* Uses SAX.
* New parser, etc. for each document read.
* Uses MemBufInputSource.
* Uses MS VS6 sp5.

Sorry if this provides little clue as to what goes on. Please contact me for 
more specfic information, if needed.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to