[ 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