RFR: JDK-8325255 jdk.internal.util.ReferencedKeySet::add using wrong test [v3]
ExE Boss
duke at openjdk.org
Sun Feb 11 17:44:03 UTC 2024
On Tue, 6 Feb 2024 18:43:09 GMT, Jim Laskey <jlaskey at openjdk.org> wrote:
>> Currently, add is returning intern(e) == null which will always be false. The correct test is intern(e) == e , that is, true when element is newly added.
>
> Jim Laskey has updated the pull request incrementally with one additional commit since the last revision:
>
> Update ReferencedKeyTest.java
src/java.base/share/classes/jdk/internal/util/ReferencedKeySet.java line 151:
> 149: @Override
> 150: public boolean add(T e) {
> 151: return intern(e) == e;
https://github.com/openjdk/jdk/pull/14684#discussion_r1485634936
> While `intern(e) == e` is (mostly) sufficient, it will return a false positive when `add(e)` is called and `e` is already present in the map, the correctest implementation would be some internal API in `ReferencedKeyMap` for implementing `ReferencedKeySet::add`.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/17732#discussion_r1485635132
More information about the core-libs-dev
mailing list