In Infinispan, REPEATABLE_READ works slightly differently to databases. REPETEABLE_READ says that "data can be read as long as there are no writes, and viceversa". This avoids the non-repeatable reads phenomenon, because once data has been written, no other transaction can read it, so there's no chance of re-reading the data and finding different data.
However, as indicated in READ_COMMITTED article, Infinispan has an MVCC model that allows it to have non-blocking reads. Infinispan provides REPETEABLE_READ semantics by keeping the previous value whenever an entry is modified. This allows Infinispan to retrieve the previous value if a second read happens within the same transaction.