I did some brief debugging: the method FragmentXmlLoader::loadXml() goes into an infinite loop with this input document. Specifically, when it starts parsing the <template head="R..." element, it repeatedly gets to line 332 in that file:
if (theXQueryDiagnostics->errors().empty()
&& theFragmentStream->current_offset == 0)
{
if (theFragmentStream->state == FragmentIStream::FRAGMENT_FIRST_START_DOC) FragmentXmlLoader::startDocument(theFragmentStream->ctxt->userData); xmlParseCharData(theFragmentStream->ctxt, 0); theFragmentStream->current_offset = getCurrentInputOffset(); // update current offset
And theFragmentStream->current_offset is set (again) to 0 at this point, meaning it will get to the same point the next time through, and so on.
I did some brief debugging: the method FragmentXmlLoad er::loadXml( ) goes into an infinite loop with this input document. Specifically, when it starts parsing the <template head="R..." element, it repeatedly gets to line 332 in that file:
if (theXQueryDiagn ostics- >errors( ).empty( )
theFragmentS tream-> current_ offset == 0) eam->state == FragmentIStream ::FRAGMENT_ FIRST_START_ DOC)
FragmentXmlL oader:: startDocument( theFragmentStre am->ctxt- >userData) ;
xmlParseCharDa ta(theFragmentS tream-> ctxt, 0);
theFragmentStr eam->current_ offset = getCurrentInput Offset( ); // update current offset
&&
{
if (theFragmentStr
And theFragmentStre am->current_ offset is set (again) to 0 at this point, meaning it will get to the same point the next time through, and so on.