The really simple answer to the question was use ConcurrentHashMap, the second best answer was just leave that readLock there (I haven't seen the code obviously so I'm guessing at what it looks like)
Assuming we're going to ignore the simple solution ..
Which bit ;-) . Could you elaborate on which bit you find confusing
e.g.
the benefits of ConcurrentHashMap vs synchronized map
happens before ordering
memory barriers / fences
Java Memory Model
ConcurrentHashMap is well written up in blogs and books , it can (does its best to) allow concurrent writes and reads and assures correct publication of the data it references. I can recommend some if it helps. Also we never mentioned this but was read / write locks a good performance choice at all according to the books on my desk the answer is not always ;-)
As regards the rest , its difficult to know you level are you an expert or a novice (I suspect both read these forums) ;-) I usually start with do you understand what the volatile keyword does in the new Java Memory model (I'm not recommending volatile use its just a good level indicator) . I guess I assumed mini wasn't an expert so a simple solution was best.
Essentially if one
thread writes and another reads the same memory you MUST establish establish "happens before ordering "or you run the risk your reading thread will miss your writes (they never happen in the second threads view of the world an effect like same variable two different values) possibly indefinitely ... your write and read locks are handling this for you but if you remove one of them it all gets very complicated (this is a separate issue to the actual locking) . The simplified and strictly incorrect explanation is that the without the readLock you have no guarantee that the second thread ever sees the results of the first threads writes (or you need to add something else to achieve the guarantee).
At its simplest if a class contains say a boolean with a getter and setter and one thread reads and one writes if you synchronize the set
you should synchronize the get.