Thank you, David. Best,
Victor S. Popov ------------------------------------ Technology Group Technical Director, Polar Design, Moscow E-mail: [EMAIL PROTECTED] Phone: +7 (095) 363-0708 -----Original Message----- From: David N Bertoni/CAM/Lotus [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 23, 2002 2:42 AM To: [email protected] Subject: RE: XalanC++ (Segmentation Fault) The fix is now in CVS: cvs diff XSLTEngineImpl.cpp (in directory V:\xml-xalan\c\src\XSLT\) Index: XSLTEngineImpl.cpp =================================================================== RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTEngineImpl.cpp,v retrieving revision 1.130 diff -r1.130 XSLTEngineImpl.cpp 403c403 < if (theFormatter != 0) --- > if (theFormatter != 0 && theFormatter->getPrefixResolver() == 0) 1375a1376,1377 > static const XalanDOMChar theDummy = 0; > 1383c1385,1390 < const XalanDOMChar* const id = locator.getSystemId(); --- > const XalanDOMChar* id = locator.getSystemId(); > > if (id == 0) > { > id = &theDummy; > } *****CVS exited normally with code 1***** Dave "Dimitry Chernyshov" To: <[email protected]> <[EMAIL PROTECTED] cc: (bcc: David N Bertoni/CAM/Lotus) n.ru> Subject: RE: XalanC++ (Segmentation Fault) 01/22/2002 11:16 AM Thanks, David! The workaround works fine! We're looking forward for the bug to be fixed. Dimitry Chernyshov, Technology Group Managing Director, Polar Design -------------------------- [EMAIL PROTECTED] http://www.polardesign.com phone/fax: +7 (095) 363 0708 -----Original Message----- From: David N Bertoni/CAM/Lotus [mailto:[EMAIL PROTECTED] Sent: Tuesday, January 22, 2002 9:09 PM To: [email protected] Subject: Re: XalanC++ (Segmentation Fault) I've verified this as a problem. Can you please post a bug in Buzilla so we can track this? There's an easy work-around in your code -- just set the system ID for the input sources to a dummy value: const XalanDOMString theSystemID("Stream input"); xml.setSystemId(c_wstr(theSystemID)); xsl.setSystemId(c_wstr(theSystemID)); Bugzilla: http://nagoya.apache.org/bugzilla/ Thanks for reporting this! Dave "Victor S. Popov" To: <[email protected]> <[EMAIL PROTECTED] cc: ign.ru> Subject: XalanC++ (Segmentation Fault) 01/22/2002 08:54 AM Please respond to victor Hi! We are trying to use XalanC++ to transform XML to HTML. I've tried to use string streams as input sources and got "Segmentation Fault" in case of invalid XSL-source by the means of structure, i.e. no exception was thrown. Nevertheless when I use files with the same sources (invalid XSL) instead of streams, it works - transformer treats the error normally. Here is the code of prototype: XML: <?xml version="1.0"?> <document attribute="Test"/> XSL: <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:value-of select="."/> <!-- structural trap --> <xsl:template match="/"> <html><body>Test</body></html> </xsl:template> </xsl:stylesheet> CODE: { istrstream xml_stream (xml_text, strlen (xml_text)); istrstream xsl_stream (xsl_text, strlen (xsl_text)); XalanTransformer xalan; XSLTInputSource xml (& xml_stream /* "xml.xml" */); XSLTInputSource xsl (& xsl_stream /* "xsl.xsl" */); XSLTResultTarget output (cout); try { if (xalan.transform(xml, xsl, output) != 0) cout << xalan.getLastError () << endl; } catch (...) { cout << "ERROR"; }; } BT: Program terminated with signal 11, Segmentation fault. Reading symbols from /usr/lib/libstdc++-libc6.1-1.so.2...done. Reading symbols from /usr/local/lib/libxalan-c1_3.so...done. Reading symbols from /usr/local/lib/libxerces-c1_6_0.so...done. Reading symbols from /lib/libc.so.6...done. Reading symbols from /lib/libm.so.6...done. Reading symbols from /lib/libpthread.so.0...done. Reading symbols from /lib/ld-linux.so.2...done. #0 0x401abde6 in XalanDOMString::XalanDOMString () from /usr/local/lib/libxalan-c1_3.so (gdb) bt #0 0x401abde6 in XalanDOMString::XalanDOMString () from /usr/local/lib/libxalan-c1_3.so #1 0x403560ec in XSLTEngineImpl::problem () from /usr/local/lib/libxalan-c1_3.so #2 0x403565b3 in XSLTEngineImpl::error () from /usr/local/lib/libxalan-c1_3.so #3 0x403276c2 in StylesheetConstructionContextDefault::error () from /usr/local/lib/libxalan-c1_3.so #4 0x4034042e in StylesheetHandler::error () from /usr/local/lib/libxalan-c1_3.so #5 0x40336776 in StylesheetHandler::processTopLevelElement () from /usr/local/lib/libxalan-c1_3.so #6 0x403336d6 in StylesheetHandler::startElement () from /usr/local/lib/libxalan-c1_3.so #7 0x40647e54 in SAXParser::startElement () from /usr/local/lib/libxerces-c1_6_0.so #8 0x40693c10 in XMLScanner::scanStartTag () from /usr/local/lib/libxerces-c1_6_0.so #9 0x40691a7e in XMLScanner::scanContent () from /usr/local/lib/libxerces-c1_6_0.so #10 0x4068f31d in XMLScanner::scanDocument () from /usr/local/lib/libxerces-c1_6_0.so #11 0x40647038 in SAXParser::parse () from /usr/local/lib/libxerces-c1_6_0.so #12 0x4037b66f in XercesParserLiaison::parseXMLStream () from /usr/local/lib/libxalan-c1_3.so #13 0x401dcecd in XalanSourceTreeParserLiaison::parseXMLStream () from /usr/local/lib/libxalan-c1_3.so #14 0x403506d4 in XSLTEngineImpl::processStylesheet () from /usr/local/lib/libxalan-c1_3.so #15 0x4034e2cb in XSLTEngineImpl::process () from /usr/local/lib/libxalan-c1_3.so #16 0x40382667 in XalanTransformer::transform () from /usr/local/lib/libxalan-c1_3.so #17 0x403841bd in XalanTransformer::transform () from /usr/local/lib/libxalan-c1_3.so #18 0x80495e0 in main (argc=1) at StreamTransform.cpp:95 Thanks, Victor Popov
