<AWT Dev> Please review changes in regression test /java/awt/TestArea/UsingWithMouse.java (second version of patch)
Artem.Ananiev at Sun.COM
Tue Jan 26 04:16:58 PST 2010
On 1/26/2010 2:57 PM, Pavel Tisnovsky wrote:
> Artem Ananiev wrote:
>>> I've added synchronization of scrolling using method
>>> SunToolkit.realSync(), it seems to works perfectly on RHEL x86_64 +
>>> Gnome and Fedora 10 i386 + Gnome. Thanks Anthony Petrov for his tip!
>> the problem looks really, really strange... Util.waitForIdle() is
>> implemented exactly the same way: as a call to realSync() - while you
>> wrote that calling waitForIdle() didn't help.
>> Please, postpone your fix (don't integrate into AWT gate repository)
>> and check if Util.waitForIdle() does the job. realSync() is a
>> low-level and private Sun's API, so I'd prefer having it in a single
>> place (in Util) so we can change it easily, if necessary (e.g. when
>> realSync() becomes public).
> Yes, you are right, Util.waitForIdle() simply calls realSync(). It is
> interesting - without this sync (waifForIdle/realSync, does not matter
> which I use) this test always fails on my machine (i.e. it does not
> selects all lines of TextArea), with sync included it fails "only" in
> circa 1/10 of its run. At this time, I don't plan to push this patch as
> it isn't 100% correct.
realSync() only deals with events - native and Java - but it doesn't
cover things like native animations (e.g. on Vista/Seven with Aero
enabled, a window is not minimized instantly, but can be animated, and
realSync() couldn't be used to track this animation is over or in
progress). That's why sometimes, in rare cases, a simple Thread.sleep()
is a way to go.
>>> This patch can be applied to OpenJDK7 too.
>>> Thanks in advance
>>> Pavel Tisnovsky
>>> Red Hat QA
More information about the awt-dev