Problem with variable reference followed by self::node() if you use XSLTC
-------------------------------------------------------------------------
Key: XALANJ-2097
URL: http://issues.apache.org/jira/browse/XALANJ-2097
Project: XalanJ2
Type: Bug
Components: XSLTC
Versions: 2.6
Reporter: Nick Van den Bleeken
Attachments: items.xml
There is a problem when you have an XPath that contains a variable reference
followed by self::node() if you use XSLTC (the problem does not occure if you
just use Xalan without XSLTC).
If you have for example $var1/self::node(). The following XSLTC Step is
generated :
FilterParentPath(variable-ref(var1/node-set), step("self", -1))
This step is translated to the following piece of code (I decompiled to byte
code):
DTMAxisIterator dtmaxisiterator1 = (new CachedNodeListIterator(new
StepIterator(dom.getTypedAxisIterator(3, 14), dom.getTypedAxisIterator(3,
15)))).setStartNode(i);
this;
dom;
new StepIterator(dtmaxisiterator1.cloneIterator(), new
SingletonIterator(i));
As you can see the 'self::node()' step is translated to 'new
SingletonIterator(i)'. This is not correct because new SingletonIterator(i)
will refer to the node of the _parent of the FilterParentPath step.
After applying the patch I made, the following code is generated if the _parent
of the Step (self::node()) isn't a 'ParentLocationPath' :
new StepIterator(dtmaxisiterator1.cloneIterator(), dom.getAxisIterator(13));
To run the sample just run
org.apache.xalan.xslt.Process -in items.xml -xsl problem2.xsl -xsltc
--
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
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]