<AWT Dev> [9] Review request for 8040291 [macosx] Http-Images are not fully loaded when using ImageIcon

Petr Pchelko petr.pchelko at oracle.com
Wed May 21 14:00:37 UTC 2014


Hello, Alexander.

The fix looks good.

With best regards. Petr.

On 21 мая 2014 г., at 17:47, Alexander Scherbatiy <alexandr.scherbatiy at oracle.com> wrote:

> 
> 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 macosx-port-dev mailing list