You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2020/08/11 18:38:00 UTC

[jira] [Commented] (PROTON-2237) [python] Non-string message property keys not handled correctly

    [ https://issues.apache.org/jira/browse/PROTON-2237?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17175776#comment-17175776 ] 

ASF subversion and git services commented on PROTON-2237:
---------------------------------------------------------

Commit 6eac2102a0e2cec9cae7fb9d5d59a0f6bae345f2 in qpid-proton's branch refs/heads/python-check-property-keys from Kim van der Riet
[ https://gitbox.apache.org/repos/asf?p=qpid-proton.git;h=6eac210 ]

PROTON-2237: Changed logic of key check so that subclasses of string *except* proton.symbol and proton.char will be encoded as strings


> [python] Non-string message property keys not handled correctly
> ---------------------------------------------------------------
>
>                 Key: PROTON-2237
>                 URL: https://issues.apache.org/jira/browse/PROTON-2237
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: python-binding
>            Reporter: Kim van der Riet
>            Priority: Major
>
> The AMQP 1.0 spec allows only string keys for message properties.
> Proton's Python binding has a method (_message.py:91 _check_property_keys()) for checking message property keys, but it does not handle all cases correctly:
>  # Proton types Symbol and Char are derived from string, and are allowed in the test. This results in an illegal encoding.
>  # Because in Python 2, many coders carelessly use string literals without the required u'' prefix (and thus results in a bytes type), bytes types are converted to unicode string types. However, the encode() function is being used, which simply returns a binary type in Python 2 and raises an error in Python 3. This should probably be the decode() method, which returns a string and works for both Python 2 and 3.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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