The AMQP spec defines some frame fields as "multiple".
"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.