[ http://issues.apache.org/jira/browse/XALANJ-1846?page=all ]
Brian Minchau updated XALANJ-1846:
----------------------------------
Version: 2.6
(was: Latest Development Code)
> Assertion fails in set:difference (2 matching nodesets, one created by a key)
> -----------------------------------------------------------------------------
>
> Key: XALANJ-1846
> URL: http://issues.apache.org/jira/browse/XALANJ-1846
> Project: XalanJ2
> Type: Bug
> Components: XPath
> Versions: 2.6
> Environment: Operating System: Windows NT/2K
> Platform: PC
> Reporter: Pete Edwards
> Assignee: Xalan Developers Mailing List
>
> I have found a problem that manifests itself in the set:difference extension
> function using Xalan 2.6.0. The error I get is
> "Assertion fails: Can not get a DTM unless a DTMManager has been set"
> in org.apache.xpath.NodeSet.addNodes (line 441)
> In the sample below you get the exception, but it succeeds if you remove one
> of
> the continent elements from the input document. It seems to happen when the
> two
> sets in the difference are the same and one of them is produced using a key.
> (It works if you simply difference two identical sets, or if the sets are
> different)
> Example document:
> <doc>
> <continent>Europe</continent>
> <!-- remove next line to see stylesheet succeed -->
> <continent>Africa</continent>
> <city name="Paris" continent="Europe"/>
> <city name="Madrid" continent="Europe"/>
> <city name="Cairo" continent="Africa"/>
> </doc>
> Example stylesheet:
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:set="http://exslt.org/sets"
> xmlns:exsl="http://exslt.org/common"
> extension-element-prefixes="set exsl"
> exclude-result-prefixes="set exsl">
> <xsl:key name="cityByContinent" match="//city" use="@continent"/>
> <xsl:template match="/">
> <out>
> <xsl:variable name="continents" select="//continent"/>
> <xsl:variable name="list"
> select="key('cityByContinent', set:distinct($continents))"/>
> <xsl:copy-of select="set:difference(//city, $list)"/>
> </out>
> </xsl:template>
> </xsl:stylesheet>
> Please contact me if you need more info.
--
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]