You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Harri Hohteri (JIRA)" <ji...@apache.org> on 2008/05/01 17:58:55 UTC

[jira] Commented: (CXF-1564) ArrayType does not work correctly if isWriteOuter == false

    [ https://issues.apache.org/jira/browse/CXF-1564?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12593560#action_12593560 ] 

Harri Hohteri commented on CXF-1564:
------------------------------------

Perhaps testing that the message writer that is passed to the writeObject of ArrayType is not closed when control is returned from the writeObject?

If I have understood the logic correctly, the isWriteOuter indicates if the type class wants to write the element tag itself or use the default element tag which would be one defined by the name attribute of @XmlType annotation in the mapped class or if that is not defined the simple class name.




> 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, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5, 2.1, 2.0.6, 2.1.1, 2.0.7
>            Reporter: Harri Hohteri
>            Assignee: Benson Margulies
>             Fix For: 2.1.1
>
>
> 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.