Hi Raj
Thanks for spotting this bug in Element.createCopy().
I've just checked the patch into CVS along with a JUnit test case that
ensures the createCopy() method works (its in
src/test/org/dom4j/TestCopy.java if you're interested).
I've just manually kicked off a daily build so if you download the latest
daily build it should contain your patch.
While I was in this part of the code I optimised the implementation code to
use integer iteration rather than Iterators as well and I retired the now
cruft "appendAdditionalNamespaces()" method which is no longer required
(additional namespaces get copied inside the appendContent() method).
Many thanks....
> I found the problem with the deep copy issue that I had written to
> you about.
>
> In AbstractElement.java there is a method called appendAttributes
> which reads as follows:
>
> // add to me content from another element
> // analagous to the addAll(collection) methods in Java 2 collections
> public void appendAttributes(Element element) {
> for (Iterator i = attributeIterator(); i.hasNext(); ) {
[snip]
> }
>
> The for loop should iterate over the attributes of the element that is
> passed to it. Instead, it is iterating through the attributes of the
> cloned element (none exist yet). Hence the problem.
>
> I changed the for loop to read as follows:
>
> for (Iterator i = element.attributeIterator(); i.hasNext(); ) {
>
> I got my test to work as expected after I made this change.
Well spotted!
> Again, thanks for creating a nice API and putting it out in the public
> domain.
And thanks for using it Raj!
James
_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com
_______________________________________________
dom4j-dev mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/dom4j-dev