RFR: 8159055: ImageIcon.setImage can't handle null parameter [v18]

Phil Race prr at openjdk.org
Thu Jul 24 19:20:59 UTC 2025


On Wed, 23 Jul 2025 08:43:33 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 unneeded vars

test/jdk/javax/swing/ImageIcon/ImageIconTest.java line 54:

> 52: 
> 53:         for (ArgType a : ArgType.values()) {
> 54:             for (final boolean invalid : new boolean[]{false, true}) {

This "invalid==false" means use null and "invalid=true" means use non-null but invalid image data 
seems odd.

Can we rename invalid to "invalidImageData" ? Or may be better an other enum ?

test/jdk/javax/swing/ImageIcon/ImageIconTest.java line 103:

> 101:                         passed = true;
> 102:                     }
> 103:                 } catch (Exception ex) {

What's this block for ? What other kind of exception besides NPE can we get ?

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

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


More information about the client-libs-dev mailing list