Some applications scale out on multi-core machines by using CAS Multipliers. Sometimes, it makes sense when the new CASes have a lot of identical data, to have the common part of these in another CAS which can be set up and shared (read-only) by other threads. Unfortunately, this design suffers from random failures in the CAS iterator code. Figure out what's wrong and fix this, to start supporting read-only CASes being accessed simultaneously in a multi-core platform on multiple threads. Include a JUnit test case, too, if possible.