When a session is committed after failover using the session.commit() call, it incorrectly throws a RuntimeException (SessionException). It should throw a JMSException instead so that the client can recover.
org.apache.qpid.client.AMQSession has a check for failover in its commit method, but this method is overridden in org.apache.qpid.client.AMQSession_0_10 and the latter does not have the failover check. As a result, the check is never used. I have attached a patch that reworks the code a bit to allow org.apache.qpid.client.AMQSession_0_10 to use the failover check during commit.