qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alessio Gottardo <tappo...@yahoo.it.INVALID>
Subject Electron/Amqp golang packages have an issue with MessageAnnotations() and timestamps
Date Mon, 06 Nov 2017 12:25:02 GMT
Hi there,

I am having a hard time at parsing this field `MessageAnnotations() map[AnnotationKey]interface{}`
from this type: https://godoc.org/qpid.apache.org/amqp#Message when receiving a message.

I am connecting to a Azure Event Hub which is supposed to send some useful annotations that
I would like to parse e.g.:

- the field called "x-opt-sequence-number" to retrieve the offset of this message in the
partition 
- the field called "x-opt-enqueued-time" for the timestamp

Cf. this for more details: https://github.com/Azure/amqpnetlite/blob/master/docs/articles/azure_eventhubs.md

However at runtime when I attempt at accessing that golang field with `amqpMessage.MessageAnnotations()`
then I keep getting a panic message saying: `cannot unmarshal AMQP timestamp to *interface
{}`

It seems there is a missing switch-case scenario in here: https://github.com/apache/qpid-proton/blob/go1/amqp/unmarshal.go#L248 

Am I doing anything wrong in the way I am trying to access those AMQP fields? 
How could I try to avoid that panic at line 551 in the "default" case of the switch?
I am not familiar with AMQP and golang so I am wondering if I should do things in a different
/ more idiomatic way instead.

Thank you
Alessio



Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message