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 2009/08/15 12:19:15 UTC

[jira] Resolved: (WSCOMMONS-480) Some of the serialize/serializeAndConsume methods are declared on the wrong interface

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

Andreas Veithen resolved WSCOMMONS-480.
---------------------------------------

       Resolution: Fixed
    Fix Version/s: Axiom 1.2.9

> Some of the serialize/serializeAndConsume methods are declared on the wrong interface
> -------------------------------------------------------------------------------------
>
>                 Key: WSCOMMONS-480
>                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-480
>             Project: WS-Commons
>          Issue Type: Bug
>          Components: AXIOM
>    Affects Versions: Axiom 1.2.8
>            Reporter: Andreas Veithen
>            Assignee: Andreas Veithen
>            Priority: Minor
>             Fix For: Axiom 1.2.9
>
>
> OMNode declares a set of serialize and serializeAndConsume methods taking an OutputStream or a Writer as argument. This is conceptually wrong because these methods only make sense for OMElements, not for other OMNodes.
> Note that any attempt to call these methods on anything else than an OMElement will fail. Consider for example the following code:
>         OMFactory factory = OMAbstractFactory.getOMFactory();
>         OMText text = factory.createOMText("This is a test");
>         text.serialize(System.out);
> It will fail with the following exception:
> Exception in thread "main" javax.xml.stream.XMLStreamException: Trying to write END_DOCUMENT when document has no root (ie. trying to output empty document).
>         at com.ctc.wstx.sw.BaseStreamWriter.throwOutputError(BaseStreamWriter.java:1473)
>         at com.ctc.wstx.sw.BaseStreamWriter.reportNwfStructure(BaseStreamWriter.java:1502)
>         at com.ctc.wstx.sw.BaseStreamWriter.finishDocument(BaseStreamWriter.java:1663)
>         at com.ctc.wstx.sw.BaseStreamWriter.close(BaseStreamWriter.java:288)
>         at org.apache.axiom.om.impl.llom.OMNodeImpl.serialize(OMNodeImpl.java:333)
>         at Test.main(Test.java:14)
> The serialize and serializeAndConsume methods declared by OMNode should be moved to the right interface, which would be either OMElement or OMContainer. The latter choice would be justified by the fact that all these methods make sense for OMDocument as well and some of them are already declared in OMDocument.

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