I'm looking at some legacy code which has the following idiom:
Map<String, Boolean> myMap = someGlobalInstance.getMap();
synchronized (myMap) {
item = myMap.get(myKey);
}
The warning I get from Intelli-J's code inspections is:
Synchronization on local variable 'myMap'
Is this the appropriate synchronization and why?
Map<String, Boolean> myMap = someGlobalInstance.getMap();
synchronized (someGlobalInstance.getMap()) {
item = myMap.get(myKey);
}