Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.22, 0.32, qpid-java-6.0.6, qpid-java-6.1.2
-
None
Description
If the client fails over when AMQP 0-8..0-91 is in use and the application is using a synchronous message receiver calling #receiveNoWait(), the application will always receive null. The defect is longstanding. It goes back at least until 0.22. Other synchronous receive calls and asynchronous message listeners are unaffected. The 0-10 path is unaffected too.
The problem is org.apache.qpid.client.AMQConnection#isFailingOver and org.apache.qpid.client.AMQProtocolHandler#startFailoverThread. The former assumes that the failover latch will be nullified after a successful failover but startFailoverThread does not organise for this.