lock failure throws runtime exception instead of swallowing