axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sc...@apache.org
Subject svn commit: r902290 - /webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java
Date Fri, 22 Jan 2010 22:03:24 GMT
Author: scheu
Date: Fri Jan 22 22:03:24 2010
New Revision: 902290

URL: http://svn.apache.org/viewvc?rev=902290&view=rev
Log:
Quick fix for to allow SAAJ Converter to ignore bad prefix declares.
Contributor: Rich Scheuerle

Modified:
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java?rev=902290&r1=902289&r2=902290&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java
(original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java
Fri Jan 22 22:03:24 2010
@@ -475,17 +475,41 @@
             for (int i=0; i<size; i++) {
                 String pre = reader.getNamespacePrefix(i);
                 String ns = reader.getNamespaceURI(i);
-                String existingNS = element.getNamespaceURI(pre);
-                if (!ns.equals(existingNS)) {
-                    element.removeNamespaceDeclaration(pre);  // Is it necessary to remove
the existing prefix/ns
-                    element.addNamespaceDeclaration(pre, ns);
+                if ((pre != null && pre.length() > 0) &&
+                        (ns == null || ns.length() == 0)) {
+                        if (log.isDebugEnabled()) {
+                            log.debug("The prefix is (" + pre + ") but there is no namespace.
 " +
+                                    "This erroneous declaration is skipped.");
+                        }
+                } else {
+                    String existingNS = element.getNamespaceURI(pre);
+                    if (!ns.equals(existingNS)) {
+                        element.removeNamespaceDeclaration(pre);  // Is it necessary to remove
the existing prefix/ns
+                        element.addNamespaceDeclaration(pre, ns);
+                    }
                 }
             }
         } else {
             // Add the namespace declarations from the reader
             int size = reader.getNamespaceCount();
             for (int i=0; i<size; i++) {
-                element.addNamespaceDeclaration(reader.getNamespacePrefix(i), reader.getNamespaceURI(i));
+                String newPrefix = reader.getNamespacePrefix(i);
+                String newNS = reader.getNamespaceURI(i);
+                
+                if ((newPrefix != null && newPrefix.length() > 0) &&
+                     (newNS == null || newNS.length() == 0)) {
+                    // Due to a bug in Axiom DOM or the reader, I have
+                    // seen cases where the prefix is non-null but there is not
+                    // namespace.  Example: prefix is axis2ns3 and namespace is null.
+                    // This is an error..log, tolerate and continue
+                    if (log.isDebugEnabled()) {
+                        log.debug("The prefix is (" + newPrefix + ") but there is no namespace.
 " +
+                                "This erroneous declaration is skipped.");
+                    }
+                } else {
+                    element.addNamespaceDeclaration(newPrefix,
+                                                newNS);
+                }
             }
         }
 



Mime
View raw message