You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ve...@apache.org on 2009/01/13 21:42:34 UTC

svn commit: r734237 - in /webservices/axis2/trunk/java/modules/saaj: src/org/apache/axis2/saaj/SOAPElementImpl.java test/org/apache/axis2/saaj/SOAPElementTest.java

Author: veithen
Date: Tue Jan 13 12:42:22 2009
New Revision: 734237

URL: http://svn.apache.org/viewvc?rev=734237&view=rev
Log:
Fixed issue in SOAPElementImpl#createQName: not all prefixes are bound to the SOAP envelope namespace...

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

Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java?rev=734237&r1=734236&r2=734237&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java Tue Jan 13 12:42:22 2009
@@ -433,16 +433,12 @@
      * @since SAAJ 1.3
      */
     public QName createQName(String localName, String prefix) throws SOAPException {
-        if (this.element.getNamespaceURI(prefix) == null) {
+        String namespaceURI = element.getNamespaceURI(prefix);
+        if (namespaceURI == null) {
             throw new SOAPException("Invalid prefix");
+        } else {
+            return new QName(namespaceURI, localName, prefix);
         }
-        QName qname = null;
-        if (this.element.getOMFactory() instanceof SOAP11Factory) {
-            qname = new QName(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI, localName, prefix);
-        } else if (this.element.getOMFactory() instanceof SOAP12Factory) {
-            qname = new QName(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI, localName, prefix);
-        }
-        return qname;
     }
 
     public Iterator getAllAttributesAsQNames() {

Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java?rev=734237&r1=734236&r2=734237&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java Tue Jan 13 12:42:22 2009
@@ -588,6 +588,20 @@
         }
     }
 
+    @Validated @Test(expected=SOAPException.class)
+    public void testCreateQNameWithUnknownPrefix() throws Exception {
+        soapEle.createQName("local", "nonexistingprefix");
+    }
+
+    @Validated @Test
+    public void testCreateQNameWithAddNamespaceDeclaration() throws Exception {
+        soapEle.addNamespaceDeclaration("p", "urn:test");
+        QName qname = soapEle.createQName("local", "p");
+        assertEquals("p", qname.getPrefix());
+        assertEquals("local", qname.getLocalPart());
+        assertEquals("urn:test", qname.getNamespaceURI());
+    }
+
     @Validated @Test
     public void testRemoveContent() throws Exception {
         boolean pass = true;