RFR: 8159055: ImageIcon.setImage and ImageIcon(Image) constructor can't handle null parameter [v11]

Alexey Ivanov aivanov at openjdk.org
Fri Jun 20 12:17:31 UTC 2025


On Fri, 20 Jun 2025 03:51:16 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:

>> When trying to call 'icon.setImage(null);' where 'icon' is an instance of ImageIcon, a null pointer exception is thrown at runtime.
>> The code tried to get the `id` for that image and instantiates `MediaTracker` to associate the null image to that `id` and checks the status of loading this null image, removes the null image from the tracker and then tries to get the image width where it throws NPE as image is null.
>> 
>> It's better to not go through all MediaTracker usage and bail out initially itself for null image..
>
> 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

Changes requested by aivanov (Reviewer).

src/java.desktop/share/classes/javax/swing/ImageIcon.java line 219:

> 217:      * Creates an ImageIcon from an image object.
> 218:      * Setting a {@code null} image means
> 219:      * no image will be rendered.

Suggestion:

     * If the image is {@code null}, no icon will be rendered.

src/java.desktop/share/classes/javax/swing/ImageIcon.java line 230:

> 228:         if (image == null) {
> 229:             return;
> 230:         }

So, are we changing the constructors that accept `Image`?

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

PR Review: https://git.openjdk.org/jdk/pull/25767#pullrequestreview-2945815220
PR Review Comment: https://git.openjdk.org/jdk/pull/25767#discussion_r2158785184
PR Review Comment: https://git.openjdk.org/jdk/pull/25767#discussion_r2158787404


More information about the client-libs-dev mailing list