[
https://issues.apache.org/jira/browse/PROTON-1940?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16631838#comment-16631838
]
ASF subversion and git services commented on PROTON-1940:
---------------------------------------------------------
Commit 5960f15df324daf04387066af55dbb2f79c68f71 in qpid-proton's branch
refs/heads/master from [~aconway]
[ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=5960f15 ]
PROTON-1940: [c] normalize encoding of multiple="true" fields
Append src to data after normalizing for "multiple" field encoding.
AMQP composite field definitions can be declared "multiple", see:
-
http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-types-v1.0-os.html#doc-idp115568
-
http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-types-v1.0-os.html#section-composite-type-representation
Multiple fields allow redundant encoding of two cases:
1. empty: null or an empty array.
2. single-value: direct encoding of value, or array with one element
For encoding compactness and inter-operability, normalize multiple
field values to always use null for empty, and direct encoding for
single value.
> [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: [email protected]
For additional commands, e-mail: [email protected]