DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://issues.apache.org/bugzilla/show_bug.cgi?id=28118>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=28118 Assertion fails in set:difference (2 matching nodesets, one created by a key) Summary: Assertion fails in set:difference (2 matching nodesets, one created by a key) Product: XalanJ2 Version: CurrentCVS Platform: PC OS/Version: Windows NT/2K Status: NEW Severity: Normal Priority: Other Component: org.apache.xpath AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] 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.
