StarTM: Automatic Verification of Snapshot Isolation in Transactional Memory Java Programs