RFR: [6904367]: (coll) IdentityHashMap is resized before exceeding the expected maximum size

Ivan Gerasimov ivan.gerasimov at oracle.com
Wed Jul 9 00:46:52 UTC 2014


Here's the same final webrev by Martin.
I only shortened the comment before capacity() and moved the check in 
resize() upper.

http://cr.openjdk.java.net/~igerasim/6904367/4/webrev/

Sincerely yours,
Ivan

On 09.07.2014 4:25, Ivan Gerasimov wrote:
>
> On 09.07.2014 3:20, Martin Buchholz wrote:
>> I agree with Peter that we do not need to increment modCount on resize.
>>
>> My latest webrev is again "done".
>>
>> Ivan, feel free to take over.
>
> Yes, thanks! The fix is much much better now.
>
> I think I see yet another very minor glitch, though.
> If the table is already of size 2 * MAXIMUM_CAPACITY, and we're 
> merging in another map, which has more elements with putAll(), 
> resize() will be called and it will throw, even though all the 
> elements could fit into the map due to the key duplicates.
>
> To avoid this the following check should be done first in resize():
>
>  469         if (oldLength >= newLength)
>  470             return false;
>
>
> Sincerely yours,
> Ivan
>
>




More information about the core-libs-dev mailing list