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.