Transaction is set complete unconditionally
ValidationManagerImpl line 323:
} finally {
if (!txn.isComplete()) txn.setComplete();
db.endTransaction(txn);
}
This will commit the transaction even if an exception is thrown, which is probably not the intended behaviour. Fix this and check for the same pattern being used elsewhere.