Hi Doug,<div><br></div><div>In the ConcurrentHashMap the get method does not require &quot;readValueUnderLock&quot; because a racing remove does not make the value null.</div><div>The value never becomes null on the from the removing thread. this means it is possible for get to return a value for key even if the removing thread (on the same key) has progressed till the point of cloning the preceding parts of the list.</div>
<div>This is fine so long as it is the desired effect.</div><div><br></div><div>But this means &quot;readValueUnderLock&quot; is not required for NEW memory model.</div><div><br></div><div>However for the OLD memory model a put may see the value null due to reordering(Rare but possible).</div>
<div><br></div><div>Is my understanding correct.</div><div><br></div><div>Thanks in advance</div><div>Mohit</div><div><br></div><div><br></div><div><br></div>