[ 
https://issues.apache.org/jira/browse/PROTON-1940?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16626401#comment-16626401
 ] 

ASF GitHub Bot commented on PROTON-1940:
----------------------------------------

GitHub user alanconway opened a pull request:

    https://github.com/apache/qpid-proton/pull/159

    PROTON-1940: [c] normalize encoding of multiple="true" fields

    AMQP spec allows several ways to encode a "multiple" field, we allow all in
    incoming data or pn_data_t values created in the user, but when writing
    to the wire we always encode:
    
    - empty array as null
    - single value array as a single value
    - multiple values - encoded as array
    
    This is the most compact encoding and seems to be best for interop, as some 
AMQP
    clients (.NET) have trouble with an empty array in a multiple value field.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/alanconway/qpid-proton c-multiple-null

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/qpid-proton/pull/159.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #159
    
----
commit 51f4c581411a3295054323028faa59fdb56f4604
Author: Alan Conway <aconway@...>
Date:   2018-09-24T15:41:03Z

    PROTON-1940: [c] normalize encoding of multiple="true" fields
    
    AMQP spec allows several ways to encode a "multiple" field, we allow all in
    incoming data or pn_data_t values created in the user, but when writing
    to the wire we always encode:
    
    - empty array as null
    - single value array as a single value
    - multiple values - encoded as array
    
    This is the most compact encoding and seems to be best for interop, as some 
AMQP
    clients (.NET) have trouble with an empty array in a multiple value field.

----


> [c] normalize encoding of multiple="true" fields
> ------------------------------------------------
>
>                 Key: PROTON-1940
>                 URL: https://issues.apache.org/jira/browse/PROTON-1940
>             Project: Qpid Proton
>          Issue Type: Improvement
>          Components: proton-c
>    Affects Versions: proton-c-0.25.0
>            Reporter: Alan Conway
>            Assignee: Alan Conway
>            Priority: Major
>             Fix For: proton-c-0.26.0
>
>
> The AMQP spec defines some frame fields as "multiple".
> [http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-types-v1.0-os.html#section-composite-type-representation]
> "The _multiple_ attribute of a field description controls whether multiple 
> element values are permitted in the representation. A single element of the 
> type specified in the field description is always permitted. Multiple values 
> are represented by the use of an array where the type of the elements in the 
> array is the type defined in the field definition. Note that a null value and 
> a zero-length array (with a correct type for its elements) both describe an 
> absence of a value and MUST be treated as semantically identical. "
> Proton accepts all legal values. This issue is to normalize values written by 
> proton:
>  * empty array becomes null
>  * array of one element becomes a single value
> This is the most efficient encoding, and some clients (.NET) have problems 
> with multiple fields that contain an empty array rather than a null.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to