[ http://issues.apache.org/jira/browse/XALANJ-2003?page=all ]
Brian Minchau updated XALANJ-2003: ---------------------------------- Fix Version: 2.7 (was: CurrentCVS) > XSLTC tail recursion outputs backwards > -------------------------------------- > > Key: XALANJ-2003 > URL: http://issues.apache.org/jira/browse/XALANJ-2003 > Project: XalanJ2 > Type: Bug > Components: XSLTC > Environment: J2SE 1.5. Also when using xsltc.jar from xalan-j_2_6_0 > Reporter: Nick Sayer > Assignee: Santiago Pericas-Geertsen > Fix For: 2.7 > > Files: > test-data.xml: > <?xml version="1.0" encoding="utf-8"?> > <rating>3</rating> > test-temp.xml: > <?xml version="1.0" encoding="utf-8"?> > <rating>3</rating> > %less test-temp.xml > <?xml version="1.0" encoding="utf-8"?> > <xsl:stylesheet > version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:output method="html"/> > <xsl:template match="/"> > <html> > <body> > <xsl:call-template name="showRating"> > <xsl:with-param name="num" select="'1'"/> > </xsl:call-template> > </body> > </html> > </xsl:template> > <!-- SHOW RATED STARS --> > <xsl:template name="showRating"> > <xsl:param name="num"/> > <xsl:if test="$num <= rating"> > <img border="0" src="yellow_star.gif" valign="absmiddle"/> > </xsl:if> > <xsl:if test="$num > rating"> > <img border="0" src="white_star.gif" valign="absmiddle"/> > </xsl:if> > <xsl:if test="$num <= '4'"> > <xsl:text> > </xsl:text> <!-- CRLF --> > <xsl:call-template name="showRating"> > <xsl:with-param name="num" select="$num + 1" /> > </xsl:call-template> > </xsl:if> > </xsl:template> > </xsl:stylesheet> > testxslt.java: > import java.io.*; > import javax.xml.transform.*; > import javax.xml.transform.stream.*; > public class testxslt { > public static void main(String[] args) { > try { > new testxslt(); > } > catch(Throwable t) { > System.err.println(t + ": " + t.getMessage()); > t.printStackTrace(); > } > } > private testxslt() throws Exception { > String stylesheet = readFile("test-temp.xml"); > String data = readFile("test-data.xml"); > String out = transform(stylesheet, data); > System.out.println(out); > } > private String readFile(String filename) throws IOException { > StringBuffer out = new StringBuffer(); > Reader r = new FileReader(filename); > int count; > char buf[] = new char[1024]; > while((count = r.read(buf)) > 0) > out.append(buf, 0, count); > r.close(); > return out.toString(); > } > private String transform(String stylesheet, String data) throws Exception { > ByteArrayOutputStream resultStream = new ByteArrayOutputStream(); > StreamResult transStreamResult = new StreamResult(resultStream); > Source xmlData = new StreamSource(new StringReader(data)); > StreamSource styleSource = new StreamSource(new StringReader(stylesheet)); > TransformerFactory tf = TransformerFactory.newInstance(); > //tf.setAttribute("debug", Boolean.TRUE); > Templates t = tf.newTemplates(styleSource); > Transformer trans = t.newTransformer(); > trans.transform(xmlData, transStreamResult); > return resultStream.toString(); > } > } > If I add xalan.jar to the classpath, or if I run with J2SE 1.4 and add > nothing to the classpath, the yellow stars are (correctly) printed first. > If I run j2se 1.5 with no classpath additions, or if I add xsltc.jar to the > classpath, the white stars are printed first. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]