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 'http://test'" type="javax.xml.stream.XMLStreamException">javax.xml.stream.XMLStreamException: Unbound namespace URI 'http://test'
> 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.