RFR: 8301492: Modernize equals() method of ResourceBundle.CacheKey and Bundles.CacheKey [v3]

Sergey Tsypanov stsypanov at openjdk.org
Fri Jun 23 13:49:09 UTC 2023


On Fri, 23 Jun 2023 10:41:49 GMT, Pavel Rappo <prappo at openjdk.org> wrote:

>> Sergey Tsypanov has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Restore logic
>
> src/java.base/share/classes/java/util/ResourceBundle.java line 743:
> 
>> 741:                 return ((module != null) && (module.equals(otherEntry.getModule())) &&
>> 742:                         (caller != null) && (caller.equals(otherEntry.getCallerModule())));
>> 743:             } catch (NullPointerException | ClassCastException e) {
> 
> Are we sure that NPE can only be thrown when calling equals on `name` or `locale` and not, for example, from `getModule()` or `getCallerModule()`?

Yes:

CacheKey(String baseName, Locale locale, Module module, Module caller) {
    Objects.requireNonNull(module);
    Objects.requireNonNull(caller);

    this.name = baseName;
    this.locale = locale;
    this.moduleRef = new KeyElementReference<>(module, referenceQueue, this);
    this.callerRef = new KeyElementReference<>(caller, referenceQueue, this);
    this.modulesHash = module.hashCode() ^ caller.hashCode();
}

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/12328#discussion_r1239839973


More information about the core-libs-dev mailing list