qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PROTON-1940) [c] normalize encoding of multiple="true" fields
Date Fri, 28 Sep 2018 13:32:00 GMT

    [ 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

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

View raw message