On Fri, 20 Jun 2025 12:13:23 GMT, Alexey Ivanov <aiva...@openjdk.org> wrote:

>> src/java.desktop/share/classes/javax/swing/ImageIcon.java line 389:
>> 
>>> 387:         this.image = image;
>>> 388:         if (image == null) {
>>> 389:             this.description = null;
>> 
>> We must not change the description. Why do we enforce resetting the 
>> description to `null`?
>> 
>> The app is still free to change the description to an arbitrary value using 
>> `setDescription` even if the image is `null`.
>
> **I *strongly* disagree to changing the value of `description`** here, even 
> though [I brought up this 
> concern](https://github.com/openjdk/jdk/pull/25767#discussion_r2150249349).
> 
> This does not make sense. Consider the following code snippet:
> 
> 
>         ImageIcon im = new ImageIcon();
>         // Both image and description are null
> 
>         im.setDescription("whatever");
>         // Now image is null, and description isn't null
> 
>         im.setImage(null);
>         // Why does description change to null?
> 
> 
> Both `image` and `description` are two independent fields of `ImageIcon` 
> object, each has its own getter and setter, and each can be changed 
> independently. We should not enforce the order of calls: if an app developer 
> wants to set the image to `null`, temporarily or not, the value of the 
> description has to be preserved.

Suggestion:

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25767#discussion_r2164666059

Reply via email to