NPE in DomMapperBase using DOM Element with no namespace
--------------------------------------------------------

                 Key: JIBX-232
                 URL: http://jira.codehaus.org/browse/JIBX-232
             Project: JiBX
          Issue Type: Bug
          Components: core
    Affects Versions: JiBX 1.1.6
            Reporter: Nigel Charman
         Attachments: DomNoNSTest.java

Marshalling a DOM element with org.jibx.extras.DomElementMapper caused:

    [junit] java.lang.NullPointerException
    [junit]     at 
org.jibx.runtime.impl.UTF8StreamWriter.writeMarkup(UTF8StreamWriter.java:96)
    [junit]     at 
org.jibx.runtime.impl.XMLWriterBase.startTagOpen(XMLWriterBase.java:196)
    [junit]     at 
org.jibx.extras.DomMapperBase.marshalElement(DomMapperBase.java:236)
    [junit]     at 
org.jibx.extras.DomElementMapper.marshal(DomElementMapper.java:129)

The DOM document was created with no namespaces.

The supplied test case fails with null element and attribute names rather than 
a NPE, but is the same problem.  The test case uses the existing classes and 
bindings from the extras test package.

A patch based on the JIBX1_1_6 branch follows:

### Eclipse Workspace Patch 1.0
#P jibx_extras_116
Index: org/jibx/extras/DomMapperBase.java
===================================================================
RCS file: /cvsroot/jibx/core/build/extras/org/jibx/extras/DomMapperBase.java,v
retrieving revision 1.3
diff -u -r1.3 DomMapperBase.java
--- org/jibx/extras/DomMapperBase.java  21 May 2006 20:53:53 -0000      1.3
+++ org/jibx/extras/DomMapperBase.java  28 Aug 2008 07:03:27 -0000
@@ -233,7 +233,7 @@
         // check for namespace declarations required
         String[] uris = null;
         if (nss == null) {
-            m_xmlWriter.startTagOpen(nsi, element.getLocalName());
+            m_xmlWriter.startTagOpen(nsi, element.getLocalName() != null ? 
element.getLocalName() : element.getNodeName());
         } else {
             int base = getNextNamespaceIndex();
             if (defind >= 0) {
@@ -273,8 +273,8 @@
                 if (apref != null) {
                     index = findNamespaceIndex(apref, attr.getNamespaceURI());
                 }
-                m_xmlWriter.addAttribute(index, attr.getLocalName(),
-                     attr.getValue());
+                m_xmlWriter.addAttribute(index, attr.getLocalName() != null ? 
attr.getLocalName() : attr.getNodeName(),
+                        attr.getValue());
             }
         }
         
@@ -284,7 +284,7 @@
         if (size > 0) {
             m_xmlWriter.closeStartTag();
             marshalContent(element.getChildNodes());
-            m_xmlWriter.endTag(nsi, element.getLocalName());
+            m_xmlWriter.endTag(nsi, element.getLocalName() != null ? 
element.getLocalName() : element.getNodeName());
         } else {
             m_xmlWriter.closeEmptyTag();
         }


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
jibx-devs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jibx-devs

Reply via email to