Attach cause to RuntimeException when available. Otherwise, the original exception can be swallowed which makes error forensics more difficult.