Ok, so I have a CAS PR for this, but it looks like this method is called from a single-threaded context, always.  Volatile is only need for *reading* the value, so CAS is not needed.   So I'll leave this along unless we see significant performance hit in not having this be an AtomicReference.