[ http://issues.apache.org/jira/browse/XALANJ-2097?page=all ]
Brian Minchau updated XALANJ-2097:
----------------------------------
Fix Version: 2.7
(was: CurrentCVS)
> 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
> Fix For: 2.7
> Attachments: Step.patch, items.xml, problem2.xsl
>
> 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
-
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]