FYI, I posted a patch in the Patch Tracking System of this project on SF.net. It is related to the exception thrown when adding a "second root element". The patch is attached to this email as well.

Alex

--- dom4j-1.4/src/java/org/dom4j/tree/AbstractDocument.java     2003-04-07 
21:51:34.000000000 -0700
+++ /home/avernet/java-src/dom4j-1.4/src/java/org/dom4j/tree/AbstractDocument.java     
 2003-11-06 15:32:54.069225600 -0800
@@ -140,22 +140,25 @@
     }
     
     public Element addElement(String name) {
-        checkAddElementAllowed();
-        Element node = super.addElement(name);
+        Element node = getDocumentFactory().createElement(name);
+        checkAddElementAllowed(node);
+        super.addElement(name);
         rootElementAdded(node);
         return node;
     }
     
     public Element addElement(String qualifiedName, String namespaceURI) {
-        checkAddElementAllowed();
-        Element node = super.addElement(qualifiedName, namespaceURI);
+        Element node = getDocumentFactory().createElement(qualifiedName, 
namespaceURI);
+        checkAddElementAllowed(node);
+        super.add(node);
         rootElementAdded(node);
         return node;
     }
     
     public Element addElement(QName qName) {
-        checkAddElementAllowed();
-        Element node = super.addElement(qName);
+        Element node = getDocumentFactory().createElement(qName);
+        checkAddElementAllowed(node);
+        super.add(node);
         rootElementAdded(node);
         return node;
     }
@@ -169,7 +172,7 @@
     }
 
     public void add(Element element) {
-        checkAddElementAllowed();
+        checkAddElementAllowed(element);
         super.add(element);
         rootElementAdded(element);
     }
@@ -203,12 +206,12 @@
         }
     }     
 
-    protected void checkAddElementAllowed() {
+    protected void checkAddElementAllowed(Element node) {
         Element root = getRootElement();
         if ( root != null ) {
             throw new IllegalAddException(  
                 this, 
-                root, 
+                node,
                 "Cannot add another element to this Document as it already has "
                 + " a root element of: " + root.getQualifiedName()
             );

Reply via email to