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

Prasanta Sadhukhan prasanta.sadhukhan at oracle.com
Fri Nov 8 04:22:17 UTC 2019


On 08-Nov-19 9:18 AM, Prasanta Sadhukhan wrote:
>
> On 08-Nov-19 9:07 AM, Sergey Bylokhov wrote:
>> 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).
>
> OK. I will also try with more iterations on 18.04. But, one thing is 
> test is calling removeNotify,addNotify which are not supposed to be 
> called directly from programs. Shouldn't we use allowable APIs maybe 
> setVisible(false), setVisible(true)?
BTW, I tried with 100 iterations on local ubuntu18.04 and it passed and 
I think mach5 system is also 18.04, so not sure why it will fail there.
>
> Regards
> Prasanta
>>
>>>
>>> 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
>>>>
>>>>
>>
>>


More information about the awt-dev mailing list