On Wed, Jun 22, 2011 at 12:14 PM, Mario Camou <[email protected]> wrote: > Hi everyone, > > I think I might have found a bug in ruote-amqp. > > I have my own subclasses of RuoteAMQP::ParticipantProxy / Receiver which > translates between our message format and the Ruote workitems, and does > correlation of incoming messages with workitems. For this I am overriding > RuoteAMQP::ParticipantProxy#encode_workitem and > RuoteAMQP::Receiver#decode_workitem. > > I had a bug where, in some conditions, my encode_workitem method was > returning a nil instead of a message payload. The thing is, when that > happens, AMQP sometimes stops delivering messages to Ruote. Even though I've > fixed this, I believe this should never happen. > > I have created a minimal test case as follows. Here's the participant: > class NilParticipant < RuoteAMQP::ParticipantProxy > def initialize(options) > super(options) > end > def consume(wi) > super(wi) > end > # Prepare for correlation if necessary and return the JSON > representation of the message > def encode_workitem(wi) > nil > end > end
Hi Mario Thanks for the detailed bug report. I'll have to play with enqueueing +nil+ in RabbitMQ and seeing what happens and maybe escalate the issue to the ruote-amqp team for further investigation. In the meantime I've updated the internals to raise an ArgumentError when the encoded workitem turns out to be nil. See https://github.com/kennethkalmer/ruote-amqp/commit/45d2955747cfa0cf017a0cbc2a6c39defd1d8a5a for the tiny change. Thanks for reporting, I guess we never thought that someone would do this so we never solidified the "api". Let me know if there is anything else we can help with! Kind regards -- Kenneth Kalmer [email protected] http://opensourcery.co.za @kennethkalmer -- you received this message because you are subscribed to the "ruote users" group. to post : send email to [email protected] to unsubscribe : send email to [email protected] more options : http://groups.google.com/group/openwferu-users?hl=en
