Author: veithen
Date: Sun Dec 21 15:41:53 2008
New Revision: 728554
URL: http://svn.apache.org/viewvc?rev=728554&view=rev
Log:
Modified ElementImpl#getNamespaceURI() so that it always returns null (an not
an empty string) if the element has no namespace. The DOM spec is not
particularly clear about this, but this is the behavior of Xerces and it is
also expected by XMLUnit.
Modified:
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java
webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/impl/dom/ElementImplTest.java
Modified:
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java?rev=728554&r1=728553&r2=728554&view=diff
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java
(original)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java
Sun Dec 21 15:41:53 2008
@@ -176,7 +176,14 @@
/** Returns the value of the namespace URI. */
public String getNamespaceURI() {
- return (this.namespace != null) ?
this.namespace.getNamespaceURI().intern() : null;
+ if (this.namespace == null) {
+ return null;
+ } else {
+ // If the element has no namespace, the result should be null, not
+ // an empty string.
+ String uri = this.namespace.getNamespaceURI();
+ return uri.length() == 0 ? null : uri.intern();
+ }
}
// /
Modified:
webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/impl/dom/ElementImplTest.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/impl/dom/ElementImplTest.java?rev=728554&r1=728553&r2=728554&view=diff
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/impl/dom/ElementImplTest.java
(original)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/impl/dom/ElementImplTest.java
Sun Dec 21 15:41:53 2008
@@ -178,4 +178,18 @@
}
});
}
+
+ public void testGetNamespaceURIWithNoNamespace() throws Exception {
+ DOMTestUtil.execute(new DOMTestUtil.Test() {
+ public void execute(DocumentBuilderFactory dbf) throws Exception {
+ Document doc = dbf.newDocumentBuilder().newDocument();
+ Element element = doc.createElement("test");
+ assertNull(element.getNamespaceURI());
+ element = doc.createElementNS(null, "test");
+ assertNull(element.getNamespaceURI());
+ element = doc.createElementNS("", "test");
+ assertNull(element.getNamespaceURI());
+ }
+ });
+ }
}