Initialy I threw an exception if the CAS failed. 

However, sometimes, the CAS failed and I was not sure if it *could* fail or not. I think I fixed the case where it failed though. Should we throw an exception if it does ?