Author: veithen
Date: Fri Jul 22 11:56:02 2011
New Revision: 1149578

URL: http://svn.apache.org/viewvc?rev=1149578&view=rev
Log:
Fixed another namespace issue revealed by AXIOM-372.

Modified:
    
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
    
axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java

Modified: 
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java?rev=1149578&r1=1149577&r2=1149578&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
 Fri Jul 22 11:56:02 2011
@@ -220,7 +220,11 @@ public class SOAPElementImpl extends Nod
       * @see 
javax.xml.soap.SOAPElement#addNamespaceDeclaration(java.lang.String, 
java.lang.String)
       */
     public SOAPElement addNamespaceDeclaration(String prefix, String uri) 
throws SOAPException {
-        element.declareNamespace(uri, prefix);
+        if (prefix == null || prefix.length() == 0) {
+            element.declareDefaultNamespace(uri);
+        } else {
+            element.declareNamespace(uri, prefix);
+        }
         return this;
     }
 

Modified: 
axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java?rev=1149578&r1=1149577&r2=1149578&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java
 Fri Jul 22 11:56:02 2011
@@ -23,9 +23,11 @@ import junit.framework.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.w3c.dom.Attr;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
+import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 import javax.xml.soap.MessageFactory;
 import javax.xml.soap.Name;
@@ -381,6 +383,17 @@ public class SOAPElementTest extends Ass
     }
 
     @Validated @Test
+    public void testAddNamespaceDeclarationDefaultNamespace() throws 
SOAPException {
+        SOAPMessage msg = MessageFactory.newInstance().createMessage();
+        SOAPEnvelope envelope = msg.getSOAPPart().getEnvelope();
+        SOAPBody body = envelope.getBody();
+        SOAPElement element = body.addChildElement("test", "p", "urn:test");
+        element.addNamespaceDeclaration("", "urn:ns");
+        Attr attr = 
(Attr)element.getAttributes().getNamedItemNS(XMLConstants.XMLNS_ATTRIBUTE_NS_URI,
 "xmlns");
+        assertEquals("urn:ns", attr.getValue());
+    }
+    
+    @Validated @Test
     public void testRemoveNamespaceDeclaration() throws Exception {
         String prefix = "myPrefix";
         String uri = "myURI";


Reply via email to