On Wed, 12 Mar 2025 19:27:09 GMT, Sergey Bylokhov <s...@openjdk.org> wrote:
>>> There are two other exceptions that may be better suited that ISE in this >>> case - [UnsupportedOperationException >>> ](https://docs.oracle.com/en/java/javase/23/docs/api/java.base/java/lang/UnsupportedOperationException.html) >>> and >>> [ProfileDataException](https://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/java/awt/color/ProfileDataException.html) >>> but still IAE was chosen over them as it is existing and documented >>> exception. >> >> `UnsupportedOperationException` could be used. >> >> `HeadlessException` extends `UnsupportedOperationException` and indicates a >> situation where a method cannot proceed because of the platform >> configuration. >> >> `ProfileDataException` doesn't suit either because there's nothing wrong >> with the profile data in the case of built-in profiles. > >> 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. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/23606#discussion_r1992171181