You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by "Alessio Soldano (JIRA)" <ji...@apache.org> on 2016/10/27 14:53:58 UTC

[jira] [Created] (SANTUARIO-457) Marshaller:sendAttributeToWriter broken by Attr without namespace

Alessio Soldano created SANTUARIO-457:
-----------------------------------------

             Summary: Marshaller:sendAttributeToWriter broken by Attr without namespace
                 Key: SANTUARIO-457
                 URL: https://issues.apache.org/jira/browse/SANTUARIO-457
             Project: Santuario
          Issue Type: Bug
    Affects Versions: Java 2.0.6
            Reporter: Alessio Soldano
            Assignee: Colm O hEigeartaigh


Marshaller:sendAttributeToWriter assumes that the Attr instance that's passed in has valid (not null) namespace, it uses DOM Level 2 methods to get namespace, localname and prefix. In case of a DOM Level 1 attribute (as org.apache.xerces.dom.AttrImpl), those methods all return null, which later causes a NPE when the XmlWriterToTree tries to write the attribute:
{noformat}
15:28:53,567 ERROR [stderr] (default task-3) java.lang.NullPointerException
15:28:53,567 ERROR [stderr] (default task-3) 	at org.apache.xerces.dom.AttrNSImpl.setName(AttrNSImpl.java:87)
15:28:53,567 ERROR [stderr] (default task-3) 	at org.apache.xerces.dom.AttrNSImpl.<init>(AttrNSImpl.java:74)
15:28:53,568 ERROR [stderr] (default task-3) 	at org.apache.xerces.dom.CoreDocumentImpl.createAttributeNS(CoreDocumentImpl.java:2147)
15:28:53,568 ERROR [stderr] (default task-3) 	at com.sun.xml.messaging.saaj.soap.SOAPDocumentImpl.createAttributeNS(SOAPDocumentImpl.java:186)
15:28:53,568 ERROR [stderr] (default task-3) 	at org.apache.jcp.xml.dsig.internal.dom.XmlWriterToTree.writeAttribute(XmlWriterToTree.java:146)
15:28:53,568 ERROR [stderr] (default task-3) 	at org.apache.jcp.xml.dsig.internal.dom.Marshaller.sendAttributeToWriter(Marshaller.java:337)
15:28:53,569 ERROR [stderr] (default task-3) 	at org.apache.jcp.xml.dsig.internal.dom.Marshaller.marshalGenericNode(Marshaller.java:309)
15:28:53,569 ERROR [stderr] (default task-3) 	at org.apache.jcp.xml.dsig.internal.dom.Marshaller.marshalGenericNode(Marshaller.java:314)
15:28:53,569 ERROR [stderr] (default task-3) 	at org.apache.jcp.xml.dsig.internal.dom.Marshaller.marshalGenericNode(Marshaller.java:280)
15:28:53,569 ERROR [stderr] (default task-3) 	at org.apache.jcp.xml.dsig.internal.dom.Marshaller.access$000(Marshaller.java:48)
15:28:53,570 ERROR [stderr] (default task-3) 	at org.apache.jcp.xml.dsig.internal.dom.Marshaller$14.marshalObject(Marshaller.java:245)
15:28:53,570 ERROR [stderr] (default task-3) 	at org.apache.jcp.xml.dsig.internal.dom.Marshaller$14.marshalObject(Marshaller.java:241)
15:28:53,570 ERROR [stderr] (default task-3) 	at org.apache.jcp.xml.dsig.internal.dom.XmlWriterToTree.marshalStructure(XmlWriterToTree.java:186)
15:28:53,570 ERROR [stderr] (default task-3) 	at org.apache.jcp.xml.dsig.internal.dom.DOMKeyInfo.marshalInternal(DOMKeyInfo.java:179)
15:28:53,571 ERROR [stderr] (default task-3) 	at org.apache.jcp.xml.dsig.internal.dom.DOMKeyInfo.marshal(DOMKeyInfo.java:164)
15:28:53,571 ERROR [stderr] (default task-3) 	at org.apache.jcp.xml.dsig.internal.dom.DOMXMLSignature.marshal(DOMXMLSignature.java:225)
15:28:53,571 ERROR [stderr] (default task-3) 	at org.apache.jcp.xml.dsig.internal.dom.DOMXMLSignature.sign(DOMXMLSignature.java:330)
{noformat}

I think there should be a check for the actual availability of namespace; if it's not available, Santuario should use Attr:getName() instead of Node:getLocalName().



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)