On Fri, 11 Mar 2022 21:46:23 GMT, Alexey Ivanov <aiva...@openjdk.org> wrote:

>> We shouldn't be setting any MediaTracker status here - this is the caller ! 
>> It would be absolutely wrong. And it seems likely to me that this println 
>> was put there by the developer of this code who was him/herself not sure if 
>> this would occur and what to do about it so wanted to have a message if it 
>> ever occurred so they could figure out how to handle it.
>> It seems to me that if the thread were interrupted there'd only be a very 
>> narrow window in which it likely that the image were complete and that if 
>> interrupted then I agree with what I think Alexey is saying which is that 
>> the MediaTracker may not have had a chance to even update status since it 
>> was interrupted .. depends how sophisticated the implementation is.
>> Since ImageIcon.getLoadStatus() specifies only 3 possible return values then 
>> yes, we should ensure it is one of those . So if it is LOADING then set it 
>> to ABORTED .. However a possible wrinkle is that this call being interrupted 
>> may not actually prevent the separate threads the MediaTracker kicks off 
>> from continuing .. so it may actually be still loading. And it is just that 
>> the waiting was interrupted.
>> Someone would need to dig into MediaTracker to check.
>> But since the code removes the image from the tracker .. maybe we don't care 
>> ?
>
> Since the image is removed from MediaTracker, its status can't change after 
> that. Therefore `LOADING` status should be changed to `ABORTED`.
> [JDK-6421373](https://bugs.openjdk.java.net/browse/JDK-6421373) has a test 
> case which can be modified to load an image and check `loadStatus` of the 
> image.

@aivanov-jdk , even after interrupted the load status gets the "COMPLETE" 
status and I'm able to use the Imageicon for frame......

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

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

Reply via email to