On Wed, 12 Mar 2025 19:30:17 GMT, Sergey Bylokhov <s...@openjdk.org> wrote:

>>> The System Properties case isn't something I'd want to follow. It doesn't 
>>> really make them read-only.
>>> It just ensures that the JDK internally caches the original value for use 
>>> in certain places.
>> 
>> Right. The application may attempt to change these java properties, but it 
>> won't affect the behavior of the JDK since the JDK internally will use the 
>> initially cached value of the property via 
>> StaticProperty.userDir()/userHome()/etc.
>> 
>> This is even specified similarly to what we want for color profiles.
>> 
>>>  * <strong>Changing a standard system property may have unpredictable 
>>> results
>>      * unless otherwise specified.</strong>
>>      * Property values may be cached during initialization or on first use.
>>      * Setting a standard property after initialization using {@link 
>> #getProperties()},
>>      * {@link #setProperties(Properties)}, {@link #setProperty(String, 
>> String)}, or
>>      * {@link #clearProperty(String)} may not have the desired effect.
>
> * Builtin color profiles may be cached during initialization or on first use. 
> Changing a standard profiles after initialization using ICC_Profile.setData 
> may not have the desired effect.

> > Since there is no way to check if a profile is built-in, making built-in 
> > profiles read-only might be a better approach, similar to [java 
> > properties](https://bugs.openjdk.org/browse/JDK-8066709).
> 
> But it also has its own disadvantages...

@mrserb  You mentioned earlier that there are disadvantages of using java 
properties approach, so using builtIn flag would be better then, correct?

>  I remember we discussed this issue during the review of [this 
> commit](https://github.com/openjdk/jdk/pull/3037/files#diff-3dd53a33889801159f43dbb990ba033066bdabaed71bbc7254f58331d3898d69R39),
>  and the conclusion was that it was too late to change it and break apps.

I wasn't able to find the previous discussion thread so I'm not sure what are 
the disadvantages. Can you please explain?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23606#discussion_r1992295739

Reply via email to