On 06/11/2015 01:11 PM, aconway wrote:
I disagree. An empty string is a perfectly legal value for a string. If the spec wants to assign special meaning to particular values of a property that needs to be stated. Of course, like you, I personally would not use an empty string as an identifier but as an implementor of an inter-operable spec I think we have to take the large view: *any* legal value of a parameter has to be considered equal unless the spec clearly states otherwise.
If a name field is populated with an empty string, that to me is the same as not supplying a name. An empty string is a legal encoding, but in my view it does not supply a value at all. (It is not like say 0 which may be the default but is clearly a value in its own right).
However, from the practical point of view... [...]
Quote me the spec, this is a mater of law not opinion ;)
I suspect that the sending of an empty string for a multi-frame message is entirely unintentional on the part of Apollo. I suspect it is a bug in Apollo or in the proton-j version/path it uses. That should be confirmed and an appropriate JIRA raised.
Proton-c should also not crash on receiving an empty (or null) delivery id. Beyond that I'm not overly concerned how it handles the empty string case.