Hi Roger,

I encountered this issue stepping into a call to getChildNodes on an instance 
of XalanDocument class. The implementation of getChildNodes for this class is 
in XalanSourceTreeDocument.cpp. It  throws a NOT_SUPPORTED_ERR at line 204 in 
the getChildNodes method implementation. Grepping through the Xalan source code 
shows that the following implementations also throw this exception in their 
respective getChildNodes implementations:

XalanSourceTreeComment.cpp:117
XalanSourceTreeDocumentFragment.cpp:110
XalanSourceTreeElement.cpp:136
XalanSourceTreeProcessingInstruction.cpp:116
XalanSourceTreeText.cpp:104

I wonder why this method is not implemented. I have been able to simulate it 
trivially, using getNextSibling, which is implemented for these classes.

Regards,

Paul

From: Roger Leigh <[email protected]>
Sent: Saturday, August 22, 2020 4:18 AM
To: [email protected]
Subject: Re: getChildNodes errors in Xalan 1.12


Hi Paul,



Which specific class are you using?



Kind regards,

Roger
On 21/08/2020 22:32, Paul Kinnucan wrote:
Hi,

Xalan does not support getChildNodes. The method implementations throw a 
XalanDOMException::NOT_SUPPORTED_ERR.

Why is this method not supported?

Paul

From: Paul Kinnucan
Sent: Sunday, August 9, 2020 12:59 PM
To: [email protected]<mailto:[email protected]>
Subject: RE: getChildNodes errors in Xalan 1.12

Thanks. I will investigate.

From: Roger Leigh <[email protected]<mailto:[email protected]>>
Sent: Sunday, August 9, 2020 12:00 PM
To: [email protected]<mailto:[email protected]>
Subject: Re: getChildNodes errors in Xalan 1.12


Hi Paul,



The 1.12 release hasn't made any changes relating to getChildNodes.  Other than 
a handful of small bugfixes, and the switchover to using C++ standard features 
unconditionally, there aren't any real changes to the code.  But it's certainly 
possible that some latent bug might have been exposed.  If you could possibly 
investigate the failure in a bit more detail, we might be able to pinpoint the 
fault.



If you compile xalan and your application with "-g3" on Linux, could you run 
your program with gdb and "catch throw", and get a backtrace at the point where 
the exception is thrown?  That will at least tell use where the failure 
happens, and if you dig around the stack frames leading up to the point where 
it throws, maybe something will be obviously wrong, like a null pointer or 
corrupted pointer or something.


Kind regards,

Roger
On 09/08/2020 16:33, Paul Kinnucan wrote:
Hi,
 XalanNode.getChildNodes() triggers an error in Xalan 1.12 on Windows and 
Linux. All the other node navigation methods work fine, e.g.,

XalanNode *pDoc = 
static_cast<XalanNode*>(_LiaisonPtr->parseXMLStream(inputSource));
const XalanNode *pChild = pDoc->getFirstChild(); // works
const XalanNodeList *pList = pDoc->getChildNodes(); // Never returns. Triggers 
a std::exception of unknown cause.

I am able to simulate getChildNodes, using getFirstChild and getNextSibling.

Any idea what the problem is?

Paul


Reply via email to