RFR: 8199318: add idempotent copy operation for Map.Entry
Stuart Marks
smarks at openjdk.java.net
Wed Jun 2 17:15:34 UTC 2021
On Wed, 2 Jun 2021 07:35:25 GMT, Rémi Forax <forax at openjdk.org> wrote:
> i wonder if we should not declare SimpleImmutableEntry final, while it's not a backward compatible change,
> it's may be better on the long term because SimpleImmutableEntry is already used as an immutable type,
> so instead of documenting the fact that SimpleImmutableEntry is not declared final thus SimpleImmutableEntry as a type does not guarantte shallow immutability, it may be better to fix the root cause.
A quick search reveals that Guava has a public subclass of SimpleImmutableEntry:
https://guava.dev/releases/30.1.1-jre/api/docs/com/google/common/cache/RemovalNotification.html
There are possibly others. It doesn't seem worth the incompatibility to me, as it would break stuff in order to have only a "cleaner" meaning for "immutable." Also, there are other classes in the JDK that claim they are immutable but which can be subclassed, e.g., BigInteger. I don't see a good way of fixing this.
-------------
PR: https://git.openjdk.java.net/jdk/pull/4295
More information about the core-libs-dev
mailing list