Vista IE7 Recussion Error

N

nancyisbell

I used the following test01.xml file below to exercise the
cnlUnit01.xslt.

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="cnlUnit01.xslt"?>
<cnlUnitXsl unitDataFile="111111"/>

The cnlUnit01.xslt file below should recursively concatenate the
string "Level", the string " ", and the numeric value of the number
(level) of recursions that occur, and print that 10073 times in
theory, each time on a new line.

<?xml version="1.0"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/
Transform" xmlns:xhtm="http://www.w3.org/1999/xhtml" xmlns="http://
www.w3.org/1999/xhtml">
<xsl:eek:utput method="xml" encoding="iso-8859-1" indent="yes" doctype-
public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://
www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<!--
***************************************************************************************************************
-->
<xsl:template match="/cnlUnitXsl">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
<xsl:text> Test00001</xsl:text>
</title>
</head>
<body>
<!-- ******************** RECURSIVE ROW PRINT
***************************** -->
<xsl:call-template name="rowPrint">
<xsl:with-param name="level" select="1"/>
</xsl:call-template>
<!-- ******************** RECURSIVE ROW PRINT
***************************** -->
</body>
</html>
</xsl:template>
<xsl:template name="rowPrint">
<xsl:param name="level"/>
<xsl:choose>
<xsl:when test="$level > 10073">
</xsl:when>
<xsl:eek:therwise>
<xsl:text>Level</xsl:text>
<xsl:text> </xsl:text>
<xsl:value-of select="string($level)"/>
<br/>
<xsl:call-template name="rowPrint">
<xsl:with-param name="level" select="$level + 1"/>
</xsl:call-template>
</xsl:eek:therwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

When you call this xml file in XP or FireFox using IE6 you get the
following:

Level 1
Level 2
Level 3
..
..
..
..
Level 8187
Level 8188
Level 8189
Level 8190
The XML page cannot be displayed
Cannot view XML input using XSL style sheet. Please correct the error
and then click the Refresh button, or try again later.

The XSL processor stack has overflowed - probable cause is infinite
template recursion.


This is the expected outcome of a stack overflow and is not of
concern.
When you call this xml file in VISTA using IE7 on a linovo X60s Intel
Centrino Duo machine you get the following:

Level 1
Level 2
Level 3
..
..
..
Level 530
Level 531
Level 532
Level 533
vel 7716
Level 7717
Level 7718
Level 7719
..
..
..
..
Level 8187
Level 8188
Level 8189
Level 8190
The XML page cannot be displayed
Cannot view XML input using XSL style sheet. Please correct the error
and then click the Refresh button, or try again later.

The XSL processor stack has overflowed - probable cause is infinite
template recursion.
AAAAAAABAQEAjVFRUu0BAQA9YV1MfUVFR+nJyvel 1075
Level 1076
Level 1077
Level 1078
Level 1079
Level 1080
Level 1081
Level 1082.
..
..
..

What happens after "Level 533" is printed is not always the same, but
it always begins after "Level 533" is printed and not before. A stack
overflow still occurs at Level 8190 like it did in XP IE6 and XP
FireFox. However, in VISTA the transform continued operating after
the stack overflow occurred starting again at Level 1076. The results
were the same on two separate machines of the same design. The
program was also tested on eight other computers from low end Gateways
with low end AMD chipsets, 512 M of RAM with VISTA Basic thru high end
HP core 2 duo and 2 GHz chipsets with 2 G RAM with VISTA Ultimate.
The problem only occurs in VISTA and IE7. XP with IE6 or FireFox
adequately transforms the code. The error of concern and has shown up
in various other more complex settings with much less recurssion but
always having something to do with recursion. In these other
settings, the problem also only occurs in VISTA and IE7. XP with IE6
or FireFox adequately transforms code in these other settings without
error.

If the test for $level in line 0025 is changed to 2000, no error (that
is no stack overflow) at all occurs in XP IE6 or Firefox. In VISTA
IE& no stack overflow occurs but the other problem still occurs after
"Level 533" is printed. I originally only ran the test to 2000, but
went higher to determine where the stack overflow would occur.

Is there a way to eleminate this problem in VISTA IE7?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,767
Messages
2,569,572
Members
45,046
Latest member
Gavizuho

Latest Threads

Top