My problem is the following: I have written an interceptor for an
activemq5.5.1 message broker. The interceptor intercepts incoming messages
by overriding the 
*public void send(ProducerBrokerExchange producerExchange, Message
messageSend)*
method in Broker filter. It then validates the messages against its schema,
and if its valid sends it to its destination unchanged by calling 
*super.send(ProducerBrokerExchange producerExchange, Message messageSend)*
whereas if its invalid it sets the destination of messageSend to be its
replyTo destination, and then sends it by calling the same method.
My scenario is that I have a message sender, who sends a batch of valid
messages, and a batch of invalid messages, all with the same queue as their
destination, and then listens for invalid ones (he sets the  replyTo
destination on all outgoing messages to be his invalid message queue). I run
the sender, and then run a receiver, who just listens for messages ( the
sender sends to the same queue the receiver listens to).
When using activemq 5.5.1 the system behaves exactly as expected.

However I recently installed activemq 5.6.0. When using the exact same
broker configuration,plugin code, sender and receiver etc. The interceptor
seems to behave rather oddly.
Specifically, if I send a batch of valid messages to the broker, followed by
a batch of invalid messages, the invalid messages do not get moved to the
invalid message queue. when inspecting the queue that the sender sends too,
I find that all messages are in this queue (valid and invalid), even though
the invalid messages have their destination set to be the invalid message
queue.
If on the other hand I get the sender to send the invalid messages first,
and then the valid messages (all other thing remaining unchanged),
everything behaves as expected, i.e. the invalid messages are put into the
right queue, and querying the queue that the sender sends to (using the
browse command line tool) returns only the valid messages.

I have gone through the release notes, and there doesn't seem to be any
mention of this  issue. 

Just to reiterate, I am using the exact same code, and the behaviour of the
broker varies from 5.5.1 to 5.6.0.

Please let me know if I should post my source code, any help would be much
appreciated.

--
View this message in context: 
http://activemq.2283324.n4.nabble.com/broker-interceptor-works-in-5-5-1-but-not-in-5-6-0-tp4653100.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to