In particular, notice the NPE from:
* release a derived state previously stored using the transaction id as a lookup key
* @param txId the id of the transaction which created the derived state
protected void removeState(Object txId)
I don't yet know:
A) If recovery should even be happening in this part of the test.
B) Assuming recovery should happen, I don't know if the outcome should be rollback; which is what it looks like is happening here.