You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by "Andreas Veithen (JIRA)" <ji...@apache.org> on 2008/12/17 23:10:44 UTC

[jira] Updated: (WSCOMMONS-64) StreamingOMSerializer is invoking the XMLStreamWriter with a wrong sequence of writes.

     [ https://issues.apache.org/jira/browse/WSCOMMONS-64?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andreas Veithen updated WSCOMMONS-64:
-------------------------------------

    Component/s: AXIOM

> StreamingOMSerializer is invoking the XMLStreamWriter with a wrong sequence of writes.
> --------------------------------------------------------------------------------------
>
>                 Key: WSCOMMONS-64
>                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-64
>             Project: WS-Commons
>          Issue Type: Bug
>          Components: AXIOM
>            Reporter: Rich Scheuerle
>            Assignee: Rich Scheuerle
>         Attachments: fullpatch.txt
>
>
> I found this problem while debugging AXIS2-913.  I attempted to write an Axiom testcase, but could not reproduce the problem with just Axiom code.
> Here is the stack dump from AXIS2-913:
>     <error message="Unbound namespace URI &apos;http://test&apos;" type="javax.xml.stream.XMLStreamException">javax.xml.stream.XMLStreamException: Unbound namespace URI &apos;http://test&apos;
> at com.ctc.wstx.sw.SimpleNsStreamWriter.writeStartOrEmpty(SimpleNsStreamWriter.java:240)
> at com.ctc.wstx.sw.BaseNsStreamWriter.writeStartElement(BaseNsStreamWriter.java:273)
> at org.apache.axiom.om.impl.MTOMXMLStreamWriter.writeStartElement(MTOMXMLStreamWriter.java:87)
> at org.apache.axiom.om.impl.serialize.StreamingOMSerializer.serializeElement(StreamingOMSerializer.java:123)
> at org.apache.axiom.om.impl.serialize.StreamingOMSerializer.serializeNode(StreamingOMSerializer.java:73)
> at org.apache.axiom.om.impl.serialize.StreamingOMSerializer.serialize(StreamingOMSerializer.java:56)
> at org.apache.axiom.om.impl.util.OMSerializerUtil.serializeByPullStream(OMSerializerUtil.java:325)
> at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:792)
> at org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.internalSerialize(SOAPEnvelopeImpl.java:177)
> at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:811)
> at org.apache.axiom.om.impl.llom.OMNodeImpl.serializeAndConsume(OMNodeImpl.java:378)
> at org.apache.axis2.jaxws.message.MessageTests.testJAXBOutflow(MessageTests.java:304)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
> at junit.extensions.TestSetup.run(TestSetup.java:23) 
> The root of the problem is that  StreamingOMSerializer is invoking the writer using an incorrect  StAX sequence.
> This results in the writer reporting an unbound namespace.
> Similar (or the same problem) has been report in WSCOMMONS-33 and WSCOMMONS-62
> I have a fix for the problem.  I will be posting a patch in a few minutes.
> Here is the "new" algorithm that I have added to the StreamingOMSerializer.serializeElement:
>         // The algorithm is:
>         // ... generate setPrefix/setDefaultNamespace for each namespace declaration if the prefix is unassociated.
>     	// ... generate setPrefix/setDefaultNamespace if the prefix of the element is unassociated
>     	// ... generate setPrefix/setDefaultNamespace for each unassociated prefix of the attributes.
>     	//
>     	// ... generate writeStartElement
>     	//
>     	// ... generate writeNamespace/writerDefaultNamespace for each namespace declaration on the element
>     	// ... generate writeNamespace/writeDefaultNamespace for any new "autogen" namespace/prefixes
>     	// ... generate writeAttribute for each attribute
>     	
> I have peer reviewed the code with a member of IBM's parser team (Perter McCracken) and several of the IBM JAX-WS contributors.
> I would like a peer review from the Axiom community.  
> This issue is holding up some critical development in the JAXWS code.  So I will be committing the fix later today, unless I get some negative feedback.
> Thanks,
> scheu

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.