<AWT Dev> [14] RFR JDK-8233703:java/awt/Frame/FrameLocation.java fails on mac

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Fri Nov 8 03:37:36 UTC 2019


On 11/7/19 7:32 pm, Prasanta Sadhukhan wrote:
> Hi Sergey,
> 
> OK. Since the test pass in local ubuntu18.04 system and fail only in mach5 linux system, I thought it's a test issue. Do you know what window manager our mach5 linux system is running?

I guess it is gnome3, BTW I am able to reproduce it as well on Ubuntu 19.10, after a number of iterations(~50) and can confirm that when it fails the size of the window is changed(it became smaller than initially).

> 
> Regards
> Prasanta
> On 08-Nov-19 2:42 AM, Sergey Bylokhov wrote:
>> Hi, Prasanta.
>>
>> I think that the test passed after the fix is because it does not have enough time to update
>> the location of the Frame by the native callback.
>>
>> Before the fix we have this sequence of calls:
>>  1 Sets the bounds of the frame(this bounds are cached in the frame and returned by getX/getY)
>>  2 Make the frame visible
>>  3 Wait while the callback from the native change the location of the frame cached at step 1
>>  4 Check the coordinates
>>  5 Destroy/Recreate the peer
>>  6 goto step  3
>>
>> After the fix:
>>  1 Sets the bounds of the frame(this bounds are cached in the frame and returned by getX/getY)
>>  2 Make the frame visible
>>  3 Check the coordinates cached at step 1
>>  4 Destroy/Recreate the peer
>>  5 goto step  3
>>
>> So actually the new test did not check location of the frame but check the values cached in the Frame object.
>>
>>
>> On 11/6/19 3:57 am, Prasanta Sadhukhan wrote:
>>> Hi All,
>>>
>>> Please review a fix for an issue where it is seen the frame location is sometimes wrong in mac on mach5 headful nightly run.
>>>
>>> It seems to be a timing issue as it shows 10 frames by calling frame.removeNotify(),frame.addNotify() repeatedly, which by the way are not supposed to be called by programs directly.
>>>
>>> Proposed fix is to make not to make thread sleep every time removeNotify,addNotify is called so that there is no delay. I have ran mach5 job (in JBS) for 3 consecutive runs on all 3 platforms and they pass.
>>>
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8233703
>>>
>>> webrev: http://cr.openjdk.java.net/~psadhukhan/8233703/webrev.0/
>>>
>>> Regards
>>> Prasanta
>>
>>


-- 
Best regards, Sergey.


More information about the awt-dev mailing list