Hi, Jay.
I suppose the test should dispose the frames as well(even if it fails).
I tried to emulate test failure, and got an open frame when the test
itself and jtreg exit.
On 14/02/2018 02:36, Jayathirth D V wrote:
Hello All,
Please review the following fix in JDK11 :
Bug : https://bugs.openjdk.java.net/browse/JDK-8197926
Webrev : http://cr.openjdk.java.net/~jdv/8197926/webrev.00/
_Issue:_ If we enable HiDPi setting in Windows to approximately 125% or
more, java/awt/dnd/ImageTransferTest/ImageTransferTest.java times out
and doesn’t dispose the created Java windows.
_Root cause_ : In Windows because of default insets parameters, frames
created in test case overlap and over that if we enable HiDPi setting
the mouse drag and drop calculation is not proper and this results in
time out and created frames are not disposed properly.
_Solution:_ The default frame insets behave differently in different
platforms(Windows, Unix & MacOS). Since the main objective of test case
is to transfer image from one frame to another and validate, there is no
need for us to have frame with insets. Making the frame Undecorated
results in uniform behavior across all platforms and test case passes. I
have verified the test case after change in Windows, Ubuntu and MacOS
and there are no side effects.
_Observation_ : In the test case we are creating second frame using
“ProcessCommunicator.executeChildProcess()”. If we want to reproduce
the issue using “-Dsun.java2d.uiScale” from command prompt the
ProcessCommunicator will pick default scale values and second window
will not be of required dimensions. We can pass “-Dsun.java2d.uiScale”
value to ProcessCommunicator.executeChildProcess() like
(ProcessCommunicator.executeChildProcess(ImageDropTarget.class,
classpath+" -Dsun.java2d.uiScale=2", args)) but I didn’t find a way to
get “uiScale” value passed in command prompt into the test case.
System.getProperty(sun.java2d.uiScale) returns null.
If there is a way to get uiScale value passed in command prompt in the
test case we can pass it to ProcessCommunicator.executeChildProcess() so
that we can reproduce the issue by just passing VM option to jtreg. As
of now to reproduce the issue we should go to Personalize->Display and
change HiDPi setting.
Thanks,
Jay
--
Best regards, Sergey.