<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