Yes, that's the reason why I replaced _putIfAbsent_ if _put_. However, that was not the cause of the bug. That was the fact that the previous _putIfAbsent_ call happened within the "closure" at the end of which the transaction was committed. In other words, it happened before the transaction was committed.