<i18n dev> RFR: 8366178: Implement JEP 526: Lazy Constants (Second Preview) [v7]
Per Minborg
pminborg at openjdk.org
Mon Oct 13 14:33:10 UTC 2025
On Mon, 13 Oct 2025 13:44:07 GMT, Maurizio Cimadamore <mcimadamore at openjdk.org> wrote:
>> Per Minborg has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Update src/java.base/share/classes/java/lang/LazyConstant.java
>>
>> Co-authored-by: Maurizio Cimadamore <54672762+mcimadamore at users.noreply.github.com>
>
> src/java.base/share/classes/java/lang/LazyConstant.java line 192:
>
>> 190: * The {@code LazyConstant} type is not {@link Serializable}.
>> 191: * <p>
>> 192: * It is not recommended putting lazy constants into equality-based collections
>
> Not sure what you mean here. It seems like the javadoc for `equals` says that it triggers initialization, so it should be ok?
Formally, it is ok, but may result in strange side effects if we, for example, put a key of type LazyConstant in a map. It will then be initialized immediately (upon `map.put()`), and the put operation can therefore have non-obvious side effects.
> src/java.base/share/classes/java/lang/LazyConstant.java line 276:
>
>> 274: * this method might block or throw.
>> 275: *
>> 276: * @implSpec The order of potential initialization triggering is specified as:
>
> Do we really need to specify this?
This is a corner case, but we might have two uninitialized LCs. The order in which they get computed might be significant (e.g., they operate on shared data structures).
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/27605#discussion_r2426507366
PR Review Comment: https://git.openjdk.org/jdk/pull/27605#discussion_r2426513556
More information about the i18n-dev
mailing list