I believe ``cache`` should have the ``volatile`` modifier since its nullity is being used as a flag for potentially concurrent readers.