You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-users@xalan.apache.org by h....@tcs.com on 2006/03/08 07:17:15 UTC

InvalidStackContextException with Xalan 1.9

Hi All,

We did have the fix  "endExecuteChildren() in ElemVariable.cpp, 
ElemWithParam.cpp"  in the source code built for Xalan 1.9 libraries(with 
Xerces 2.7).'
I understand with this fix,  InvalidStackContextException should not be 
encountered.

I analysed someof the problems with Xalan 1.9

When there is a <xsl:for-each> call on the empty element and when we are 
processing the data further  we are getting the exception.
<xsl:for-each> should not process empty elements and I am not sure how the 
Xalan 1.9 allows this.
Xalan 1.3 did not allow for loop for empty elements.


One more issue with Xalan 1.9:
       I have a call         <xsl:if 
test="contains($assAttRefId,$assatt/@id)">  . When $assatt/@id is null, 
<xsl: if> test is processed which I understand is a bug.


Please let me know whether anyone experienced the same problem

Thanks and Regards,
Hari Krishna Nitturi
Tata Consultancy Services Limited
Plot No 1, Survey No. 64/2, Software Units Layout
Serilingampally Mandal, Madhapur
Hyderabad - 500034,Andhra Pradesh
India
Mailto: h.nitturi@tcs.com
Website: http://www.tcs.com



David Bertoni <db...@apache.org> 
03/01/06 12:40 PM
Please respond to
xalan-c-users@xml.apache.org


To
xalan-c-users@xml.apache.org
cc

Subject
Re: InvalidStackContextException






h.nitturi@tcs.com wrote:
> 
> Hi,
> 
> I am getting an exception during the Parsing an XML by an XSL with Xalan
> C++ 1.9 and Xerces 2.6 C++ libraries.
> 
> The exception is "InvalidStackContextException: Invalid stack context (,
> line -1, column -1) "
> 
> I am calling a template recursively.Is that the cause of the problem?
> 

You are probably hitting this bug, which is already fixed in the latest 
source code:

http://issues.apache.org/jira/browse/XALANC-453

Dave

ForwardSourceID:NT00005B22 


Notice: The information contained in this e-mail message and/or attachments to it may contain confidential or privileged information.   If you are not the intended recipient, any dissemination, use, review, distribution, printing or copying of the information contained in this e-mail message and/or attachments to it are strictly prohibited.   If you have received this communication in error, please notify us by reply e-mail or telephone and immediately and permanently delete the message and any attachments.  Thank you

Re: InvalidStackContextException with Xalan 1.9

Posted by David Bertoni <db...@apache.org>.
h.nitturi@tcs.com wrote:
> 
> Hi All,
> 
> We did have the fix  "endExecuteChildren() in ElemVariable.cpp, 
> ElemWithParam.cpp"  in the source code built for Xalan 1.9 
> libraries(with Xerces 2.7).'
> I understand with this fix,  InvalidStackContextException should not be 
> encountered.
> 
> I analysed someof the problems with Xalan 1.9
> 
> When there is a <xsl:for-each> call on the empty element and when we are 
> processing the data further  we are getting the exception.
> <xsl:for-each> should not process empty elements and I am not sure how 
> the Xalan 1.9 allows this.

You will have to explain what you mean by "<xsl:for-each> call on the 
empty element."  xsl:for-each process every node selected by the XPath 
expression specified in its 'select' attribute.  Any 
InvalidStackContextException indicates a bug, so it would be helpful if 
you could post a _minimal_ stylesheet that reproduces the problem.

 > Xalan 1.3 did not allow for loop for empty elements.

Again, I don't understand what you mean.

> 
> 
> One more issue with Xalan 1.9:
>        I have a call         <xsl:if 
> test="contains($assAttRefId,$assatt/@id)">  . When $assatt/@id is null, 
> <xsl: if> test is processed which I understand is a bug.

You will need to explain what you mean by "when $assatt/@id is null." 
Do you mean when the XPath expression "$assatt/@id" selects an empty 
node-set?  If that's the case, then "contains($assAttRefId,$assatt/@id)" 
will evaluate to true, because an empty node-set is converted to an 
empty string, and providing an empty string for the second attribute of 
the contains() function always returns true.  This is made clear in the 
errata to the XPath 1.0 recommendation:

http://www.w3.org/1999/11/REC-xpath-19991116-errata/

Dave