On Wed, 2 Jun 2021 07:35:25 GMT, Rémi Forax <fo...@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