RFR: 8159055: ImageIcon.setImage and ImageIcon(Image) constructor can't handle null parameter [v11]
ExE Boss
duke at openjdk.org
Mon Jun 23 21:19:35 UTC 2025
On Fri, 20 Jun 2025 15:29:56 GMT, Alexey Ivanov <aivanov at openjdk.org> wrote:
>> Prasanta Sadhukhan has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Remove resetting description from constructor as it is already null
>
> src/java.desktop/share/classes/javax/swing/ImageIcon.java line 233:
>
>> 231: Object o = image.getProperty("comment", imageObserver);
>> 232: if (o instanceof String) {
>> 233: description = (String) o;
>
> To address [Phil's comment](https://github.com/openjdk/jdk/pull/25767/files#r2155610976):
>
>> This is wasted work if the app calls ImageIcon(Image, String) because that promptly over-writes whatever was obtained via this code.
>
> If we're going to change the constructors, to avoid *this wasted work* when `ImageIcon(Image, String)` constructor is called, I suggest moving the work into `ImageIcon(Image, String)` and implement `ImageIcon` like this:
>
>
> public ImageIcon (Image image) {
> String description = null;
> if (image != null) {
> Object o = image.getProperty("comment", null);
> if (o instanceof String) {
> description = (String) o;
> }
> }
> this(image, description);
>
> It is allowed in JDK 22 and later.
Note that this was a preview language feature until **JDK 25**.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/25767#discussion_r2162548529
More information about the client-libs-dev
mailing list