qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PROTON-1940) [c] normalize encoding of multiple="true" fields
Date Mon, 24 Sep 2018 20:09:00 GMT

    [ 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-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


Mime
View raw message