On Nov 15, 2012, at 11:58 AM, Alan Bateman <alan.bate...@oracle.com> wrote:

> On 15/11/2012 05:28, Mike Duigou wrote:
>> This bug appears to have been present as far back as Java 6 when 
>> NavigableSet was introduced. I could only check 6u33 but it seems unlikely 
>> to have been broken during the course of Java 6 maintenance releases.
>> 
>> As these are views which pass through mutation to the parent object I 
>> believe there are fewer compatibility concerns than might be expected.
>> 
>> Compatibility concern would mostly involve use of the returned entrySetView 
>> for synchronization. Previously synchronization on the returned views would 
>> have been partially ineffectual because a new view object was returned every 
>> time. Sharing the returned views would have synchronized correctly but any 
>> other access to the source object either directly or through other views 
>> would have led to problems with concurrent modification of the source 
>> treemap.
>> 
>> In the  repaired implementation where a single view object is returned 
>> synchronization on the views would now be more effective and prevent 
>> concurrent race errors. It's possible that new deadlock conditions might be 
>> introduced but this seems unlikely.
>> 
>> Mike
> It does look like it has been there from the NS were added.
> 
> I think it's safe to fix this and the change looks fine to me.
> 

+1

Paul.

Reply via email to