You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by "Colm O hEigeartaigh (JIRA)" <ji...@apache.org> on 2016/10/28 09:46:58 UTC

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

    [ https://issues.apache.org/jira/browse/SANTUARIO-457?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15614935#comment-15614935 ] 

Colm O hEigeartaigh commented on SANTUARIO-457:
-----------------------------------------------

Sounds fine to me, could you submit a patch?

> 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)