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

Kim van der Riet commented on QPIDIT-77:
----------------------------------------

This is a bug. I think it is a duplicate of QPIDIT-46. Can you review that bug 
and see if you agree. If so, please mark this as a dup of that bug.

> Shims always send list items as well as map values and keys encoded as string
> -----------------------------------------------------------------------------
>
>                 Key: QPIDIT-77
>                 URL: https://issues.apache.org/jira/browse/QPIDIT-77
>             Project: Apache QPID IT
>          Issue Type: Bug
>          Components: Proton C++ Shim, Proton Python Shim
>            Reporter: Jiri Danek
>
> While examining the project and writing my own shim (see QPIDIT-76) I noticed 
> that the existing shims seem to behave differently than I would expect.
> When sending the following message
> bq. # 
> /usr/libexec/qpid_interop_test/shims/qpid-proton-python/amqp_types_test/Sender.py
>  'localhost:5672' 
> 'jms.queue.qpid-interop.amqp_types_test.map.ProtonPython.ProtonGot' 'map' 
> '[{}, {"string:one": "ubyte:1", "string:two": "ushort:2"}, {"string:One": 
> "long:-1234567890", "none:": "string:None", "short:2": "int:2", "string:map": 
> {"char:A": "int:1", "char:B": "int:2"}, "boolean:True": "string:True", 
> "string:False": "boolean:False", "string:None": "none:"}]'
> and receiving it with 
> {{# 
> /usr/libexec/qpid_interop_test/shims/qpid-proton-go/amqp_types_test/Receiver 
> 'localhost:5672' 
> 'jms.queue.qpid-interop.amqp_types_test.map.ProtonPython.ProtonGot' 'map' 
> '3'}}
> My shim printed wrong message, with keys and values looking like 
> {{string:boolean:True}}
> {noformat}
> map
> [{},{"string:string:one":"string:ubyte:1","string:string:two":"string:ushort:2"},{"string:boolean:True":"string:string:True","string:none:":"string:string:None","string:short:2":"string:int:2","string:string:False":"string:boolean:False","string:string:None":"string:none:","string:string:One":"string:long:-1234567890","string:string:map":{"string:char:A":"string:int:1","string:char:B":"string:int:2"}}]
> {noformat}
> I suspected my code, but when I deliberately made my code "wrong", see commit 
> https://github.com/jdanekrh/qpid-interop-test/commit/bdaca47959083ef0c54656adb38285486316553b,
>  the shim started working.
> For the above reason, I suspect that when shims (at least the Python one and 
> C++ one, these I tried) put data into map keys, map values and list items as 
> strings, without bothering to convert them.
> This sounds sort of incredible how could this happen, but having no tool to 
> print messages in-flight and given that the change in the commit above fixed 
> my shim, I think it is plausible.
> -I looked at code of the other shims, but could not confirm or deny my 
> suspicion. The code is for me hard to penetrate.- I think C++ code really 
> does what I described above. The question is, is that a bug?



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to