OMSourcedElementImpl#serialize produces wrong result when element is expanded
-----------------------------------------------------------------------------

                 Key: WSCOMMONS-334
                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-334
             Project: WS-Commons
          Issue Type: Bug
          Components: AXIOM
            Reporter: Andreas Veithen


For OMSourcedElementImpl objects backed by OMDataSourceExt instances with 
destructiveWrite==false, the methods serialize(OutputStream, OMOutputFormat) 
and serialize(Writer, OMOutputFormat) produce the wrong result if the element 
has been modified. Indeed the code looks like this:

    public void serialize(OutputStream output, OMOutputFormat format) throws 
XMLStreamException {
        if (isDestructiveWrite()) {
            forceExpand();
            super.serialize(output, format);
        } else {
            dataSource.serialize(output, format);
        }
    }

In the situation described here, this code will always call 
OMDataSourceExt#serialize even if the element has been modified. It should 
check the result of isExpanded() and always call super.serialize if the result 
is true.

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

Reply via email to