<AWT Dev> [AWT Dev] [11] RFR JDK-8197926: java/awt/dnd/ImageTransferTest/ImageTransferTest.java doesnt close the windows in HiDPI setting

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Wed Feb 14 22:56:33 UTC 2018

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.

More information about the awt-dev mailing list