RFR: 8236987: Remove call to System.out.println from ImageIcon.loadImage

Alexey Ivanov aivanov at openjdk.java.net
Tue Mar 15 16:52:50 UTC 2022


On Tue, 15 Mar 2022 16:42:41 GMT, Alexey Ivanov <aivanov at openjdk.org> wrote:

>> A small file from local storage loads fast enough. By the time you get to read status, load could complete.
>> 
>> For the url, do you use the same URL? If the connection can be established, it should load pretty fast too. However, if you need a proxy server to access the Internet but you won't provide one, it won't load as fast, nor will it report error fast enough.
>> 
>> Anyway, my example above confirms *it's possible the status remains `LOADING`*. But the image isn't loading, it will never load and its status will never change, so you have to amend the status to a correct one.
>
>> @aivanov-jdk , U r right, the status remains LOADING for url...... I was getting "ERRORED" because I was showing a message using `JOptionPane.showMessageDialog(null, "");` before setting ImageIcon.
> 
> Ah, with the message dialog shown there's enough time to complete loading the image.

> N for current bug, where to change to change the status to "ABORTED"......?? As I cannot change in ImageIcon class......

Why can't you change the status in `ImageIcon`? It's where you change it.


            loadStatus = mTracker.statusID(id, false);
            mTracker.removeImage(image, id);
            if (loadStatus & MediaTracker.LOADING != 0) {
                loadStatus = MediaTracker.ABORTED;
            }

The first two lines already exist, right after the catching `InterruptedException`. You just need to add the `if` block to amend the status.

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

PR: https://git.openjdk.java.net/jdk/pull/7754



More information about the client-libs-dev mailing list