ArrayType does not work correctly if isWriteOuter == false
----------------------------------------------------------

                 Key: CXF-1564
                 URL: https://issues.apache.org/jira/browse/CXF-1564
             Project: CXF
          Issue Type: Bug
          Components: Aegis Databinding
    Affects Versions: 2.0.6, 2.1, 2.0.5, 2.0.4, 2.0.3, 2.0.2, 2.0.1, 2.0, 
2.1.1, 2.0.7
            Reporter: Harri Hohteri


In org.apache.cxf.aegis.type.basic.ArrayType:

    protected void writeValue(Object value, MessageWriter writer, Context 
context, Type type, String name,
        ...
        if (type.isWriteOuter()) {
            cwriter = writer.getElementWriter(name, ns);
        } else {
            cwriter = writer;
        }

        if (value == null && type.isNillable()) {
            cwriter.writeXsiNil();
        } else {
            type.writeObject(value, cwriter, context);
        }

        cwriter.close();
    }

Should be: 

    protected void writeValue(Object value, MessageWriter writer, Context 
context, Type type, String name,
        ...
        if (type.isWriteOuter()) {
            cwriter = writer.getElementWriter(name, ns);
        } else {
            cwriter = writer;
        }

        if (value == null && type.isNillable()) {
            cwriter.writeXsiNil();
        } else {
            type.writeObject(value, cwriter, context);
        }

        if (type.isWriteOuter()) {
            cwriter.close();
        }
    }

Similar bug was in XFire (http://jira.codehaus.org/browse/XFIRE-547).

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