This JIRA improves TestQJMWithFaults as follows:
- the current implementation didn't properly unwrap exceptions thrown by the reflection-based injection method. This caused some issues in the code where the injecting proxy didn't act quite like the original object.
- the current implementation incorrectly assumed that the recovery process would recover to exactly the last acked sequence number. In fact, it may recover to that transaction or any greater transaction.
It also adds a new randomized test which uncovered a number of other bugs. I will defer to the included javadoc for a description of this test.