On Fri, 21 Oct 2022 11:56:57 GMT, Сергей Цыпанов <d...@openjdk.org> wrote:

>> src/java.base/share/classes/java/util/TreeMap.java line 3329:
>> 
>>> 3327:             }
>>> 3328:             else {
>>> 3329:                 return (Comparator<Map.Entry<K, V>> & Serializable) 
>>> (e1, e2) -> {
>> 
>> I think this cast hints compiler to bootstrap lambda meta factory with extra 
>> Serializable marker interface. Meanwhile, Comparator.naturalOrder does not 
>> implement Serializable.
>
> From one point this is obviously a change in behaviour, from another the spec 
> of `Spliterator.getComparator()` says nothing about serializability of 
> returned comparator and the actual value is hardly ever going to be 
> serialized.

The only new comparator that is returned here is the one returned by 
`Map.Entry.comparingByKey()`, which is also `Serializable`.

The only place `Comparator.naturalOrder()` is newly used in this PR are the 
`final` `package‑private` `getEntry` and `getEntryUsingComparator` methods.

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

PR: https://git.openjdk.org/jdk/pull/9901

Reply via email to