You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by bi...@apache.org on 2020/04/14 20:02:17 UTC
[axis-axis2-java-core] 05/38: Merged r1147485, r1149224,
r1149491 and r1149578 to the 1.5 branch to ensure compatibility
with Axiom 1.2.13.
This is an automated email from the ASF dual-hosted git repository.
billblough pushed a commit to branch 1_5
in repository https://gitbox.apache.org/repos/asf/axis-axis2-java-core.git
commit bff447b0a7f756c29bced965eb98f8af0fafe0bd
Author: Andreas Veithen <ve...@apache.org>
AuthorDate: Fri Sep 30 19:41:44 2011 +0000
Merged r1147485, r1149224, r1149491 and r1149578 to the 1.5 branch to ensure compatibility with Axiom 1.2.13.
---
modules/saaj/src/org/apache/axis2/saaj/SOAPBodyImpl.java | 10 ++++++----
modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java | 12 +++++++++---
modules/saaj/src/org/apache/axis2/saaj/SOAPFactoryImpl.java | 7 +++++--
.../saaj/test/org/apache/axis2/saaj/SOAPElementTest.java | 13 +++++++++++++
4 files changed, 33 insertions(+), 9 deletions(-)
diff --git a/modules/saaj/src/org/apache/axis2/saaj/SOAPBodyImpl.java b/modules/saaj/src/org/apache/axis2/saaj/SOAPBodyImpl.java
index d6ed3d0..e9535b3 100644
--- a/modules/saaj/src/org/apache/axis2/saaj/SOAPBodyImpl.java
+++ b/modules/saaj/src/org/apache/axis2/saaj/SOAPBodyImpl.java
@@ -164,11 +164,14 @@ public class SOAPBodyImpl extends SOAPElementImpl implements SOAPBody {
if (omSOAPBody.hasFault()) {
throw new SOAPException("A SOAPFault has been already added to this SOAPBody");
}
+ if (prefix == null) {
+ prefix = "";
+ }
SOAPBodyElementImpl childEle;
if (uri == null || "".equals(uri)) {
childEle = new SOAPBodyElementImpl(
(ElementImpl)getOwnerDocument().createElement(localName));
- } else if (prefix == null || "".equals(prefix)) {
+ } else if (prefix.length() == 0) {
childEle = new SOAPBodyElementImpl(
(ElementImpl)getOwnerDocument().createElementNS(uri,
localName));
@@ -178,7 +181,7 @@ public class SOAPBodyImpl extends SOAPElementImpl implements SOAPBody {
prefix + ":" + localName));
}
childEle.element.setUserData(SAAJ_NODE, childEle, null);
- childEle.element.setNamespace(childEle.element.declareNamespace(uri, prefix));
+ childEle.element.setNamespace(getOMFactory().createOMNamespace(uri, prefix));
element.appendChild(childEle.element);
((NodeImpl)childEle.element.getParentNode()).setUserData(SAAJ_NODE, this, null);
isBodyElementAdded = true;
@@ -546,8 +549,7 @@ public class SOAPBodyImpl extends SOAPElementImpl implements SOAPBody {
qname.getLocalPart()));
}
childEle.element.setUserData(SAAJ_NODE, childEle, null);
- childEle.element.setNamespace(childEle.element.declareNamespace(
- qname.getNamespaceURI(), qname.getPrefix()));
+ childEle.element.setNamespace(getOMFactory().createOMNamespace(qname.getNamespaceURI(), qname.getPrefix()));
element.appendChild(childEle.element);
((NodeImpl)childEle.element.getParentNode()).setUserData(SAAJ_NODE, this, null);
diff --git a/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java b/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
index 065b980..991b8c8 100644
--- a/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
+++ b/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
@@ -175,7 +175,7 @@ public class SOAPElementImpl extends NodeImplEx implements SOAPElement {
*/
public SOAPElement addChildElement(String localName, String prefix, String uri)
throws SOAPException {
- OMNamespace omNamespace = element.declareNamespace(uri, prefix);
+ OMNamespace omNamespace = prefix == null || prefix.length() == 0 ? element.declareDefaultNamespace(uri) : element.declareNamespace(uri, prefix);
return addChildElement(localName, omNamespace.getPrefix());
}
@@ -194,7 +194,9 @@ public class SOAPElementImpl extends NodeImplEx implements SOAPElement {
createElementNS(namespaceURI, prefix + ":" + localName));
childEle.element.setUserData(SAAJ_NODE, childEle, null);
- childEle.element.setNamespace(childEle.element.declareNamespace(namespaceURI, prefix));
+ childEle.element.setNamespace(prefix == null || prefix.length() == 0
+ ? childEle.element.declareDefaultNamespace(namespaceURI)
+ : childEle.element.declareNamespace(namespaceURI, prefix));
element.appendChild(childEle.element);
((NodeImpl)childEle.element.getParentNode()).setUserData(SAAJ_NODE, this, null);
childEle.setParentElement(this);
@@ -218,7 +220,11 @@ public class SOAPElementImpl extends NodeImplEx implements SOAPElement {
* @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;
}
diff --git a/modules/saaj/src/org/apache/axis2/saaj/SOAPFactoryImpl.java b/modules/saaj/src/org/apache/axis2/saaj/SOAPFactoryImpl.java
index cf8af62..db2a9be 100644
--- a/modules/saaj/src/org/apache/axis2/saaj/SOAPFactoryImpl.java
+++ b/modules/saaj/src/org/apache/axis2/saaj/SOAPFactoryImpl.java
@@ -226,8 +226,11 @@ public class SOAPFactoryImpl extends SOAPFactory {
} else {
omdomFactory = (OMDOMFactory)DOOMAbstractFactory.getSOAP11Factory();
}
- OMNamespace ns = omdomFactory.createOMNamespace(element.getNamespaceURI()
- , element.getPrefix());
+ String prefix = element.getPrefix();
+ if (prefix == null) {
+ prefix = "";
+ }
+ OMNamespace ns = omdomFactory.createOMNamespace(element.getNamespaceURI(), prefix);
OMElement omElement = omdomFactory.createOMElement(element.getLocalName(), ns);
return new SOAPElementImpl((ElementImpl)omElement);
}
diff --git a/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java b/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java
index 35abf88..c386527 100644
--- a/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java
+++ b/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java
@@ -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 Assert {
}
@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";