<AWT Dev> [9] Review request for 8040291 [macosx] Http-Images are not fully loaded when using ImageIcon
Alexander Scherbatiy
alexandr.scherbatiy at oracle.com
Wed May 21 13:47:37 UTC 2014
Could you review the updated fix:
http://cr.openjdk.java.net/~alexsch/8040291/webrev.03/
- The test checks that the resolution-variant observer is called at
least once.
Thanks,
Alexandr.
On 5/21/2014 2:50 PM, Alexander Scherbatiy wrote:
>
> Could you review the updated fix:
> http://cr.openjdk.java.net/~alexsch/8040291/webrev.02/
>
> - The isRVObserevr typo is fixed
>
> On 5/20/2014 7:32 PM, Petr Pchelko wrote:
>>> Could you review the updated fix:
>>> http://cr.openjdk.java.net/~alexsch/8040291/webrev.01
>>>
>>> - The getRVSize() method from the SunToolkit is fixed
>> Thank you for the update, but I still have questions about the test:
>> 1. There’s a typo in isRVObserevr.
>> 2. Do we need the isRVObserevr method? How could it be that this
>> method return false in this test and it’s a correct behavior and not
>> a bug?
>> I see it’s only possible from SunToolkit.prepareImage if bits are
>> ERROR | ABORT.
>> Couldn’t we get rid of this method? Walking up the stack doesn’t look
>> like the most
>> reliable solution..
>
> The ImageObserver is used for two purposes in the Toolkit
> prepareImage() method:
> - to query which part of the image should be loaded
> - to notify an object about which image information is available
>
> To prepare a multi-resolution image it needs to prepare its
> resolution variant as well.
> The only way to know which part of the resolution variant should be
> loaded is requesting
> the base image observer. It leads that there will be a notification
> for the object that contains
> the resolution variant instead of the base image. To improve it the
> MultiResolutionToolkitImage
> wraps the base image observer for the resolution variant. The object
> gets notification
> which contains only the base image and updated sizes after that.
>
> The another case which is fixed in this issue is that the
> resolution variant can be loaded first
> and it notifies the object that the image is loaded. The fix reduces
> the resolution variant info
> flags so the object should wait for image loading notification from
> the base image.
>
> The test needs to check that the wrapped observer from the
> resolution variant does not send
> more info than the original image has already had. The
> isRVObserver() just checks
> that the observer is called from the resolution variant and not is
> from the base image.
>
> Thanks,
> Alexandr.
>
>>
>> With best regards. Petr.
>>
>> On May 20, 2014, at 7:07 PM, Alexander Scherbatiy
>> <alexandr.scherbatiy at oracle.com> wrote:
>>
>>> Could you review the updated fix:
>>> http://cr.openjdk.java.net/~alexsch/8040291/webrev.01
>>>
>>> - The getRVSize() method from the SunToolkit is fixed
>>>
>>> On 5/20/2014 6:46 PM, Petr Pchelko wrote:
>>>> Hello, Alexander.
>>>>
>>>> SunToolkit:876 size == -1 ? -1 : size
>>>>
>>>> What’s going on here? Isn’t this equal to just size?
>>>> I believe is’t wrong and the size should be multiplied by 2 somewhere?
>>>> If the method is wrong how does the test pass?
>>> The test passes because it uses SunToolkit.prepareImage() method
>>> with the -1 size.
>>> It also uses the image observer that requires to load all image
>>> bits.
>>>
>>> Thanks,
>>> Alexandr.
>>>
>>>> With best regards. Petr.
>>>>
>>>> On May 20, 2014, at 6:32 PM, Alexander Scherbatiy
>>>> <alexandr.scherbatiy at oracle.com> wrote:
>>>>
>>>>> Hello,
>>>>>
>>>>> Could you look at the fix?
>>>>>
>>>>> Thanks,
>>>>> Alexandr.
>>>>>
>>>>> On 4/30/2014 6:34 PM, Alexander Scherbatiy wrote:
>>>>>> Hello,
>>>>>>
>>>>>> Could you review the fix:
>>>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8040291
>>>>>> webrev: http://cr.openjdk.java.net/~alexsch/8040291/webrev.00
>>>>>>
>>>>>>
>>>>>> The SunToolkit.prepareResolutionVariant() method wraps the base
>>>>>> image observer and
>>>>>> passes it to the resolution variant. It leads that the
>>>>>> resolution variant notifies
>>>>>> the base image about info changing.
>>>>>>
>>>>>> When the base image is loaded by the MediaTracker and the
>>>>>> resolution variant is loaded
>>>>>> first it calls the base image observer and wrongly finishes the
>>>>>> base image loading.
>>>>>>
>>>>>>
>>>>>> The fix passes the reduced resolution variant info flags to the
>>>>>> base image
>>>>>> so the base image loading is finished only after notifiing by
>>>>>> the original base image observer.
>>>>>>
>>>>>>
>>>>>> Thanks,
>>>>>> Alexandr.
>>>>>>
>
More information about the awt-dev
mailing list