On Thu, 10 Mar 2022 16:22:29 GMT, XenoAmess <[email protected]> wrote:
>> test/jdk/java/util/HashMap/WhiteBoxResizeTest.java line 116:
>>
>>> 114: }
>>> 115:
>>> 116: void putN(Map<Integer, Integer> map, int n) {
>>
>> @stuart-marks well we know this is correct for WeakHashMap when n <
>> IntegerCache.high because we have Integer constant pool, but I think it be
>> better to manlly make it sure it is referenced, as IntegerCache.high is
>> configurable.
>
> @stuart-marks please have a look in changes in the latest commit, I think
> we'd better to manually create references for keys like that.
Good point about WeakHashMap! I don't think we need a separate table. Since the
value is held by a strong reference, using the same reference as the key will
prevent the key's weak reference from being cleared. I'd suggest this:
for (int i = 0; i < n; i++) {
Integer obj = i; // prevent WeakHashMap from clearing keys
map.put(obj, obj);
}
-------------
PR: https://git.openjdk.java.net/jdk/pull/7431