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";