boolean containsValue(Object value) {
      if (count != 0) { // read-volatile
        HashEntry<V>[] tab = table;
        int len = tab.length;
        for (final HashEntry<V> vHashEntry : tab) {
          for (HashEntry<V> e = vHashEntry; e != null; e = e.next) {
            V v = e.value;
            if (v == null) // recheck
            {
              v = readValueUnderLock(e);
            }
            if (value.equals(v)) {
              return true;
            }
          }
        }
      }
      return false;
    }
Reads value field of an entry under lock. Called if value field ever appears to be null. This
is possible only if a compiler happens to reorder a HashEntry initialization with its table
assignment, which is legal under memory model but is not known to ever occur.
geode-core/src/main/java/org/apache/geode/internal/ObjIdConcurrentMap.java