failover process for the 0-8 client does not clear the pre-dispatch queue, only the consumer receive queue.
This is currently masked by an issue with the rollbackMark. The changes made in
QPID-3546 to fix the 0-10 client path need to be applied to the 0-8/9/9-1 client path when this issue is resolved.
We need to clear the pre-dispatch queue on failover. Additionally, we need to acquire dispatcher and messageDelivery locks in failover thread in order to prevent the dispatcher from dispatching pre-fetched messages whilst failover is in progress. If we are not holding the locks, the dispatcher could continue dispatching prefetched messages into MessageListener which would result in unnecessary JMSExceptions on acknowledge/rollback/commit/recover.