[ https://issues.apache.org/jira/browse/PROTON-1498?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Justin Ross updated PROTON-1498: -------------------------------- Fix Version/s: proton-c-0.18.0 > [C++ binding] Message annotation_map works as value, but not as ref > ------------------------------------------------------------------- > > Key: PROTON-1498 > URL: https://issues.apache.org/jira/browse/PROTON-1498 > Project: Qpid Proton > Issue Type: Bug > Components: cpp-binding > Reporter: Kim van der Riet > Assignee: Alan Conway > Fix For: proton-c-0.18.0 > > > When fetching a known message annotation from a message {{msg}} which has > type {{uint8_t}}, the following call fails: > {code} > uint8_t t = > msg.message_annotations().get(proton::symbol("x-opt-jms-msg-type")).get<int8_t>(); > {code} > with {{proton::conversion_error}} "no more data". > It appears that if the {{annotation_map}} is used as a reference rather than > as a value, then this error occurs. If a local copy of the {{annotation_map}} > is created, then the {{get()}} calls work ok. > To test this, the above call was broken out as follows: > {code} > proton::message::annotation_map& am_ref = msg.message_annotations(); > uint8_t t = am_ref.get(proton::symbol("x-opt-jms-msg-type")).get<int8_t>(); > {code} > fails as before, but > {code} > proton::message::annotation_map am_val = msg.message_annotations(); > uint8_t t = am_val.get(proton::symbol("x-opt-jms-msg-type")).get<int8_t>(); > {code} > works ok. -- This message was sent by Atlassian JIRA (v6.4.14#64029) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org